diff --git a/README.md b/README.md index 121ee71..c4b0713 100644 --- a/README.md +++ b/README.md @@ -91,9 +91,9 @@ The stack is EVM based, we support Solana with NeonEVM. ### v2 - Base Sepolia ```txt -SERVICE_REGISTRY_ADDRESS=0xC59D70954BFFf1aB687aB28E86324703B5D23dcC -AGENT_REGISTRY_ADDRESS=0xd5aD1B6c462C7cCF641Df8cdac356bc4a7C20400 -TASK_REGISTRY_ADDRESS=0x7eaB59d9121c76eF44a101C2c1d2121cC8e871fd +AGENT_REGISTRY_ADDRESS=0xABC2AC53Aaf217B70825701c1a5aB750CD60DbaF +TASK_REGISTRY_ADDRESS=0x859bBE15EfbE62fD51DB5C24B01048A73839E141 +SERVICE_REGISTRY_ADDRESS=0x68A88024060fD8Fe4dE848de1abB7F6d9225cCa8 ``` ### v1 - Neon Devnet diff --git a/packages/contracts/.DS_Store b/packages/contracts/.DS_Store new file mode 100644 index 0000000..1ad899d Binary files /dev/null and b/packages/contracts/.DS_Store differ diff --git a/packages/contracts/README.md b/packages/contracts/README.md index d9ea9bc..4441a27 100644 --- a/packages/contracts/README.md +++ b/packages/contracts/README.md @@ -17,9 +17,9 @@ Contracts are deployed to the following networks, we support Solana via NeonEVM. ## Base Sepolia ```txt -SERVICE_REGISTRY_ADDRESS=0xC59D70954BFFf1aB687aB28E86324703B5D23dcC -AGENT_REGISTRY_ADDRESS=0xd5aD1B6c462C7cCF641Df8cdac356bc4a7C20400 -TASK_REGISTRY_ADDRESS=0x7eaB59d9121c76eF44a101C2c1d2121cC8e871fd +AGENT_REGISTRY_ADDRESS=0xABC2AC53Aaf217B70825701c1a5aB750CD60DbaF +TASK_REGISTRY_ADDRESS=0x859bBE15EfbE62fD51DB5C24B01048A73839E141 +SERVICE_REGISTRY_ADDRESS=0x68A88024060fD8Fe4dE848de1abB7F6d9225cCa8 ``` ## Neon Devnet diff --git a/packages/contracts/contracts/AgentsRegistry.sol b/packages/contracts/contracts/AgentsRegistry.sol index 1a13c3c..47d1dc6 100644 --- a/packages/contracts/contracts/AgentsRegistry.sol +++ b/packages/contracts/contracts/AgentsRegistry.sol @@ -19,28 +19,50 @@ contract AgentsRegistry is Ownable, IProposalStruct { address owner; address agent; uint256 reputation; - bool isRegistered; - Proposal[] proposals; + uint256 totalRatings; } ServiceRegistry public serviceRegistry; + address public taskRegistry; + mapping(address => AgentData) public agents; - Proposal[] public proposals; + mapping(uint256 => ServiceProposal) public proposals; uint256 public nextProposalId; - modifier onlyRegistered(address agent) { - require(agents[agent].isRegistered, "Agent not registered"); + modifier onlyAgentOwner(address agent) { + require(agents[agent].owner == msg.sender, "Not the owner of the agent"); _; } constructor(ServiceRegistry _serviceRegistry) Ownable(msg.sender) { serviceRegistry = _serviceRegistry; + nextProposalId = 1; } event AgentRegistered(address indexed agent, address indexed owner, string name, string agentUri); event ReputationUpdated(address indexed agent, uint256 newReputation); - event ServiceAdded(address indexed agent, uint256 name); + event ProposalAdded(address indexed agent, uint256 proposalId, string name, uint256 price); + event ProposalRemoved(address indexed agent, uint256 proposalId); + event ProposalUpdated(address indexed agent, uint256 proposalId, uint256 price); + + /** + * @dev Sets the address of the TaskRegistry contract. + * @param _taskRegistry The address of the TaskRegistry contract. + */ + function setTaskRegistry(address _taskRegistry) external onlyOwner { + require(_taskRegistry != address(0), "Invalid address"); + taskRegistry = _taskRegistry; + } + + /** + * @dev Sets the address of the ServiceRegistry contract. + * @param _serviceRegistry The address of the ServiceRegistry contract. + */ + function setServiceRegistry(address _serviceRegistry) external onlyOwner { + require(_serviceRegistry != address(0), "Invalid address"); + serviceRegistry = ServiceRegistry(_serviceRegistry); + } /** * @dev Registers a new agent with the given details. @@ -64,8 +86,8 @@ contract AgentsRegistry is Ownable, IProposalStruct { string memory agentUri, string memory serviceName, uint256 servicePrice - ) external returns (bool) { - require(!agents[agent].isRegistered, "Agent already registered"); + ) external returns (uint256) { + require(agents[agent].agent == address(0), "Agent already registered"); require(serviceRegistry.isServiceRegistered(serviceName), "Service not registered"); AgentData storage agentData = agents[agent]; @@ -74,53 +96,95 @@ contract AgentsRegistry is Ownable, IProposalStruct { agentData.owner = msg.sender; agentData.agent = agent; agentData.reputation = 0; - agentData.isRegistered = true; - Proposal memory proposal = Proposal(agent, serviceName, servicePrice, nextProposalId); - agentData.proposals.push(proposal); - proposals.push(proposal); + + ServiceProposal memory proposal = ServiceProposal(agent, serviceName, servicePrice, nextProposalId, false); + proposals[nextProposalId] = proposal; nextProposalId++; emit AgentRegistered(agent, msg.sender, name, agentUri); emit ProposalAdded(agent, proposal.proposalId, serviceName, servicePrice); - return true; + return nextProposalId - 1; } - function updateReputation(address agent, uint256 _reputation) external onlyOwner onlyRegistered(agent) { - agents[agent].reputation = _reputation; - emit ReputationUpdated(agent, _reputation); + + /** + * @dev Adds a new proposal for an agent. + * @param agent The address of the agent. + * @param serviceName The name of the service. + * @param servicePrice The price of the service. + * @return true if the proposal was added successfully, false otherwise. + * + * Requirements: + * + * - The caller must be the owner of the agent. + * - The agent must be registered. + * - The service must be registered. + * + * Emits a {ProposalAdded} event. + */ + function addProposal(address agent, string memory serviceName, uint256 servicePrice) external onlyAgentOwner(agent) returns (uint256) { + require(serviceRegistry.isServiceRegistered(serviceName), "Service not registered"); + + ServiceProposal memory proposal = ServiceProposal(agent, serviceName, servicePrice, nextProposalId, true); + proposals[nextProposalId] = proposal; + + nextProposalId++; + emit ProposalAdded(agent, proposal.proposalId, serviceName, servicePrice); + + return nextProposalId - 1; + } + + /** + * @dev Removes a proposal for an agent. + * @param agent The address of the agent. + * @param proposalId The ID of the proposal to remove. + * @return true if the proposal was removed successfully, false otherwise. + * + * Requirements: + * + * - The caller must be the owner of the agent. + * - The agent must be registered. + * - The proposal must exist. + * + * Emits a {ProposalRemoved} event. + */ + function removeProposal(address agent, uint256 proposalId) external onlyAgentOwner(agent) returns (bool) { + require(proposals[proposalId].issuer == agent, "ServiceProposal not found"); + + delete proposals[proposalId]; + emit ProposalRemoved(agent, proposalId); + + return true; } - function getReputation(address agent) external view onlyRegistered(agent) returns (uint256) { + function addRating(address agent, uint256 _rating) public returns (uint256) { + require(msg.sender == taskRegistry, "Not the TaskRegistry contract"); + require(_rating >= 0 && _rating <= 100, "Rating must be between 0 and 100"); + agents[agent].totalRatings += 1; + agents[agent].reputation = (agents[agent].reputation * (agents[agent].totalRatings - 1) + _rating) / agents[agent].totalRatings; + emit ReputationUpdated(agent, agents[agent].reputation); + return agents[agent].reputation; } - function isRegistered(address agent) external view returns (bool) { - return agents[agent].isRegistered; + function getReputation(address agent) external view returns (uint256) { + return agents[agent].reputation; } /** - * @dev get agent data - * @param _agent The address of the agent - * @return name The name of the agent - * @return agentUri The URI pointing to the agent's metadata - * @return owner The owner address of the agent - * @return agent The agent contract address - * @return reputation The reputation score of the agent + * @dev Returns the data of an agent. + * @param _agent The address of the agent. + * @return AgentData The data of the agent. */ - function getAgentData(address _agent) external view returns ( - string memory name, - string memory agentUri, - address owner, - address agent, - uint256 reputation + function getAgentData(address _agent) external view returns (AgentData memory ) { AgentData storage data = agents[_agent]; - return (data.name, data.agentUri, data.owner, data.agent, data.reputation); + return data; } - function getProposal(uint256 proposalId) external view returns (Proposal memory) { + function getProposal(uint256 proposalId) external view returns (ServiceProposal memory) { return proposals[proposalId]; } } diff --git a/packages/contracts/contracts/ServiceRegistry.sol b/packages/contracts/contracts/ServiceRegistry.sol index ee9e4ed..24f686a 100644 --- a/packages/contracts/contracts/ServiceRegistry.sol +++ b/packages/contracts/contracts/ServiceRegistry.sol @@ -27,7 +27,7 @@ contract ServiceRegistry is Ownable { * @param name The name of the service. * @return The ID of the registered service. */ - function registerService(string memory name, string memory category, string memory description) external onlyOwner returns (Service memory) { + function registerService(string memory name, string memory category, string memory description) external returns (Service memory) { require(!this.isServiceRegistered(name), "Service already registered"); Service memory service = Service({ diff --git a/packages/contracts/contracts/TaskRegistry.sol b/packages/contracts/contracts/TaskRegistry.sol index b20e716..20f44cb 100644 --- a/packages/contracts/contracts/TaskRegistry.sol +++ b/packages/contracts/contracts/TaskRegistry.sol @@ -13,7 +13,7 @@ import "./lib/TransferHelper.sol"; */ contract TaskRegistry is Ownable, IProposalStruct { - enum TaskStatus { CREATED, ASSIGNED, COMPLETED, FAILED } + enum TaskStatus { CREATED, ASSIGNED, COMPLETED, CANCELED } struct TaskData { uint256 id; @@ -23,22 +23,30 @@ contract TaskRegistry is Ownable, IProposalStruct { address assignee; uint256 proposalId; string result; + uint8 rating; } mapping(uint256 => TaskData) public tasks; mapping(address => uint256[]) public issuerTasks; uint256 private nextTaskId; AgentsRegistry public agentRegistry; + + modifier onlyTaskIssuer(uint256 taskId) { + require(msg.sender == tasks[taskId].issuer, "Not the issuer of the task"); + _; + } constructor(AgentsRegistry _agentRegistry) Ownable(msg.sender) { agentRegistry = _agentRegistry; + nextTaskId = 1; } event TaskCreated(address indexed issuer, address indexed assignee, uint256 taskId, uint256 proposalId, string prompt); event TaskStatusChanged(uint256 indexed taskId, TaskStatus status); event TaskAssigned(uint256 indexed taskId, address indexed agent); - event ProposalApproved(uint256 indexed taskId, Proposal proposal); + event TaskCanceled(uint256 indexed taskId); + event ProposalApproved(uint256 indexed taskId, ServiceProposal proposal); event TaskCompleted(uint256 indexed taskId, string result); - + event TaskRated(uint256 indexed taskId, uint8 rating); /** * @dev Creates a new task with the given prompt and task type. * @param prompt The description or prompt of the task. @@ -48,8 +56,8 @@ contract TaskRegistry is Ownable, IProposalStruct { string memory prompt, uint256 proposalId ) external payable returns (TaskData memory) { - Proposal memory proposal = agentRegistry.getProposal(proposalId); - require(proposal.issuer != address(0), "Proposal not found"); + ServiceProposal memory proposal = agentRegistry.getProposal(proposalId); + require(proposal.issuer != address(0), "ServiceProposal not found"); require(proposal.price == msg.value, "Invalid price"); TaskData storage task = tasks[nextTaskId]; @@ -73,12 +81,12 @@ contract TaskRegistry is Ownable, IProposalStruct { */ function completeTask(uint256 taskId, string memory result) external { TaskData storage task = tasks[taskId]; - require(msg.sender == task.assignee || msg.sender == owner(), "Not authorized"); + require(msg.sender == task.assignee, "Not authorized"); require(task.status == TaskStatus.ASSIGNED, "Invalid task status"); task.status = TaskStatus.COMPLETED; task.result = result; - Proposal memory proposal = agentRegistry.getProposal(task.proposalId); + ServiceProposal memory proposal = agentRegistry.getProposal(task.proposalId); TransferHelper.safeTransferETH(proposal.issuer, proposal.price); @@ -86,6 +94,43 @@ contract TaskRegistry is Ownable, IProposalStruct { emit TaskCompleted(taskId, result); } + /** + * @dev Rated a completed task, called by the task issuer + * @param taskId The ID of the task. + * @param rating task rating from 0 to 100. + */ + function rateTask(uint256 taskId, uint8 rating) onlyTaskIssuer(taskId) external { + TaskData storage task = tasks[taskId]; + + require(task.status == TaskStatus.COMPLETED, "Task is not completed"); + require(task.rating == 0, "Task got rating already"); + require(rating >= 0 && rating <= 100, "Rating must be between 0 and 100"); + + task.rating = rating; + ServiceProposal memory proposal = agentRegistry.getProposal(task.proposalId); + + agentRegistry.addRating(proposal.issuer, rating); + + emit TaskRated(taskId, rating); + } + + /** + * @dev Cancels a task that is in ASSIGNED status and refunds the payment. + * @param taskId The ID of the task to cancel. + */ + function cancelTask(uint256 taskId) external onlyTaskIssuer(taskId) { + TaskData storage task = tasks[taskId]; + require(task.status != TaskStatus.COMPLETED && task.status != TaskStatus.CANCELED, "Task cannot be canceled"); + + task.status = TaskStatus.CANCELED; + ServiceProposal memory proposal = agentRegistry.getProposal(task.proposalId); + + // Refund the payment to the issuer + TransferHelper.safeTransferETH(task.issuer, proposal.price); + + emit TaskStatusChanged(taskId, task.status); + emit TaskCanceled(taskId); + } function getTasksByIssuer(address issuer) external view returns (uint256[] memory) { return issuerTasks[issuer]; diff --git a/packages/contracts/contracts/interfaces/IProposalStruct.sol b/packages/contracts/contracts/interfaces/IProposalStruct.sol index 368c41f..e2ea0dc 100644 --- a/packages/contracts/contracts/interfaces/IProposalStruct.sol +++ b/packages/contracts/contracts/interfaces/IProposalStruct.sol @@ -1,10 +1,11 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.20; interface IProposalStruct { - struct Proposal { + struct ServiceProposal { address issuer; string serviceName; uint256 price; uint256 proposalId; + bool isActive; } } \ No newline at end of file diff --git a/packages/contracts/hardhat.config.ts b/packages/contracts/hardhat.config.ts index 24c85ef..b2c0d1f 100644 --- a/packages/contracts/hardhat.config.ts +++ b/packages/contracts/hardhat.config.ts @@ -3,6 +3,7 @@ import "@nomicfoundation/hardhat-toolbox"; import "@nomicfoundation/hardhat-ignition-ethers"; import "@nomicfoundation/hardhat-verify"; import * as dotenv from "dotenv"; +import 'solidity-coverage'; dotenv.config(); diff --git a/packages/contracts/ignition/deployments/chain-84532/artifacts/AgentsRegistryModule#AgentsRegistry.dbg.json b/packages/contracts/ignition/deployments/chain-84532/artifacts/AgentsRegistryModule#AgentsRegistry.dbg.json index e3654a9..27e3189 100644 --- a/packages/contracts/ignition/deployments/chain-84532/artifacts/AgentsRegistryModule#AgentsRegistry.dbg.json +++ b/packages/contracts/ignition/deployments/chain-84532/artifacts/AgentsRegistryModule#AgentsRegistry.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/4f85bbb070e464b57411e80df715dabb.json" + "buildInfo": "../build-info/c531b525831bad0f98bf93a9d045f697.json" } \ No newline at end of file diff --git a/packages/contracts/ignition/deployments/chain-84532/artifacts/AgentsRegistryModule#AgentsRegistry.json b/packages/contracts/ignition/deployments/chain-84532/artifacts/AgentsRegistryModule#AgentsRegistry.json index afbc5a4..734d33b 100644 --- a/packages/contracts/ignition/deployments/chain-84532/artifacts/AgentsRegistryModule#AgentsRegistry.json +++ b/packages/contracts/ignition/deployments/chain-84532/artifacts/AgentsRegistryModule#AgentsRegistry.json @@ -129,11 +129,11 @@ { "indexed": false, "internalType": "uint256", - "name": "newReputation", + "name": "proposalId", "type": "uint256" } ], - "name": "ReputationUpdated", + "name": "ProposalRemoved", "type": "event" }, { @@ -148,38 +148,69 @@ { "indexed": false, "internalType": "uint256", - "name": "name", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "price", "type": "uint256" } ], - "name": "ServiceAdded", + "name": "ProposalUpdated", "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "", + "name": "agent", "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newReputation", + "type": "uint256" } ], - "name": "agents", - "outputs": [ + "name": "ReputationUpdated", + "type": "event" + }, + { + "inputs": [ { - "internalType": "string", - "name": "name", - "type": "string" + "internalType": "address", + "name": "agent", + "type": "address" }, { "internalType": "string", - "name": "agentUri", + "name": "serviceName", "type": "string" }, { - "internalType": "address", - "name": "owner", - "type": "address" - }, + "internalType": "uint256", + "name": "servicePrice", + "type": "uint256" + } + ], + "name": "addProposal", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { "internalType": "address", "name": "agent", @@ -187,27 +218,30 @@ }, { "internalType": "uint256", - "name": "reputation", + "name": "_rating", "type": "uint256" - }, + } + ], + "name": "addRating", + "outputs": [ { - "internalType": "bool", - "name": "isRegistered", - "type": "bool" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "_agent", + "name": "", "type": "address" } ], - "name": "getAgentData", + "name": "agents", "outputs": [ { "internalType": "string", @@ -233,6 +267,11 @@ "internalType": "uint256", "name": "reputation", "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalRatings", + "type": "uint256" } ], "stateMutability": "view", @@ -241,37 +280,47 @@ { "inputs": [ { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" + "internalType": "address", + "name": "_agent", + "type": "address" } ], - "name": "getProposal", + "name": "getAgentData", "outputs": [ { "components": [ { - "internalType": "address", - "name": "issuer", - "type": "address" + "internalType": "string", + "name": "name", + "type": "string" }, { "internalType": "string", - "name": "serviceName", + "name": "agentUri", "type": "string" }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "agent", + "type": "address" + }, { "internalType": "uint256", - "name": "price", + "name": "reputation", "type": "uint256" }, { "internalType": "uint256", - "name": "proposalId", + "name": "totalRatings", "type": "uint256" } ], - "internalType": "struct IProposalStruct.Proposal", + "internalType": "struct AgentsRegistry.AgentData", "name": "", "type": "tuple" } @@ -282,17 +331,44 @@ { "inputs": [ { - "internalType": "address", - "name": "agent", - "type": "address" + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" } ], - "name": "getReputation", + "name": "getProposal", "outputs": [ { - "internalType": "uint256", + "components": [ + { + "internalType": "address", + "name": "issuer", + "type": "address" + }, + { + "internalType": "string", + "name": "serviceName", + "type": "string" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "isActive", + "type": "bool" + } + ], + "internalType": "struct IProposalStruct.ServiceProposal", "name": "", - "type": "uint256" + "type": "tuple" } ], "stateMutability": "view", @@ -306,12 +382,12 @@ "type": "address" } ], - "name": "isRegistered", + "name": "getReputation", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], "stateMutability": "view", @@ -372,6 +448,11 @@ "internalType": "uint256", "name": "proposalId", "type": "uint256" + }, + { + "internalType": "bool", + "name": "isActive", + "type": "bool" } ], "stateMutability": "view", @@ -406,6 +487,30 @@ } ], "name": "registerAgent", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "agent", + "type": "address" + }, + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "removeProposal", "outputs": [ { "internalType": "bool", @@ -440,11 +545,11 @@ "inputs": [ { "internalType": "address", - "name": "newOwner", + "name": "_serviceRegistry", "type": "address" } ], - "name": "transferOwnership", + "name": "setServiceRegistry", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -453,23 +558,44 @@ "inputs": [ { "internalType": "address", - "name": "agent", + "name": "_taskRegistry", "type": "address" - }, + } + ], + "name": "setTaskRegistry", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "taskRegistry", + "outputs": [ { - "internalType": "uint256", - "name": "_reputation", - "type": "uint256" + "internalType": "address", + "name": "", + "type": "address" } ], - "name": "updateReputation", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5060405161132238038061132283398101604081905261002f916100d4565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e81610084565b50600180546001600160a01b0319166001600160a01b0392909216919091179055610104565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100e657600080fd5b81516001600160a01b03811681146100fd57600080fd5b9392505050565b61120f806101136000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063aac9f15a1161008c578063cbcf252a11610066578063cbcf252a146101ef578063f2fde38b14610202578063f5c91a0814610215578063fd66091e1461022857600080fd5b8063aac9f15a1461017c578063c3c5a547146101a0578063c7f758a8146101cf57600080fd5b8063013cf08b146100d45780632ab09d1414610100578063715018a6146101175780638da5cb5b1461012157806398366dbd146101465780639c89a0e214610169575b600080fd5b6100e76100e2366004610c9d565b61024d565b6040516100f79493929190610cfc565b60405180910390f35b61010960045481565b6040519081526020016100f7565b61011f61031b565b005b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100f7565b610159610154366004610df2565b61032f565b60405190151581526020016100f7565b610109610177366004610e93565b6106a5565b61018f61018a366004610e93565b61072e565b6040516100f7959493929190610eb5565b6101596101ae366004610e93565b6001600160a01b031660009081526002602052604090206005015460ff1690565b6101e26101dd366004610c9d565b61089f565b6040516100f79190610eff565b60015461012e906001600160a01b031681565b61011f610210366004610e93565b6109c3565b61011f610223366004610f4d565b610a01565b61023b610236366004610e93565b610aca565b6040516100f796959493929190610f77565b6003818154811061025d57600080fd5b6000918252602090912060049091020180546001820180546001600160a01b0390921693509061028c90610fcd565b80601f01602080910402602001604051908101604052809291908181526020018280546102b890610fcd565b80156103055780601f106102da57610100808354040283529160200191610305565b820191906000526020600020905b8154815290600101906020018083116102e857829003601f168201915b5050505050908060020154908060030154905084565b610323610c20565b61032d6000610c4d565b565b6001600160a01b03851660009081526002602052604081206005015460ff16156103a05760405162461bcd60e51b815260206004820152601860248201527f4167656e7420616c72656164792072656769737465726564000000000000000060448201526064015b60405180910390fd5b60015460405163b405166b60e01b81526001600160a01b039091169063b405166b906103d0908690600401611001565b602060405180830381865afa1580156103ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104119190611014565b6104565760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b6044820152606401610397565b6001600160a01b0386166000908152600260205260409020806104798782611085565b50600181016104888682611085565b506002810180546001600160a01b031990811633179091556003820180546001600160a01b038a811691841682179092556000600480860182905560058601805460ff191660019081179091556040805160808101825294855260208086018c81529186018b9052835460608701526006890180548085018255908652942085519490930290920180549390951692909516919091178355519092839291908201906105349082611085565b5060408201516002820155606090910151600391820155805460018101825560009190915281517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b600490920291820180546001600160a01b0319166001600160a01b03909216919091178155602083015183927fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c01906105d59082611085565b5060408201516002820155606090910151600390910155600480549060006105fc83611145565b9190505550336001600160a01b0316886001600160a01b03167f2a562efb52e7cec209321f57200606311256da6d2a1b19d44db7837a3209de28898960405161064692919061116c565b60405180910390a3876001600160a01b03167fe194e0bc2279adb185c748ae57db10fe2ef1005a1b5646f96235a881c88ddb798260600151878760405161068f9392919061119a565b60405180910390a2506001979650505050505050565b6001600160a01b038116600090815260026020526040812060050154829060ff166107095760405162461bcd60e51b81526020600482015260146024820152731059d95b9d081b9bdd081c9959da5cdd195c995960621b6044820152606401610397565b6001600160a01b03831660009081526002602052604090206004015491505b50919050565b6001600160a01b038082166000908152600260208190526040822090810154600382015460048301548354606096879695869586959194859460018601949283169390921691859061077f90610fcd565b80601f01602080910402602001604051908101604052809291908181526020018280546107ab90610fcd565b80156107f85780601f106107cd576101008083540402835291602001916107f8565b820191906000526020600020905b8154815290600101906020018083116107db57829003601f168201915b5050505050945083805461080b90610fcd565b80601f016020809104026020016040519081016040528092919081815260200182805461083790610fcd565b80156108845780601f1061085957610100808354040283529160200191610884565b820191906000526020600020905b81548152906001019060200180831161086757829003601f168201915b50505050509350955095509550955095505091939590929450565b6108d3604051806080016040528060006001600160a01b031681526020016060815260200160008152602001600081525090565b600382815481106108e6576108e66111c3565b6000918252602091829020604080516080810190915260049092020180546001600160a01b03168252600181018054929391929184019161092690610fcd565b80601f016020809104026020016040519081016040528092919081815260200182805461095290610fcd565b801561099f5780601f106109745761010080835404028352916020019161099f565b820191906000526020600020905b81548152906001019060200180831161098257829003601f168201915b50505050508152602001600282015481526020016003820154815250509050919050565b6109cb610c20565b6001600160a01b0381166109f557604051631e4fbdf760e01b815260006004820152602401610397565b6109fe81610c4d565b50565b610a09610c20565b6001600160a01b038216600090815260026020526040902060050154829060ff16610a6d5760405162461bcd60e51b81526020600482015260146024820152731059d95b9d081b9bdd081c9959da5cdd195c995960621b6044820152606401610397565b6001600160a01b03831660008181526002602052604090819020600401849055517ffc577563f1b9a0461e24abef1e1fcc0d33d3d881f20b5df6dda59de4aae2c82190610abd9085815260200190565b60405180910390a2505050565b600260205260009081526040902080548190610ae590610fcd565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1190610fcd565b8015610b5e5780601f10610b3357610100808354040283529160200191610b5e565b820191906000526020600020905b815481529060010190602001808311610b4157829003601f168201915b505050505090806001018054610b7390610fcd565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9f90610fcd565b8015610bec5780601f10610bc157610100808354040283529160200191610bec565b820191906000526020600020905b815481529060010190602001808311610bcf57829003601f168201915b5050505060028301546003840154600485015460059095015493946001600160a01b03928316949290911692509060ff1686565b6000546001600160a01b0316331461032d5760405163118cdaa760e01b8152336004820152602401610397565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610caf57600080fd5b5035919050565b6000815180845260005b81811015610cdc57602081850181015186830182015201610cc0565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0385168152608060208201819052600090610d2090830186610cb6565b6040830194909452506060015292915050565b80356001600160a01b0381168114610d4a57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610d7657600080fd5b813567ffffffffffffffff80821115610d9157610d91610d4f565b604051601f8301601f19908116603f01168101908282118183101715610db957610db9610d4f565b81604052838152866020858801011115610dd257600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a08688031215610e0a57600080fd5b610e1386610d33565b9450602086013567ffffffffffffffff80821115610e3057600080fd5b610e3c89838a01610d65565b95506040880135915080821115610e5257600080fd5b610e5e89838a01610d65565b94506060880135915080821115610e7457600080fd5b50610e8188828901610d65565b95989497509295608001359392505050565b600060208284031215610ea557600080fd5b610eae82610d33565b9392505050565b60a081526000610ec860a0830188610cb6565b8281036020840152610eda8188610cb6565b6001600160a01b03968716604085015294909516606083015250608001529392505050565b602080825282516001600160a01b03168282015282015160806040830152600090610f2d60a0840182610cb6565b905060408401516060840152606084015160808401528091505092915050565b60008060408385031215610f6057600080fd5b610f6983610d33565b946020939093013593505050565b60c081526000610f8a60c0830189610cb6565b8281036020840152610f9c8189610cb6565b6001600160a01b039788166040850152959096166060830152506080810192909252151560a0909101529392505050565b600181811c90821680610fe157607f821691505b60208210810361072857634e487b7160e01b600052602260045260246000fd5b602081526000610eae6020830184610cb6565b60006020828403121561102657600080fd5b81518015158114610eae57600080fd5b601f82111561108057600081815260208120601f850160051c8101602086101561105d5750805b601f850160051c820191505b8181101561107c57828155600101611069565b5050505b505050565b815167ffffffffffffffff81111561109f5761109f610d4f565b6110b3816110ad8454610fcd565b84611036565b602080601f8311600181146110e857600084156110d05750858301515b600019600386901b1c1916600185901b17855561107c565b600085815260208120601f198616915b82811015611117578886015182559484019460019091019084016110f8565b50858210156111355787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006001820161116557634e487b7160e01b600052601160045260246000fd5b5060010190565b60408152600061117f6040830185610cb6565b82810360208401526111918185610cb6565b95945050505050565b8381526060602082015260006111b36060830185610cb6565b9050826040830152949350505050565b634e487b7160e01b600052603260045260246000fdfea26469706673582212202fe5e950305276469a5e1b110d11d1a15beca558b7c205b065d06b11c61cfe7964736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063aac9f15a1161008c578063cbcf252a11610066578063cbcf252a146101ef578063f2fde38b14610202578063f5c91a0814610215578063fd66091e1461022857600080fd5b8063aac9f15a1461017c578063c3c5a547146101a0578063c7f758a8146101cf57600080fd5b8063013cf08b146100d45780632ab09d1414610100578063715018a6146101175780638da5cb5b1461012157806398366dbd146101465780639c89a0e214610169575b600080fd5b6100e76100e2366004610c9d565b61024d565b6040516100f79493929190610cfc565b60405180910390f35b61010960045481565b6040519081526020016100f7565b61011f61031b565b005b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100f7565b610159610154366004610df2565b61032f565b60405190151581526020016100f7565b610109610177366004610e93565b6106a5565b61018f61018a366004610e93565b61072e565b6040516100f7959493929190610eb5565b6101596101ae366004610e93565b6001600160a01b031660009081526002602052604090206005015460ff1690565b6101e26101dd366004610c9d565b61089f565b6040516100f79190610eff565b60015461012e906001600160a01b031681565b61011f610210366004610e93565b6109c3565b61011f610223366004610f4d565b610a01565b61023b610236366004610e93565b610aca565b6040516100f796959493929190610f77565b6003818154811061025d57600080fd5b6000918252602090912060049091020180546001820180546001600160a01b0390921693509061028c90610fcd565b80601f01602080910402602001604051908101604052809291908181526020018280546102b890610fcd565b80156103055780601f106102da57610100808354040283529160200191610305565b820191906000526020600020905b8154815290600101906020018083116102e857829003601f168201915b5050505050908060020154908060030154905084565b610323610c20565b61032d6000610c4d565b565b6001600160a01b03851660009081526002602052604081206005015460ff16156103a05760405162461bcd60e51b815260206004820152601860248201527f4167656e7420616c72656164792072656769737465726564000000000000000060448201526064015b60405180910390fd5b60015460405163b405166b60e01b81526001600160a01b039091169063b405166b906103d0908690600401611001565b602060405180830381865afa1580156103ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104119190611014565b6104565760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b6044820152606401610397565b6001600160a01b0386166000908152600260205260409020806104798782611085565b50600181016104888682611085565b506002810180546001600160a01b031990811633179091556003820180546001600160a01b038a811691841682179092556000600480860182905560058601805460ff191660019081179091556040805160808101825294855260208086018c81529186018b9052835460608701526006890180548085018255908652942085519490930290920180549390951692909516919091178355519092839291908201906105349082611085565b5060408201516002820155606090910151600391820155805460018101825560009190915281517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b600490920291820180546001600160a01b0319166001600160a01b03909216919091178155602083015183927fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c01906105d59082611085565b5060408201516002820155606090910151600390910155600480549060006105fc83611145565b9190505550336001600160a01b0316886001600160a01b03167f2a562efb52e7cec209321f57200606311256da6d2a1b19d44db7837a3209de28898960405161064692919061116c565b60405180910390a3876001600160a01b03167fe194e0bc2279adb185c748ae57db10fe2ef1005a1b5646f96235a881c88ddb798260600151878760405161068f9392919061119a565b60405180910390a2506001979650505050505050565b6001600160a01b038116600090815260026020526040812060050154829060ff166107095760405162461bcd60e51b81526020600482015260146024820152731059d95b9d081b9bdd081c9959da5cdd195c995960621b6044820152606401610397565b6001600160a01b03831660009081526002602052604090206004015491505b50919050565b6001600160a01b038082166000908152600260208190526040822090810154600382015460048301548354606096879695869586959194859460018601949283169390921691859061077f90610fcd565b80601f01602080910402602001604051908101604052809291908181526020018280546107ab90610fcd565b80156107f85780601f106107cd576101008083540402835291602001916107f8565b820191906000526020600020905b8154815290600101906020018083116107db57829003601f168201915b5050505050945083805461080b90610fcd565b80601f016020809104026020016040519081016040528092919081815260200182805461083790610fcd565b80156108845780601f1061085957610100808354040283529160200191610884565b820191906000526020600020905b81548152906001019060200180831161086757829003601f168201915b50505050509350955095509550955095505091939590929450565b6108d3604051806080016040528060006001600160a01b031681526020016060815260200160008152602001600081525090565b600382815481106108e6576108e66111c3565b6000918252602091829020604080516080810190915260049092020180546001600160a01b03168252600181018054929391929184019161092690610fcd565b80601f016020809104026020016040519081016040528092919081815260200182805461095290610fcd565b801561099f5780601f106109745761010080835404028352916020019161099f565b820191906000526020600020905b81548152906001019060200180831161098257829003601f168201915b50505050508152602001600282015481526020016003820154815250509050919050565b6109cb610c20565b6001600160a01b0381166109f557604051631e4fbdf760e01b815260006004820152602401610397565b6109fe81610c4d565b50565b610a09610c20565b6001600160a01b038216600090815260026020526040902060050154829060ff16610a6d5760405162461bcd60e51b81526020600482015260146024820152731059d95b9d081b9bdd081c9959da5cdd195c995960621b6044820152606401610397565b6001600160a01b03831660008181526002602052604090819020600401849055517ffc577563f1b9a0461e24abef1e1fcc0d33d3d881f20b5df6dda59de4aae2c82190610abd9085815260200190565b60405180910390a2505050565b600260205260009081526040902080548190610ae590610fcd565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1190610fcd565b8015610b5e5780601f10610b3357610100808354040283529160200191610b5e565b820191906000526020600020905b815481529060010190602001808311610b4157829003601f168201915b505050505090806001018054610b7390610fcd565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9f90610fcd565b8015610bec5780601f10610bc157610100808354040283529160200191610bec565b820191906000526020600020905b815481529060010190602001808311610bcf57829003601f168201915b5050505060028301546003840154600485015460059095015493946001600160a01b03928316949290911692509060ff1686565b6000546001600160a01b0316331461032d5760405163118cdaa760e01b8152336004820152602401610397565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610caf57600080fd5b5035919050565b6000815180845260005b81811015610cdc57602081850181015186830182015201610cc0565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0385168152608060208201819052600090610d2090830186610cb6565b6040830194909452506060015292915050565b80356001600160a01b0381168114610d4a57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610d7657600080fd5b813567ffffffffffffffff80821115610d9157610d91610d4f565b604051601f8301601f19908116603f01168101908282118183101715610db957610db9610d4f565b81604052838152866020858801011115610dd257600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a08688031215610e0a57600080fd5b610e1386610d33565b9450602086013567ffffffffffffffff80821115610e3057600080fd5b610e3c89838a01610d65565b95506040880135915080821115610e5257600080fd5b610e5e89838a01610d65565b94506060880135915080821115610e7457600080fd5b50610e8188828901610d65565b95989497509295608001359392505050565b600060208284031215610ea557600080fd5b610eae82610d33565b9392505050565b60a081526000610ec860a0830188610cb6565b8281036020840152610eda8188610cb6565b6001600160a01b03968716604085015294909516606083015250608001529392505050565b602080825282516001600160a01b03168282015282015160806040830152600090610f2d60a0840182610cb6565b905060408401516060840152606084015160808401528091505092915050565b60008060408385031215610f6057600080fd5b610f6983610d33565b946020939093013593505050565b60c081526000610f8a60c0830189610cb6565b8281036020840152610f9c8189610cb6565b6001600160a01b039788166040850152959096166060830152506080810192909252151560a0909101529392505050565b600181811c90821680610fe157607f821691505b60208210810361072857634e487b7160e01b600052602260045260246000fd5b602081526000610eae6020830184610cb6565b60006020828403121561102657600080fd5b81518015158114610eae57600080fd5b601f82111561108057600081815260208120601f850160051c8101602086101561105d5750805b601f850160051c820191505b8181101561107c57828155600101611069565b5050505b505050565b815167ffffffffffffffff81111561109f5761109f610d4f565b6110b3816110ad8454610fcd565b84611036565b602080601f8311600181146110e857600084156110d05750858301515b600019600386901b1c1916600185901b17855561107c565b600085815260208120601f198616915b82811015611117578886015182559484019460019091019084016110f8565b50858210156111355787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006001820161116557634e487b7160e01b600052601160045260246000fd5b5060010190565b60408152600061117f6040830185610cb6565b82810360208401526111918185610cb6565b95945050505050565b8381526060602082015260006111b36060830185610cb6565b9050826040830152949350505050565b634e487b7160e01b600052603260045260246000fdfea26469706673582212202fe5e950305276469a5e1b110d11d1a15beca558b7c205b065d06b11c61cfe7964736f6c63430008140033", + "bytecode": "0x608060405234801561001057600080fd5b50604051620019a3380380620019a3833981016040819052610031916100d9565b338061005757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61006081610089565b50600180546001600160a01b0319166001600160a01b0392909216919091178155600555610109565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100eb57600080fd5b81516001600160a01b038116811461010257600080fd5b9392505050565b61188a80620001196000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80639e498f16116100a2578063cbcf252a11610071578063cbcf252a1461025e578063d7071b1f14610271578063f2fde38b14610284578063f3a1a46614610297578063fd66091e146102aa57600080fd5b80639e498f16146101f8578063aac9f15a1461020b578063b2d780691461022b578063c7f758a81461023e57600080fd5b80637b5c219d116100de5780637b5c219d146101715780638da5cb5b1461019457806398366dbd146101b95780639c89a0e2146101cc57600080fd5b8063013cf08b146101105780632ab09d141461013d57806370370a8114610154578063715018a614610167575b600080fd5b61012361011e366004611222565b6102cf565b604051610134959493929190611281565b60405180910390f35b61014660055481565b604051908152602001610134565b6101466101623660046112e0565b610395565b61016f610558565b005b61018461017f3660046112e0565b61056c565b6040519015158152602001610134565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610134565b6101466101c73660046113ad565b6106d1565b6101466101da36600461144e565b6001600160a01b031660009081526003602052604090206004015490565b6002546101a1906001600160a01b031681565b61021e61021936600461144e565b6109af565b6040516101349190611470565b61016f61023936600461144e565b610b81565b61025161024c366004611222565b610bf3565b60405161013491906114ec565b6001546101a1906001600160a01b031681565b61016f61027f36600461144e565b610d18565b61016f61029236600461144e565b610d8a565b6101466102a5366004611546565b610dc8565b6102bd6102b836600461144e565b611004565b6040516101349695949392919061159d565b600460205260009081526040902080546001820180546001600160a01b0390921692916102fb906115f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610327906115f1565b80156103745780601f1061034957610100808354040283529160200191610374565b820191906000526020600020905b81548152906001019060200180831161035757829003601f168201915b50505050600283015460038401546004909401549293909290915060ff1685565b6002546000906001600160a01b031633146103f75760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420746865205461736b526567697374727920636f6e747261637400000060448201526064015b60405180910390fd5b60648211156104485760405162461bcd60e51b815260206004820181905260248201527f526174696e67206d757374206265206265747765656e203020616e642031303060448201526064016103ee565b6001600160a01b0383166000908152600360205260408120600501805460019290610474908490611641565b90915550506001600160a01b038316600090815260036020526040902060050154826104a1600183611654565b6001600160a01b0386166000908152600360205260409020600401546104c79190611667565b6104d19190611641565b6104db919061167e565b6001600160a01b038416600081815260036020526040908190206004018390555190917ffc577563f1b9a0461e24abef1e1fcc0d33d3d881f20b5df6dda59de4aae2c8219161052c91815260200190565b60405180910390a2506001600160a01b0382166000908152600360205260409020600401545b92915050565b610560611157565b61056a6000611184565b565b6001600160a01b03808316600090815260036020526040812060020154909184911633146105dc5760405162461bcd60e51b815260206004820152601a60248201527f4e6f7420746865206f776e6572206f6620746865206167656e7400000000000060448201526064016103ee565b6000838152600460205260409020546001600160a01b038581169116146106455760405162461bcd60e51b815260206004820152601960248201527f5365727669636550726f706f73616c206e6f7420666f756e640000000000000060448201526064016103ee565b600083815260046020526040812080546001600160a01b03191681559061066f60018301826111d4565b506000600282018190556003820155600401805460ff191690556040518381526001600160a01b038516907f45204680e8152470a4bb058a5049426c93d82614d97945e5b6541e67aba4a8f29060200160405180910390a25060019392505050565b6001600160a01b038581166000908152600360208190526040822001549091161561073e5760405162461bcd60e51b815260206004820152601860248201527f4167656e7420616c72656164792072656769737465726564000000000000000060448201526064016103ee565b60015460405163b405166b60e01b81526001600160a01b039091169063b405166b9061076e9086906004016116a0565b602060405180830381865afa15801561078b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107af91906116b3565b6107f45760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b60448201526064016103ee565b6001600160a01b0386166000908152600360205260409020806108178782611724565b50600181016108268682611724565b506002810180546001600160a01b031990811633179091556003820180546001600160a01b038a81169184168217909255600060048086018290556040805160a08101825293845260208085018b81528583018b9052600554606087018190526080870186905285529290529091208251815494169390941692909217835590519091829160018201906108ba9082611724565b5060408201516002820155606082015160038201556080909101516004909101805460ff1916911515919091179055600580549060006108f9836117e4565b9190505550336001600160a01b0316886001600160a01b03167f2a562efb52e7cec209321f57200606311256da6d2a1b19d44db7837a3209de2889896040516109439291906117fd565b60405180910390a3876001600160a01b03167fe194e0bc2279adb185c748ae57db10fe2ef1005a1b5646f96235a881c88ddb798260600151878760405161098c9392919061182b565b60405180910390a260016005546109a39190611654565b98975050505050505050565b6109fa6040518060c00160405280606081526020016060815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081525090565b6001600160a01b03821660009081526003602052604090819020815160c081019092528054909190829082908290610a31906115f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5d906115f1565b8015610aaa5780601f10610a7f57610100808354040283529160200191610aaa565b820191906000526020600020905b815481529060010190602001808311610a8d57829003601f168201915b50505050508152602001600182018054610ac3906115f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610aef906115f1565b8015610b3c5780601f10610b1157610100808354040283529160200191610b3c565b820191906000526020600020905b815481529060010190602001808311610b1f57829003601f168201915b505050918352505060028201546001600160a01b0390811660208301526003830154166040820152600482015460608201526005909101546080909101529392505050565b610b89611157565b6001600160a01b038116610bd15760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016103ee565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610c306040518060a0016040528060006001600160a01b031681526020016060815260200160008152602001600081526020016000151581525090565b600082815260046020908152604091829020825160a0810190935280546001600160a01b031683526001810180549192840191610c6c906115f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610c98906115f1565b8015610ce55780601f10610cba57610100808354040283529160200191610ce5565b820191906000526020600020905b815481529060010190602001808311610cc857829003601f168201915b5050509183525050600282015460208201526003820154604082015260049091015460ff16151560609091015292915050565b610d20611157565b6001600160a01b038116610d685760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016103ee565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b610d92611157565b6001600160a01b038116610dbc57604051631e4fbdf760e01b8152600060048201526024016103ee565b610dc581611184565b50565b6001600160a01b0380841660009081526003602052604081206002015490918591163314610e385760405162461bcd60e51b815260206004820152601a60248201527f4e6f7420746865206f776e6572206f6620746865206167656e7400000000000060448201526064016103ee565b60015460405163b405166b60e01b81526001600160a01b039091169063b405166b90610e689087906004016116a0565b602060405180830381865afa158015610e85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea991906116b3565b610eee5760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b60448201526064016103ee565b6040805160a0810182526001600160a01b0387811682526020808301888152838501889052600554606085018190526001608086018190526000918252600490935294909420835181546001600160a01b031916931692909217825592519192839290820190610f5e9082611724565b5060408201516002820155606082015160038201556080909101516004909101805460ff191691151591909117905560058054906000610f9d836117e4565b9190505550856001600160a01b03167fe194e0bc2279adb185c748ae57db10fe2ef1005a1b5646f96235a881c88ddb7982606001518787604051610fe39392919061182b565b60405180910390a26001600554610ffa9190611654565b9695505050505050565b60036020526000908152604090208054819061101f906115f1565b80601f016020809104026020016040519081016040528092919081815260200182805461104b906115f1565b80156110985780601f1061106d57610100808354040283529160200191611098565b820191906000526020600020905b81548152906001019060200180831161107b57829003601f168201915b5050505050908060010180546110ad906115f1565b80601f01602080910402602001604051908101604052809291908181526020018280546110d9906115f1565b80156111265780601f106110fb57610100808354040283529160200191611126565b820191906000526020600020905b81548152906001019060200180831161110957829003601f168201915b5050505060028301546003840154600485015460059095015493946001600160a01b03928316949290911692509086565b6000546001600160a01b0316331461056a5760405163118cdaa760e01b81523360048201526024016103ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5080546111e0906115f1565b6000825580601f106111f0575050565b601f016020900490600052602060002090810190610dc591905b8082111561121e576000815560010161120a565b5090565b60006020828403121561123457600080fd5b5035919050565b6000815180845260005b8181101561126157602081850181015186830182015201611245565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038616815260a0602082018190526000906112a59083018761123b565b6040830195909552506060810192909252151560809091015292915050565b80356001600160a01b03811681146112db57600080fd5b919050565b600080604083850312156112f357600080fd5b6112fc836112c4565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261133157600080fd5b813567ffffffffffffffff8082111561134c5761134c61130a565b604051601f8301601f19908116603f011681019082821181831017156113745761137461130a565b8160405283815286602085880101111561138d57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a086880312156113c557600080fd5b6113ce866112c4565b9450602086013567ffffffffffffffff808211156113eb57600080fd5b6113f789838a01611320565b9550604088013591508082111561140d57600080fd5b61141989838a01611320565b9450606088013591508082111561142f57600080fd5b5061143c88828901611320565b95989497509295608001359392505050565b60006020828403121561146057600080fd5b611469826112c4565b9392505050565b602081526000825160c0602084015261148c60e084018261123b565b90506020840151601f198483030160408501526114a9828261123b565b915050604084015160018060a01b0380821660608601528060608701511660808601525050608084015160a084015260a084015160c08401528091505092915050565b602080825282516001600160a01b03168282015282015160a0604083015260009061151a60c084018261123b565b905060408401516060840152606084015160808401526080840151151560a08401528091505092915050565b60008060006060848603121561155b57600080fd5b611564846112c4565b9250602084013567ffffffffffffffff81111561158057600080fd5b61158c86828701611320565b925050604084013590509250925092565b60c0815260006115b060c083018961123b565b82810360208401526115c2818961123b565b6001600160a01b03978816604085015295909616606083015250608081019290925260a0909101529392505050565b600181811c9082168061160557607f821691505b60208210810361162557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156105525761055261162b565b818103818111156105525761055261162b565b80820281158282048414176105525761055261162b565b60008261169b57634e487b7160e01b600052601260045260246000fd5b500490565b602081526000611469602083018461123b565b6000602082840312156116c557600080fd5b8151801515811461146957600080fd5b601f82111561171f57600081815260208120601f850160051c810160208610156116fc5750805b601f850160051c820191505b8181101561171b57828155600101611708565b5050505b505050565b815167ffffffffffffffff81111561173e5761173e61130a565b6117528161174c84546115f1565b846116d5565b602080601f831160018114611787576000841561176f5750858301515b600019600386901b1c1916600185901b17855561171b565b600085815260208120601f198616915b828110156117b657888601518255948401946001909101908401611797565b50858210156117d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000600182016117f6576117f661162b565b5060010190565b604081526000611810604083018561123b565b8281036020840152611822818561123b565b95945050505050565b838152606060208201526000611844606083018561123b565b905082604083015294935050505056fea26469706673582212202255def4b16ca5ed4bfdfe6c197c6e8cff9a21c7a547e18a955c433c677b32a464736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80639e498f16116100a2578063cbcf252a11610071578063cbcf252a1461025e578063d7071b1f14610271578063f2fde38b14610284578063f3a1a46614610297578063fd66091e146102aa57600080fd5b80639e498f16146101f8578063aac9f15a1461020b578063b2d780691461022b578063c7f758a81461023e57600080fd5b80637b5c219d116100de5780637b5c219d146101715780638da5cb5b1461019457806398366dbd146101b95780639c89a0e2146101cc57600080fd5b8063013cf08b146101105780632ab09d141461013d57806370370a8114610154578063715018a614610167575b600080fd5b61012361011e366004611222565b6102cf565b604051610134959493929190611281565b60405180910390f35b61014660055481565b604051908152602001610134565b6101466101623660046112e0565b610395565b61016f610558565b005b61018461017f3660046112e0565b61056c565b6040519015158152602001610134565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610134565b6101466101c73660046113ad565b6106d1565b6101466101da36600461144e565b6001600160a01b031660009081526003602052604090206004015490565b6002546101a1906001600160a01b031681565b61021e61021936600461144e565b6109af565b6040516101349190611470565b61016f61023936600461144e565b610b81565b61025161024c366004611222565b610bf3565b60405161013491906114ec565b6001546101a1906001600160a01b031681565b61016f61027f36600461144e565b610d18565b61016f61029236600461144e565b610d8a565b6101466102a5366004611546565b610dc8565b6102bd6102b836600461144e565b611004565b6040516101349695949392919061159d565b600460205260009081526040902080546001820180546001600160a01b0390921692916102fb906115f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610327906115f1565b80156103745780601f1061034957610100808354040283529160200191610374565b820191906000526020600020905b81548152906001019060200180831161035757829003601f168201915b50505050600283015460038401546004909401549293909290915060ff1685565b6002546000906001600160a01b031633146103f75760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420746865205461736b526567697374727920636f6e747261637400000060448201526064015b60405180910390fd5b60648211156104485760405162461bcd60e51b815260206004820181905260248201527f526174696e67206d757374206265206265747765656e203020616e642031303060448201526064016103ee565b6001600160a01b0383166000908152600360205260408120600501805460019290610474908490611641565b90915550506001600160a01b038316600090815260036020526040902060050154826104a1600183611654565b6001600160a01b0386166000908152600360205260409020600401546104c79190611667565b6104d19190611641565b6104db919061167e565b6001600160a01b038416600081815260036020526040908190206004018390555190917ffc577563f1b9a0461e24abef1e1fcc0d33d3d881f20b5df6dda59de4aae2c8219161052c91815260200190565b60405180910390a2506001600160a01b0382166000908152600360205260409020600401545b92915050565b610560611157565b61056a6000611184565b565b6001600160a01b03808316600090815260036020526040812060020154909184911633146105dc5760405162461bcd60e51b815260206004820152601a60248201527f4e6f7420746865206f776e6572206f6620746865206167656e7400000000000060448201526064016103ee565b6000838152600460205260409020546001600160a01b038581169116146106455760405162461bcd60e51b815260206004820152601960248201527f5365727669636550726f706f73616c206e6f7420666f756e640000000000000060448201526064016103ee565b600083815260046020526040812080546001600160a01b03191681559061066f60018301826111d4565b506000600282018190556003820155600401805460ff191690556040518381526001600160a01b038516907f45204680e8152470a4bb058a5049426c93d82614d97945e5b6541e67aba4a8f29060200160405180910390a25060019392505050565b6001600160a01b038581166000908152600360208190526040822001549091161561073e5760405162461bcd60e51b815260206004820152601860248201527f4167656e7420616c72656164792072656769737465726564000000000000000060448201526064016103ee565b60015460405163b405166b60e01b81526001600160a01b039091169063b405166b9061076e9086906004016116a0565b602060405180830381865afa15801561078b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107af91906116b3565b6107f45760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b60448201526064016103ee565b6001600160a01b0386166000908152600360205260409020806108178782611724565b50600181016108268682611724565b506002810180546001600160a01b031990811633179091556003820180546001600160a01b038a81169184168217909255600060048086018290556040805160a08101825293845260208085018b81528583018b9052600554606087018190526080870186905285529290529091208251815494169390941692909217835590519091829160018201906108ba9082611724565b5060408201516002820155606082015160038201556080909101516004909101805460ff1916911515919091179055600580549060006108f9836117e4565b9190505550336001600160a01b0316886001600160a01b03167f2a562efb52e7cec209321f57200606311256da6d2a1b19d44db7837a3209de2889896040516109439291906117fd565b60405180910390a3876001600160a01b03167fe194e0bc2279adb185c748ae57db10fe2ef1005a1b5646f96235a881c88ddb798260600151878760405161098c9392919061182b565b60405180910390a260016005546109a39190611654565b98975050505050505050565b6109fa6040518060c00160405280606081526020016060815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081525090565b6001600160a01b03821660009081526003602052604090819020815160c081019092528054909190829082908290610a31906115f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5d906115f1565b8015610aaa5780601f10610a7f57610100808354040283529160200191610aaa565b820191906000526020600020905b815481529060010190602001808311610a8d57829003601f168201915b50505050508152602001600182018054610ac3906115f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610aef906115f1565b8015610b3c5780601f10610b1157610100808354040283529160200191610b3c565b820191906000526020600020905b815481529060010190602001808311610b1f57829003601f168201915b505050918352505060028201546001600160a01b0390811660208301526003830154166040820152600482015460608201526005909101546080909101529392505050565b610b89611157565b6001600160a01b038116610bd15760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016103ee565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610c306040518060a0016040528060006001600160a01b031681526020016060815260200160008152602001600081526020016000151581525090565b600082815260046020908152604091829020825160a0810190935280546001600160a01b031683526001810180549192840191610c6c906115f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610c98906115f1565b8015610ce55780601f10610cba57610100808354040283529160200191610ce5565b820191906000526020600020905b815481529060010190602001808311610cc857829003601f168201915b5050509183525050600282015460208201526003820154604082015260049091015460ff16151560609091015292915050565b610d20611157565b6001600160a01b038116610d685760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016103ee565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b610d92611157565b6001600160a01b038116610dbc57604051631e4fbdf760e01b8152600060048201526024016103ee565b610dc581611184565b50565b6001600160a01b0380841660009081526003602052604081206002015490918591163314610e385760405162461bcd60e51b815260206004820152601a60248201527f4e6f7420746865206f776e6572206f6620746865206167656e7400000000000060448201526064016103ee565b60015460405163b405166b60e01b81526001600160a01b039091169063b405166b90610e689087906004016116a0565b602060405180830381865afa158015610e85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea991906116b3565b610eee5760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b60448201526064016103ee565b6040805160a0810182526001600160a01b0387811682526020808301888152838501889052600554606085018190526001608086018190526000918252600490935294909420835181546001600160a01b031916931692909217825592519192839290820190610f5e9082611724565b5060408201516002820155606082015160038201556080909101516004909101805460ff191691151591909117905560058054906000610f9d836117e4565b9190505550856001600160a01b03167fe194e0bc2279adb185c748ae57db10fe2ef1005a1b5646f96235a881c88ddb7982606001518787604051610fe39392919061182b565b60405180910390a26001600554610ffa9190611654565b9695505050505050565b60036020526000908152604090208054819061101f906115f1565b80601f016020809104026020016040519081016040528092919081815260200182805461104b906115f1565b80156110985780601f1061106d57610100808354040283529160200191611098565b820191906000526020600020905b81548152906001019060200180831161107b57829003601f168201915b5050505050908060010180546110ad906115f1565b80601f01602080910402602001604051908101604052809291908181526020018280546110d9906115f1565b80156111265780601f106110fb57610100808354040283529160200191611126565b820191906000526020600020905b81548152906001019060200180831161110957829003601f168201915b5050505060028301546003840154600485015460059095015493946001600160a01b03928316949290911692509086565b6000546001600160a01b0316331461056a5760405163118cdaa760e01b81523360048201526024016103ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5080546111e0906115f1565b6000825580601f106111f0575050565b601f016020900490600052602060002090810190610dc591905b8082111561121e576000815560010161120a565b5090565b60006020828403121561123457600080fd5b5035919050565b6000815180845260005b8181101561126157602081850181015186830182015201611245565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038616815260a0602082018190526000906112a59083018761123b565b6040830195909552506060810192909252151560809091015292915050565b80356001600160a01b03811681146112db57600080fd5b919050565b600080604083850312156112f357600080fd5b6112fc836112c4565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261133157600080fd5b813567ffffffffffffffff8082111561134c5761134c61130a565b604051601f8301601f19908116603f011681019082821181831017156113745761137461130a565b8160405283815286602085880101111561138d57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a086880312156113c557600080fd5b6113ce866112c4565b9450602086013567ffffffffffffffff808211156113eb57600080fd5b6113f789838a01611320565b9550604088013591508082111561140d57600080fd5b61141989838a01611320565b9450606088013591508082111561142f57600080fd5b5061143c88828901611320565b95989497509295608001359392505050565b60006020828403121561146057600080fd5b611469826112c4565b9392505050565b602081526000825160c0602084015261148c60e084018261123b565b90506020840151601f198483030160408501526114a9828261123b565b915050604084015160018060a01b0380821660608601528060608701511660808601525050608084015160a084015260a084015160c08401528091505092915050565b602080825282516001600160a01b03168282015282015160a0604083015260009061151a60c084018261123b565b905060408401516060840152606084015160808401526080840151151560a08401528091505092915050565b60008060006060848603121561155b57600080fd5b611564846112c4565b9250602084013567ffffffffffffffff81111561158057600080fd5b61158c86828701611320565b925050604084013590509250925092565b60c0815260006115b060c083018961123b565b82810360208401526115c2818961123b565b6001600160a01b03978816604085015295909616606083015250608081019290925260a0909101529392505050565b600181811c9082168061160557607f821691505b60208210810361162557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156105525761055261162b565b818103818111156105525761055261162b565b80820281158282048414176105525761055261162b565b60008261169b57634e487b7160e01b600052601260045260246000fd5b500490565b602081526000611469602083018461123b565b6000602082840312156116c557600080fd5b8151801515811461146957600080fd5b601f82111561171f57600081815260208120601f850160051c810160208610156116fc5750805b601f850160051c820191505b8181101561171b57828155600101611708565b5050505b505050565b815167ffffffffffffffff81111561173e5761173e61130a565b6117528161174c84546115f1565b846116d5565b602080601f831160018114611787576000841561176f5750858301515b600019600386901b1c1916600185901b17855561171b565b600085815260208120601f198616915b828110156117b657888601518255948401946001909101908401611797565b50858210156117d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000600182016117f6576117f661162b565b5060010190565b604081526000611810604083018561123b565b8281036020840152611822818561123b565b95945050505050565b838152606060208201526000611844606083018561123b565b905082604083015294935050505056fea26469706673582212202255def4b16ca5ed4bfdfe6c197c6e8cff9a21c7a547e18a955c433c677b32a464736f6c63430008140033", "linkReferences": {}, "deployedLinkReferences": {} } \ No newline at end of file diff --git a/packages/contracts/ignition/deployments/chain-84532/artifacts/ServiceRegistryModule#ServiceRegistry.dbg.json b/packages/contracts/ignition/deployments/chain-84532/artifacts/ServiceRegistryModule#ServiceRegistry.dbg.json index ce02090..27e3189 100644 --- a/packages/contracts/ignition/deployments/chain-84532/artifacts/ServiceRegistryModule#ServiceRegistry.dbg.json +++ b/packages/contracts/ignition/deployments/chain-84532/artifacts/ServiceRegistryModule#ServiceRegistry.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/8b407914b25c585d6f6f5d75fd00e733.json" + "buildInfo": "../build-info/c531b525831bad0f98bf93a9d045f697.json" } \ No newline at end of file diff --git a/packages/contracts/ignition/deployments/chain-84532/artifacts/ServiceRegistryModule#ServiceRegistry.json b/packages/contracts/ignition/deployments/chain-84532/artifacts/ServiceRegistryModule#ServiceRegistry.json index 99b268e..d502117 100644 --- a/packages/contracts/ignition/deployments/chain-84532/artifacts/ServiceRegistryModule#ServiceRegistry.json +++ b/packages/contracts/ignition/deployments/chain-84532/artifacts/ServiceRegistryModule#ServiceRegistry.json @@ -299,8 +299,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610e34806100a56000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80637f3ed719116100665780637f3ed719146101005780638da5cb5b14610113578063b405166b1461012e578063ef57d88414610151578063f2fde38b1461016457600080fd5b806306237526146100985780633017ba09146100b4578063715018a6146100d6578063794758be146100e0575b600080fd5b6100a160025481565b6040519081526020015b60405180910390f35b6100c76100c2366004610a54565b610177565b6040516100ab93929190610ae1565b6100de61033c565b005b6100f36100ee366004610a54565b610350565b6040516100ab9190610b24565b6100de61010e366004610b85565b61055a565b6000546040516001600160a01b0390911681526020016100ab565b61014161013c366004610a54565b6106c6565b60405190151581526020016100ab565b6100f361015f366004610b85565b610745565b6100de610172366004610c0d565b6108f6565b805160208183018101805160018252928201919093012091528054819061019d90610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546101c990610c3d565b80156102165780601f106101eb57610100808354040283529160200191610216565b820191906000526020600020905b8154815290600101906020018083116101f957829003601f168201915b50505050509080600101805461022b90610c3d565b80601f016020809104026020016040519081016040528092919081815260200182805461025790610c3d565b80156102a45780601f10610279576101008083540402835291602001916102a4565b820191906000526020600020905b81548152906001019060200180831161028757829003601f168201915b5050505050908060020180546102b990610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546102e590610c3d565b80156103325780601f1061030757610100808354040283529160200191610332565b820191906000526020600020905b81548152906001019060200180831161031557829003601f168201915b5050505050905083565b610344610934565b61034e6000610961565b565b61037460405180606001604052806060815260200160608152602001606081525090565b6001826040516103849190610c77565b90815260200160405180910390206040518060600160405290816000820180546103ad90610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990610c3d565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050815260200160018201805461043f90610c3d565b80601f016020809104026020016040519081016040528092919081815260200182805461046b90610c3d565b80156104b85780601f1061048d576101008083540402835291602001916104b8565b820191906000526020600020905b81548152906001019060200180831161049b57829003601f168201915b505050505081526020016002820180546104d190610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546104fd90610c3d565b801561054a5780601f1061051f5761010080835404028352916020019161054a565b820191906000526020600020905b81548152906001019060200180831161052d57829003601f168201915b5050505050815250509050919050565b610562610934565b60405163b405166b60e01b8152309063b405166b90610585908690600401610c93565b602060405180830381865afa1580156105a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c69190610ca6565b6106105760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b60448201526064015b60405180910390fd5b60405180606001604052808481526020018381526020018281525060018460405161063b9190610c77565b908152604051908190036020019020815181906106589082610d17565b506020820151600182019061066d9082610d17565b50604082015160028201906106829082610d17565b509050507f4cd09e35844ccdf25aac9862af453cedf05d8a8b765f2763be8373b55215df8d8383836040516106b993929190610ae1565b60405180910390a1505050565b60008082511161070f5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073657276696365206e616d6560601b6044820152606401610607565b60006001836040516107219190610c77565b908152604051908190036020019020805461073b90610c3d565b9050119050919050565b61076960405180606001604052806060815260200160608152602001606081525090565b610771610934565b60405163b405166b60e01b8152309063b405166b90610794908790600401610c93565b602060405180830381865afa1580156107b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d59190610ca6565b156108225760405162461bcd60e51b815260206004820152601a60248201527f5365727669636520616c726561647920726567697374657265640000000000006044820152606401610607565b60006040518060600160405280868152602001858152602001848152509050806001866040516108529190610c77565b9081526040519081900360200190208151819061086f9082610d17565b50602082015160018201906108849082610d17565b50604082015160028201906108999082610d17565b509050507fc182fe36565be4905be53a8ed353f07898b528f1625e778edf77c136748064868585856040516108d093929190610ae1565b60405180910390a1600280549060006108e883610dd7565b909155509095945050505050565b6108fe610934565b6001600160a01b03811661092857604051631e4fbdf760e01b815260006004820152602401610607565b61093181610961565b50565b6000546001600160a01b0316331461034e5760405163118cdaa760e01b8152336004820152602401610607565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126109d857600080fd5b813567ffffffffffffffff808211156109f3576109f36109b1565b604051601f8301601f19908116603f01168101908282118183101715610a1b57610a1b6109b1565b81604052838152866020858801011115610a3457600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215610a6657600080fd5b813567ffffffffffffffff811115610a7d57600080fd5b610a89848285016109c7565b949350505050565b60005b83811015610aac578181015183820152602001610a94565b50506000910152565b60008151808452610acd816020860160208601610a91565b601f01601f19169290920160200192915050565b606081526000610af46060830186610ab5565b8281036020840152610b068186610ab5565b90508281036040840152610b1a8185610ab5565b9695505050505050565b602081526000825160606020840152610b406080840182610ab5565b90506020840151601f1980858403016040860152610b5e8383610ab5565b9250604086015191508085840301606086015250610b7c8282610ab5565b95945050505050565b600080600060608486031215610b9a57600080fd5b833567ffffffffffffffff80821115610bb257600080fd5b610bbe878388016109c7565b94506020860135915080821115610bd457600080fd5b610be0878388016109c7565b93506040860135915080821115610bf657600080fd5b50610c03868287016109c7565b9150509250925092565b600060208284031215610c1f57600080fd5b81356001600160a01b0381168114610c3657600080fd5b9392505050565b600181811c90821680610c5157607f821691505b602082108103610c7157634e487b7160e01b600052602260045260246000fd5b50919050565b60008251610c89818460208701610a91565b9190910192915050565b602081526000610c366020830184610ab5565b600060208284031215610cb857600080fd5b81518015158114610c3657600080fd5b601f821115610d1257600081815260208120601f850160051c81016020861015610cef5750805b601f850160051c820191505b81811015610d0e57828155600101610cfb565b5050505b505050565b815167ffffffffffffffff811115610d3157610d316109b1565b610d4581610d3f8454610c3d565b84610cc8565b602080601f831160018114610d7a5760008415610d625750858301515b600019600386901b1c1916600185901b178555610d0e565b600085815260208120601f198616915b82811015610da957888601518255948401946001909101908401610d8a565b5085821015610dc75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060018201610df757634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220d9d13b31a10bf6dfe0cb147d4236389d36ab889b339ea5d17d968e4d3ba1034564736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c80637f3ed719116100665780637f3ed719146101005780638da5cb5b14610113578063b405166b1461012e578063ef57d88414610151578063f2fde38b1461016457600080fd5b806306237526146100985780633017ba09146100b4578063715018a6146100d6578063794758be146100e0575b600080fd5b6100a160025481565b6040519081526020015b60405180910390f35b6100c76100c2366004610a54565b610177565b6040516100ab93929190610ae1565b6100de61033c565b005b6100f36100ee366004610a54565b610350565b6040516100ab9190610b24565b6100de61010e366004610b85565b61055a565b6000546040516001600160a01b0390911681526020016100ab565b61014161013c366004610a54565b6106c6565b60405190151581526020016100ab565b6100f361015f366004610b85565b610745565b6100de610172366004610c0d565b6108f6565b805160208183018101805160018252928201919093012091528054819061019d90610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546101c990610c3d565b80156102165780601f106101eb57610100808354040283529160200191610216565b820191906000526020600020905b8154815290600101906020018083116101f957829003601f168201915b50505050509080600101805461022b90610c3d565b80601f016020809104026020016040519081016040528092919081815260200182805461025790610c3d565b80156102a45780601f10610279576101008083540402835291602001916102a4565b820191906000526020600020905b81548152906001019060200180831161028757829003601f168201915b5050505050908060020180546102b990610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546102e590610c3d565b80156103325780601f1061030757610100808354040283529160200191610332565b820191906000526020600020905b81548152906001019060200180831161031557829003601f168201915b5050505050905083565b610344610934565b61034e6000610961565b565b61037460405180606001604052806060815260200160608152602001606081525090565b6001826040516103849190610c77565b90815260200160405180910390206040518060600160405290816000820180546103ad90610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990610c3d565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050815260200160018201805461043f90610c3d565b80601f016020809104026020016040519081016040528092919081815260200182805461046b90610c3d565b80156104b85780601f1061048d576101008083540402835291602001916104b8565b820191906000526020600020905b81548152906001019060200180831161049b57829003601f168201915b505050505081526020016002820180546104d190610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546104fd90610c3d565b801561054a5780601f1061051f5761010080835404028352916020019161054a565b820191906000526020600020905b81548152906001019060200180831161052d57829003601f168201915b5050505050815250509050919050565b610562610934565b60405163b405166b60e01b8152309063b405166b90610585908690600401610c93565b602060405180830381865afa1580156105a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c69190610ca6565b6106105760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b60448201526064015b60405180910390fd5b60405180606001604052808481526020018381526020018281525060018460405161063b9190610c77565b908152604051908190036020019020815181906106589082610d17565b506020820151600182019061066d9082610d17565b50604082015160028201906106829082610d17565b509050507f4cd09e35844ccdf25aac9862af453cedf05d8a8b765f2763be8373b55215df8d8383836040516106b993929190610ae1565b60405180910390a1505050565b60008082511161070f5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073657276696365206e616d6560601b6044820152606401610607565b60006001836040516107219190610c77565b908152604051908190036020019020805461073b90610c3d565b9050119050919050565b61076960405180606001604052806060815260200160608152602001606081525090565b610771610934565b60405163b405166b60e01b8152309063b405166b90610794908790600401610c93565b602060405180830381865afa1580156107b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d59190610ca6565b156108225760405162461bcd60e51b815260206004820152601a60248201527f5365727669636520616c726561647920726567697374657265640000000000006044820152606401610607565b60006040518060600160405280868152602001858152602001848152509050806001866040516108529190610c77565b9081526040519081900360200190208151819061086f9082610d17565b50602082015160018201906108849082610d17565b50604082015160028201906108999082610d17565b509050507fc182fe36565be4905be53a8ed353f07898b528f1625e778edf77c136748064868585856040516108d093929190610ae1565b60405180910390a1600280549060006108e883610dd7565b909155509095945050505050565b6108fe610934565b6001600160a01b03811661092857604051631e4fbdf760e01b815260006004820152602401610607565b61093181610961565b50565b6000546001600160a01b0316331461034e5760405163118cdaa760e01b8152336004820152602401610607565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126109d857600080fd5b813567ffffffffffffffff808211156109f3576109f36109b1565b604051601f8301601f19908116603f01168101908282118183101715610a1b57610a1b6109b1565b81604052838152866020858801011115610a3457600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215610a6657600080fd5b813567ffffffffffffffff811115610a7d57600080fd5b610a89848285016109c7565b949350505050565b60005b83811015610aac578181015183820152602001610a94565b50506000910152565b60008151808452610acd816020860160208601610a91565b601f01601f19169290920160200192915050565b606081526000610af46060830186610ab5565b8281036020840152610b068186610ab5565b90508281036040840152610b1a8185610ab5565b9695505050505050565b602081526000825160606020840152610b406080840182610ab5565b90506020840151601f1980858403016040860152610b5e8383610ab5565b9250604086015191508085840301606086015250610b7c8282610ab5565b95945050505050565b600080600060608486031215610b9a57600080fd5b833567ffffffffffffffff80821115610bb257600080fd5b610bbe878388016109c7565b94506020860135915080821115610bd457600080fd5b610be0878388016109c7565b93506040860135915080821115610bf657600080fd5b50610c03868287016109c7565b9150509250925092565b600060208284031215610c1f57600080fd5b81356001600160a01b0381168114610c3657600080fd5b9392505050565b600181811c90821680610c5157607f821691505b602082108103610c7157634e487b7160e01b600052602260045260246000fd5b50919050565b60008251610c89818460208701610a91565b9190910192915050565b602081526000610c366020830184610ab5565b600060208284031215610cb857600080fd5b81518015158114610c3657600080fd5b601f821115610d1257600081815260208120601f850160051c81016020861015610cef5750805b601f850160051c820191505b81811015610d0e57828155600101610cfb565b5050505b505050565b815167ffffffffffffffff811115610d3157610d316109b1565b610d4581610d3f8454610c3d565b84610cc8565b602080601f831160018114610d7a5760008415610d625750858301515b600019600386901b1c1916600185901b178555610d0e565b600085815260208120601f198616915b82811015610da957888601518255948401946001909101908401610d8a565b5085821015610dc75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060018201610df757634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220d9d13b31a10bf6dfe0cb147d4236389d36ab889b339ea5d17d968e4d3ba1034564736f6c63430008140033", + "bytecode": "0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610e2c806100a56000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80637f3ed719116100665780637f3ed719146101005780638da5cb5b14610113578063b405166b1461012e578063ef57d88414610151578063f2fde38b1461016457600080fd5b806306237526146100985780633017ba09146100b4578063715018a6146100d6578063794758be146100e0575b600080fd5b6100a160025481565b6040519081526020015b60405180910390f35b6100c76100c2366004610a4c565b610177565b6040516100ab93929190610ad9565b6100de61033c565b005b6100f36100ee366004610a4c565b610350565b6040516100ab9190610b1c565b6100de61010e366004610b7d565b61055a565b6000546040516001600160a01b0390911681526020016100ab565b61014161013c366004610a4c565b6106c6565b60405190151581526020016100ab565b6100f361015f366004610b7d565b610745565b6100de610172366004610c05565b6108ee565b805160208183018101805160018252928201919093012091528054819061019d90610c35565b80601f01602080910402602001604051908101604052809291908181526020018280546101c990610c35565b80156102165780601f106101eb57610100808354040283529160200191610216565b820191906000526020600020905b8154815290600101906020018083116101f957829003601f168201915b50505050509080600101805461022b90610c35565b80601f016020809104026020016040519081016040528092919081815260200182805461025790610c35565b80156102a45780601f10610279576101008083540402835291602001916102a4565b820191906000526020600020905b81548152906001019060200180831161028757829003601f168201915b5050505050908060020180546102b990610c35565b80601f01602080910402602001604051908101604052809291908181526020018280546102e590610c35565b80156103325780601f1061030757610100808354040283529160200191610332565b820191906000526020600020905b81548152906001019060200180831161031557829003601f168201915b5050505050905083565b61034461092c565b61034e6000610959565b565b61037460405180606001604052806060815260200160608152602001606081525090565b6001826040516103849190610c6f565b90815260200160405180910390206040518060600160405290816000820180546103ad90610c35565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990610c35565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050815260200160018201805461043f90610c35565b80601f016020809104026020016040519081016040528092919081815260200182805461046b90610c35565b80156104b85780601f1061048d576101008083540402835291602001916104b8565b820191906000526020600020905b81548152906001019060200180831161049b57829003601f168201915b505050505081526020016002820180546104d190610c35565b80601f01602080910402602001604051908101604052809291908181526020018280546104fd90610c35565b801561054a5780601f1061051f5761010080835404028352916020019161054a565b820191906000526020600020905b81548152906001019060200180831161052d57829003601f168201915b5050505050815250509050919050565b61056261092c565b60405163b405166b60e01b8152309063b405166b90610585908690600401610c8b565b602060405180830381865afa1580156105a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c69190610c9e565b6106105760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b60448201526064015b60405180910390fd5b60405180606001604052808481526020018381526020018281525060018460405161063b9190610c6f565b908152604051908190036020019020815181906106589082610d0f565b506020820151600182019061066d9082610d0f565b50604082015160028201906106829082610d0f565b509050507f4cd09e35844ccdf25aac9862af453cedf05d8a8b765f2763be8373b55215df8d8383836040516106b993929190610ad9565b60405180910390a1505050565b60008082511161070f5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073657276696365206e616d6560601b6044820152606401610607565b60006001836040516107219190610c6f565b908152604051908190036020019020805461073b90610c35565b9050119050919050565b61076960405180606001604052806060815260200160608152602001606081525090565b60405163b405166b60e01b8152309063b405166b9061078c908790600401610c8b565b602060405180830381865afa1580156107a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107cd9190610c9e565b1561081a5760405162461bcd60e51b815260206004820152601a60248201527f5365727669636520616c726561647920726567697374657265640000000000006044820152606401610607565b600060405180606001604052808681526020018581526020018481525090508060018660405161084a9190610c6f565b908152604051908190036020019020815181906108679082610d0f565b506020820151600182019061087c9082610d0f565b50604082015160028201906108919082610d0f565b509050507fc182fe36565be4905be53a8ed353f07898b528f1625e778edf77c136748064868585856040516108c893929190610ad9565b60405180910390a1600280549060006108e083610dcf565b909155509095945050505050565b6108f661092c565b6001600160a01b03811661092057604051631e4fbdf760e01b815260006004820152602401610607565b61092981610959565b50565b6000546001600160a01b0316331461034e5760405163118cdaa760e01b8152336004820152602401610607565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126109d057600080fd5b813567ffffffffffffffff808211156109eb576109eb6109a9565b604051601f8301601f19908116603f01168101908282118183101715610a1357610a136109a9565b81604052838152866020858801011115610a2c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215610a5e57600080fd5b813567ffffffffffffffff811115610a7557600080fd5b610a81848285016109bf565b949350505050565b60005b83811015610aa4578181015183820152602001610a8c565b50506000910152565b60008151808452610ac5816020860160208601610a89565b601f01601f19169290920160200192915050565b606081526000610aec6060830186610aad565b8281036020840152610afe8186610aad565b90508281036040840152610b128185610aad565b9695505050505050565b602081526000825160606020840152610b386080840182610aad565b90506020840151601f1980858403016040860152610b568383610aad565b9250604086015191508085840301606086015250610b748282610aad565b95945050505050565b600080600060608486031215610b9257600080fd5b833567ffffffffffffffff80821115610baa57600080fd5b610bb6878388016109bf565b94506020860135915080821115610bcc57600080fd5b610bd8878388016109bf565b93506040860135915080821115610bee57600080fd5b50610bfb868287016109bf565b9150509250925092565b600060208284031215610c1757600080fd5b81356001600160a01b0381168114610c2e57600080fd5b9392505050565b600181811c90821680610c4957607f821691505b602082108103610c6957634e487b7160e01b600052602260045260246000fd5b50919050565b60008251610c81818460208701610a89565b9190910192915050565b602081526000610c2e6020830184610aad565b600060208284031215610cb057600080fd5b81518015158114610c2e57600080fd5b601f821115610d0a57600081815260208120601f850160051c81016020861015610ce75750805b601f850160051c820191505b81811015610d0657828155600101610cf3565b5050505b505050565b815167ffffffffffffffff811115610d2957610d296109a9565b610d3d81610d378454610c35565b84610cc0565b602080601f831160018114610d725760008415610d5a5750858301515b600019600386901b1c1916600185901b178555610d06565b600085815260208120601f198616915b82811015610da157888601518255948401946001909101908401610d82565b5085821015610dbf5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060018201610def57634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212206f9c7481cdfdbc6350d53b34a07d196f444172352584059ffa61f853c81d633764736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c80637f3ed719116100665780637f3ed719146101005780638da5cb5b14610113578063b405166b1461012e578063ef57d88414610151578063f2fde38b1461016457600080fd5b806306237526146100985780633017ba09146100b4578063715018a6146100d6578063794758be146100e0575b600080fd5b6100a160025481565b6040519081526020015b60405180910390f35b6100c76100c2366004610a4c565b610177565b6040516100ab93929190610ad9565b6100de61033c565b005b6100f36100ee366004610a4c565b610350565b6040516100ab9190610b1c565b6100de61010e366004610b7d565b61055a565b6000546040516001600160a01b0390911681526020016100ab565b61014161013c366004610a4c565b6106c6565b60405190151581526020016100ab565b6100f361015f366004610b7d565b610745565b6100de610172366004610c05565b6108ee565b805160208183018101805160018252928201919093012091528054819061019d90610c35565b80601f01602080910402602001604051908101604052809291908181526020018280546101c990610c35565b80156102165780601f106101eb57610100808354040283529160200191610216565b820191906000526020600020905b8154815290600101906020018083116101f957829003601f168201915b50505050509080600101805461022b90610c35565b80601f016020809104026020016040519081016040528092919081815260200182805461025790610c35565b80156102a45780601f10610279576101008083540402835291602001916102a4565b820191906000526020600020905b81548152906001019060200180831161028757829003601f168201915b5050505050908060020180546102b990610c35565b80601f01602080910402602001604051908101604052809291908181526020018280546102e590610c35565b80156103325780601f1061030757610100808354040283529160200191610332565b820191906000526020600020905b81548152906001019060200180831161031557829003601f168201915b5050505050905083565b61034461092c565b61034e6000610959565b565b61037460405180606001604052806060815260200160608152602001606081525090565b6001826040516103849190610c6f565b90815260200160405180910390206040518060600160405290816000820180546103ad90610c35565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990610c35565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050815260200160018201805461043f90610c35565b80601f016020809104026020016040519081016040528092919081815260200182805461046b90610c35565b80156104b85780601f1061048d576101008083540402835291602001916104b8565b820191906000526020600020905b81548152906001019060200180831161049b57829003601f168201915b505050505081526020016002820180546104d190610c35565b80601f01602080910402602001604051908101604052809291908181526020018280546104fd90610c35565b801561054a5780601f1061051f5761010080835404028352916020019161054a565b820191906000526020600020905b81548152906001019060200180831161052d57829003601f168201915b5050505050815250509050919050565b61056261092c565b60405163b405166b60e01b8152309063b405166b90610585908690600401610c8b565b602060405180830381865afa1580156105a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c69190610c9e565b6106105760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b60448201526064015b60405180910390fd5b60405180606001604052808481526020018381526020018281525060018460405161063b9190610c6f565b908152604051908190036020019020815181906106589082610d0f565b506020820151600182019061066d9082610d0f565b50604082015160028201906106829082610d0f565b509050507f4cd09e35844ccdf25aac9862af453cedf05d8a8b765f2763be8373b55215df8d8383836040516106b993929190610ad9565b60405180910390a1505050565b60008082511161070f5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073657276696365206e616d6560601b6044820152606401610607565b60006001836040516107219190610c6f565b908152604051908190036020019020805461073b90610c35565b9050119050919050565b61076960405180606001604052806060815260200160608152602001606081525090565b60405163b405166b60e01b8152309063b405166b9061078c908790600401610c8b565b602060405180830381865afa1580156107a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107cd9190610c9e565b1561081a5760405162461bcd60e51b815260206004820152601a60248201527f5365727669636520616c726561647920726567697374657265640000000000006044820152606401610607565b600060405180606001604052808681526020018581526020018481525090508060018660405161084a9190610c6f565b908152604051908190036020019020815181906108679082610d0f565b506020820151600182019061087c9082610d0f565b50604082015160028201906108919082610d0f565b509050507fc182fe36565be4905be53a8ed353f07898b528f1625e778edf77c136748064868585856040516108c893929190610ad9565b60405180910390a1600280549060006108e083610dcf565b909155509095945050505050565b6108f661092c565b6001600160a01b03811661092057604051631e4fbdf760e01b815260006004820152602401610607565b61092981610959565b50565b6000546001600160a01b0316331461034e5760405163118cdaa760e01b8152336004820152602401610607565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126109d057600080fd5b813567ffffffffffffffff808211156109eb576109eb6109a9565b604051601f8301601f19908116603f01168101908282118183101715610a1357610a136109a9565b81604052838152866020858801011115610a2c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215610a5e57600080fd5b813567ffffffffffffffff811115610a7557600080fd5b610a81848285016109bf565b949350505050565b60005b83811015610aa4578181015183820152602001610a8c565b50506000910152565b60008151808452610ac5816020860160208601610a89565b601f01601f19169290920160200192915050565b606081526000610aec6060830186610aad565b8281036020840152610afe8186610aad565b90508281036040840152610b128185610aad565b9695505050505050565b602081526000825160606020840152610b386080840182610aad565b90506020840151601f1980858403016040860152610b568383610aad565b9250604086015191508085840301606086015250610b748282610aad565b95945050505050565b600080600060608486031215610b9257600080fd5b833567ffffffffffffffff80821115610baa57600080fd5b610bb6878388016109bf565b94506020860135915080821115610bcc57600080fd5b610bd8878388016109bf565b93506040860135915080821115610bee57600080fd5b50610bfb868287016109bf565b9150509250925092565b600060208284031215610c1757600080fd5b81356001600160a01b0381168114610c2e57600080fd5b9392505050565b600181811c90821680610c4957607f821691505b602082108103610c6957634e487b7160e01b600052602260045260246000fd5b50919050565b60008251610c81818460208701610a89565b9190910192915050565b602081526000610c2e6020830184610aad565b600060208284031215610cb057600080fd5b81518015158114610c2e57600080fd5b601f821115610d0a57600081815260208120601f850160051c81016020861015610ce75750805b601f850160051c820191505b81811015610d0657828155600101610cf3565b5050505b505050565b815167ffffffffffffffff811115610d2957610d296109a9565b610d3d81610d378454610c35565b84610cc0565b602080601f831160018114610d725760008415610d5a5750858301515b600019600386901b1c1916600185901b178555610d06565b600085815260208120601f198616915b82811015610da157888601518255948401946001909101908401610d82565b5085821015610dbf5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060018201610def57634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212206f9c7481cdfdbc6350d53b34a07d196f444172352584059ffa61f853c81d633764736f6c63430008140033", "linkReferences": {}, "deployedLinkReferences": {} } \ No newline at end of file diff --git a/packages/contracts/ignition/deployments/chain-84532/artifacts/TaskRegistryModule#TaskRegistry.dbg.json b/packages/contracts/ignition/deployments/chain-84532/artifacts/TaskRegistryModule#TaskRegistry.dbg.json index 7f58c70..27e3189 100644 --- a/packages/contracts/ignition/deployments/chain-84532/artifacts/TaskRegistryModule#TaskRegistry.dbg.json +++ b/packages/contracts/ignition/deployments/chain-84532/artifacts/TaskRegistryModule#TaskRegistry.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/a8a079823142cc20b456706f7df53fc3.json" + "buildInfo": "../build-info/c531b525831bad0f98bf93a9d045f697.json" } \ No newline at end of file diff --git a/packages/contracts/ignition/deployments/chain-84532/artifacts/TaskRegistryModule#TaskRegistry.json b/packages/contracts/ignition/deployments/chain-84532/artifacts/TaskRegistryModule#TaskRegistry.json index 38e356a..89a8067 100644 --- a/packages/contracts/ignition/deployments/chain-84532/artifacts/TaskRegistryModule#TaskRegistry.json +++ b/packages/contracts/ignition/deployments/chain-84532/artifacts/TaskRegistryModule#TaskRegistry.json @@ -85,10 +85,15 @@ "internalType": "uint256", "name": "proposalId", "type": "uint256" + }, + { + "internalType": "bool", + "name": "isActive", + "type": "bool" } ], "indexed": false, - "internalType": "struct IProposalStruct.Proposal", + "internalType": "struct IProposalStruct.ServiceProposal", "name": "proposal", "type": "tuple" } @@ -115,6 +120,19 @@ "name": "TaskAssigned", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "taskId", + "type": "uint256" + } + ], + "name": "TaskCanceled", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -171,6 +189,25 @@ "name": "TaskCreated", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "taskId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "rating", + "type": "uint8" + } + ], + "name": "TaskRated", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -203,6 +240,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "taskId", + "type": "uint256" + } + ], + "name": "cancelTask", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -272,6 +322,11 @@ "internalType": "string", "name": "result", "type": "string" + }, + { + "internalType": "uint8", + "name": "rating", + "type": "uint8" } ], "internalType": "struct TaskRegistry.TaskData", @@ -366,6 +421,11 @@ "internalType": "string", "name": "result", "type": "string" + }, + { + "internalType": "uint8", + "name": "rating", + "type": "uint8" } ], "internalType": "struct TaskRegistry.TaskData", @@ -432,6 +492,24 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "taskId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "rating", + "type": "uint8" + } + ], + "name": "rateTask", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], "name": "renounceOwnership", @@ -483,6 +561,11 @@ "internalType": "string", "name": "result", "type": "string" + }, + { + "internalType": "uint8", + "name": "rating", + "type": "uint8" } ], "stateMutability": "view", @@ -502,8 +585,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b506040516115d53803806115d583398101604081905261002f916100d4565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e81610084565b50600480546001600160a01b0319166001600160a01b0392909216919091179055610104565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100e657600080fd5b81516001600160a01b03811681146100fd57600080fd5b9392505050565b6114c2806101136000396000f3fe6080604052600436106100a75760003560e01c8063639241ab11610064578063639241ab146101db578063715018a61461020857806374aaa7601461021f5780638d9776721461023f5780638da5cb5b14610272578063f2fde38b1461029057600080fd5b806304fe2b34146100ac57806307b31818146100d55780630d1cfcae146101265780631d65e77e146101465780632a2b3a9d146101665780635c622a0e14610194575b600080fd5b6100bf6100ba366004610f27565b6102b0565b6040516100cc9190610ff4565b60405180910390f35b3480156100e157600080fd5b5061010e6100f0366004611083565b6000908152600160205260409020600301546001600160a01b031690565b6040516001600160a01b0390911681526020016100cc565b34801561013257600080fd5b5060045461010e906001600160a01b031681565b34801561015257600080fd5b506100bf610161366004611083565b610672565b34801561017257600080fd5b506101866101813660046110b1565b61082f565b6040519081526020016100cc565b3480156101a057600080fd5b506101ce6101af366004611083565b600090815260016020526040902060020154600160a01b900460ff1690565b6040516100cc91906110dd565b3480156101e757600080fd5b506101fb6101f63660046110eb565b610860565b6040516100cc919061110f565b34801561021457600080fd5b5061021d6108cc565b005b34801561022b57600080fd5b5061021d61023a366004611153565b6108e0565b34801561024b57600080fd5b5061025f61025a366004611083565b610ae9565b6040516100cc979695949392919061119a565b34801561027e57600080fd5b506000546001600160a01b031661010e565b34801561029c57600080fd5b5061021d6102ab3660046110eb565b610c4a565b6102b8610de4565b600480546040516318feeb1560e31b81529182018490526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610304573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261032c91908101906111fe565b80519091506001600160a01b03166103805760405162461bcd60e51b8152602060048201526012602482015271141c9bdc1bdcd85b081b9bdd08199bdd5b9960721b60448201526064015b60405180910390fd5b348160400151146103c35760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420707269636560981b6044820152606401610377565b600354600081815260016020819052604090912091825581016103e68682611357565b5060028181018054336001600160a01b031991821681178355600485018890558551600380870180549094166001600160a01b0390921691909117909255600090815260209384526040812091548254600181810185559383529490912090930192909255805460ff60a01b1916600160a01b830217905550815160035460608401516040516001600160a01b039093169233927f5c005bbbb9da508c37935b1a9f270836e0be1fd11d4d47119f925a3ff33820e9926104a7928b90611417565b60405180910390a3600380549060006104bf83611436565b9190505550806040518060e0016040529081600082015481526020016001820180546104ea906112cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610516906112cf565b80156105635780601f1061053857610100808354040283529160200191610563565b820191906000526020600020905b81548152906001019060200180831161054657829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff1660038111156105a0576105a0610fbc565b60038111156105b1576105b1610fbc565b815260038201546001600160a01b03166020820152600482015460408201526005820180546060909201916105e5906112cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610611906112cf565b801561065e5780601f106106335761010080835404028352916020019161065e565b820191906000526020600020905b81548152906001019060200180831161064157829003601f168201915b505050505081525050925050505b92915050565b61067a610de4565b600082815260016020818152604092839020835160e08101909452805484529182018054918401916106ab906112cf565b80601f01602080910402602001604051908101604052809291908181526020018280546106d7906112cf565b80156107245780601f106106f957610100808354040283529160200191610724565b820191906000526020600020905b81548152906001019060200180831161070757829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff16600381111561076157610761610fbc565b600381111561077257610772610fbc565b815260038201546001600160a01b03166020820152600482015460408201526005820180546060909201916107a6906112cf565b80601f01602080910402602001604051908101604052809291908181526020018280546107d2906112cf565b801561081f5780601f106107f45761010080835404028352916020019161081f565b820191906000526020600020905b81548152906001019060200180831161080257829003601f168201915b5050505050815250509050919050565b6002602052816000526040600020818154811061084b57600080fd5b90600052602060002001600091509150505481565b6001600160a01b0381166000908152600260209081526040918290208054835181840281018401909452808452606093928301828280156108c057602002820191906000526020600020905b8154815260200190600101908083116108ac575b50505050509050919050565b6108d4610c88565b6108de6000610cb5565b565b600082815260016020526040902060038101546001600160a01b031633148061091357506000546001600160a01b031633145b6109505760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610377565b60016002820154600160a01b900460ff16600381111561097257610972610fbc565b146109b55760405162461bcd60e51b8152602060048201526013602482015272496e76616c6964207461736b2073746174757360681b6044820152606401610377565b60028101805460ff60a01b1916600160a11b179055600581016109d88382611357565b5060048054828201546040516318feeb1560e31b8152928301526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a4f91908101906111fe565b9050610a6381600001518260400151610d05565b600282015460405185917fd76ef80cfb1ce0c70d0cbc0ab1b9f2f298a78f9fca5c841be963ae9a5d721bb491610aa391600160a01b900460ff16906110dd565b60405180910390a2837f7e6ffc29fe63759579d96a0457a8f2e08339aca345bd469f59dc2e61f82a5aeb84604051610adb919061145d565b60405180910390a250505050565b600160208190526000918252604090912080549181018054610b0a906112cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610b36906112cf565b8015610b835780601f10610b5857610100808354040283529160200191610b83565b820191906000526020600020905b815481529060010190602001808311610b6657829003601f168201915b5050505060028301546003840154600485015460058601805495966001600160a01b0380861697600160a01b90960460ff16965090931693919291610bc7906112cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf3906112cf565b8015610c405780601f10610c1557610100808354040283529160200191610c40565b820191906000526020600020905b815481529060010190602001808311610c2357829003601f168201915b5050505050905087565b610c52610c88565b6001600160a01b038116610c7c57604051631e4fbdf760e01b815260006004820152602401610377565b610c8581610cb5565b50565b6000546001600160a01b031633146108de5760405163118cdaa760e01b8152336004820152602401610377565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516000808252602082019092526001600160a01b038416908390604051610d2f9190611470565b60006040518083038185875af1925050503d8060008114610d6c576040519150601f19603f3d011682016040523d82523d6000602084013e610d71565b606091505b5050905080610ddf5760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b6064820152608401610377565b505050565b6040518060e00160405280600081526020016060815260200160006001600160a01b0316815260200160006003811115610e2057610e20610fbc565b8152600060208201819052604082015260609081015290565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715610e7257610e72610e39565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610ea157610ea1610e39565b604052919050565b600067ffffffffffffffff821115610ec357610ec3610e39565b50601f01601f191660200190565b600082601f830112610ee257600080fd5b8135610ef5610ef082610ea9565b610e78565b818152846020838601011115610f0a57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215610f3a57600080fd5b823567ffffffffffffffff811115610f5157600080fd5b610f5d85828601610ed1565b95602094909401359450505050565b60005b83811015610f87578181015183820152602001610f6f565b50506000910152565b60008151808452610fa8816020860160208601610f6c565b601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b60048110610ff057634e487b7160e01b600052602160045260246000fd5b9052565b60208152815160208201526000602083015160e0604084015261101b610100840182610f90565b60408501516001600160a01b039081166060868101919091528601519192506110476080860183610fd2565b8060808701511660a0860152505060a084015160c084015260c0840151601f198483030160e085015261107a8282610f90565b95945050505050565b60006020828403121561109557600080fd5b5035919050565b6001600160a01b0381168114610c8557600080fd5b600080604083850312156110c457600080fd5b82356110cf8161109c565b946020939093013593505050565b6020810161066c8284610fd2565b6000602082840312156110fd57600080fd5b81356111088161109c565b9392505050565b6020808252825182820181905260009190848201906040850190845b818110156111475783518352928401929184019160010161112b565b50909695505050505050565b6000806040838503121561116657600080fd5b82359150602083013567ffffffffffffffff81111561118457600080fd5b61119085828601610ed1565b9150509250929050565b87815260e0602082015260006111b360e0830189610f90565b6001600160a01b0388811660408501526111d06060850189610fd2565b8616608084015260a0830185905282810360c08401526111f08185610f90565b9a9950505050505050505050565b6000602080838503121561121157600080fd5b825167ffffffffffffffff8082111561122957600080fd5b908401906080828703121561123d57600080fd5b611245610e4f565b82516112508161109c565b8152828401518281111561126357600080fd5b83019150601f8201871361127657600080fd5b8151611284610ef082610ea9565b818152888683860101111561129857600080fd5b6112a782878301888701610f6c565b8086840152505060408301516040820152606083015160608201528094505050505092915050565b600181811c908216806112e357607f821691505b60208210810361130357634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610ddf57600081815260208120601f850160051c810160208610156113305750805b601f850160051c820191505b8181101561134f5782815560010161133c565b505050505050565b815167ffffffffffffffff81111561137157611371610e39565b6113858161137f84546112cf565b84611309565b602080601f8311600181146113ba57600084156113a25750858301515b600019600386901b1c1916600185901b17855561134f565b600085815260208120601f198616915b828110156113e9578886015182559484019460019091019084016113ca565b50858210156114075787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b83815282602082015260606040820152600061107a6060830184610f90565b60006001820161145657634e487b7160e01b600052601160045260246000fd5b5060010190565b6020815260006111086020830184610f90565b60008251611482818460208701610f6c565b919091019291505056fea2646970667358221220c35ebf53f5dd4739af86dfa25f3f4dcfe7cff47dc404b994ee73376a44f040cd64736f6c63430008140033", - "deployedBytecode": "0x6080604052600436106100a75760003560e01c8063639241ab11610064578063639241ab146101db578063715018a61461020857806374aaa7601461021f5780638d9776721461023f5780638da5cb5b14610272578063f2fde38b1461029057600080fd5b806304fe2b34146100ac57806307b31818146100d55780630d1cfcae146101265780631d65e77e146101465780632a2b3a9d146101665780635c622a0e14610194575b600080fd5b6100bf6100ba366004610f27565b6102b0565b6040516100cc9190610ff4565b60405180910390f35b3480156100e157600080fd5b5061010e6100f0366004611083565b6000908152600160205260409020600301546001600160a01b031690565b6040516001600160a01b0390911681526020016100cc565b34801561013257600080fd5b5060045461010e906001600160a01b031681565b34801561015257600080fd5b506100bf610161366004611083565b610672565b34801561017257600080fd5b506101866101813660046110b1565b61082f565b6040519081526020016100cc565b3480156101a057600080fd5b506101ce6101af366004611083565b600090815260016020526040902060020154600160a01b900460ff1690565b6040516100cc91906110dd565b3480156101e757600080fd5b506101fb6101f63660046110eb565b610860565b6040516100cc919061110f565b34801561021457600080fd5b5061021d6108cc565b005b34801561022b57600080fd5b5061021d61023a366004611153565b6108e0565b34801561024b57600080fd5b5061025f61025a366004611083565b610ae9565b6040516100cc979695949392919061119a565b34801561027e57600080fd5b506000546001600160a01b031661010e565b34801561029c57600080fd5b5061021d6102ab3660046110eb565b610c4a565b6102b8610de4565b600480546040516318feeb1560e31b81529182018490526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610304573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261032c91908101906111fe565b80519091506001600160a01b03166103805760405162461bcd60e51b8152602060048201526012602482015271141c9bdc1bdcd85b081b9bdd08199bdd5b9960721b60448201526064015b60405180910390fd5b348160400151146103c35760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420707269636560981b6044820152606401610377565b600354600081815260016020819052604090912091825581016103e68682611357565b5060028181018054336001600160a01b031991821681178355600485018890558551600380870180549094166001600160a01b0390921691909117909255600090815260209384526040812091548254600181810185559383529490912090930192909255805460ff60a01b1916600160a01b830217905550815160035460608401516040516001600160a01b039093169233927f5c005bbbb9da508c37935b1a9f270836e0be1fd11d4d47119f925a3ff33820e9926104a7928b90611417565b60405180910390a3600380549060006104bf83611436565b9190505550806040518060e0016040529081600082015481526020016001820180546104ea906112cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610516906112cf565b80156105635780601f1061053857610100808354040283529160200191610563565b820191906000526020600020905b81548152906001019060200180831161054657829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff1660038111156105a0576105a0610fbc565b60038111156105b1576105b1610fbc565b815260038201546001600160a01b03166020820152600482015460408201526005820180546060909201916105e5906112cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610611906112cf565b801561065e5780601f106106335761010080835404028352916020019161065e565b820191906000526020600020905b81548152906001019060200180831161064157829003601f168201915b505050505081525050925050505b92915050565b61067a610de4565b600082815260016020818152604092839020835160e08101909452805484529182018054918401916106ab906112cf565b80601f01602080910402602001604051908101604052809291908181526020018280546106d7906112cf565b80156107245780601f106106f957610100808354040283529160200191610724565b820191906000526020600020905b81548152906001019060200180831161070757829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff16600381111561076157610761610fbc565b600381111561077257610772610fbc565b815260038201546001600160a01b03166020820152600482015460408201526005820180546060909201916107a6906112cf565b80601f01602080910402602001604051908101604052809291908181526020018280546107d2906112cf565b801561081f5780601f106107f45761010080835404028352916020019161081f565b820191906000526020600020905b81548152906001019060200180831161080257829003601f168201915b5050505050815250509050919050565b6002602052816000526040600020818154811061084b57600080fd5b90600052602060002001600091509150505481565b6001600160a01b0381166000908152600260209081526040918290208054835181840281018401909452808452606093928301828280156108c057602002820191906000526020600020905b8154815260200190600101908083116108ac575b50505050509050919050565b6108d4610c88565b6108de6000610cb5565b565b600082815260016020526040902060038101546001600160a01b031633148061091357506000546001600160a01b031633145b6109505760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610377565b60016002820154600160a01b900460ff16600381111561097257610972610fbc565b146109b55760405162461bcd60e51b8152602060048201526013602482015272496e76616c6964207461736b2073746174757360681b6044820152606401610377565b60028101805460ff60a01b1916600160a11b179055600581016109d88382611357565b5060048054828201546040516318feeb1560e31b8152928301526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a4f91908101906111fe565b9050610a6381600001518260400151610d05565b600282015460405185917fd76ef80cfb1ce0c70d0cbc0ab1b9f2f298a78f9fca5c841be963ae9a5d721bb491610aa391600160a01b900460ff16906110dd565b60405180910390a2837f7e6ffc29fe63759579d96a0457a8f2e08339aca345bd469f59dc2e61f82a5aeb84604051610adb919061145d565b60405180910390a250505050565b600160208190526000918252604090912080549181018054610b0a906112cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610b36906112cf565b8015610b835780601f10610b5857610100808354040283529160200191610b83565b820191906000526020600020905b815481529060010190602001808311610b6657829003601f168201915b5050505060028301546003840154600485015460058601805495966001600160a01b0380861697600160a01b90960460ff16965090931693919291610bc7906112cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf3906112cf565b8015610c405780601f10610c1557610100808354040283529160200191610c40565b820191906000526020600020905b815481529060010190602001808311610c2357829003601f168201915b5050505050905087565b610c52610c88565b6001600160a01b038116610c7c57604051631e4fbdf760e01b815260006004820152602401610377565b610c8581610cb5565b50565b6000546001600160a01b031633146108de5760405163118cdaa760e01b8152336004820152602401610377565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516000808252602082019092526001600160a01b038416908390604051610d2f9190611470565b60006040518083038185875af1925050503d8060008114610d6c576040519150601f19603f3d011682016040523d82523d6000602084013e610d71565b606091505b5050905080610ddf5760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b6064820152608401610377565b505050565b6040518060e00160405280600081526020016060815260200160006001600160a01b0316815260200160006003811115610e2057610e20610fbc565b8152600060208201819052604082015260609081015290565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715610e7257610e72610e39565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610ea157610ea1610e39565b604052919050565b600067ffffffffffffffff821115610ec357610ec3610e39565b50601f01601f191660200190565b600082601f830112610ee257600080fd5b8135610ef5610ef082610ea9565b610e78565b818152846020838601011115610f0a57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215610f3a57600080fd5b823567ffffffffffffffff811115610f5157600080fd5b610f5d85828601610ed1565b95602094909401359450505050565b60005b83811015610f87578181015183820152602001610f6f565b50506000910152565b60008151808452610fa8816020860160208601610f6c565b601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b60048110610ff057634e487b7160e01b600052602160045260246000fd5b9052565b60208152815160208201526000602083015160e0604084015261101b610100840182610f90565b60408501516001600160a01b039081166060868101919091528601519192506110476080860183610fd2565b8060808701511660a0860152505060a084015160c084015260c0840151601f198483030160e085015261107a8282610f90565b95945050505050565b60006020828403121561109557600080fd5b5035919050565b6001600160a01b0381168114610c8557600080fd5b600080604083850312156110c457600080fd5b82356110cf8161109c565b946020939093013593505050565b6020810161066c8284610fd2565b6000602082840312156110fd57600080fd5b81356111088161109c565b9392505050565b6020808252825182820181905260009190848201906040850190845b818110156111475783518352928401929184019160010161112b565b50909695505050505050565b6000806040838503121561116657600080fd5b82359150602083013567ffffffffffffffff81111561118457600080fd5b61119085828601610ed1565b9150509250929050565b87815260e0602082015260006111b360e0830189610f90565b6001600160a01b0388811660408501526111d06060850189610fd2565b8616608084015260a0830185905282810360c08401526111f08185610f90565b9a9950505050505050505050565b6000602080838503121561121157600080fd5b825167ffffffffffffffff8082111561122957600080fd5b908401906080828703121561123d57600080fd5b611245610e4f565b82516112508161109c565b8152828401518281111561126357600080fd5b83019150601f8201871361127657600080fd5b8151611284610ef082610ea9565b818152888683860101111561129857600080fd5b6112a782878301888701610f6c565b8086840152505060408301516040820152606083015160608201528094505050505092915050565b600181811c908216806112e357607f821691505b60208210810361130357634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610ddf57600081815260208120601f850160051c810160208610156113305750805b601f850160051c820191505b8181101561134f5782815560010161133c565b505050505050565b815167ffffffffffffffff81111561137157611371610e39565b6113858161137f84546112cf565b84611309565b602080601f8311600181146113ba57600084156113a25750858301515b600019600386901b1c1916600185901b17855561134f565b600085815260208120601f198616915b828110156113e9578886015182559484019460019091019084016113ca565b50858210156114075787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b83815282602082015260606040820152600061107a6060830184610f90565b60006001820161145657634e487b7160e01b600052601160045260246000fd5b5060010190565b6020815260006111086020830184610f90565b60008251611482818460208701610f6c565b919091019291505056fea2646970667358221220c35ebf53f5dd4739af86dfa25f3f4dcfe7cff47dc404b994ee73376a44f040cd64736f6c63430008140033", + "bytecode": "0x60806040523480156200001157600080fd5b5060405162001c3638038062001c368339810160408190526200003491620000e2565b33806200005b57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000668162000092565b50600480546001600160a01b0319166001600160a01b0392909216919091179055600160035562000114565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215620000f557600080fd5b81516001600160a01b03811681146200010d57600080fd5b9392505050565b611b1280620001246000396000f3fe6080604052600436106100dd5760003560e01c8063639241ab1161007f5780637eec20a8116100595780637eec20a8146102955780638d977672146102b55780638da5cb5b146102e9578063f2fde38b1461030757600080fd5b8063639241ab14610233578063715018a61461026057806374aaa7601461027557600080fd5b80631d65e77e116100bb5780631d65e77e1461017c5780632a2b3a9d1461019c5780635c622a0e146101ca5780636298eee01461021157600080fd5b806304fe2b34146100e257806307b318181461010b5780630d1cfcae1461015c575b600080fd5b6100f56100f03660046114d2565b610327565b604051610102919061159f565b60405180910390f35b34801561011757600080fd5b50610144610126366004611649565b6000908152600160205260409020600301546001600160a01b031690565b6040516001600160a01b039091168152602001610102565b34801561016857600080fd5b50600454610144906001600160a01b031681565b34801561018857600080fd5b506100f5610197366004611649565b610704565b3480156101a857600080fd5b506101bc6101b7366004611677565b6108d0565b604051908152602001610102565b3480156101d657600080fd5b506102046101e5366004611649565b600090815260016020526040902060020154600160a01b900460ff1690565b60405161010291906116a3565b34801561021d57600080fd5b5061023161022c3660046116b1565b610901565b005b34801561023f57600080fd5b5061025361024e3660046116e7565b610bd2565b604051610102919061170b565b34801561026c57600080fd5b50610231610c3e565b34801561028157600080fd5b5061023161029036600461174f565b610c52565b3480156102a157600080fd5b506102316102b0366004611649565b610e46565b3480156102c157600080fd5b506102d56102d0366004611649565b611082565b604051610102989796959493929190611796565b3480156102f557600080fd5b506000546001600160a01b0316610144565b34801561031357600080fd5b506102316103223660046116e7565b6111ec565b61032f611386565b600480546040516318feeb1560e31b81529182018490526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa15801561037b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103a3919081019061181e565b80519091506001600160a01b03166104025760405162461bcd60e51b815260206004820152601960248201527f5365727669636550726f706f73616c206e6f7420666f756e640000000000000060448201526064015b60405180910390fd5b348160400151146104455760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420707269636560981b60448201526064016103f9565b600354600081815260016020819052604090912091825581016104688682611985565b5060028181018054336001600160a01b031991821681178355600485018890558551600380870180549094166001600160a01b0390921691909117909255600090815260209384526040812091548254600181810185559383529490912090930192909255805460ff60a01b1916600160a01b830217905550815160035460608401516040516001600160a01b039093169233927f5c005bbbb9da508c37935b1a9f270836e0be1fd11d4d47119f925a3ff33820e992610529928b90611a45565b60405180910390a36003805490600061054183611a6d565b919050555080604051806101000160405290816000820154815260200160018201805461056d906118fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610599906118fd565b80156105e65780601f106105bb576101008083540402835291602001916105e6565b820191906000526020600020905b8154815290600101906020018083116105c957829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff16600381111561062357610623611567565b600381111561063457610634611567565b815260038201546001600160a01b0316602082015260048201546040820152600582018054606090920191610668906118fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610694906118fd565b80156106e15780601f106106b6576101008083540402835291602001916106e1565b820191906000526020600020905b8154815290600101906020018083116106c457829003601f168201915b50505091835250506006919091015460ff16602090910152925050505b92915050565b61070c611386565b600082815260016020818152604092839020835161010081019094528054845291820180549184019161073e906118fd565b80601f016020809104026020016040519081016040528092919081815260200182805461076a906118fd565b80156107b75780601f1061078c576101008083540402835291602001916107b7565b820191906000526020600020905b81548152906001019060200180831161079a57829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff1660038111156107f4576107f4611567565b600381111561080557610805611567565b815260038201546001600160a01b0316602082015260048201546040820152600582018054606090920191610839906118fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610865906118fd565b80156108b25780601f10610887576101008083540402835291602001916108b2565b820191906000526020600020905b81548152906001019060200180831161089557829003601f168201915b50505091835250506006919091015460ff1660209091015292915050565b600260205281600052604060002081815481106108ec57600080fd5b90600052602060002001600091509150505481565b60008281526001602052604090206002015482906001600160a01b0316331461096c5760405162461bcd60e51b815260206004820152601a60248201527f4e6f742074686520697373756572206f6620746865207461736b00000000000060448201526064016103f9565b6000838152600160205260409020600280820154600160a01b900460ff16600381111561099b5761099b611567565b146109e05760405162461bcd60e51b815260206004820152601560248201527415185cdac81a5cc81b9bdd0818dbdb5c1b195d1959605a1b60448201526064016103f9565b600681015460ff1615610a355760405162461bcd60e51b815260206004820152601760248201527f5461736b20676f7420726174696e6720616c726561647900000000000000000060448201526064016103f9565b60648360ff161115610a895760405162461bcd60e51b815260206004820181905260248201527f526174696e67206d757374206265206265747765656e203020616e642031303060448201526064016103f9565b60068101805460ff191660ff851617905560048054818301546040516318feeb1560e31b8152928301526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610ae8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b10919081019061181e565b6004805482516040516370370a8160e01b81526001600160a01b039182169381019390935260ff8816602484015292935091909116906370370a81906044016020604051808303816000875af1158015610b6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b929190611a94565b5060405160ff8516815285907f0f9189bfc5977d44b1a00920e53a6a0e00229f6c53e76b73fc7e0581ae99abdc9060200160405180910390a25050505050565b6001600160a01b038116600090815260026020908152604091829020805483518184028101840190945280845260609392830182828015610c3257602002820191906000526020600020905b815481526020019060010190808311610c1e575b50505050509050919050565b610c4661122a565b610c506000611257565b565b600082815260016020526040902060038101546001600160a01b03163314610cad5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b60448201526064016103f9565b60016002820154600160a01b900460ff166003811115610ccf57610ccf611567565b14610d125760405162461bcd60e51b8152602060048201526013602482015272496e76616c6964207461736b2073746174757360681b60448201526064016103f9565b60028101805460ff60a01b1916600160a11b17905560058101610d358382611985565b5060048054828201546040516318feeb1560e31b8152928301526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610d84573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610dac919081019061181e565b9050610dc0816000015182604001516112a7565b600282015460405185917fd76ef80cfb1ce0c70d0cbc0ab1b9f2f298a78f9fca5c841be963ae9a5d721bb491610e0091600160a01b900460ff16906116a3565b60405180910390a2837f7e6ffc29fe63759579d96a0457a8f2e08339aca345bd469f59dc2e61f82a5aeb84604051610e389190611aad565b60405180910390a250505050565b60008181526001602052604090206002015481906001600160a01b03163314610eb15760405162461bcd60e51b815260206004820152601a60248201527f4e6f742074686520697373756572206f6620746865207461736b00000000000060448201526064016103f9565b6000828152600160205260409020600280820154600160a01b900460ff166003811115610ee057610ee0611567565b14158015610f0e575060036002820154600160a01b900460ff166003811115610f0b57610f0b611567565b14155b610f5a5760405162461bcd60e51b815260206004820152601760248201527f5461736b2063616e6e6f742062652063616e63656c656400000000000000000060448201526064016103f9565b600281018054600360a01b60ff60a01b1990911617905560048054818301546040516318feeb1560e31b8152928301526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610fbf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fe7919081019061181e565b60028301546040820151919250611009916001600160a01b03909116906112a7565b600282015460405185917fd76ef80cfb1ce0c70d0cbc0ab1b9f2f298a78f9fca5c841be963ae9a5d721bb49161104991600160a01b900460ff16906116a3565b60405180910390a260405184907f1aa8a90c7d7a86bac690072d3f3d726bb8ebbe1989e158530440963f04c11eb290600090a250505050565b6001602081905260009182526040909120805491810180546110a3906118fd565b80601f01602080910402602001604051908101604052809291908181526020018280546110cf906118fd565b801561111c5780601f106110f15761010080835404028352916020019161111c565b820191906000526020600020905b8154815290600101906020018083116110ff57829003601f168201915b5050505060028301546003840154600485015460058601805495966001600160a01b0380861697600160a01b90960460ff16965090931693919291611160906118fd565b80601f016020809104026020016040519081016040528092919081815260200182805461118c906118fd565b80156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050506006909301549192505060ff1688565b6111f461122a565b6001600160a01b03811661121e57604051631e4fbdf760e01b8152600060048201526024016103f9565b61122781611257565b50565b6000546001600160a01b03163314610c505760405163118cdaa760e01b81523360048201526024016103f9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516000808252602082019092526001600160a01b0384169083906040516112d19190611ac0565b60006040518083038185875af1925050503d806000811461130e576040519150601f19603f3d011682016040523d82523d6000602084013e611313565b606091505b50509050806113815760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b60648201526084016103f9565b505050565b604051806101000160405280600081526020016060815260200160006001600160a01b03168152602001600060038111156113c3576113c3611567565b81526000602082018190526040820181905260608083015260809091015290565b634e487b7160e01b600052604160045260246000fd5b60405160a0810167ffffffffffffffff8111828210171561141d5761141d6113e4565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561144c5761144c6113e4565b604052919050565b600067ffffffffffffffff82111561146e5761146e6113e4565b50601f01601f191660200190565b600082601f83011261148d57600080fd5b81356114a061149b82611454565b611423565b8181528460208386010111156114b557600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156114e557600080fd5b823567ffffffffffffffff8111156114fc57600080fd5b6115088582860161147c565b95602094909401359450505050565b60005b8381101561153257818101518382015260200161151a565b50506000910152565b60008151808452611553816020860160208601611517565b601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b6004811061159b57634e487b7160e01b600052602160045260246000fd5b9052565b6020815281516020820152600060208301516101008060408501526115c861012085018361153b565b915060018060a01b03604086015116606085015260608501516115ee608086018261157d565b5060808501516001600160a01b03811660a08601525060a085015160c085015260c0850151601f198584030160e0860152611629838261153b565b92505060e085015161163f8286018260ff169052565b5090949350505050565b60006020828403121561165b57600080fd5b5035919050565b6001600160a01b038116811461122757600080fd5b6000806040838503121561168a57600080fd5b823561169581611662565b946020939093013593505050565b602081016106fe828461157d565b600080604083850312156116c457600080fd5b82359150602083013560ff811681146116dc57600080fd5b809150509250929050565b6000602082840312156116f957600080fd5b813561170481611662565b9392505050565b6020808252825182820181905260009190848201906040850190845b8181101561174357835183529284019291840191600101611727565b50909695505050505050565b6000806040838503121561176257600080fd5b82359150602083013567ffffffffffffffff81111561178057600080fd5b61178c8582860161147c565b9150509250929050565b60006101008a83528060208401526117b08184018b61153b565b6001600160a01b038a811660408601529091506117d0606085018a61157d565b8716608084015260a0830186905282810360c08401526117f0818661153b565b91505060ff831660e08301529998505050505050505050565b8051801515811461181957600080fd5b919050565b6000602080838503121561183157600080fd5b825167ffffffffffffffff8082111561184957600080fd5b9084019060a0828703121561185d57600080fd5b6118656113fa565b825161187081611662565b8152828401518281111561188357600080fd5b83019150601f8201871361189657600080fd5b81516118a461149b82611454565b81815288868386010111156118b857600080fd5b6118c782878301888701611517565b8086840152505060408301516040820152606083015160608201526118ee60808401611809565b60808201529695505050505050565b600181811c9082168061191157607f821691505b60208210810361193157634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561138157600081815260208120601f850160051c8101602086101561195e5750805b601f850160051c820191505b8181101561197d5782815560010161196a565b505050505050565b815167ffffffffffffffff81111561199f5761199f6113e4565b6119b3816119ad84546118fd565b84611937565b602080601f8311600181146119e857600084156119d05750858301515b600019600386901b1c1916600185901b17855561197d565b600085815260208120601f198616915b82811015611a17578886015182559484019460019091019084016119f8565b5085821015611a355787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b838152826020820152606060408201526000611a64606083018461153b565b95945050505050565b600060018201611a8d57634e487b7160e01b600052601160045260246000fd5b5060010190565b600060208284031215611aa657600080fd5b5051919050565b602081526000611704602083018461153b565b60008251611ad2818460208701611517565b919091019291505056fea264697066735822122098bd83b23d81389b73e03b06ee07ca1b56c4d4bfdea60cc35bd0c593da9fedd664736f6c63430008140033", + "deployedBytecode": "0x6080604052600436106100dd5760003560e01c8063639241ab1161007f5780637eec20a8116100595780637eec20a8146102955780638d977672146102b55780638da5cb5b146102e9578063f2fde38b1461030757600080fd5b8063639241ab14610233578063715018a61461026057806374aaa7601461027557600080fd5b80631d65e77e116100bb5780631d65e77e1461017c5780632a2b3a9d1461019c5780635c622a0e146101ca5780636298eee01461021157600080fd5b806304fe2b34146100e257806307b318181461010b5780630d1cfcae1461015c575b600080fd5b6100f56100f03660046114d2565b610327565b604051610102919061159f565b60405180910390f35b34801561011757600080fd5b50610144610126366004611649565b6000908152600160205260409020600301546001600160a01b031690565b6040516001600160a01b039091168152602001610102565b34801561016857600080fd5b50600454610144906001600160a01b031681565b34801561018857600080fd5b506100f5610197366004611649565b610704565b3480156101a857600080fd5b506101bc6101b7366004611677565b6108d0565b604051908152602001610102565b3480156101d657600080fd5b506102046101e5366004611649565b600090815260016020526040902060020154600160a01b900460ff1690565b60405161010291906116a3565b34801561021d57600080fd5b5061023161022c3660046116b1565b610901565b005b34801561023f57600080fd5b5061025361024e3660046116e7565b610bd2565b604051610102919061170b565b34801561026c57600080fd5b50610231610c3e565b34801561028157600080fd5b5061023161029036600461174f565b610c52565b3480156102a157600080fd5b506102316102b0366004611649565b610e46565b3480156102c157600080fd5b506102d56102d0366004611649565b611082565b604051610102989796959493929190611796565b3480156102f557600080fd5b506000546001600160a01b0316610144565b34801561031357600080fd5b506102316103223660046116e7565b6111ec565b61032f611386565b600480546040516318feeb1560e31b81529182018490526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa15801561037b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103a3919081019061181e565b80519091506001600160a01b03166104025760405162461bcd60e51b815260206004820152601960248201527f5365727669636550726f706f73616c206e6f7420666f756e640000000000000060448201526064015b60405180910390fd5b348160400151146104455760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420707269636560981b60448201526064016103f9565b600354600081815260016020819052604090912091825581016104688682611985565b5060028181018054336001600160a01b031991821681178355600485018890558551600380870180549094166001600160a01b0390921691909117909255600090815260209384526040812091548254600181810185559383529490912090930192909255805460ff60a01b1916600160a01b830217905550815160035460608401516040516001600160a01b039093169233927f5c005bbbb9da508c37935b1a9f270836e0be1fd11d4d47119f925a3ff33820e992610529928b90611a45565b60405180910390a36003805490600061054183611a6d565b919050555080604051806101000160405290816000820154815260200160018201805461056d906118fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610599906118fd565b80156105e65780601f106105bb576101008083540402835291602001916105e6565b820191906000526020600020905b8154815290600101906020018083116105c957829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff16600381111561062357610623611567565b600381111561063457610634611567565b815260038201546001600160a01b0316602082015260048201546040820152600582018054606090920191610668906118fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610694906118fd565b80156106e15780601f106106b6576101008083540402835291602001916106e1565b820191906000526020600020905b8154815290600101906020018083116106c457829003601f168201915b50505091835250506006919091015460ff16602090910152925050505b92915050565b61070c611386565b600082815260016020818152604092839020835161010081019094528054845291820180549184019161073e906118fd565b80601f016020809104026020016040519081016040528092919081815260200182805461076a906118fd565b80156107b75780601f1061078c576101008083540402835291602001916107b7565b820191906000526020600020905b81548152906001019060200180831161079a57829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff1660038111156107f4576107f4611567565b600381111561080557610805611567565b815260038201546001600160a01b0316602082015260048201546040820152600582018054606090920191610839906118fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610865906118fd565b80156108b25780601f10610887576101008083540402835291602001916108b2565b820191906000526020600020905b81548152906001019060200180831161089557829003601f168201915b50505091835250506006919091015460ff1660209091015292915050565b600260205281600052604060002081815481106108ec57600080fd5b90600052602060002001600091509150505481565b60008281526001602052604090206002015482906001600160a01b0316331461096c5760405162461bcd60e51b815260206004820152601a60248201527f4e6f742074686520697373756572206f6620746865207461736b00000000000060448201526064016103f9565b6000838152600160205260409020600280820154600160a01b900460ff16600381111561099b5761099b611567565b146109e05760405162461bcd60e51b815260206004820152601560248201527415185cdac81a5cc81b9bdd0818dbdb5c1b195d1959605a1b60448201526064016103f9565b600681015460ff1615610a355760405162461bcd60e51b815260206004820152601760248201527f5461736b20676f7420726174696e6720616c726561647900000000000000000060448201526064016103f9565b60648360ff161115610a895760405162461bcd60e51b815260206004820181905260248201527f526174696e67206d757374206265206265747765656e203020616e642031303060448201526064016103f9565b60068101805460ff191660ff851617905560048054818301546040516318feeb1560e31b8152928301526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610ae8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b10919081019061181e565b6004805482516040516370370a8160e01b81526001600160a01b039182169381019390935260ff8816602484015292935091909116906370370a81906044016020604051808303816000875af1158015610b6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b929190611a94565b5060405160ff8516815285907f0f9189bfc5977d44b1a00920e53a6a0e00229f6c53e76b73fc7e0581ae99abdc9060200160405180910390a25050505050565b6001600160a01b038116600090815260026020908152604091829020805483518184028101840190945280845260609392830182828015610c3257602002820191906000526020600020905b815481526020019060010190808311610c1e575b50505050509050919050565b610c4661122a565b610c506000611257565b565b600082815260016020526040902060038101546001600160a01b03163314610cad5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b60448201526064016103f9565b60016002820154600160a01b900460ff166003811115610ccf57610ccf611567565b14610d125760405162461bcd60e51b8152602060048201526013602482015272496e76616c6964207461736b2073746174757360681b60448201526064016103f9565b60028101805460ff60a01b1916600160a11b17905560058101610d358382611985565b5060048054828201546040516318feeb1560e31b8152928301526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610d84573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610dac919081019061181e565b9050610dc0816000015182604001516112a7565b600282015460405185917fd76ef80cfb1ce0c70d0cbc0ab1b9f2f298a78f9fca5c841be963ae9a5d721bb491610e0091600160a01b900460ff16906116a3565b60405180910390a2837f7e6ffc29fe63759579d96a0457a8f2e08339aca345bd469f59dc2e61f82a5aeb84604051610e389190611aad565b60405180910390a250505050565b60008181526001602052604090206002015481906001600160a01b03163314610eb15760405162461bcd60e51b815260206004820152601a60248201527f4e6f742074686520697373756572206f6620746865207461736b00000000000060448201526064016103f9565b6000828152600160205260409020600280820154600160a01b900460ff166003811115610ee057610ee0611567565b14158015610f0e575060036002820154600160a01b900460ff166003811115610f0b57610f0b611567565b14155b610f5a5760405162461bcd60e51b815260206004820152601760248201527f5461736b2063616e6e6f742062652063616e63656c656400000000000000000060448201526064016103f9565b600281018054600360a01b60ff60a01b1990911617905560048054818301546040516318feeb1560e31b8152928301526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610fbf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fe7919081019061181e565b60028301546040820151919250611009916001600160a01b03909116906112a7565b600282015460405185917fd76ef80cfb1ce0c70d0cbc0ab1b9f2f298a78f9fca5c841be963ae9a5d721bb49161104991600160a01b900460ff16906116a3565b60405180910390a260405184907f1aa8a90c7d7a86bac690072d3f3d726bb8ebbe1989e158530440963f04c11eb290600090a250505050565b6001602081905260009182526040909120805491810180546110a3906118fd565b80601f01602080910402602001604051908101604052809291908181526020018280546110cf906118fd565b801561111c5780601f106110f15761010080835404028352916020019161111c565b820191906000526020600020905b8154815290600101906020018083116110ff57829003601f168201915b5050505060028301546003840154600485015460058601805495966001600160a01b0380861697600160a01b90960460ff16965090931693919291611160906118fd565b80601f016020809104026020016040519081016040528092919081815260200182805461118c906118fd565b80156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050506006909301549192505060ff1688565b6111f461122a565b6001600160a01b03811661121e57604051631e4fbdf760e01b8152600060048201526024016103f9565b61122781611257565b50565b6000546001600160a01b03163314610c505760405163118cdaa760e01b81523360048201526024016103f9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516000808252602082019092526001600160a01b0384169083906040516112d19190611ac0565b60006040518083038185875af1925050503d806000811461130e576040519150601f19603f3d011682016040523d82523d6000602084013e611313565b606091505b50509050806113815760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b60648201526084016103f9565b505050565b604051806101000160405280600081526020016060815260200160006001600160a01b03168152602001600060038111156113c3576113c3611567565b81526000602082018190526040820181905260608083015260809091015290565b634e487b7160e01b600052604160045260246000fd5b60405160a0810167ffffffffffffffff8111828210171561141d5761141d6113e4565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561144c5761144c6113e4565b604052919050565b600067ffffffffffffffff82111561146e5761146e6113e4565b50601f01601f191660200190565b600082601f83011261148d57600080fd5b81356114a061149b82611454565b611423565b8181528460208386010111156114b557600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156114e557600080fd5b823567ffffffffffffffff8111156114fc57600080fd5b6115088582860161147c565b95602094909401359450505050565b60005b8381101561153257818101518382015260200161151a565b50506000910152565b60008151808452611553816020860160208601611517565b601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b6004811061159b57634e487b7160e01b600052602160045260246000fd5b9052565b6020815281516020820152600060208301516101008060408501526115c861012085018361153b565b915060018060a01b03604086015116606085015260608501516115ee608086018261157d565b5060808501516001600160a01b03811660a08601525060a085015160c085015260c0850151601f198584030160e0860152611629838261153b565b92505060e085015161163f8286018260ff169052565b5090949350505050565b60006020828403121561165b57600080fd5b5035919050565b6001600160a01b038116811461122757600080fd5b6000806040838503121561168a57600080fd5b823561169581611662565b946020939093013593505050565b602081016106fe828461157d565b600080604083850312156116c457600080fd5b82359150602083013560ff811681146116dc57600080fd5b809150509250929050565b6000602082840312156116f957600080fd5b813561170481611662565b9392505050565b6020808252825182820181905260009190848201906040850190845b8181101561174357835183529284019291840191600101611727565b50909695505050505050565b6000806040838503121561176257600080fd5b82359150602083013567ffffffffffffffff81111561178057600080fd5b61178c8582860161147c565b9150509250929050565b60006101008a83528060208401526117b08184018b61153b565b6001600160a01b038a811660408601529091506117d0606085018a61157d565b8716608084015260a0830186905282810360c08401526117f0818661153b565b91505060ff831660e08301529998505050505050505050565b8051801515811461181957600080fd5b919050565b6000602080838503121561183157600080fd5b825167ffffffffffffffff8082111561184957600080fd5b9084019060a0828703121561185d57600080fd5b6118656113fa565b825161187081611662565b8152828401518281111561188357600080fd5b83019150601f8201871361189657600080fd5b81516118a461149b82611454565b81815288868386010111156118b857600080fd5b6118c782878301888701611517565b8086840152505060408301516040820152606083015160608201526118ee60808401611809565b60808201529695505050505050565b600181811c9082168061191157607f821691505b60208210810361193157634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561138157600081815260208120601f850160051c8101602086101561195e5750805b601f850160051c820191505b8181101561197d5782815560010161196a565b505050505050565b815167ffffffffffffffff81111561199f5761199f6113e4565b6119b3816119ad84546118fd565b84611937565b602080601f8311600181146119e857600084156119d05750858301515b600019600386901b1c1916600185901b17855561197d565b600085815260208120601f198616915b82811015611a17578886015182559484019460019091019084016119f8565b5085821015611a355787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b838152826020820152606060408201526000611a64606083018461153b565b95945050505050565b600060018201611a8d57634e487b7160e01b600052601160045260246000fd5b5060010190565b600060208284031215611aa657600080fd5b5051919050565b602081526000611704602083018461153b565b60008251611ad2818460208701611517565b919091019291505056fea264697066735822122098bd83b23d81389b73e03b06ee07ca1b56c4d4bfdea60cc35bd0c593da9fedd664736f6c63430008140033", "linkReferences": {}, "deployedLinkReferences": {} } \ No newline at end of file diff --git a/packages/contracts/ignition/deployments/chain-84532/build-info/4f85bbb070e464b57411e80df715dabb.json b/packages/contracts/ignition/deployments/chain-84532/build-info/4f85bbb070e464b57411e80df715dabb.json deleted file mode 100644 index cbb88b2..0000000 --- a/packages/contracts/ignition/deployments/chain-84532/build-info/4f85bbb070e464b57411e80df715dabb.json +++ /dev/null @@ -1,43389 +0,0 @@ -{ - "id": "4f85bbb070e464b57411e80df715dabb", - "_format": "hh-sol-build-info-1", - "solcVersion": "0.8.20", - "solcLongVersion": "0.8.20+commit.a1b79de6", - "input": { - "language": "Solidity", - "sources": { - "@openzeppelin/contracts/access/Ownable.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\n\npragma solidity ^0.8.20;\n\nimport {Context} from \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * The initial owner is set to the address provided by the deployer. This can\n * later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n /**\n * @dev The caller account is not authorized to perform an operation.\n */\n error OwnableUnauthorizedAccount(address account);\n\n /**\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\n */\n error OwnableInvalidOwner(address owner);\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n */\n constructor(address initialOwner) {\n if (initialOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(initialOwner);\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n if (owner() != _msgSender()) {\n revert OwnableUnauthorizedAccount(_msgSender());\n }\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby disabling any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n if (newOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n" - }, - "@openzeppelin/contracts/utils/Context.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n" - }, - "contracts/AgentsRegistry.sol": { - "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport \"./ServiceRegistry.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"./interfaces/IProposalStruct.sol\";\n\n\n/**\n * @title AgentsRegistry\n * @author leonprou\n * @notice A smart contract that stores information about the agents, and the services proposals provided by the agents.\n */\ncontract AgentsRegistry is Ownable, IProposalStruct {\n\n struct AgentData {\n string name;\n string agentUri;\n address owner;\n address agent;\n uint256 reputation;\n bool isRegistered;\n Proposal[] proposals;\n }\n\n ServiceRegistry public serviceRegistry;\n mapping(address => AgentData) public agents;\n Proposal[] public proposals;\n uint256 public nextProposalId;\n\n modifier onlyRegistered(address agent) {\n require(agents[agent].isRegistered, \"Agent not registered\");\n _;\n }\n\n constructor(ServiceRegistry _serviceRegistry) Ownable(msg.sender) {\n serviceRegistry = _serviceRegistry;\n }\n\n event AgentRegistered(address indexed agent, address indexed owner, string name, string agentUri);\n event ReputationUpdated(address indexed agent, uint256 newReputation);\n event ServiceAdded(address indexed agent, uint256 name);\n event ProposalAdded(address indexed agent, uint256 proposalId, string name, uint256 price);\n \n /**\n * @dev Registers a new agent with the given details.\n * @param name The name of the agent.\n * @param agentUri The URI pointing to the agent's metadata.\n * @param agent The address of the agent.\n * @param serviceName The name of the service.\n * @param servicePrice The price of the service.\n * @return true if the agent was registered successfully, false otherwise.\n *\n * Requirements:\n *\n * - The agent must not already be registered.\n * - The caller will be set as the owner of the agent.\n *\n * Emits an {AgentRegistered} event.\n */\n function registerAgent(\n address agent,\n string memory name,\n string memory agentUri,\n string memory serviceName,\n uint256 servicePrice\n ) external returns (bool) {\n require(!agents[agent].isRegistered, \"Agent already registered\");\n require(serviceRegistry.isServiceRegistered(serviceName), \"Service not registered\");\n \n AgentData storage agentData = agents[agent];\n agentData.name = name;\n agentData.agentUri = agentUri;\n agentData.owner = msg.sender;\n agentData.agent = agent;\n agentData.reputation = 0;\n agentData.isRegistered = true;\n Proposal memory proposal = Proposal(agent, serviceName, servicePrice, nextProposalId);\n agentData.proposals.push(proposal);\n proposals.push(proposal);\n\n nextProposalId++;\n emit AgentRegistered(agent, msg.sender, name, agentUri);\n emit ProposalAdded(agent, proposal.proposalId, serviceName, servicePrice);\n\n return true;\n }\n\n function updateReputation(address agent, uint256 _reputation) external onlyOwner onlyRegistered(agent) {\n agents[agent].reputation = _reputation;\n emit ReputationUpdated(agent, _reputation);\n }\n\n function getReputation(address agent) external view onlyRegistered(agent) returns (uint256) {\n return agents[agent].reputation;\n }\n\n function isRegistered(address agent) external view returns (bool) {\n return agents[agent].isRegistered;\n }\n\n /**\n * @dev get agent data\n * @param _agent The address of the agent\n * @return name The name of the agent\n * @return agentUri The URI pointing to the agent's metadata\n * @return owner The owner address of the agent\n * @return agent The agent contract address\n * @return reputation The reputation score of the agent\n */\n function getAgentData(address _agent) external view returns (\n string memory name,\n string memory agentUri,\n address owner,\n address agent,\n uint256 reputation\n ) {\n AgentData storage data = agents[_agent];\n return (data.name, data.agentUri, data.owner, data.agent, data.reputation);\n }\n\n\n function getProposal(uint256 proposalId) external view returns (Proposal memory) {\n return proposals[proposalId];\n }\n}\n" - }, - "contracts/interfaces/IProposalStruct.sol": { - "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\ninterface IProposalStruct {\n struct Proposal {\n address issuer;\n string serviceName;\n uint256 price;\n uint256 proposalId;\n }\n}" - }, - "contracts/lib/TransferHelper.sol": { - "content": "//SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\n// helper methods for interacting with ERC20 tokens and sending ETH that do not consistently return true/false\nlibrary TransferHelper {\n function safeApprove(\n address token,\n address to,\n uint256 value\n ) internal {\n // bytes4(keccak256(bytes('approve(address,uint256)')));\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));\n require(\n success && (data.length == 0 || abi.decode(data, (bool))),\n 'TransferHelper::safeApprove: approve failed'\n );\n }\n\n function safeTransfer(\n address token,\n address to,\n uint256 value\n ) internal {\n // bytes4(keccak256(bytes('transfer(address,uint256)')));\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));\n require(\n success && (data.length == 0 || abi.decode(data, (bool))),\n 'TransferHelper::safeTransfer: transfer failed'\n );\n }\n\n function safeTransferFrom(\n address token,\n address from,\n address to,\n uint256 value\n ) internal {\n // bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));\n require(\n success && (data.length == 0 || abi.decode(data, (bool))),\n 'TransferHelper::transferFrom: transferFrom failed'\n );\n }\n\n function safeTransferETH(address to, uint256 value) internal {\n (bool success, ) = to.call{value: value}(new bytes(0));\n require(success, 'TransferHelper::safeTransferETH: ETH transfer failed');\n }\n}" - }, - "contracts/ServiceRegistry.sol": { - "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n/**\n * @title ServiceRegistry\n * @author leonprou\n * @notice A smart contract that stores information about the services provided by agents.\n */\ncontract ServiceRegistry is Ownable {\n struct Service {\n string name;\n string category;\n string description;\n }\n\n mapping(string => Service) public services;\n uint256 public serviceCount;\n\n event ServiceRegistered(string name, string category, string description);\n event ServiceUpdated(string name, string category, string description);\n\n constructor() Ownable(msg.sender) {}\n\n /**\n * @dev Registers a new service with the given name and price.\n * @param name The name of the service.\n * @return The ID of the registered service.\n */\n function registerService(string memory name, string memory category, string memory description) external onlyOwner returns (Service memory) {\n require(!this.isServiceRegistered(name), \"Service already registered\");\n\n Service memory service = Service({\n name: name,\n category: category,\n description: description\n });\n\n services[name] = service;\n\n emit ServiceRegistered(name, category, description);\n\n serviceCount++;\n return service;\n }\n\n /**\n * @dev Retrieves the details of a service.\n * @param name The name of the service to retrieve.\n * @return The details of the service.\n */\n function getService(string memory name) external view returns (Service memory) {\n return services[name];\n }\n\n function isServiceRegistered(string memory name) external view returns (bool) {\n require(bytes(name).length > 0, \"Invalid service name\");\n\n return bytes(services[name].name).length > 0;\n }\n\n function updateService(string memory name, string memory category, string memory description) external onlyOwner {\n require(this.isServiceRegistered(name), \"Service not registered\");\n\n services[name] = Service({\n name: name,\n category: category,\n description: description\n });\n\n emit ServiceUpdated(name, category, description);\n }\n}\n" - }, - "contracts/TaskRegistry.sol": { - "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"./interfaces/IProposalStruct.sol\";\nimport \"./AgentsRegistry.sol\";\nimport \"./lib/TransferHelper.sol\";\n\n/**\n * @title TaskRegistry\n * @author leonprou\n * @notice A smart contract that stores information about the tasks issued for the agent service providers.\n */\ncontract TaskRegistry is Ownable, IProposalStruct {\n\n enum TaskStatus { CREATED, ASSIGNED, COMPLETED, FAILED }\n\n struct TaskData {\n uint256 id;\n string prompt;\n address issuer;\n TaskStatus status;\n address assignee;\n uint256 proposalId;\n }\n \n mapping(uint256 => TaskData) public tasks;\n mapping(address => uint256[]) public issuerTasks;\n uint256 private nextTaskId;\n AgentsRegistry public agentRegistry;\n constructor(AgentsRegistry _agentRegistry) Ownable(msg.sender) {\n agentRegistry = _agentRegistry;\n }\n \n event TaskCreated(address indexed issuer, address indexed assignee, uint256 taskId, uint256 proposalId, string prompt);\n event TaskStatusChanged(uint256 indexed taskId, TaskStatus status);\n event TaskAssigned(uint256 indexed taskId, address indexed agent);\n event ProposalApproved(uint256 indexed taskId, Proposal proposal);\n event TaskCompleted(uint256 indexed taskId, string result);\n\n /**\n * @dev Creates a new task with the given prompt and task type.\n * @param prompt The description or prompt of the task.\n * @return taskId The ID of the newly created task.\n */\n function createTask(\n string memory prompt,\n uint256 proposalId\n ) external payable returns (TaskData memory) {\n Proposal memory proposal = agentRegistry.getProposal(proposalId);\n require(proposal.price == msg.value, \"Invalid price\");\n\n nextTaskId++;\n TaskData storage task = tasks[nextTaskId];\n task.id = nextTaskId;\n task.prompt = prompt;\n task.issuer = msg.sender;\n task.proposalId = proposalId;\n task.assignee = proposal.issuer;\n issuerTasks[msg.sender].push(nextTaskId);\n task.status = TaskStatus.ASSIGNED;\n emit TaskCreated(msg.sender, proposal.issuer, nextTaskId, proposal.proposalId, prompt);\n return task;\n }\n\n /**\n * @dev Completes a task with the given result.\n * @param taskId The ID of the task.\n * @param result The result or output of the completed task.\n */\n function completeTask(uint256 taskId, string memory result) external {\n TaskData storage task = tasks[taskId];\n require(msg.sender == task.assignee, \"Not authorized\");\n require(task.status == TaskStatus.ASSIGNED, \"Invalid task status\");\n\n task.status = TaskStatus.COMPLETED;\n Proposal memory proposal = agentRegistry.getProposal(task.proposalId);\n \n TransferHelper.safeTransferETH(proposal.issuer, proposal.price);\n\n emit TaskStatusChanged(taskId, task.status);\n emit TaskCompleted(taskId, result);\n }\n\n\n function getTasksByIssuer(address issuer) external view returns (uint256[] memory) {\n return issuerTasks[issuer];\n }\n\n function getTask(uint256 taskId) external view returns (TaskData memory) {\n return tasks[taskId];\n }\n\n function getStatus(uint256 taskId) external view returns (TaskStatus) {\n return tasks[taskId].status;\n }\n \n function getAssignee(uint256 taskId) external view returns (address) {\n return tasks[taskId].assignee;\n }\n}\n" - } - }, - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "output": { - "sources": { - "@openzeppelin/contracts/access/Ownable.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", - "exportedSymbols": { - "Context": [ - 177 - ], - "Ownable": [ - 147 - ] - }, - "id": 148, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "102:24:0" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/Context.sol", - "file": "../utils/Context.sol", - "id": 3, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 148, - "sourceUnit": 178, - "src": "128:45:0", - "symbolAliases": [ - { - "foreign": { - "id": 2, - "name": "Context", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "136:7:0", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [ - { - "baseName": { - "id": 5, - "name": "Context", - "nameLocations": [ - "692:7:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 177, - "src": "692:7:0" - }, - "id": 6, - "nodeType": "InheritanceSpecifier", - "src": "692:7:0" - } - ], - "canonicalName": "Ownable", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 4, - "nodeType": "StructuredDocumentation", - "src": "175:487:0", - "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n The initial owner is set to the address provided by the deployer. This can\n later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." - }, - "fullyImplemented": true, - "id": 147, - "linearizedBaseContracts": [ - 147, - 177 - ], - "name": "Ownable", - "nameLocation": "681:7:0", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 8, - "mutability": "mutable", - "name": "_owner", - "nameLocation": "722:6:0", - "nodeType": "VariableDeclaration", - "scope": 147, - "src": "706:22:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "706:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "private" - }, - { - "documentation": { - "id": 9, - "nodeType": "StructuredDocumentation", - "src": "735:85:0", - "text": " @dev The caller account is not authorized to perform an operation." - }, - "errorSelector": "118cdaa7", - "id": 13, - "name": "OwnableUnauthorizedAccount", - "nameLocation": "831:26:0", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 12, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11, - "mutability": "mutable", - "name": "account", - "nameLocation": "866:7:0", - "nodeType": "VariableDeclaration", - "scope": 13, - "src": "858:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "858:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "857:17:0" - }, - "src": "825:50:0" - }, - { - "documentation": { - "id": 14, - "nodeType": "StructuredDocumentation", - "src": "881:82:0", - "text": " @dev The owner is not a valid owner account. (eg. `address(0)`)" - }, - "errorSelector": "1e4fbdf7", - "id": 18, - "name": "OwnableInvalidOwner", - "nameLocation": "974:19:0", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 17, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1002:5:0", - "nodeType": "VariableDeclaration", - "scope": 18, - "src": "994:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 15, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "994:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "993:15:0" - }, - "src": "968:41:0" - }, - { - "anonymous": false, - "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "id": 24, - "name": "OwnershipTransferred", - "nameLocation": "1021:20:0", - "nodeType": "EventDefinition", - "parameters": { - "id": 23, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "indexed": true, - "mutability": "mutable", - "name": "previousOwner", - "nameLocation": "1058:13:0", - "nodeType": "VariableDeclaration", - "scope": 24, - "src": "1042:29:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 19, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1042:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 22, - "indexed": true, - "mutability": "mutable", - "name": "newOwner", - "nameLocation": "1089:8:0", - "nodeType": "VariableDeclaration", - "scope": 24, - "src": "1073:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1073:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1041:57:0" - }, - "src": "1015:84:0" - }, - { - "body": { - "id": 49, - "nodeType": "Block", - "src": "1259:153:0", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 35, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 30, - "name": "initialOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27, - "src": "1273:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 33, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1297:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 32, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1289:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 31, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1289:7:0", - "typeDescriptions": {} - } - }, - "id": 34, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1289:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1273:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 44, - "nodeType": "IfStatement", - "src": "1269:95:0", - "trueBody": { - "id": 43, - "nodeType": "Block", - "src": "1301:63:0", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30", - "id": 39, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1350:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 38, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1342:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1342:7:0", - "typeDescriptions": {} - } - }, - "id": 40, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1342:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 36, - "name": "OwnableInvalidOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18, - "src": "1322:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" - } - }, - "id": 41, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1322:31:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 42, - "nodeType": "RevertStatement", - "src": "1315:38:0" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 46, - "name": "initialOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27, - "src": "1392:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 45, - "name": "_transferOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 146, - "src": "1373:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 47, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1373:32:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 48, - "nodeType": "ExpressionStatement", - "src": "1373:32:0" - } - ] - }, - "documentation": { - "id": 25, - "nodeType": "StructuredDocumentation", - "src": "1105:115:0", - "text": " @dev Initializes the contract setting the address provided by the deployer as the initial owner." - }, - "id": 50, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 28, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 27, - "mutability": "mutable", - "name": "initialOwner", - "nameLocation": "1245:12:0", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1237:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 26, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1237:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1236:22:0" - }, - "returnParameters": { - "id": 29, - "nodeType": "ParameterList", - "parameters": [], - "src": "1259:0:0" - }, - "scope": 147, - "src": "1225:187:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 57, - "nodeType": "Block", - "src": "1521:41:0", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 53, - "name": "_checkOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "1531:11:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 54, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1531:13:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 55, - "nodeType": "ExpressionStatement", - "src": "1531:13:0" - }, - { - "id": 56, - "nodeType": "PlaceholderStatement", - "src": "1554:1:0" - } - ] - }, - "documentation": { - "id": 51, - "nodeType": "StructuredDocumentation", - "src": "1418:77:0", - "text": " @dev Throws if called by any account other than the owner." - }, - "id": 58, - "name": "onlyOwner", - "nameLocation": "1509:9:0", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 52, - "nodeType": "ParameterList", - "parameters": [], - "src": "1518:2:0" - }, - "src": "1500:62:0", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 66, - "nodeType": "Block", - "src": "1693:30:0", - "statements": [ - { - "expression": { - "id": 64, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "1710:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 63, - "id": 65, - "nodeType": "Return", - "src": "1703:13:0" - } - ] - }, - "documentation": { - "id": 59, - "nodeType": "StructuredDocumentation", - "src": "1568:65:0", - "text": " @dev Returns the address of the current owner." - }, - "functionSelector": "8da5cb5b", - "id": 67, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "owner", - "nameLocation": "1647:5:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [], - "src": "1652:2:0" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 67, - "src": "1684:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1684:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1683:9:0" - }, - "scope": 147, - "src": "1638:85:0", - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "body": { - "id": 83, - "nodeType": "Block", - "src": "1841:117:0", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 75, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 71, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "1855:5:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 72, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1855:7:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 73, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 159, - "src": "1866:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 74, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1866:12:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1855:23:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 82, - "nodeType": "IfStatement", - "src": "1851:101:0", - "trueBody": { - "id": 81, - "nodeType": "Block", - "src": "1880:72:0", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 77, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 159, - "src": "1928:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 78, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1928:12:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 76, - "name": "OwnableUnauthorizedAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13, - "src": "1901:26:0", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" - } - }, - "id": 79, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1901:40:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 80, - "nodeType": "RevertStatement", - "src": "1894:47:0" - } - ] - } - } - ] - }, - "documentation": { - "id": 68, - "nodeType": "StructuredDocumentation", - "src": "1729:62:0", - "text": " @dev Throws if the sender is not the owner." - }, - "id": 84, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOwner", - "nameLocation": "1805:11:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 69, - "nodeType": "ParameterList", - "parameters": [], - "src": "1816:2:0" - }, - "returnParameters": { - "id": 70, - "nodeType": "ParameterList", - "parameters": [], - "src": "1841:0:0" - }, - "scope": 147, - "src": "1796:162:0", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 97, - "nodeType": "Block", - "src": "2347:47:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30", - "id": 93, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2384:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 92, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2376:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 91, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2376:7:0", - "typeDescriptions": {} - } - }, - "id": 94, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2376:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 90, - "name": "_transferOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 146, - "src": "2357:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 95, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2357:30:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 96, - "nodeType": "ExpressionStatement", - "src": "2357:30:0" - } - ] - }, - "documentation": { - "id": 85, - "nodeType": "StructuredDocumentation", - "src": "1964:324:0", - "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner." - }, - "functionSelector": "715018a6", - "id": 98, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 88, - "kind": "modifierInvocation", - "modifierName": { - "id": 87, - "name": "onlyOwner", - "nameLocations": [ - "2337:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 58, - "src": "2337:9:0" - }, - "nodeType": "ModifierInvocation", - "src": "2337:9:0" - } - ], - "name": "renounceOwnership", - "nameLocation": "2302:17:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 86, - "nodeType": "ParameterList", - "parameters": [], - "src": "2319:2:0" - }, - "returnParameters": { - "id": 89, - "nodeType": "ParameterList", - "parameters": [], - "src": "2347:0:0" - }, - "scope": 147, - "src": "2293:101:0", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "body": { - "id": 125, - "nodeType": "Block", - "src": "2613:145:0", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 106, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "2627:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 109, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2647:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 108, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2639:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 107, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2639:7:0", - "typeDescriptions": {} - } - }, - "id": 110, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2639:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2627:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 120, - "nodeType": "IfStatement", - "src": "2623:91:0", - "trueBody": { - "id": 119, - "nodeType": "Block", - "src": "2651:63:0", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30", - "id": 115, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2700:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2692:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2692:7:0", - "typeDescriptions": {} - } - }, - "id": 116, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2692:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 112, - "name": "OwnableInvalidOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18, - "src": "2672:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" - } - }, - "id": 117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2672:31:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 118, - "nodeType": "RevertStatement", - "src": "2665:38:0" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 122, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "2742:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 121, - "name": "_transferOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 146, - "src": "2723:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2723:28:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 124, - "nodeType": "ExpressionStatement", - "src": "2723:28:0" - } - ] - }, - "documentation": { - "id": 99, - "nodeType": "StructuredDocumentation", - "src": "2400:138:0", - "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." - }, - "functionSelector": "f2fde38b", - "id": 126, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 104, - "kind": "modifierInvocation", - "modifierName": { - "id": 103, - "name": "onlyOwner", - "nameLocations": [ - "2603:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 58, - "src": "2603:9:0" - }, - "nodeType": "ModifierInvocation", - "src": "2603:9:0" - } - ], - "name": "transferOwnership", - "nameLocation": "2552:17:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 101, - "mutability": "mutable", - "name": "newOwner", - "nameLocation": "2578:8:0", - "nodeType": "VariableDeclaration", - "scope": 126, - "src": "2570:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 100, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2570:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2569:18:0" - }, - "returnParameters": { - "id": 105, - "nodeType": "ParameterList", - "parameters": [], - "src": "2613:0:0" - }, - "scope": 147, - "src": "2543:215:0", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "body": { - "id": 145, - "nodeType": "Block", - "src": "2975:124:0", - "statements": [ - { - "assignments": [ - 133 - ], - "declarations": [ - { - "constant": false, - "id": 133, - "mutability": "mutable", - "name": "oldOwner", - "nameLocation": "2993:8:0", - "nodeType": "VariableDeclaration", - "scope": 145, - "src": "2985:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 132, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2985:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 135, - "initialValue": { - "id": 134, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "3004:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2985:25:0" - }, - { - "expression": { - "id": 138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 136, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "3020:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 137, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 129, - "src": "3029:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3020:17:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 139, - "nodeType": "ExpressionStatement", - "src": "3020:17:0" - }, - { - "eventCall": { - "arguments": [ - { - "id": 141, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 133, - "src": "3073:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 142, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 129, - "src": "3083:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 140, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "3052:20:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3052:40:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 144, - "nodeType": "EmitStatement", - "src": "3047:45:0" - } - ] - }, - "documentation": { - "id": 127, - "nodeType": "StructuredDocumentation", - "src": "2764:143:0", - "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction." - }, - "id": 146, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferOwnership", - "nameLocation": "2921:18:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 129, - "mutability": "mutable", - "name": "newOwner", - "nameLocation": "2948:8:0", - "nodeType": "VariableDeclaration", - "scope": 146, - "src": "2940:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2940:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2939:18:0" - }, - "returnParameters": { - "id": 131, - "nodeType": "ParameterList", - "parameters": [], - "src": "2975:0:0" - }, - "scope": 147, - "src": "2912:187:0", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - } - ], - "scope": 148, - "src": "663:2438:0", - "usedErrors": [ - 13, - 18 - ], - "usedEvents": [ - 24 - ] - } - ], - "src": "102:3000:0" - }, - "id": 0 - }, - "@openzeppelin/contracts/utils/Context.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/Context.sol", - "exportedSymbols": { - "Context": [ - 177 - ] - }, - "id": 178, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 149, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "101:24:1" - }, - { - "abstract": true, - "baseContracts": [], - "canonicalName": "Context", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 150, - "nodeType": "StructuredDocumentation", - "src": "127:496:1", - "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." - }, - "fullyImplemented": true, - "id": 177, - "linearizedBaseContracts": [ - 177 - ], - "name": "Context", - "nameLocation": "642:7:1", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 158, - "nodeType": "Block", - "src": "718:34:1", - "statements": [ - { - "expression": { - "expression": { - "id": 155, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "735:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "739:6:1", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "735:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 154, - "id": 157, - "nodeType": "Return", - "src": "728:17:1" - } - ] - }, - "id": 159, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_msgSender", - "nameLocation": "665:10:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 151, - "nodeType": "ParameterList", - "parameters": [], - "src": "675:2:1" - }, - "returnParameters": { - "id": 154, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 153, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 159, - "src": "709:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 152, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "709:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "708:9:1" - }, - "scope": 177, - "src": "656:96:1", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 167, - "nodeType": "Block", - "src": "825:32:1", - "statements": [ - { - "expression": { - "expression": { - "id": 164, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "842:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "846:4:1", - "memberName": "data", - "nodeType": "MemberAccess", - "src": "842:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "functionReturnParameters": 163, - "id": 166, - "nodeType": "Return", - "src": "835:15:1" - } - ] - }, - "id": 168, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_msgData", - "nameLocation": "767:8:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 160, - "nodeType": "ParameterList", - "parameters": [], - "src": "775:2:1" - }, - "returnParameters": { - "id": 163, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 162, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 168, - "src": "809:14:1", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 161, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "809:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "808:16:1" - }, - "scope": 177, - "src": "758:99:1", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 175, - "nodeType": "Block", - "src": "935:25:1", - "statements": [ - { - "expression": { - "hexValue": "30", - "id": 173, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "952:1:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 172, - "id": 174, - "nodeType": "Return", - "src": "945:8:1" - } - ] - }, - "id": 176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_contextSuffixLength", - "nameLocation": "872:20:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 169, - "nodeType": "ParameterList", - "parameters": [], - "src": "892:2:1" - }, - "returnParameters": { - "id": 172, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 171, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 176, - "src": "926:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 170, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "926:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "925:9:1" - }, - "scope": 177, - "src": "863:97:1", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - } - ], - "scope": 178, - "src": "624:338:1", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "101:862:1" - }, - "id": 1 - }, - "contracts/AgentsRegistry.sol": { - "ast": { - "absolutePath": "contracts/AgentsRegistry.sol", - "exportedSymbols": { - "AgentsRegistry": [ - 506 - ], - "Context": [ - 177 - ], - "IProposalStruct": [ - 1015 - ], - "Ownable": [ - 147 - ], - "ServiceRegistry": [ - 682 - ] - }, - "id": 507, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 179, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "32:24:2" - }, - { - "absolutePath": "contracts/ServiceRegistry.sol", - "file": "./ServiceRegistry.sol", - "id": 180, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 507, - "sourceUnit": 683, - "src": "58:31:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", - "file": "@openzeppelin/contracts/access/Ownable.sol", - "id": 181, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 507, - "sourceUnit": 148, - "src": "90:52:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/interfaces/IProposalStruct.sol", - "file": "./interfaces/IProposalStruct.sol", - "id": 182, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 507, - "sourceUnit": 1016, - "src": "143:42:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 184, - "name": "Ownable", - "nameLocations": [ - "389:7:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 147, - "src": "389:7:2" - }, - "id": 185, - "nodeType": "InheritanceSpecifier", - "src": "389:7:2" - }, - { - "baseName": { - "id": 186, - "name": "IProposalStruct", - "nameLocations": [ - "398:15:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1015, - "src": "398:15:2" - }, - "id": 187, - "nodeType": "InheritanceSpecifier", - "src": "398:15:2" - } - ], - "canonicalName": "AgentsRegistry", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 183, - "nodeType": "StructuredDocumentation", - "src": "188:173:2", - "text": " @title AgentsRegistry\n @author leonprou\n @notice A smart contract that stores information about the agents, and the services proposals provided by the agents." - }, - "fullyImplemented": true, - "id": 506, - "linearizedBaseContracts": [ - 506, - 1015, - 147, - 177 - ], - "name": "AgentsRegistry", - "nameLocation": "371:14:2", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "AgentsRegistry.AgentData", - "id": 204, - "members": [ - { - "constant": false, - "id": 189, - "mutability": "mutable", - "name": "name", - "nameLocation": "455:4:2", - "nodeType": "VariableDeclaration", - "scope": 204, - "src": "448:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 188, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "448:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 191, - "mutability": "mutable", - "name": "agentUri", - "nameLocation": "476:8:2", - "nodeType": "VariableDeclaration", - "scope": 204, - "src": "469:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 190, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "469:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 193, - "mutability": "mutable", - "name": "owner", - "nameLocation": "502:5:2", - "nodeType": "VariableDeclaration", - "scope": 204, - "src": "494:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 192, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "494:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 195, - "mutability": "mutable", - "name": "agent", - "nameLocation": "525:5:2", - "nodeType": "VariableDeclaration", - "scope": 204, - "src": "517:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 194, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "517:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 197, - "mutability": "mutable", - "name": "reputation", - "nameLocation": "548:10:2", - "nodeType": "VariableDeclaration", - "scope": 204, - "src": "540:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "540:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 199, - "mutability": "mutable", - "name": "isRegistered", - "nameLocation": "573:12:2", - "nodeType": "VariableDeclaration", - "scope": 204, - "src": "568:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 198, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "568:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 203, - "mutability": "mutable", - "name": "proposals", - "nameLocation": "606:9:2", - "nodeType": "VariableDeclaration", - "scope": 204, - "src": "595:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Proposal_$1014_storage_$dyn_storage_ptr", - "typeString": "struct IProposalStruct.Proposal[]" - }, - "typeName": { - "baseType": { - "id": 201, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 200, - "name": "Proposal", - "nameLocations": [ - "595:8:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1014, - "src": "595:8:2" - }, - "referencedDeclaration": 1014, - "src": "595:8:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_storage_ptr", - "typeString": "struct IProposalStruct.Proposal" - } - }, - "id": 202, - "nodeType": "ArrayTypeName", - "src": "595:10:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Proposal_$1014_storage_$dyn_storage_ptr", - "typeString": "struct IProposalStruct.Proposal[]" - } - }, - "visibility": "internal" - } - ], - "name": "AgentData", - "nameLocation": "428:9:2", - "nodeType": "StructDefinition", - "scope": 506, - "src": "421:201:2", - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "cbcf252a", - "id": 207, - "mutability": "mutable", - "name": "serviceRegistry", - "nameLocation": "651:15:2", - "nodeType": "VariableDeclaration", - "scope": 506, - "src": "628:38:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", - "typeString": "contract ServiceRegistry" - }, - "typeName": { - "id": 206, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 205, - "name": "ServiceRegistry", - "nameLocations": [ - "628:15:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 682, - "src": "628:15:2" - }, - "referencedDeclaration": 682, - "src": "628:15:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", - "typeString": "contract ServiceRegistry" - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "fd66091e", - "id": 212, - "mutability": "mutable", - "name": "agents", - "nameLocation": "709:6:2", - "nodeType": "VariableDeclaration", - "scope": 506, - "src": "672:43:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData)" - }, - "typeName": { - "id": 211, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 208, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "680:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "672:29:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 210, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 209, - "name": "AgentData", - "nameLocations": [ - "691:9:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 204, - "src": "691:9:2" - }, - "referencedDeclaration": 204, - "src": "691:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData" - } - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "013cf08b", - "id": 216, - "mutability": "mutable", - "name": "proposals", - "nameLocation": "739:9:2", - "nodeType": "VariableDeclaration", - "scope": 506, - "src": "721:27:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Proposal_$1014_storage_$dyn_storage", - "typeString": "struct IProposalStruct.Proposal[]" - }, - "typeName": { - "baseType": { - "id": 214, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 213, - "name": "Proposal", - "nameLocations": [ - "721:8:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1014, - "src": "721:8:2" - }, - "referencedDeclaration": 1014, - "src": "721:8:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_storage_ptr", - "typeString": "struct IProposalStruct.Proposal" - } - }, - "id": 215, - "nodeType": "ArrayTypeName", - "src": "721:10:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Proposal_$1014_storage_$dyn_storage_ptr", - "typeString": "struct IProposalStruct.Proposal[]" - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "2ab09d14", - "id": 218, - "mutability": "mutable", - "name": "nextProposalId", - "nameLocation": "769:14:2", - "nodeType": "VariableDeclaration", - "scope": 506, - "src": "754:29:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 217, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "754:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "body": { - "id": 231, - "nodeType": "Block", - "src": "829:87:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "baseExpression": { - "id": 223, - "name": "agents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "847:6:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" - } - }, - "id": 225, - "indexExpression": { - "id": 224, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "854:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "847:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage", - "typeString": "struct AgentsRegistry.AgentData storage ref" - } - }, - "id": 226, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "861:12:2", - "memberName": "isRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 199, - "src": "847:26:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "4167656e74206e6f742072656769737465726564", - "id": 227, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "875:22:2", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6b24a63f053c9f60b33a6142346432678adff778fb93a8ecec9013d5a898e395", - "typeString": "literal_string \"Agent not registered\"" - }, - "value": "Agent not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_6b24a63f053c9f60b33a6142346432678adff778fb93a8ecec9013d5a898e395", - "typeString": "literal_string \"Agent not registered\"" - } - ], - "id": 222, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "839:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "839:59:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 229, - "nodeType": "ExpressionStatement", - "src": "839:59:2" - }, - { - "id": 230, - "nodeType": "PlaceholderStatement", - "src": "908:1:2" - } - ] - }, - "id": 232, - "name": "onlyRegistered", - "nameLocation": "799:14:2", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 221, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 220, - "mutability": "mutable", - "name": "agent", - "nameLocation": "822:5:2", - "nodeType": "VariableDeclaration", - "scope": 232, - "src": "814:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 219, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "814:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "813:15:2" - }, - "src": "790:126:2", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 246, - "nodeType": "Block", - "src": "988:51:2", - "statements": [ - { - "expression": { - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 242, - "name": "serviceRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "998:15:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", - "typeString": "contract ServiceRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 243, - "name": "_serviceRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "1016:16:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", - "typeString": "contract ServiceRegistry" - } - }, - "src": "998:34:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", - "typeString": "contract ServiceRegistry" - } - }, - "id": 245, - "nodeType": "ExpressionStatement", - "src": "998:34:2" - } - ] - }, - "id": 247, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "expression": { - "id": 238, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "976:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 239, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "980:6:2", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "976:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 240, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 237, - "name": "Ownable", - "nameLocations": [ - "968:7:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 147, - "src": "968:7:2" - }, - "nodeType": "ModifierInvocation", - "src": "968:19:2" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 236, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 235, - "mutability": "mutable", - "name": "_serviceRegistry", - "nameLocation": "950:16:2", - "nodeType": "VariableDeclaration", - "scope": 247, - "src": "934:32:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", - "typeString": "contract ServiceRegistry" - }, - "typeName": { - "id": 234, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 233, - "name": "ServiceRegistry", - "nameLocations": [ - "934:15:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 682, - "src": "934:15:2" - }, - "referencedDeclaration": 682, - "src": "934:15:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", - "typeString": "contract ServiceRegistry" - } - }, - "visibility": "internal" - } - ], - "src": "933:34:2" - }, - "returnParameters": { - "id": 241, - "nodeType": "ParameterList", - "parameters": [], - "src": "988:0:2" - }, - "scope": 506, - "src": "922:117:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "anonymous": false, - "eventSelector": "2a562efb52e7cec209321f57200606311256da6d2a1b19d44db7837a3209de28", - "id": 257, - "name": "AgentRegistered", - "nameLocation": "1051:15:2", - "nodeType": "EventDefinition", - "parameters": { - "id": 256, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 249, - "indexed": true, - "mutability": "mutable", - "name": "agent", - "nameLocation": "1083:5:2", - "nodeType": "VariableDeclaration", - "scope": 257, - "src": "1067:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 248, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1067:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 251, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1106:5:2", - "nodeType": "VariableDeclaration", - "scope": 257, - "src": "1090:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 250, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1090:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "indexed": false, - "mutability": "mutable", - "name": "name", - "nameLocation": "1120:4:2", - "nodeType": "VariableDeclaration", - "scope": 257, - "src": "1113:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 252, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1113:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 255, - "indexed": false, - "mutability": "mutable", - "name": "agentUri", - "nameLocation": "1133:8:2", - "nodeType": "VariableDeclaration", - "scope": 257, - "src": "1126:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 254, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1126:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1066:76:2" - }, - "src": "1045:98:2" - }, - { - "anonymous": false, - "eventSelector": "fc577563f1b9a0461e24abef1e1fcc0d33d3d881f20b5df6dda59de4aae2c821", - "id": 263, - "name": "ReputationUpdated", - "nameLocation": "1154:17:2", - "nodeType": "EventDefinition", - "parameters": { - "id": 262, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 259, - "indexed": true, - "mutability": "mutable", - "name": "agent", - "nameLocation": "1188:5:2", - "nodeType": "VariableDeclaration", - "scope": 263, - "src": "1172:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 258, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1172:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 261, - "indexed": false, - "mutability": "mutable", - "name": "newReputation", - "nameLocation": "1203:13:2", - "nodeType": "VariableDeclaration", - "scope": 263, - "src": "1195:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 260, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1195:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1171:46:2" - }, - "src": "1148:70:2" - }, - { - "anonymous": false, - "eventSelector": "4a7780b7f79e16baaacac40fb37edda816d999f4bb8a380012a27164eab18387", - "id": 269, - "name": "ServiceAdded", - "nameLocation": "1229:12:2", - "nodeType": "EventDefinition", - "parameters": { - "id": 268, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 265, - "indexed": true, - "mutability": "mutable", - "name": "agent", - "nameLocation": "1258:5:2", - "nodeType": "VariableDeclaration", - "scope": 269, - "src": "1242:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 264, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1242:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 267, - "indexed": false, - "mutability": "mutable", - "name": "name", - "nameLocation": "1273:4:2", - "nodeType": "VariableDeclaration", - "scope": 269, - "src": "1265:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 266, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1265:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1241:37:2" - }, - "src": "1223:56:2" - }, - { - "anonymous": false, - "eventSelector": "e194e0bc2279adb185c748ae57db10fe2ef1005a1b5646f96235a881c88ddb79", - "id": 279, - "name": "ProposalAdded", - "nameLocation": "1290:13:2", - "nodeType": "EventDefinition", - "parameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 271, - "indexed": true, - "mutability": "mutable", - "name": "agent", - "nameLocation": "1320:5:2", - "nodeType": "VariableDeclaration", - "scope": 279, - "src": "1304:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 270, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1304:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 273, - "indexed": false, - "mutability": "mutable", - "name": "proposalId", - "nameLocation": "1335:10:2", - "nodeType": "VariableDeclaration", - "scope": 279, - "src": "1327:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 272, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1327:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 275, - "indexed": false, - "mutability": "mutable", - "name": "name", - "nameLocation": "1354:4:2", - "nodeType": "VariableDeclaration", - "scope": 279, - "src": "1347:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 274, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1347:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 277, - "indexed": false, - "mutability": "mutable", - "name": "price", - "nameLocation": "1368:5:2", - "nodeType": "VariableDeclaration", - "scope": 279, - "src": "1360:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 276, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1360:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1303:71:2" - }, - "src": "1284:91:2" - }, - { - "body": { - "id": 401, - "nodeType": "Block", - "src": "2189:820:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2207:27:2", - "subExpression": { - "expression": { - "baseExpression": { - "id": 296, - "name": "agents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "2208:6:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" - } - }, - "id": 298, - "indexExpression": { - "id": 297, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "2215:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2208:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage", - "typeString": "struct AgentsRegistry.AgentData storage ref" - } - }, - "id": 299, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2222:12:2", - "memberName": "isRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 199, - "src": "2208:26:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "4167656e7420616c72656164792072656769737465726564", - "id": 301, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2236:26:2", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3c17f52d7f382f39131bc893c7e27e69aa71bee31c68e2de3649b59b8bfebc2b", - "typeString": "literal_string \"Agent already registered\"" - }, - "value": "Agent already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3c17f52d7f382f39131bc893c7e27e69aa71bee31c68e2de3649b59b8bfebc2b", - "typeString": "literal_string \"Agent already registered\"" - } - ], - "id": 295, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2199:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2199:64:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 303, - "nodeType": "ExpressionStatement", - "src": "2199:64:2" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 307, - "name": "serviceName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 288, - "src": "2317:11:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "id": 305, - "name": "serviceRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "2281:15:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", - "typeString": "contract ServiceRegistry" - } - }, - "id": 306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2297:19:2", - "memberName": "isServiceRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 645, - "src": "2281:35:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_bool_$", - "typeString": "function (string memory) view external returns (bool)" - } - }, - "id": 308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2281:48:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "53657276696365206e6f742072656769737465726564", - "id": 309, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2331:24:2", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6", - "typeString": "literal_string \"Service not registered\"" - }, - "value": "Service not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6", - "typeString": "literal_string \"Service not registered\"" - } - ], - "id": 304, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2273:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2273:83:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 311, - "nodeType": "ExpressionStatement", - "src": "2273:83:2" - }, - { - "assignments": [ - 314 - ], - "declarations": [ - { - "constant": false, - "id": 314, - "mutability": "mutable", - "name": "agentData", - "nameLocation": "2393:9:2", - "nodeType": "VariableDeclaration", - "scope": 401, - "src": "2375:27:2", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData" - }, - "typeName": { - "id": 313, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 312, - "name": "AgentData", - "nameLocations": [ - "2375:9:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 204, - "src": "2375:9:2" - }, - "referencedDeclaration": 204, - "src": "2375:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData" - } - }, - "visibility": "internal" - } - ], - "id": 318, - "initialValue": { - "baseExpression": { - "id": 315, - "name": "agents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "2405:6:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" - } - }, - "id": 317, - "indexExpression": { - "id": 316, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "2412:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2405:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage", - "typeString": "struct AgentsRegistry.AgentData storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2375:43:2" - }, - { - "expression": { - "id": 323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 319, - "name": "agentData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "2428:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 321, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2438:4:2", - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 189, - "src": "2428:14:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 322, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 284, - "src": "2445:4:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "2428:21:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 324, - "nodeType": "ExpressionStatement", - "src": "2428:21:2" - }, - { - "expression": { - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 325, - "name": "agentData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "2459:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 327, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2469:8:2", - "memberName": "agentUri", - "nodeType": "MemberAccess", - "referencedDeclaration": 191, - "src": "2459:18:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 328, - "name": "agentUri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 286, - "src": "2480:8:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "2459:29:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 330, - "nodeType": "ExpressionStatement", - "src": "2459:29:2" - }, - { - "expression": { - "id": 336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 331, - "name": "agentData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "2498:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 333, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2508:5:2", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 193, - "src": "2498:15:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 334, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2516:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2520:6:2", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2516:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2498:28:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 337, - "nodeType": "ExpressionStatement", - "src": "2498:28:2" - }, - { - "expression": { - "id": 342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 338, - "name": "agentData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "2536:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 340, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2546:5:2", - "memberName": "agent", - "nodeType": "MemberAccess", - "referencedDeclaration": 195, - "src": "2536:15:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 341, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "2554:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2536:23:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 343, - "nodeType": "ExpressionStatement", - "src": "2536:23:2" - }, - { - "expression": { - "id": 348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 344, - "name": "agentData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "2569:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 346, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2579:10:2", - "memberName": "reputation", - "nodeType": "MemberAccess", - "referencedDeclaration": 197, - "src": "2569:20:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "30", - "id": 347, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2592:1:2", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2569:24:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 349, - "nodeType": "ExpressionStatement", - "src": "2569:24:2" - }, - { - "expression": { - "id": 354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 350, - "name": "agentData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "2603:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 352, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2613:12:2", - "memberName": "isRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 199, - "src": "2603:22:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2628:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "2603:29:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 355, - "nodeType": "ExpressionStatement", - "src": "2603:29:2" - }, - { - "assignments": [ - 358 - ], - "declarations": [ - { - "constant": false, - "id": 358, - "mutability": "mutable", - "name": "proposal", - "nameLocation": "2658:8:2", - "nodeType": "VariableDeclaration", - "scope": 401, - "src": "2642:24:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal" - }, - "typeName": { - "id": 357, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 356, - "name": "Proposal", - "nameLocations": [ - "2642:8:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1014, - "src": "2642:8:2" - }, - "referencedDeclaration": 1014, - "src": "2642:8:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_storage_ptr", - "typeString": "struct IProposalStruct.Proposal" - } - }, - "visibility": "internal" - } - ], - "id": 365, - "initialValue": { - "arguments": [ - { - "id": 360, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "2678:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 361, - "name": "serviceName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 288, - "src": "2685:11:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 362, - "name": "servicePrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 290, - "src": "2698:12:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 363, - "name": "nextProposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 218, - "src": "2712:14:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 359, - "name": "Proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1014, - "src": "2669:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Proposal_$1014_storage_ptr_$", - "typeString": "type(struct IProposalStruct.Proposal storage pointer)" - } - }, - "id": 364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2669:58:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2642:85:2" - }, - { - "expression": { - "arguments": [ - { - "id": 371, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 358, - "src": "2762:8:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - ], - "expression": { - "expression": { - "id": 366, - "name": "agentData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "2737:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 369, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2747:9:2", - "memberName": "proposals", - "nodeType": "MemberAccess", - "referencedDeclaration": 203, - "src": "2737:19:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Proposal_$1014_storage_$dyn_storage", - "typeString": "struct IProposalStruct.Proposal storage ref[] storage ref" - } - }, - "id": 370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2757:4:2", - "memberName": "push", - "nodeType": "MemberAccess", - "src": "2737:24:2", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_Proposal_$1014_storage_$dyn_storage_ptr_$_t_struct$_Proposal_$1014_storage_$returns$__$attached_to$_t_array$_t_struct$_Proposal_$1014_storage_$dyn_storage_ptr_$", - "typeString": "function (struct IProposalStruct.Proposal storage ref[] storage pointer,struct IProposalStruct.Proposal storage ref)" - } - }, - "id": 372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2737:34:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 373, - "nodeType": "ExpressionStatement", - "src": "2737:34:2" - }, - { - "expression": { - "arguments": [ - { - "id": 377, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 358, - "src": "2796:8:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - ], - "expression": { - "id": 374, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 216, - "src": "2781:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Proposal_$1014_storage_$dyn_storage", - "typeString": "struct IProposalStruct.Proposal storage ref[] storage ref" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2791:4:2", - "memberName": "push", - "nodeType": "MemberAccess", - "src": "2781:14:2", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_Proposal_$1014_storage_$dyn_storage_ptr_$_t_struct$_Proposal_$1014_storage_$returns$__$attached_to$_t_array$_t_struct$_Proposal_$1014_storage_$dyn_storage_ptr_$", - "typeString": "function (struct IProposalStruct.Proposal storage ref[] storage pointer,struct IProposalStruct.Proposal storage ref)" - } - }, - "id": 378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2781:24:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 379, - "nodeType": "ExpressionStatement", - "src": "2781:24:2" - }, - { - "expression": { - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2816:16:2", - "subExpression": { - "id": 380, - "name": "nextProposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 218, - "src": "2816:14:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 382, - "nodeType": "ExpressionStatement", - "src": "2816:16:2" - }, - { - "eventCall": { - "arguments": [ - { - "id": 384, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "2863:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 385, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2870:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2874:6:2", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2870:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 387, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 284, - "src": "2882:4:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 388, - "name": "agentUri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 286, - "src": "2888:8:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 383, - "name": "AgentRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 257, - "src": "2847:15:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,string memory,string memory)" - } - }, - "id": 389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2847:50:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 390, - "nodeType": "EmitStatement", - "src": "2842:55:2" - }, - { - "eventCall": { - "arguments": [ - { - "id": 392, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "2926:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 393, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 358, - "src": "2933:8:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - }, - "id": 394, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2942:10:2", - "memberName": "proposalId", - "nodeType": "MemberAccess", - "referencedDeclaration": 1013, - "src": "2933:19:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 395, - "name": "serviceName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 288, - "src": "2954:11:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 396, - "name": "servicePrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 290, - "src": "2967:12:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 391, - "name": "ProposalAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "2912:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,string memory,uint256)" - } - }, - "id": 397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2912:68:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 398, - "nodeType": "EmitStatement", - "src": "2907:73:2" - }, - { - "expression": { - "hexValue": "74727565", - "id": 399, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2998:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 294, - "id": 400, - "nodeType": "Return", - "src": "2991:11:2" - } - ] - }, - "documentation": { - "id": 280, - "nodeType": "StructuredDocumentation", - "src": "1385:598:2", - "text": " @dev Registers a new agent with the given details.\n @param name The name of the agent.\n @param agentUri The URI pointing to the agent's metadata.\n @param agent The address of the agent.\n @param serviceName The name of the service.\n @param servicePrice The price of the service.\n @return true if the agent was registered successfully, false otherwise.\n Requirements:\n - The agent must not already be registered.\n - The caller will be set as the owner of the agent.\n Emits an {AgentRegistered} event." - }, - "functionSelector": "98366dbd", - "id": 402, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "registerAgent", - "nameLocation": "1997:13:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 291, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 282, - "mutability": "mutable", - "name": "agent", - "nameLocation": "2028:5:2", - "nodeType": "VariableDeclaration", - "scope": 402, - "src": "2020:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 281, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2020:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 284, - "mutability": "mutable", - "name": "name", - "nameLocation": "2057:4:2", - "nodeType": "VariableDeclaration", - "scope": 402, - "src": "2043:18:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 283, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2043:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 286, - "mutability": "mutable", - "name": "agentUri", - "nameLocation": "2085:8:2", - "nodeType": "VariableDeclaration", - "scope": 402, - "src": "2071:22:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 285, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2071:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 288, - "mutability": "mutable", - "name": "serviceName", - "nameLocation": "2117:11:2", - "nodeType": "VariableDeclaration", - "scope": 402, - "src": "2103:25:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 287, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2103:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 290, - "mutability": "mutable", - "name": "servicePrice", - "nameLocation": "2146:12:2", - "nodeType": "VariableDeclaration", - "scope": 402, - "src": "2138:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 289, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2138:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2010:154:2" - }, - "returnParameters": { - "id": 294, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 293, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 402, - "src": "2183:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 292, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2183:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "2182:6:2" - }, - "scope": 506, - "src": "1988:1021:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 426, - "nodeType": "Block", - "src": "3118:107:2", - "statements": [ - { - "expression": { - "id": 419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "baseExpression": { - "id": 414, - "name": "agents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "3128:6:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" - } - }, - "id": 416, - "indexExpression": { - "id": 415, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 404, - "src": "3135:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3128:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage", - "typeString": "struct AgentsRegistry.AgentData storage ref" - } - }, - "id": 417, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "3142:10:2", - "memberName": "reputation", - "nodeType": "MemberAccess", - "referencedDeclaration": 197, - "src": "3128:24:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 418, - "name": "_reputation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 406, - "src": "3155:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3128:38:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 420, - "nodeType": "ExpressionStatement", - "src": "3128:38:2" - }, - { - "eventCall": { - "arguments": [ - { - "id": 422, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 404, - "src": "3199:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 423, - "name": "_reputation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 406, - "src": "3206:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 421, - "name": "ReputationUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 263, - "src": "3181:17:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3181:37:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 425, - "nodeType": "EmitStatement", - "src": "3176:42:2" - } - ] - }, - "functionSelector": "f5c91a08", - "id": 427, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 409, - "kind": "modifierInvocation", - "modifierName": { - "id": 408, - "name": "onlyOwner", - "nameLocations": [ - "3086:9:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 58, - "src": "3086:9:2" - }, - "nodeType": "ModifierInvocation", - "src": "3086:9:2" - }, - { - "arguments": [ - { - "id": 411, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 404, - "src": "3111:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 412, - "kind": "modifierInvocation", - "modifierName": { - "id": 410, - "name": "onlyRegistered", - "nameLocations": [ - "3096:14:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 232, - "src": "3096:14:2" - }, - "nodeType": "ModifierInvocation", - "src": "3096:21:2" - } - ], - "name": "updateReputation", - "nameLocation": "3024:16:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 407, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 404, - "mutability": "mutable", - "name": "agent", - "nameLocation": "3049:5:2", - "nodeType": "VariableDeclaration", - "scope": 427, - "src": "3041:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 403, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3041:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 406, - "mutability": "mutable", - "name": "_reputation", - "nameLocation": "3064:11:2", - "nodeType": "VariableDeclaration", - "scope": 427, - "src": "3056:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 405, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3056:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3040:36:2" - }, - "returnParameters": { - "id": 413, - "nodeType": "ParameterList", - "parameters": [], - "src": "3118:0:2" - }, - "scope": 506, - "src": "3015:210:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 442, - "nodeType": "Block", - "src": "3323:48:2", - "statements": [ - { - "expression": { - "expression": { - "baseExpression": { - "id": 437, - "name": "agents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "3340:6:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" - } - }, - "id": 439, - "indexExpression": { - "id": 438, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 429, - "src": "3347:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3340:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage", - "typeString": "struct AgentsRegistry.AgentData storage ref" - } - }, - "id": 440, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3354:10:2", - "memberName": "reputation", - "nodeType": "MemberAccess", - "referencedDeclaration": 197, - "src": "3340:24:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 436, - "id": 441, - "nodeType": "Return", - "src": "3333:31:2" - } - ] - }, - "functionSelector": "9c89a0e2", - "id": 443, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 432, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 429, - "src": "3298:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 433, - "kind": "modifierInvocation", - "modifierName": { - "id": 431, - "name": "onlyRegistered", - "nameLocations": [ - "3283:14:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 232, - "src": "3283:14:2" - }, - "nodeType": "ModifierInvocation", - "src": "3283:21:2" - } - ], - "name": "getReputation", - "nameLocation": "3240:13:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 430, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 429, - "mutability": "mutable", - "name": "agent", - "nameLocation": "3262:5:2", - "nodeType": "VariableDeclaration", - "scope": 443, - "src": "3254:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 428, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3254:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3253:15:2" - }, - "returnParameters": { - "id": 436, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 435, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 443, - "src": "3314:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 434, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3314:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3313:9:2" - }, - "scope": 506, - "src": "3231:140:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 455, - "nodeType": "Block", - "src": "3443:50:2", - "statements": [ - { - "expression": { - "expression": { - "baseExpression": { - "id": 450, - "name": "agents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "3460:6:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" - } - }, - "id": 452, - "indexExpression": { - "id": 451, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 445, - "src": "3467:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3460:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage", - "typeString": "struct AgentsRegistry.AgentData storage ref" - } - }, - "id": 453, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3474:12:2", - "memberName": "isRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 199, - "src": "3460:26:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 449, - "id": 454, - "nodeType": "Return", - "src": "3453:33:2" - } - ] - }, - "functionSelector": "c3c5a547", - "id": 456, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRegistered", - "nameLocation": "3386:12:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 446, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 445, - "mutability": "mutable", - "name": "agent", - "nameLocation": "3407:5:2", - "nodeType": "VariableDeclaration", - "scope": 456, - "src": "3399:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 444, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3399:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3398:15:2" - }, - "returnParameters": { - "id": 449, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 448, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 456, - "src": "3437:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 447, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3437:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "3436:6:2" - }, - "scope": 506, - "src": "3377:116:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 491, - "nodeType": "Block", - "src": "4056:140:2", - "statements": [ - { - "assignments": [ - 474 - ], - "declarations": [ - { - "constant": false, - "id": 474, - "mutability": "mutable", - "name": "data", - "nameLocation": "4084:4:2", - "nodeType": "VariableDeclaration", - "scope": 491, - "src": "4066:22:2", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData" - }, - "typeName": { - "id": 473, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 472, - "name": "AgentData", - "nameLocations": [ - "4066:9:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 204, - "src": "4066:9:2" - }, - "referencedDeclaration": 204, - "src": "4066:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData" - } - }, - "visibility": "internal" - } - ], - "id": 478, - "initialValue": { - "baseExpression": { - "id": 475, - "name": "agents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "4091:6:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" - } - }, - "id": 477, - "indexExpression": { - "id": 476, - "name": "_agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 459, - "src": "4098:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4091:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage", - "typeString": "struct AgentsRegistry.AgentData storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4066:39:2" - }, - { - "expression": { - "components": [ - { - "expression": { - "id": 479, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "4123:4:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 480, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4128:4:2", - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 189, - "src": "4123:9:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "expression": { - "id": 481, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "4134:4:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 482, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4139:8:2", - "memberName": "agentUri", - "nodeType": "MemberAccess", - "referencedDeclaration": 191, - "src": "4134:13:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "expression": { - "id": 483, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "4149:4:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 484, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4154:5:2", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 193, - "src": "4149:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 485, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "4161:4:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 486, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4166:5:2", - "memberName": "agent", - "nodeType": "MemberAccess", - "referencedDeclaration": 195, - "src": "4161:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 487, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "4173:4:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 488, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4178:10:2", - "memberName": "reputation", - "nodeType": "MemberAccess", - "referencedDeclaration": 197, - "src": "4173:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 489, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4122:67:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_string_storage_$_t_string_storage_$_t_address_$_t_address_$_t_uint256_$", - "typeString": "tuple(string storage ref,string storage ref,address,address,uint256)" - } - }, - "functionReturnParameters": 471, - "id": 490, - "nodeType": "Return", - "src": "4115:74:2" - } - ] - }, - "documentation": { - "id": 457, - "nodeType": "StructuredDocumentation", - "src": "3499:351:2", - "text": " @dev get agent data\n @param _agent The address of the agent\n @return name The name of the agent\n @return agentUri The URI pointing to the agent's metadata\n @return owner The owner address of the agent\n @return agent The agent contract address\n @return reputation The reputation score of the agent" - }, - "functionSelector": "aac9f15a", - "id": 492, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAgentData", - "nameLocation": "3864:12:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 459, - "mutability": "mutable", - "name": "_agent", - "nameLocation": "3885:6:2", - "nodeType": "VariableDeclaration", - "scope": 492, - "src": "3877:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 458, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3877:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3876:16:2" - }, - "returnParameters": { - "id": 471, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 462, - "mutability": "mutable", - "name": "name", - "nameLocation": "3939:4:2", - "nodeType": "VariableDeclaration", - "scope": 492, - "src": "3925:18:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 461, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3925:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 464, - "mutability": "mutable", - "name": "agentUri", - "nameLocation": "3967:8:2", - "nodeType": "VariableDeclaration", - "scope": 492, - "src": "3953:22:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 463, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3953:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 466, - "mutability": "mutable", - "name": "owner", - "nameLocation": "3993:5:2", - "nodeType": "VariableDeclaration", - "scope": 492, - "src": "3985:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 465, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3985:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 468, - "mutability": "mutable", - "name": "agent", - "nameLocation": "4016:5:2", - "nodeType": "VariableDeclaration", - "scope": 492, - "src": "4008:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 467, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4008:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 470, - "mutability": "mutable", - "name": "reputation", - "nameLocation": "4039:10:2", - "nodeType": "VariableDeclaration", - "scope": 492, - "src": "4031:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 469, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4031:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3915:140:2" - }, - "scope": 506, - "src": "3855:341:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 504, - "nodeType": "Block", - "src": "4284:45:2", - "statements": [ - { - "expression": { - "baseExpression": { - "id": 500, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 216, - "src": "4301:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Proposal_$1014_storage_$dyn_storage", - "typeString": "struct IProposalStruct.Proposal storage ref[] storage ref" - } - }, - "id": 502, - "indexExpression": { - "id": 501, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 494, - "src": "4311:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4301:21:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_storage", - "typeString": "struct IProposalStruct.Proposal storage ref" - } - }, - "functionReturnParameters": 499, - "id": 503, - "nodeType": "Return", - "src": "4294:28:2" - } - ] - }, - "functionSelector": "c7f758a8", - "id": 505, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getProposal", - "nameLocation": "4212:11:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 495, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 494, - "mutability": "mutable", - "name": "proposalId", - "nameLocation": "4232:10:2", - "nodeType": "VariableDeclaration", - "scope": 505, - "src": "4224:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 493, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4224:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4223:20:2" - }, - "returnParameters": { - "id": 499, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 498, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 505, - "src": "4267:15:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal" - }, - "typeName": { - "id": 497, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 496, - "name": "Proposal", - "nameLocations": [ - "4267:8:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1014, - "src": "4267:8:2" - }, - "referencedDeclaration": 1014, - "src": "4267:8:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_storage_ptr", - "typeString": "struct IProposalStruct.Proposal" - } - }, - "visibility": "internal" - } - ], - "src": "4266:17:2" - }, - "scope": 506, - "src": "4203:126:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 507, - "src": "362:3969:2", - "usedErrors": [ - 13, - 18 - ], - "usedEvents": [ - 24, - 257, - 263, - 269, - 279 - ] - } - ], - "src": "32:4300:2" - }, - "id": 2 - }, - "contracts/ServiceRegistry.sol": { - "ast": { - "absolutePath": "contracts/ServiceRegistry.sol", - "exportedSymbols": { - "Context": [ - 177 - ], - "Ownable": [ - 147 - ], - "ServiceRegistry": [ - 682 - ] - }, - "id": 683, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 508, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "32:24:3" - }, - { - "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", - "file": "@openzeppelin/contracts/access/Ownable.sol", - "id": 509, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 683, - "sourceUnit": 148, - "src": "58:52:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 511, - "name": "Ownable", - "nameLocations": [ - "284:7:3" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 147, - "src": "284:7:3" - }, - "id": 512, - "nodeType": "InheritanceSpecifier", - "src": "284:7:3" - } - ], - "canonicalName": "ServiceRegistry", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 510, - "nodeType": "StructuredDocumentation", - "src": "111:144:3", - "text": " @title ServiceRegistry\n @author leonprou\n @notice A smart contract that stores information about the services provided by agents." - }, - "fullyImplemented": true, - "id": 682, - "linearizedBaseContracts": [ - 682, - 147, - 177 - ], - "name": "ServiceRegistry", - "nameLocation": "265:15:3", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "ServiceRegistry.Service", - "id": 519, - "members": [ - { - "constant": false, - "id": 514, - "mutability": "mutable", - "name": "name", - "nameLocation": "330:4:3", - "nodeType": "VariableDeclaration", - "scope": 519, - "src": "323:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 513, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "323:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 516, - "mutability": "mutable", - "name": "category", - "nameLocation": "351:8:3", - "nodeType": "VariableDeclaration", - "scope": 519, - "src": "344:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 515, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "344:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 518, - "mutability": "mutable", - "name": "description", - "nameLocation": "376:11:3", - "nodeType": "VariableDeclaration", - "scope": 519, - "src": "369:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 517, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "369:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "name": "Service", - "nameLocation": "305:7:3", - "nodeType": "StructDefinition", - "scope": 682, - "src": "298:96:3", - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "3017ba09", - "id": 524, - "mutability": "mutable", - "name": "services", - "nameLocation": "434:8:3", - "nodeType": "VariableDeclaration", - "scope": 682, - "src": "400:42:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Service_$519_storage_$", - "typeString": "mapping(string => struct ServiceRegistry.Service)" - }, - "typeName": { - "id": 523, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 520, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "408:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "nodeType": "Mapping", - "src": "400:26:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Service_$519_storage_$", - "typeString": "mapping(string => struct ServiceRegistry.Service)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 522, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 521, - "name": "Service", - "nameLocations": [ - "418:7:3" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 519, - "src": "418:7:3" - }, - "referencedDeclaration": 519, - "src": "418:7:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage_ptr", - "typeString": "struct ServiceRegistry.Service" - } - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "06237526", - "id": 526, - "mutability": "mutable", - "name": "serviceCount", - "nameLocation": "463:12:3", - "nodeType": "VariableDeclaration", - "scope": 682, - "src": "448:27:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 525, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "448:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "anonymous": false, - "eventSelector": "c182fe36565be4905be53a8ed353f07898b528f1625e778edf77c13674806486", - "id": 534, - "name": "ServiceRegistered", - "nameLocation": "488:17:3", - "nodeType": "EventDefinition", - "parameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 528, - "indexed": false, - "mutability": "mutable", - "name": "name", - "nameLocation": "513:4:3", - "nodeType": "VariableDeclaration", - "scope": 534, - "src": "506:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 527, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "506:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 530, - "indexed": false, - "mutability": "mutable", - "name": "category", - "nameLocation": "526:8:3", - "nodeType": "VariableDeclaration", - "scope": 534, - "src": "519:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 529, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "519:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 532, - "indexed": false, - "mutability": "mutable", - "name": "description", - "nameLocation": "543:11:3", - "nodeType": "VariableDeclaration", - "scope": 534, - "src": "536:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 531, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "536:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "505:50:3" - }, - "src": "482:74:3" - }, - { - "anonymous": false, - "eventSelector": "4cd09e35844ccdf25aac9862af453cedf05d8a8b765f2763be8373b55215df8d", - "id": 542, - "name": "ServiceUpdated", - "nameLocation": "567:14:3", - "nodeType": "EventDefinition", - "parameters": { - "id": 541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 536, - "indexed": false, - "mutability": "mutable", - "name": "name", - "nameLocation": "589:4:3", - "nodeType": "VariableDeclaration", - "scope": 542, - "src": "582:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 535, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "582:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 538, - "indexed": false, - "mutability": "mutable", - "name": "category", - "nameLocation": "602:8:3", - "nodeType": "VariableDeclaration", - "scope": 542, - "src": "595:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 537, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "595:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 540, - "indexed": false, - "mutability": "mutable", - "name": "description", - "nameLocation": "619:11:3", - "nodeType": "VariableDeclaration", - "scope": 542, - "src": "612:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 539, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "612:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "581:50:3" - }, - "src": "561:71:3" - }, - { - "body": { - "id": 549, - "nodeType": "Block", - "src": "672:2:3", - "statements": [] - }, - "id": 550, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "expression": { - "id": 545, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "660:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "664:6:3", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "660:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 547, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 544, - "name": "Ownable", - "nameLocations": [ - "652:7:3" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 147, - "src": "652:7:3" - }, - "nodeType": "ModifierInvocation", - "src": "652:19:3" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 543, - "nodeType": "ParameterList", - "parameters": [], - "src": "649:2:3" - }, - "returnParameters": { - "id": 548, - "nodeType": "ParameterList", - "parameters": [], - "src": "672:0:3" - }, - "scope": 682, - "src": "638:36:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 600, - "nodeType": "Block", - "src": "996:382:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1014:31:3", - "subExpression": { - "arguments": [ - { - "id": 568, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 553, - "src": "1040:4:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "id": 566, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "1015:4:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", - "typeString": "contract ServiceRegistry" - } - }, - "id": 567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1020:19:3", - "memberName": "isServiceRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 645, - "src": "1015:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_bool_$", - "typeString": "function (string memory) view external returns (bool)" - } - }, - "id": 569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1015:30:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "5365727669636520616c72656164792072656769737465726564", - "id": 571, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1047:28:3", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ac2c61739514b5f463c314c2780e64fc7747cb6b4d2c3e9147a35ee5c42aeefa", - "typeString": "literal_string \"Service already registered\"" - }, - "value": "Service already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ac2c61739514b5f463c314c2780e64fc7747cb6b4d2c3e9147a35ee5c42aeefa", - "typeString": "literal_string \"Service already registered\"" - } - ], - "id": 565, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1006:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1006:70:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 573, - "nodeType": "ExpressionStatement", - "src": "1006:70:3" - }, - { - "assignments": [ - 576 - ], - "declarations": [ - { - "constant": false, - "id": 576, - "mutability": "mutable", - "name": "service", - "nameLocation": "1102:7:3", - "nodeType": "VariableDeclaration", - "scope": 600, - "src": "1087:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_memory_ptr", - "typeString": "struct ServiceRegistry.Service" - }, - "typeName": { - "id": 575, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 574, - "name": "Service", - "nameLocations": [ - "1087:7:3" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 519, - "src": "1087:7:3" - }, - "referencedDeclaration": 519, - "src": "1087:7:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage_ptr", - "typeString": "struct ServiceRegistry.Service" - } - }, - "visibility": "internal" - } - ], - "id": 582, - "initialValue": { - "arguments": [ - { - "id": 578, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 553, - "src": "1140:4:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 579, - "name": "category", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 555, - "src": "1168:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 580, - "name": "description", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 557, - "src": "1203:11:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 577, - "name": "Service", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "1112:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Service_$519_storage_ptr_$", - "typeString": "type(struct ServiceRegistry.Service storage pointer)" - } - }, - "id": 581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "1134:4:3", - "1158:8:3", - "1190:11:3" - ], - "names": [ - "name", - "category", - "description" - ], - "nodeType": "FunctionCall", - "src": "1112:113:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_memory_ptr", - "typeString": "struct ServiceRegistry.Service memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1087:138:3" - }, - { - "expression": { - "id": 587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 583, - "name": "services", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "1236:8:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Service_$519_storage_$", - "typeString": "mapping(string memory => struct ServiceRegistry.Service storage ref)" - } - }, - "id": 585, - "indexExpression": { - "id": 584, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 553, - "src": "1245:4:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1236:14:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage", - "typeString": "struct ServiceRegistry.Service storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 586, - "name": "service", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 576, - "src": "1253:7:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_memory_ptr", - "typeString": "struct ServiceRegistry.Service memory" - } - }, - "src": "1236:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage", - "typeString": "struct ServiceRegistry.Service storage ref" - } - }, - "id": 588, - "nodeType": "ExpressionStatement", - "src": "1236:24:3" - }, - { - "eventCall": { - "arguments": [ - { - "id": 590, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 553, - "src": "1294:4:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 591, - "name": "category", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 555, - "src": "1300:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 592, - "name": "description", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 557, - "src": "1310:11:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 589, - "name": "ServiceRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 534, - "src": "1276:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory,string memory,string memory)" - } - }, - "id": 593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1276:46:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 594, - "nodeType": "EmitStatement", - "src": "1271:51:3" - }, - { - "expression": { - "id": 596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1333:14:3", - "subExpression": { - "id": 595, - "name": "serviceCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 526, - "src": "1333:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 597, - "nodeType": "ExpressionStatement", - "src": "1333:14:3" - }, - { - "expression": { - "id": 598, - "name": "service", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 576, - "src": "1364:7:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_memory_ptr", - "typeString": "struct ServiceRegistry.Service memory" - } - }, - "functionReturnParameters": 564, - "id": 599, - "nodeType": "Return", - "src": "1357:14:3" - } - ] - }, - "documentation": { - "id": 551, - "nodeType": "StructuredDocumentation", - "src": "680:171:3", - "text": " @dev Registers a new service with the given name and price.\n @param name The name of the service.\n @return The ID of the registered service." - }, - "functionSelector": "ef57d884", - "id": 601, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 560, - "kind": "modifierInvocation", - "modifierName": { - "id": 559, - "name": "onlyOwner", - "nameLocations": [ - "961:9:3" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 58, - "src": "961:9:3" - }, - "nodeType": "ModifierInvocation", - "src": "961:9:3" - } - ], - "name": "registerService", - "nameLocation": "865:15:3", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 553, - "mutability": "mutable", - "name": "name", - "nameLocation": "895:4:3", - "nodeType": "VariableDeclaration", - "scope": 601, - "src": "881:18:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 552, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "881:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 555, - "mutability": "mutable", - "name": "category", - "nameLocation": "915:8:3", - "nodeType": "VariableDeclaration", - "scope": 601, - "src": "901:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 554, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "901:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 557, - "mutability": "mutable", - "name": "description", - "nameLocation": "939:11:3", - "nodeType": "VariableDeclaration", - "scope": 601, - "src": "925:25:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 556, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "925:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "880:71:3" - }, - "returnParameters": { - "id": 564, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 563, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 601, - "src": "980:14:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_memory_ptr", - "typeString": "struct ServiceRegistry.Service" - }, - "typeName": { - "id": 562, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 561, - "name": "Service", - "nameLocations": [ - "980:7:3" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 519, - "src": "980:7:3" - }, - "referencedDeclaration": 519, - "src": "980:7:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage_ptr", - "typeString": "struct ServiceRegistry.Service" - } - }, - "visibility": "internal" - } - ], - "src": "979:16:3" - }, - "scope": 682, - "src": "856:522:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 614, - "nodeType": "Block", - "src": "1626:38:3", - "statements": [ - { - "expression": { - "baseExpression": { - "id": 610, - "name": "services", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "1643:8:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Service_$519_storage_$", - "typeString": "mapping(string memory => struct ServiceRegistry.Service storage ref)" - } - }, - "id": 612, - "indexExpression": { - "id": 611, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 604, - "src": "1652:4:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1643:14:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage", - "typeString": "struct ServiceRegistry.Service storage ref" - } - }, - "functionReturnParameters": 609, - "id": 613, - "nodeType": "Return", - "src": "1636:21:3" - } - ] - }, - "documentation": { - "id": 602, - "nodeType": "StructuredDocumentation", - "src": "1384:158:3", - "text": " @dev Retrieves the details of a service.\n @param name The name of the service to retrieve.\n @return The details of the service." - }, - "functionSelector": "794758be", - "id": 615, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getService", - "nameLocation": "1556:10:3", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 605, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 604, - "mutability": "mutable", - "name": "name", - "nameLocation": "1581:4:3", - "nodeType": "VariableDeclaration", - "scope": 615, - "src": "1567:18:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 603, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1567:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1566:20:3" - }, - "returnParameters": { - "id": 609, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 608, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 615, - "src": "1610:14:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_memory_ptr", - "typeString": "struct ServiceRegistry.Service" - }, - "typeName": { - "id": 607, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 606, - "name": "Service", - "nameLocations": [ - "1610:7:3" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 519, - "src": "1610:7:3" - }, - "referencedDeclaration": 519, - "src": "1610:7:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage_ptr", - "typeString": "struct ServiceRegistry.Service" - } - }, - "visibility": "internal" - } - ], - "src": "1609:16:3" - }, - "scope": 682, - "src": "1547:117:3", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 644, - "nodeType": "Block", - "src": "1748:127:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "arguments": [ - { - "id": 625, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 617, - "src": "1772:4:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 624, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1766:5:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 623, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1766:5:3", - "typeDescriptions": {} - } - }, - "id": 626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1766:11:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 627, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1778:6:3", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1766:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1787:1:3", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1766:22:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "496e76616c69642073657276696365206e616d65", - "id": 630, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1790:22:3", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b193a272406cc908bf089bbfd62bbee3e6f0f99dfc3103f9a3b8b4618c96abfe", - "typeString": "literal_string \"Invalid service name\"" - }, - "value": "Invalid service name" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b193a272406cc908bf089bbfd62bbee3e6f0f99dfc3103f9a3b8b4618c96abfe", - "typeString": "literal_string \"Invalid service name\"" - } - ], - "id": 622, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1758:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1758:55:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 632, - "nodeType": "ExpressionStatement", - "src": "1758:55:3" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "arguments": [ - { - "expression": { - "baseExpression": { - "id": 635, - "name": "services", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "1837:8:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Service_$519_storage_$", - "typeString": "mapping(string memory => struct ServiceRegistry.Service storage ref)" - } - }, - "id": 637, - "indexExpression": { - "id": 636, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 617, - "src": "1846:4:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1837:14:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage", - "typeString": "struct ServiceRegistry.Service storage ref" - } - }, - "id": 638, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1852:4:3", - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 514, - "src": "1837:19:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 634, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1831:5:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 633, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1831:5:3", - "typeDescriptions": {} - } - }, - "id": 639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1831:26:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1858:6:3", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1831:33:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1867:1:3", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1831:37:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 621, - "id": 643, - "nodeType": "Return", - "src": "1824:44:3" - } - ] - }, - "functionSelector": "b405166b", - "id": 645, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isServiceRegistered", - "nameLocation": "1679:19:3", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 618, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 617, - "mutability": "mutable", - "name": "name", - "nameLocation": "1713:4:3", - "nodeType": "VariableDeclaration", - "scope": 645, - "src": "1699:18:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 616, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1699:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1698:20:3" - }, - "returnParameters": { - "id": 621, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 620, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 645, - "src": "1742:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 619, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1742:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "1741:6:3" - }, - "scope": 682, - "src": "1670:205:3", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 680, - "nodeType": "Block", - "src": "1994:282:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 659, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "2037:4:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "id": 657, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "2012:4:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", - "typeString": "contract ServiceRegistry" - } - }, - "id": 658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2017:19:3", - "memberName": "isServiceRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 645, - "src": "2012:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_bool_$", - "typeString": "function (string memory) view external returns (bool)" - } - }, - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2012:30:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "53657276696365206e6f742072656769737465726564", - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2044:24:3", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6", - "typeString": "literal_string \"Service not registered\"" - }, - "value": "Service not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6", - "typeString": "literal_string \"Service not registered\"" - } - ], - "id": 656, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2004:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2004:65:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 663, - "nodeType": "ExpressionStatement", - "src": "2004:65:3" - }, - { - "expression": { - "id": 672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 664, - "name": "services", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "2080:8:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Service_$519_storage_$", - "typeString": "mapping(string memory => struct ServiceRegistry.Service storage ref)" - } - }, - "id": 666, - "indexExpression": { - "id": 665, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "2089:4:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2080:14:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage", - "typeString": "struct ServiceRegistry.Service storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 668, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "2125:4:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 669, - "name": "category", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 649, - "src": "2153:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 670, - "name": "description", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 651, - "src": "2188:11:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 667, - "name": "Service", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "2097:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Service_$519_storage_ptr_$", - "typeString": "type(struct ServiceRegistry.Service storage pointer)" - } - }, - "id": 671, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "2119:4:3", - "2143:8:3", - "2175:11:3" - ], - "names": [ - "name", - "category", - "description" - ], - "nodeType": "FunctionCall", - "src": "2097:113:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_memory_ptr", - "typeString": "struct ServiceRegistry.Service memory" - } - }, - "src": "2080:130:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage", - "typeString": "struct ServiceRegistry.Service storage ref" - } - }, - "id": 673, - "nodeType": "ExpressionStatement", - "src": "2080:130:3" - }, - { - "eventCall": { - "arguments": [ - { - "id": 675, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "2241:4:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 676, - "name": "category", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 649, - "src": "2247:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 677, - "name": "description", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 651, - "src": "2257:11:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 674, - "name": "ServiceUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 542, - "src": "2226:14:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory,string memory,string memory)" - } - }, - "id": 678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2226:43:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 679, - "nodeType": "EmitStatement", - "src": "2221:48:3" - } - ] - }, - "functionSelector": "7f3ed719", - "id": 681, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 654, - "kind": "modifierInvocation", - "modifierName": { - "id": 653, - "name": "onlyOwner", - "nameLocations": [ - "1984:9:3" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 58, - "src": "1984:9:3" - }, - "nodeType": "ModifierInvocation", - "src": "1984:9:3" - } - ], - "name": "updateService", - "nameLocation": "1890:13:3", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 652, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 647, - "mutability": "mutable", - "name": "name", - "nameLocation": "1918:4:3", - "nodeType": "VariableDeclaration", - "scope": 681, - "src": "1904:18:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 646, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1904:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 649, - "mutability": "mutable", - "name": "category", - "nameLocation": "1938:8:3", - "nodeType": "VariableDeclaration", - "scope": 681, - "src": "1924:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 648, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1924:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 651, - "mutability": "mutable", - "name": "description", - "nameLocation": "1962:11:3", - "nodeType": "VariableDeclaration", - "scope": 681, - "src": "1948:25:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 650, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1948:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1903:71:3" - }, - "returnParameters": { - "id": 655, - "nodeType": "ParameterList", - "parameters": [], - "src": "1994:0:3" - }, - "scope": 682, - "src": "1881:395:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 683, - "src": "256:2022:3", - "usedErrors": [ - 13, - 18 - ], - "usedEvents": [ - 24, - 534, - 542 - ] - } - ], - "src": "32:2247:3" - }, - "id": 3 - }, - "contracts/TaskRegistry.sol": { - "ast": { - "absolutePath": "contracts/TaskRegistry.sol", - "exportedSymbols": { - "AgentsRegistry": [ - 506 - ], - "Context": [ - 177 - ], - "IProposalStruct": [ - 1015 - ], - "Ownable": [ - 147 - ], - "ServiceRegistry": [ - 682 - ], - "TaskRegistry": [ - 1003 - ], - "TransferHelper": [ - 1175 - ] - }, - "id": 1004, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 684, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "32:24:4" - }, - { - "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", - "file": "@openzeppelin/contracts/access/Ownable.sol", - "id": 685, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1004, - "sourceUnit": 148, - "src": "58:52:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/interfaces/IProposalStruct.sol", - "file": "./interfaces/IProposalStruct.sol", - "id": 686, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1004, - "sourceUnit": 1016, - "src": "111:42:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/AgentsRegistry.sol", - "file": "./AgentsRegistry.sol", - "id": 687, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1004, - "sourceUnit": 507, - "src": "154:30:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/lib/TransferHelper.sol", - "file": "./lib/TransferHelper.sol", - "id": 688, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1004, - "sourceUnit": 1176, - "src": "185:34:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 690, - "name": "Ownable", - "nameLocations": [ - "405:7:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 147, - "src": "405:7:4" - }, - "id": 691, - "nodeType": "InheritanceSpecifier", - "src": "405:7:4" - }, - { - "baseName": { - "id": 692, - "name": "IProposalStruct", - "nameLocations": [ - "414:15:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1015, - "src": "414:15:4" - }, - "id": 693, - "nodeType": "InheritanceSpecifier", - "src": "414:15:4" - } - ], - "canonicalName": "TaskRegistry", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 689, - "nodeType": "StructuredDocumentation", - "src": "221:158:4", - "text": " @title TaskRegistry\n @author leonprou\n @notice A smart contract that stores information about the tasks issued for the agent service providers." - }, - "fullyImplemented": true, - "id": 1003, - "linearizedBaseContracts": [ - 1003, - 1015, - 147, - 177 - ], - "name": "TaskRegistry", - "nameLocation": "389:12:4", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "TaskRegistry.TaskStatus", - "id": 698, - "members": [ - { - "id": 694, - "name": "CREATED", - "nameLocation": "455:7:4", - "nodeType": "EnumValue", - "src": "455:7:4" - }, - { - "id": 695, - "name": "ASSIGNED", - "nameLocation": "464:8:4", - "nodeType": "EnumValue", - "src": "464:8:4" - }, - { - "id": 696, - "name": "COMPLETED", - "nameLocation": "474:9:4", - "nodeType": "EnumValue", - "src": "474:9:4" - }, - { - "id": 697, - "name": "FAILED", - "nameLocation": "485:6:4", - "nodeType": "EnumValue", - "src": "485:6:4" - } - ], - "name": "TaskStatus", - "nameLocation": "442:10:4", - "nodeType": "EnumDefinition", - "src": "437:56:4" - }, - { - "canonicalName": "TaskRegistry.TaskData", - "id": 712, - "members": [ - { - "constant": false, - "id": 700, - "mutability": "mutable", - "name": "id", - "nameLocation": "533:2:4", - "nodeType": "VariableDeclaration", - "scope": 712, - "src": "525:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 699, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "525:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 702, - "mutability": "mutable", - "name": "prompt", - "nameLocation": "552:6:4", - "nodeType": "VariableDeclaration", - "scope": 712, - "src": "545:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 701, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "545:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 704, - "mutability": "mutable", - "name": "issuer", - "nameLocation": "576:6:4", - "nodeType": "VariableDeclaration", - "scope": 712, - "src": "568:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 703, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "568:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 707, - "mutability": "mutable", - "name": "status", - "nameLocation": "603:6:4", - "nodeType": "VariableDeclaration", - "scope": 712, - "src": "592:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - }, - "typeName": { - "id": 706, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 705, - "name": "TaskStatus", - "nameLocations": [ - "592:10:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 698, - "src": "592:10:4" - }, - "referencedDeclaration": 698, - "src": "592:10:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 709, - "mutability": "mutable", - "name": "assignee", - "nameLocation": "627:8:4", - "nodeType": "VariableDeclaration", - "scope": 712, - "src": "619:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 708, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "619:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 711, - "mutability": "mutable", - "name": "proposalId", - "nameLocation": "653:10:4", - "nodeType": "VariableDeclaration", - "scope": 712, - "src": "645:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 710, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "645:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "TaskData", - "nameLocation": "506:8:4", - "nodeType": "StructDefinition", - "scope": 1003, - "src": "499:171:4", - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "8d977672", - "id": 717, - "mutability": "mutable", - "name": "tasks", - "nameLocation": "716:5:4", - "nodeType": "VariableDeclaration", - "scope": 1003, - "src": "680:41:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$712_storage_$", - "typeString": "mapping(uint256 => struct TaskRegistry.TaskData)" - }, - "typeName": { - "id": 716, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 713, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "688:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "680:28:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$712_storage_$", - "typeString": "mapping(uint256 => struct TaskRegistry.TaskData)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 715, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 714, - "name": "TaskData", - "nameLocations": [ - "699:8:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 712, - "src": "699:8:4" - }, - "referencedDeclaration": 712, - "src": "699:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData" - } - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "2a2b3a9d", - "id": 722, - "mutability": "mutable", - "name": "issuerTasks", - "nameLocation": "764:11:4", - "nodeType": "VariableDeclaration", - "scope": 1003, - "src": "727:48:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 721, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 718, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "735:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "727:29:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "baseType": { - "id": 719, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "746:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 720, - "nodeType": "ArrayTypeName", - "src": "746:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "visibility": "public" - }, - { - "constant": false, - "id": 724, - "mutability": "mutable", - "name": "nextTaskId", - "nameLocation": "797:10:4", - "nodeType": "VariableDeclaration", - "scope": 1003, - "src": "781:26:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 723, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "781:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "private" - }, - { - "constant": false, - "functionSelector": "0d1cfcae", - "id": 727, - "mutability": "mutable", - "name": "agentRegistry", - "nameLocation": "835:13:4", - "nodeType": "VariableDeclaration", - "scope": 1003, - "src": "813:35:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", - "typeString": "contract AgentsRegistry" - }, - "typeName": { - "id": 726, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 725, - "name": "AgentsRegistry", - "nameLocations": [ - "813:14:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 506, - "src": "813:14:4" - }, - "referencedDeclaration": 506, - "src": "813:14:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", - "typeString": "contract AgentsRegistry" - } - }, - "visibility": "public" - }, - { - "body": { - "id": 741, - "nodeType": "Block", - "src": "917:47:4", - "statements": [ - { - "expression": { - "id": 739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 737, - "name": "agentRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "927:13:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", - "typeString": "contract AgentsRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 738, - "name": "_agentRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "943:14:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", - "typeString": "contract AgentsRegistry" - } - }, - "src": "927:30:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", - "typeString": "contract AgentsRegistry" - } - }, - "id": 740, - "nodeType": "ExpressionStatement", - "src": "927:30:4" - } - ] - }, - "id": 742, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "expression": { - "id": 733, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "905:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "909:6:4", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "905:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 735, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 732, - "name": "Ownable", - "nameLocations": [ - "897:7:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 147, - "src": "897:7:4" - }, - "nodeType": "ModifierInvocation", - "src": "897:19:4" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 731, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 730, - "mutability": "mutable", - "name": "_agentRegistry", - "nameLocation": "881:14:4", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "866:29:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", - "typeString": "contract AgentsRegistry" - }, - "typeName": { - "id": 729, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 728, - "name": "AgentsRegistry", - "nameLocations": [ - "866:14:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 506, - "src": "866:14:4" - }, - "referencedDeclaration": 506, - "src": "866:14:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", - "typeString": "contract AgentsRegistry" - } - }, - "visibility": "internal" - } - ], - "src": "865:31:4" - }, - "returnParameters": { - "id": 736, - "nodeType": "ParameterList", - "parameters": [], - "src": "917:0:4" - }, - "scope": 1003, - "src": "854:110:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "anonymous": false, - "eventSelector": "5c005bbbb9da508c37935b1a9f270836e0be1fd11d4d47119f925a3ff33820e9", - "id": 754, - "name": "TaskCreated", - "nameLocation": "980:11:4", - "nodeType": "EventDefinition", - "parameters": { - "id": 753, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 744, - "indexed": true, - "mutability": "mutable", - "name": "issuer", - "nameLocation": "1008:6:4", - "nodeType": "VariableDeclaration", - "scope": 754, - "src": "992:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 743, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "992:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 746, - "indexed": true, - "mutability": "mutable", - "name": "assignee", - "nameLocation": "1032:8:4", - "nodeType": "VariableDeclaration", - "scope": 754, - "src": "1016:24:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 745, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1016:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 748, - "indexed": false, - "mutability": "mutable", - "name": "taskId", - "nameLocation": "1050:6:4", - "nodeType": "VariableDeclaration", - "scope": 754, - "src": "1042:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 747, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1042:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 750, - "indexed": false, - "mutability": "mutable", - "name": "proposalId", - "nameLocation": "1066:10:4", - "nodeType": "VariableDeclaration", - "scope": 754, - "src": "1058:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 749, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1058:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 752, - "indexed": false, - "mutability": "mutable", - "name": "prompt", - "nameLocation": "1085:6:4", - "nodeType": "VariableDeclaration", - "scope": 754, - "src": "1078:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 751, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1078:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "991:101:4" - }, - "src": "974:119:4" - }, - { - "anonymous": false, - "eventSelector": "d76ef80cfb1ce0c70d0cbc0ab1b9f2f298a78f9fca5c841be963ae9a5d721bb4", - "id": 761, - "name": "TaskStatusChanged", - "nameLocation": "1104:17:4", - "nodeType": "EventDefinition", - "parameters": { - "id": 760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 756, - "indexed": true, - "mutability": "mutable", - "name": "taskId", - "nameLocation": "1138:6:4", - "nodeType": "VariableDeclaration", - "scope": 761, - "src": "1122:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 755, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1122:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 759, - "indexed": false, - "mutability": "mutable", - "name": "status", - "nameLocation": "1157:6:4", - "nodeType": "VariableDeclaration", - "scope": 761, - "src": "1146:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - }, - "typeName": { - "id": 758, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 757, - "name": "TaskStatus", - "nameLocations": [ - "1146:10:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 698, - "src": "1146:10:4" - }, - "referencedDeclaration": 698, - "src": "1146:10:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "visibility": "internal" - } - ], - "src": "1121:43:4" - }, - "src": "1098:67:4" - }, - { - "anonymous": false, - "eventSelector": "52476d55ecef5cf13caa64038f297fe6bbf865d9584a98b8722a15a6d5db128f", - "id": 767, - "name": "TaskAssigned", - "nameLocation": "1176:12:4", - "nodeType": "EventDefinition", - "parameters": { - "id": 766, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 763, - "indexed": true, - "mutability": "mutable", - "name": "taskId", - "nameLocation": "1205:6:4", - "nodeType": "VariableDeclaration", - "scope": 767, - "src": "1189:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 762, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1189:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 765, - "indexed": true, - "mutability": "mutable", - "name": "agent", - "nameLocation": "1229:5:4", - "nodeType": "VariableDeclaration", - "scope": 767, - "src": "1213:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 764, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1213:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1188:47:4" - }, - "src": "1170:66:4" - }, - { - "anonymous": false, - "eventSelector": "f70b6e01390661fcb31e942764450e3764313c0269bbb4427441a769dd618802", - "id": 774, - "name": "ProposalApproved", - "nameLocation": "1247:16:4", - "nodeType": "EventDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 769, - "indexed": true, - "mutability": "mutable", - "name": "taskId", - "nameLocation": "1280:6:4", - "nodeType": "VariableDeclaration", - "scope": 774, - "src": "1264:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 768, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1264:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "indexed": false, - "mutability": "mutable", - "name": "proposal", - "nameLocation": "1297:8:4", - "nodeType": "VariableDeclaration", - "scope": 774, - "src": "1288:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal" - }, - "typeName": { - "id": 771, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 770, - "name": "Proposal", - "nameLocations": [ - "1288:8:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1014, - "src": "1288:8:4" - }, - "referencedDeclaration": 1014, - "src": "1288:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_storage_ptr", - "typeString": "struct IProposalStruct.Proposal" - } - }, - "visibility": "internal" - } - ], - "src": "1263:43:4" - }, - "src": "1241:66:4" - }, - { - "anonymous": false, - "eventSelector": "7e6ffc29fe63759579d96a0457a8f2e08339aca345bd469f59dc2e61f82a5aeb", - "id": 780, - "name": "TaskCompleted", - "nameLocation": "1318:13:4", - "nodeType": "EventDefinition", - "parameters": { - "id": 779, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 776, - "indexed": true, - "mutability": "mutable", - "name": "taskId", - "nameLocation": "1348:6:4", - "nodeType": "VariableDeclaration", - "scope": 780, - "src": "1332:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 775, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1332:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 778, - "indexed": false, - "mutability": "mutable", - "name": "result", - "nameLocation": "1363:6:4", - "nodeType": "VariableDeclaration", - "scope": 780, - "src": "1356:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 777, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1356:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1331:39:4" - }, - "src": "1312:59:4" - }, - { - "body": { - "id": 878, - "nodeType": "Block", - "src": "1700:601:4", - "statements": [ - { - "assignments": [ - 793 - ], - "declarations": [ - { - "constant": false, - "id": 793, - "mutability": "mutable", - "name": "proposal", - "nameLocation": "1726:8:4", - "nodeType": "VariableDeclaration", - "scope": 878, - "src": "1710:24:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal" - }, - "typeName": { - "id": 792, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 791, - "name": "Proposal", - "nameLocations": [ - "1710:8:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1014, - "src": "1710:8:4" - }, - "referencedDeclaration": 1014, - "src": "1710:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_storage_ptr", - "typeString": "struct IProposalStruct.Proposal" - } - }, - "visibility": "internal" - } - ], - "id": 798, - "initialValue": { - "arguments": [ - { - "id": 796, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 785, - "src": "1763:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 794, - "name": "agentRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "1737:13:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", - "typeString": "contract AgentsRegistry" - } - }, - "id": 795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1751:11:4", - "memberName": "getProposal", - "nodeType": "MemberAccess", - "referencedDeclaration": 505, - "src": "1737:25:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Proposal_$1014_memory_ptr_$", - "typeString": "function (uint256) view external returns (struct IProposalStruct.Proposal memory)" - } - }, - "id": 797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1737:37:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1710:64:4" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 804, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 800, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 793, - "src": "1792:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - }, - "id": 801, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1801:5:4", - "memberName": "price", - "nodeType": "MemberAccess", - "referencedDeclaration": 1011, - "src": "1792:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 802, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1810:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1814:5:4", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "1810:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1792:27:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "496e76616c6964207072696365", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1821:15:4", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_eaa01effe6abd0543e9529d3961b0f5d26980f0661c156a79b89c39a093463f7", - "typeString": "literal_string \"Invalid price\"" - }, - "value": "Invalid price" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_eaa01effe6abd0543e9529d3961b0f5d26980f0661c156a79b89c39a093463f7", - "typeString": "literal_string \"Invalid price\"" - } - ], - "id": 799, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1784:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1784:53:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 807, - "nodeType": "ExpressionStatement", - "src": "1784:53:4" - }, - { - "expression": { - "id": 809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1848:12:4", - "subExpression": { - "id": 808, - "name": "nextTaskId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "1848:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 810, - "nodeType": "ExpressionStatement", - "src": "1848:12:4" - }, - { - "assignments": [ - 813 - ], - "declarations": [ - { - "constant": false, - "id": 813, - "mutability": "mutable", - "name": "task", - "nameLocation": "1887:4:4", - "nodeType": "VariableDeclaration", - "scope": 878, - "src": "1870:21:4", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData" - }, - "typeName": { - "id": 812, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 811, - "name": "TaskData", - "nameLocations": [ - "1870:8:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 712, - "src": "1870:8:4" - }, - "referencedDeclaration": 712, - "src": "1870:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData" - } - }, - "visibility": "internal" - } - ], - "id": 817, - "initialValue": { - "baseExpression": { - "id": 814, - "name": "tasks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "1894:5:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$712_storage_$", - "typeString": "mapping(uint256 => struct TaskRegistry.TaskData storage ref)" - } - }, - "id": 816, - "indexExpression": { - "id": 815, - "name": "nextTaskId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "1900:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1894:17:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage", - "typeString": "struct TaskRegistry.TaskData storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1870:41:4" - }, - { - "expression": { - "id": 822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 818, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "1921:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "id": 820, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "1926:2:4", - "memberName": "id", - "nodeType": "MemberAccess", - "referencedDeclaration": 700, - "src": "1921:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 821, - "name": "nextTaskId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "1931:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1921:20:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 823, - "nodeType": "ExpressionStatement", - "src": "1921:20:4" - }, - { - "expression": { - "id": 828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 824, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "1951:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "id": 826, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "1956:6:4", - "memberName": "prompt", - "nodeType": "MemberAccess", - "referencedDeclaration": 702, - "src": "1951:11:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 827, - "name": "prompt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 783, - "src": "1965:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1951:20:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 829, - "nodeType": "ExpressionStatement", - "src": "1951:20:4" - }, - { - "expression": { - "id": 835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 830, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "1981:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "id": 832, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "1986:6:4", - "memberName": "issuer", - "nodeType": "MemberAccess", - "referencedDeclaration": 704, - "src": "1981:11:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 833, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1995:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 834, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1999:6:4", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1995:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1981:24:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 836, - "nodeType": "ExpressionStatement", - "src": "1981:24:4" - }, - { - "expression": { - "id": 841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 837, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "2015:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "id": 839, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2020:10:4", - "memberName": "proposalId", - "nodeType": "MemberAccess", - "referencedDeclaration": 711, - "src": "2015:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 840, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 785, - "src": "2033:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2015:28:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 842, - "nodeType": "ExpressionStatement", - "src": "2015:28:4" - }, - { - "expression": { - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 843, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "2053:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "id": 845, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2058:8:4", - "memberName": "assignee", - "nodeType": "MemberAccess", - "referencedDeclaration": 709, - "src": "2053:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 846, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 793, - "src": "2069:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - }, - "id": 847, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2078:6:4", - "memberName": "issuer", - "nodeType": "MemberAccess", - "referencedDeclaration": 1007, - "src": "2069:15:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2053:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 849, - "nodeType": "ExpressionStatement", - "src": "2053:31:4" - }, - { - "expression": { - "arguments": [ - { - "id": 855, - "name": "nextTaskId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "2123:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "baseExpression": { - "id": 850, - "name": "issuerTasks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "2094:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 853, - "indexExpression": { - "expression": { - "id": 851, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2106:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 852, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2110:6:4", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2106:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2094:23:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2118:4:4", - "memberName": "push", - "nodeType": "MemberAccess", - "src": "2094:28:4", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$", - "typeString": "function (uint256[] storage pointer,uint256)" - } - }, - "id": 856, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2094:40:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 857, - "nodeType": "ExpressionStatement", - "src": "2094:40:4" - }, - { - "expression": { - "id": 863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 858, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "2144:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "id": 860, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2149:6:4", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 707, - "src": "2144:11:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 861, - "name": "TaskStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "2158:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TaskStatus_$698_$", - "typeString": "type(enum TaskRegistry.TaskStatus)" - } - }, - "id": 862, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "2169:8:4", - "memberName": "ASSIGNED", - "nodeType": "MemberAccess", - "referencedDeclaration": 695, - "src": "2158:19:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "src": "2144:33:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "id": 864, - "nodeType": "ExpressionStatement", - "src": "2144:33:4" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 866, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2204:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2208:6:4", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2204:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 868, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 793, - "src": "2216:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - }, - "id": 869, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2225:6:4", - "memberName": "issuer", - "nodeType": "MemberAccess", - "referencedDeclaration": 1007, - "src": "2216:15:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 870, - "name": "nextTaskId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "2233:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 871, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 793, - "src": "2245:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - }, - "id": 872, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2254:10:4", - "memberName": "proposalId", - "nodeType": "MemberAccess", - "referencedDeclaration": 1013, - "src": "2245:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 873, - "name": "prompt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 783, - "src": "2266:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 865, - "name": "TaskCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 754, - "src": "2192:11:4", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,uint256,uint256,string memory)" - } - }, - "id": 874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2192:81:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 875, - "nodeType": "EmitStatement", - "src": "2187:86:4" - }, - { - "expression": { - "id": 876, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "2290:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "functionReturnParameters": 790, - "id": 877, - "nodeType": "Return", - "src": "2283:11:4" - } - ] - }, - "documentation": { - "id": 781, - "nodeType": "StructuredDocumentation", - "src": "1377:191:4", - "text": " @dev Creates a new task with the given prompt and task type.\n @param prompt The description or prompt of the task.\n @return taskId The ID of the newly created task." - }, - "functionSelector": "04fe2b34", - "id": 879, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createTask", - "nameLocation": "1582:10:4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 786, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 783, - "mutability": "mutable", - "name": "prompt", - "nameLocation": "1616:6:4", - "nodeType": "VariableDeclaration", - "scope": 879, - "src": "1602:20:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 782, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1602:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 785, - "mutability": "mutable", - "name": "proposalId", - "nameLocation": "1640:10:4", - "nodeType": "VariableDeclaration", - "scope": 879, - "src": "1632:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 784, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1632:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1592:64:4" - }, - "returnParameters": { - "id": 790, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 789, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 879, - "src": "1683:15:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_memory_ptr", - "typeString": "struct TaskRegistry.TaskData" - }, - "typeName": { - "id": 788, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 787, - "name": "TaskData", - "nameLocations": [ - "1683:8:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 712, - "src": "1683:8:4" - }, - "referencedDeclaration": 712, - "src": "1683:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData" - } - }, - "visibility": "internal" - } - ], - "src": "1682:17:4" - }, - "scope": 1003, - "src": "1573:728:4", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 948, - "nodeType": "Block", - "src": "2546:498:4", - "statements": [ - { - "assignments": [ - 889 - ], - "declarations": [ - { - "constant": false, - "id": 889, - "mutability": "mutable", - "name": "task", - "nameLocation": "2573:4:4", - "nodeType": "VariableDeclaration", - "scope": 948, - "src": "2556:21:4", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData" - }, - "typeName": { - "id": 888, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 887, - "name": "TaskData", - "nameLocations": [ - "2556:8:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 712, - "src": "2556:8:4" - }, - "referencedDeclaration": 712, - "src": "2556:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData" - } - }, - "visibility": "internal" - } - ], - "id": 893, - "initialValue": { - "baseExpression": { - "id": 890, - "name": "tasks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "2580:5:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$712_storage_$", - "typeString": "mapping(uint256 => struct TaskRegistry.TaskData storage ref)" - } - }, - "id": 892, - "indexExpression": { - "id": 891, - "name": "taskId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "2586:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2580:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage", - "typeString": "struct TaskRegistry.TaskData storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2556:37:4" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 895, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2611:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2615:6:4", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2611:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 897, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 889, - "src": "2625:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "id": 898, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2630:8:4", - "memberName": "assignee", - "nodeType": "MemberAccess", - "referencedDeclaration": 709, - "src": "2625:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2611:27:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "4e6f7420617574686f72697a6564", - "id": 900, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2640:16:4", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36", - "typeString": "literal_string \"Not authorized\"" - }, - "value": "Not authorized" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36", - "typeString": "literal_string \"Not authorized\"" - } - ], - "id": 894, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2603:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2603:54:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 902, - "nodeType": "ExpressionStatement", - "src": "2603:54:4" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 904, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 889, - "src": "2675:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "id": 905, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2680:6:4", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 707, - "src": "2675:11:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 906, - "name": "TaskStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "2690:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TaskStatus_$698_$", - "typeString": "type(enum TaskRegistry.TaskStatus)" - } - }, - "id": 907, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "2701:8:4", - "memberName": "ASSIGNED", - "nodeType": "MemberAccess", - "referencedDeclaration": 695, - "src": "2690:19:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "src": "2675:34:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "496e76616c6964207461736b20737461747573", - "id": 909, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2711:21:4", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_35c761622bcc8ab75f9adfaf21a4872a39cd06f2745d5488272d29f1f753f270", - "typeString": "literal_string \"Invalid task status\"" - }, - "value": "Invalid task status" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_35c761622bcc8ab75f9adfaf21a4872a39cd06f2745d5488272d29f1f753f270", - "typeString": "literal_string \"Invalid task status\"" - } - ], - "id": 903, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2667:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2667:66:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 911, - "nodeType": "ExpressionStatement", - "src": "2667:66:4" - }, - { - "expression": { - "id": 917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 912, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 889, - "src": "2744:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "id": 914, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2749:6:4", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 707, - "src": "2744:11:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 915, - "name": "TaskStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "2758:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TaskStatus_$698_$", - "typeString": "type(enum TaskRegistry.TaskStatus)" - } - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "2769:9:4", - "memberName": "COMPLETED", - "nodeType": "MemberAccess", - "referencedDeclaration": 696, - "src": "2758:20:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "src": "2744:34:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "id": 918, - "nodeType": "ExpressionStatement", - "src": "2744:34:4" - }, - { - "assignments": [ - 921 - ], - "declarations": [ - { - "constant": false, - "id": 921, - "mutability": "mutable", - "name": "proposal", - "nameLocation": "2804:8:4", - "nodeType": "VariableDeclaration", - "scope": 948, - "src": "2788:24:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal" - }, - "typeName": { - "id": 920, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 919, - "name": "Proposal", - "nameLocations": [ - "2788:8:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1014, - "src": "2788:8:4" - }, - "referencedDeclaration": 1014, - "src": "2788:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_storage_ptr", - "typeString": "struct IProposalStruct.Proposal" - } - }, - "visibility": "internal" - } - ], - "id": 927, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 924, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 889, - "src": "2841:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "id": 925, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2846:10:4", - "memberName": "proposalId", - "nodeType": "MemberAccess", - "referencedDeclaration": 711, - "src": "2841:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 922, - "name": "agentRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "2815:13:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", - "typeString": "contract AgentsRegistry" - } - }, - "id": 923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2829:11:4", - "memberName": "getProposal", - "nodeType": "MemberAccess", - "referencedDeclaration": 505, - "src": "2815:25:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Proposal_$1014_memory_ptr_$", - "typeString": "function (uint256) view external returns (struct IProposalStruct.Proposal memory)" - } - }, - "id": 926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2815:42:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2788:69:4" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 931, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "2907:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - }, - "id": 932, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2916:6:4", - "memberName": "issuer", - "nodeType": "MemberAccess", - "referencedDeclaration": 1007, - "src": "2907:15:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 933, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "2924:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - }, - "id": 934, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2933:5:4", - "memberName": "price", - "nodeType": "MemberAccess", - "referencedDeclaration": 1011, - "src": "2924:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 928, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1175, - "src": "2876:14:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$1175_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2891:15:4", - "memberName": "safeTransferETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 1174, - "src": "2876:30:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2876:63:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 936, - "nodeType": "ExpressionStatement", - "src": "2876:63:4" - }, - { - "eventCall": { - "arguments": [ - { - "id": 938, - "name": "taskId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "2973:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 939, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 889, - "src": "2981:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "id": 940, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2986:6:4", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 707, - "src": "2981:11:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - ], - "id": 937, - "name": "TaskStatusChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 761, - "src": "2955:17:4", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_enum$_TaskStatus_$698_$returns$__$", - "typeString": "function (uint256,enum TaskRegistry.TaskStatus)" - } - }, - "id": 941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2955:38:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 942, - "nodeType": "EmitStatement", - "src": "2950:43:4" - }, - { - "eventCall": { - "arguments": [ - { - "id": 944, - "name": "taskId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "3022:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 945, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "3030:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 943, - "name": "TaskCompleted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 780, - "src": "3008:13:4", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint256,string memory)" - } - }, - "id": 946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3008:29:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 947, - "nodeType": "EmitStatement", - "src": "3003:34:4" - } - ] - }, - "documentation": { - "id": 880, - "nodeType": "StructuredDocumentation", - "src": "2307:165:4", - "text": " @dev Completes a task with the given result.\n @param taskId The ID of the task.\n @param result The result or output of the completed task." - }, - "functionSelector": "74aaa760", - "id": 949, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "completeTask", - "nameLocation": "2486:12:4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 885, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "mutability": "mutable", - "name": "taskId", - "nameLocation": "2507:6:4", - "nodeType": "VariableDeclaration", - "scope": 949, - "src": "2499:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 881, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2499:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "mutability": "mutable", - "name": "result", - "nameLocation": "2529:6:4", - "nodeType": "VariableDeclaration", - "scope": 949, - "src": "2515:20:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 883, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2515:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "2498:38:4" - }, - "returnParameters": { - "id": 886, - "nodeType": "ParameterList", - "parameters": [], - "src": "2546:0:4" - }, - "scope": 1003, - "src": "2477:567:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 961, - "nodeType": "Block", - "src": "3134:43:4", - "statements": [ - { - "expression": { - "baseExpression": { - "id": 957, - "name": "issuerTasks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "3151:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 959, - "indexExpression": { - "id": 958, - "name": "issuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 951, - "src": "3163:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3151:19:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 956, - "id": 960, - "nodeType": "Return", - "src": "3144:26:4" - } - ] - }, - "functionSelector": "639241ab", - "id": 962, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTasksByIssuer", - "nameLocation": "3060:16:4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 952, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 951, - "mutability": "mutable", - "name": "issuer", - "nameLocation": "3085:6:4", - "nodeType": "VariableDeclaration", - "scope": 962, - "src": "3077:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 950, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3077:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3076:16:4" - }, - "returnParameters": { - "id": 956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 955, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 962, - "src": "3116:16:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 953, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3116:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 954, - "nodeType": "ArrayTypeName", - "src": "3116:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "src": "3115:18:4" - }, - "scope": 1003, - "src": "3051:126:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 974, - "nodeType": "Block", - "src": "3256:37:4", - "statements": [ - { - "expression": { - "baseExpression": { - "id": 970, - "name": "tasks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "3273:5:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$712_storage_$", - "typeString": "mapping(uint256 => struct TaskRegistry.TaskData storage ref)" - } - }, - "id": 972, - "indexExpression": { - "id": 971, - "name": "taskId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "3279:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3273:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage", - "typeString": "struct TaskRegistry.TaskData storage ref" - } - }, - "functionReturnParameters": 969, - "id": 973, - "nodeType": "Return", - "src": "3266:20:4" - } - ] - }, - "functionSelector": "1d65e77e", - "id": 975, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTask", - "nameLocation": "3192:7:4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 964, - "mutability": "mutable", - "name": "taskId", - "nameLocation": "3208:6:4", - "nodeType": "VariableDeclaration", - "scope": 975, - "src": "3200:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 963, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3200:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3199:16:4" - }, - "returnParameters": { - "id": 969, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 968, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 975, - "src": "3239:15:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_memory_ptr", - "typeString": "struct TaskRegistry.TaskData" - }, - "typeName": { - "id": 967, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 966, - "name": "TaskData", - "nameLocations": [ - "3239:8:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 712, - "src": "3239:8:4" - }, - "referencedDeclaration": 712, - "src": "3239:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData" - } - }, - "visibility": "internal" - } - ], - "src": "3238:17:4" - }, - "scope": 1003, - "src": "3183:110:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 988, - "nodeType": "Block", - "src": "3369:44:4", - "statements": [ - { - "expression": { - "expression": { - "baseExpression": { - "id": 983, - "name": "tasks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "3386:5:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$712_storage_$", - "typeString": "mapping(uint256 => struct TaskRegistry.TaskData storage ref)" - } - }, - "id": 985, - "indexExpression": { - "id": 984, - "name": "taskId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 977, - "src": "3392:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3386:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage", - "typeString": "struct TaskRegistry.TaskData storage ref" - } - }, - "id": 986, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3400:6:4", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 707, - "src": "3386:20:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "functionReturnParameters": 982, - "id": 987, - "nodeType": "Return", - "src": "3379:27:4" - } - ] - }, - "functionSelector": "5c622a0e", - "id": 989, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getStatus", - "nameLocation": "3308:9:4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 978, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 977, - "mutability": "mutable", - "name": "taskId", - "nameLocation": "3326:6:4", - "nodeType": "VariableDeclaration", - "scope": 989, - "src": "3318:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 976, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3318:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3317:16:4" - }, - "returnParameters": { - "id": 982, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 981, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 989, - "src": "3357:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - }, - "typeName": { - "id": 980, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 979, - "name": "TaskStatus", - "nameLocations": [ - "3357:10:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 698, - "src": "3357:10:4" - }, - "referencedDeclaration": 698, - "src": "3357:10:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "visibility": "internal" - } - ], - "src": "3356:12:4" - }, - "scope": 1003, - "src": "3299:114:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 1001, - "nodeType": "Block", - "src": "3492:46:4", - "statements": [ - { - "expression": { - "expression": { - "baseExpression": { - "id": 996, - "name": "tasks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "3509:5:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$712_storage_$", - "typeString": "mapping(uint256 => struct TaskRegistry.TaskData storage ref)" - } - }, - "id": 998, - "indexExpression": { - "id": 997, - "name": "taskId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "3515:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3509:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage", - "typeString": "struct TaskRegistry.TaskData storage ref" - } - }, - "id": 999, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3523:8:4", - "memberName": "assignee", - "nodeType": "MemberAccess", - "referencedDeclaration": 709, - "src": "3509:22:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 995, - "id": 1000, - "nodeType": "Return", - "src": "3502:29:4" - } - ] - }, - "functionSelector": "07b31818", - "id": 1002, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAssignee", - "nameLocation": "3432:11:4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 992, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 991, - "mutability": "mutable", - "name": "taskId", - "nameLocation": "3452:6:4", - "nodeType": "VariableDeclaration", - "scope": 1002, - "src": "3444:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3444:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3443:16:4" - }, - "returnParameters": { - "id": 995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 994, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1002, - "src": "3483:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3483:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3482:9:4" - }, - "scope": 1003, - "src": "3423:115:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 1004, - "src": "380:3160:4", - "usedErrors": [ - 13, - 18 - ], - "usedEvents": [ - 24, - 754, - 761, - 767, - 774, - 780 - ] - } - ], - "src": "32:3509:4" - }, - "id": 4 - }, - "contracts/interfaces/IProposalStruct.sol": { - "ast": { - "absolutePath": "contracts/interfaces/IProposalStruct.sol", - "exportedSymbols": { - "IProposalStruct": [ - 1015 - ] - }, - "id": 1016, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1005, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "32:24:5" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IProposalStruct", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": true, - "id": 1015, - "linearizedBaseContracts": [ - 1015 - ], - "name": "IProposalStruct", - "nameLocation": "67:15:5", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "IProposalStruct.Proposal", - "id": 1014, - "members": [ - { - "constant": false, - "id": 1007, - "mutability": "mutable", - "name": "issuer", - "nameLocation": "119:6:5", - "nodeType": "VariableDeclaration", - "scope": 1014, - "src": "111:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1006, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "111:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1009, - "mutability": "mutable", - "name": "serviceName", - "nameLocation": "140:11:5", - "nodeType": "VariableDeclaration", - "scope": 1014, - "src": "133:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1008, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "133:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1011, - "mutability": "mutable", - "name": "price", - "nameLocation": "167:5:5", - "nodeType": "VariableDeclaration", - "scope": 1014, - "src": "159:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1010, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "159:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1013, - "mutability": "mutable", - "name": "proposalId", - "nameLocation": "188:10:5", - "nodeType": "VariableDeclaration", - "scope": 1014, - "src": "180:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1012, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "180:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "Proposal", - "nameLocation": "94:8:5", - "nodeType": "StructDefinition", - "scope": 1015, - "src": "87:116:5", - "visibility": "public" - } - ], - "scope": 1016, - "src": "57:148:5", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "32:173:5" - }, - "id": 5 - }, - "contracts/lib/TransferHelper.sol": { - "ast": { - "absolutePath": "contracts/lib/TransferHelper.sol", - "exportedSymbols": { - "TransferHelper": [ - 1175 - ] - }, - "id": 1176, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1017, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "31:24:6" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "TransferHelper", - "contractDependencies": [], - "contractKind": "library", - "fullyImplemented": true, - "id": 1175, - "linearizedBaseContracts": [ - 1175 - ], - "name": "TransferHelper", - "nameLocation": "176:14:6", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1059, - "nodeType": "Block", - "src": "299:332:6", - "statements": [ - { - "assignments": [ - 1027, - 1029 - ], - "declarations": [ - { - "constant": false, - "id": 1027, - "mutability": "mutable", - "name": "success", - "nameLocation": "380:7:6", - "nodeType": "VariableDeclaration", - "scope": 1059, - "src": "375:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1026, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "375:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1029, - "mutability": "mutable", - "name": "data", - "nameLocation": "402:4:6", - "nodeType": "VariableDeclaration", - "scope": 1059, - "src": "389:17:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1028, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "389:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 1039, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30783039356561376233", - "id": 1034, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "444:10:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_157198259_by_1", - "typeString": "int_const 157198259" - }, - "value": "0x095ea7b3" - }, - { - "id": 1035, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1021, - "src": "456:2:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1036, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "460:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_157198259_by_1", - "typeString": "int_const 157198259" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 1032, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "421:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1033, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "425:18:6", - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "src": "421:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 1037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "421:45:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 1030, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1019, - "src": "410:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "416:4:6", - "memberName": "call", - "nodeType": "MemberAccess", - "src": "410:10:6", - "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": 1038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "410:57:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "374:93:6" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1041, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "498:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1045, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 1042, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "510:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 1043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "515:6:6", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "510:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 1044, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "525:1:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "510:16:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "arguments": [ - { - "id": 1048, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "541:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "components": [ - { - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "548:4:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - }, - "typeName": { - "id": 1049, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "548:4:6", - "typeDescriptions": {} - } - } - ], - "id": 1051, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "547:6:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - ], - "expression": { - "id": 1046, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "530:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "534:6:6", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "530:10:6", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "530:24:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "510:44:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 1054, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "509:46:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "498:57:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "5472616e7366657248656c7065723a3a73616665417070726f76653a20617070726f7665206661696c6564", - "id": 1056, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "569:45:6", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b4dd1eb4be82119fd3a99acfb5dd4c57591eb0ea309359b1af3d65a4460c7123", - "typeString": "literal_string \"TransferHelper::safeApprove: approve failed\"" - }, - "value": "TransferHelper::safeApprove: approve failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b4dd1eb4be82119fd3a99acfb5dd4c57591eb0ea309359b1af3d65a4460c7123", - "typeString": "literal_string \"TransferHelper::safeApprove: approve failed\"" - } - ], - "id": 1040, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "477:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "477:147:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1058, - "nodeType": "ExpressionStatement", - "src": "477:147:6" - } - ] - }, - "id": 1060, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeApprove", - "nameLocation": "206:11:6", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1024, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1019, - "mutability": "mutable", - "name": "token", - "nameLocation": "235:5:6", - "nodeType": "VariableDeclaration", - "scope": 1060, - "src": "227:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1018, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "227:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1021, - "mutability": "mutable", - "name": "to", - "nameLocation": "258:2:6", - "nodeType": "VariableDeclaration", - "scope": 1060, - "src": "250:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1020, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "250:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1023, - "mutability": "mutable", - "name": "value", - "nameLocation": "278:5:6", - "nodeType": "VariableDeclaration", - "scope": 1060, - "src": "270:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1022, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "270:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "217:72:6" - }, - "returnParameters": { - "id": 1025, - "nodeType": "ParameterList", - "parameters": [], - "src": "299:0:6" - }, - "scope": 1175, - "src": "197:434:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1102, - "nodeType": "Block", - "src": "740:335:6", - "statements": [ - { - "assignments": [ - 1070, - 1072 - ], - "declarations": [ - { - "constant": false, - "id": 1070, - "mutability": "mutable", - "name": "success", - "nameLocation": "822:7:6", - "nodeType": "VariableDeclaration", - "scope": 1102, - "src": "817:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1069, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "817:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1072, - "mutability": "mutable", - "name": "data", - "nameLocation": "844:4:6", - "nodeType": "VariableDeclaration", - "scope": 1102, - "src": "831:17:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1071, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "831:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 1082, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30786139303539636262", - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "886:10:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_2835717307_by_1", - "typeString": "int_const 2835717307" - }, - "value": "0xa9059cbb" - }, - { - "id": 1078, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1064, - "src": "898:2:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1079, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1066, - "src": "902:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_2835717307_by_1", - "typeString": "int_const 2835717307" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 1075, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "863:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1076, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "867:18:6", - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "src": "863:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 1080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "863:45:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 1073, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1062, - "src": "852:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "858:4:6", - "memberName": "call", - "nodeType": "MemberAccess", - "src": "852:10:6", - "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": 1081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "852:57:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "816:93:6" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1084, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1070, - "src": "940:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 1085, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "952:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 1086, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "957:6:6", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "952:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 1087, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "967:1:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "952:16:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "arguments": [ - { - "id": 1091, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "983:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "components": [ - { - "id": 1093, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "990:4:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - }, - "typeName": { - "id": 1092, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "990:4:6", - "typeDescriptions": {} - } - } - ], - "id": 1094, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "989:6:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - ], - "expression": { - "id": 1089, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "972:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1090, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "976:6:6", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "972:10:6", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1095, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "972:24:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "952:44:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 1097, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "951:46:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "940:57:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "5472616e7366657248656c7065723a3a736166655472616e736665723a207472616e73666572206661696c6564", - "id": 1099, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1011:47:6", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_daea69421eeb1164e163c36f3d4349f0db3ec4e0d1381bd5bf4faf53496c2611", - "typeString": "literal_string \"TransferHelper::safeTransfer: transfer failed\"" - }, - "value": "TransferHelper::safeTransfer: transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_daea69421eeb1164e163c36f3d4349f0db3ec4e0d1381bd5bf4faf53496c2611", - "typeString": "literal_string \"TransferHelper::safeTransfer: transfer failed\"" - } - ], - "id": 1083, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "919:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "919:149:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1101, - "nodeType": "ExpressionStatement", - "src": "919:149:6" - } - ] - }, - "id": 1103, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransfer", - "nameLocation": "646:12:6", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1067, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1062, - "mutability": "mutable", - "name": "token", - "nameLocation": "676:5:6", - "nodeType": "VariableDeclaration", - "scope": 1103, - "src": "668:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1061, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "668:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1064, - "mutability": "mutable", - "name": "to", - "nameLocation": "699:2:6", - "nodeType": "VariableDeclaration", - "scope": 1103, - "src": "691:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1063, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "691:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1066, - "mutability": "mutable", - "name": "value", - "nameLocation": "719:5:6", - "nodeType": "VariableDeclaration", - "scope": 1103, - "src": "711:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1065, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "711:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "658:72:6" - }, - "returnParameters": { - "id": 1068, - "nodeType": "ParameterList", - "parameters": [], - "src": "740:0:6" - }, - "scope": 1175, - "src": "637:438:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1148, - "nodeType": "Block", - "src": "1210:357:6", - "statements": [ - { - "assignments": [ - 1115, - 1117 - ], - "declarations": [ - { - "constant": false, - "id": 1115, - "mutability": "mutable", - "name": "success", - "nameLocation": "1304:7:6", - "nodeType": "VariableDeclaration", - "scope": 1148, - "src": "1299:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1114, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1299:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1117, - "mutability": "mutable", - "name": "data", - "nameLocation": "1326:4:6", - "nodeType": "VariableDeclaration", - "scope": 1148, - "src": "1313:17:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1116, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1313:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 1128, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30783233623837326464", - "id": 1122, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1368:10:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_599290589_by_1", - "typeString": "int_const 599290589" - }, - "value": "0x23b872dd" - }, - { - "id": 1123, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1107, - "src": "1380:4:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1124, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1109, - "src": "1386:2:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1125, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "1390:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_599290589_by_1", - "typeString": "int_const 599290589" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 1120, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "1345:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "1349:18:6", - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "src": "1345:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1345:51:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 1118, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1105, - "src": "1334:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1340:4:6", - "memberName": "call", - "nodeType": "MemberAccess", - "src": "1334:10:6", - "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": 1127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1334:63:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1298:99:6" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1130, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1115, - "src": "1428:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 1131, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "1440:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1445:6:6", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1440:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 1133, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1455:1:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1440:16:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "arguments": [ - { - "id": 1137, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "1471:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "components": [ - { - "id": 1139, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1478:4:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - }, - "typeName": { - "id": 1138, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1478:4:6", - "typeDescriptions": {} - } - } - ], - "id": 1140, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1477:6:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - ], - "expression": { - "id": 1135, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "1460:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "1464:6:6", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "1460:10:6", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1460:24:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1440:44:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 1143, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1439:46:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1428:57:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472616e7366657246726f6d206661696c6564", - "id": 1145, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1499:51:6", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3f8faf98afe9344b6d4b0e75b0101259bf282914b3b5a9320c6918b6e27ede1c", - "typeString": "literal_string \"TransferHelper::transferFrom: transferFrom failed\"" - }, - "value": "TransferHelper::transferFrom: transferFrom failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3f8faf98afe9344b6d4b0e75b0101259bf282914b3b5a9320c6918b6e27ede1c", - "typeString": "literal_string \"TransferHelper::transferFrom: transferFrom failed\"" - } - ], - "id": 1129, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1407:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1407:153:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1147, - "nodeType": "ExpressionStatement", - "src": "1407:153:6" - } - ] - }, - "id": 1149, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nameLocation": "1090:16:6", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1105, - "mutability": "mutable", - "name": "token", - "nameLocation": "1124:5:6", - "nodeType": "VariableDeclaration", - "scope": 1149, - "src": "1116:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1116:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1107, - "mutability": "mutable", - "name": "from", - "nameLocation": "1147:4:6", - "nodeType": "VariableDeclaration", - "scope": 1149, - "src": "1139:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1139:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1109, - "mutability": "mutable", - "name": "to", - "nameLocation": "1169:2:6", - "nodeType": "VariableDeclaration", - "scope": 1149, - "src": "1161:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1108, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1161:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1111, - "mutability": "mutable", - "name": "value", - "nameLocation": "1189:5:6", - "nodeType": "VariableDeclaration", - "scope": 1149, - "src": "1181:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1110, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1181:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1106:94:6" - }, - "returnParameters": { - "id": 1113, - "nodeType": "ParameterList", - "parameters": [], - "src": "1210:0:6" - }, - "scope": 1175, - "src": "1081:486:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1173, - "nodeType": "Block", - "src": "1634:153:6", - "statements": [ - { - "assignments": [ - 1157, - null - ], - "declarations": [ - { - "constant": false, - "id": 1157, - "mutability": "mutable", - "name": "success", - "nameLocation": "1650:7:6", - "nodeType": "VariableDeclaration", - "scope": 1173, - "src": "1645:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1156, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1645:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - null - ], - "id": 1167, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30", - "id": 1164, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1695:1:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1163, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "1685:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 1162, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1689:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 1165, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1685:12:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 1158, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1151, - "src": "1663:2:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1666:4:6", - "memberName": "call", - "nodeType": "MemberAccess", - "src": "1663:7:6", - "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": 1161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "id": 1160, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "1678:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "1663:21:6", - "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": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1663:35:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1644:54:6" - }, - { - "expression": { - "arguments": [ - { - "id": 1169, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1157, - "src": "1716:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "5472616e7366657248656c7065723a3a736166655472616e736665724554483a20455448207472616e73666572206661696c6564", - "id": 1170, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1725:54:6", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_43d7bec223ecf9eb06ea147e7d564bc71c2448662d62a4ea86ce71fc4518b350", - "typeString": "literal_string \"TransferHelper::safeTransferETH: ETH transfer failed\"" - }, - "value": "TransferHelper::safeTransferETH: ETH transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_43d7bec223ecf9eb06ea147e7d564bc71c2448662d62a4ea86ce71fc4518b350", - "typeString": "literal_string \"TransferHelper::safeTransferETH: ETH transfer failed\"" - } - ], - "id": 1168, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1708:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1708:72:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1172, - "nodeType": "ExpressionStatement", - "src": "1708:72:6" - } - ] - }, - "id": 1174, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferETH", - "nameLocation": "1582:15:6", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1154, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1151, - "mutability": "mutable", - "name": "to", - "nameLocation": "1606:2:6", - "nodeType": "VariableDeclaration", - "scope": 1174, - "src": "1598:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1150, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1598:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1153, - "mutability": "mutable", - "name": "value", - "nameLocation": "1618:5:6", - "nodeType": "VariableDeclaration", - "scope": 1174, - "src": "1610:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1152, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1610:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1597:27:6" - }, - "returnParameters": { - "id": 1155, - "nodeType": "ParameterList", - "parameters": [], - "src": "1634:0:6" - }, - "scope": 1175, - "src": "1573:214:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 1176, - "src": "168:1621:6", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "31:1758:6" - }, - "id": 6 - } - }, - "contracts": { - "@openzeppelin/contracts/access/Ownable.sol": { - "Ownable": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "owner()": "8da5cb5b", - "renounceOwnership()": "715018a6", - "transferOwnership(address)": "f2fde38b" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"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.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" - } - }, - "@openzeppelin/contracts/utils/Context.sol": { - "Context": { - "abi": [], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" - } - }, - "contracts/AgentsRegistry.sol": { - "AgentsRegistry": { - "abi": [ - { - "inputs": [ - { - "internalType": "contract ServiceRegistry", - "name": "_serviceRegistry", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "agent", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "agentUri", - "type": "string" - } - ], - "name": "AgentRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "agent", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "price", - "type": "uint256" - } - ], - "name": "ProposalAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "agent", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newReputation", - "type": "uint256" - } - ], - "name": "ReputationUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "agent", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "name", - "type": "uint256" - } - ], - "name": "ServiceAdded", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "agents", - "outputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "agentUri", - "type": "string" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "agent", - "type": "address" - }, - { - "internalType": "uint256", - "name": "reputation", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "isRegistered", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_agent", - "type": "address" - } - ], - "name": "getAgentData", - "outputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "agentUri", - "type": "string" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "agent", - "type": "address" - }, - { - "internalType": "uint256", - "name": "reputation", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - } - ], - "name": "getProposal", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "issuer", - "type": "address" - }, - { - "internalType": "string", - "name": "serviceName", - "type": "string" - }, - { - "internalType": "uint256", - "name": "price", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - } - ], - "internalType": "struct IProposalStruct.Proposal", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "agent", - "type": "address" - } - ], - "name": "getReputation", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "agent", - "type": "address" - } - ], - "name": "isRegistered", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "nextProposalId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "proposals", - "outputs": [ - { - "internalType": "address", - "name": "issuer", - "type": "address" - }, - { - "internalType": "string", - "name": "serviceName", - "type": "string" - }, - { - "internalType": "uint256", - "name": "price", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "agent", - "type": "address" - }, - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "agentUri", - "type": "string" - }, - { - "internalType": "string", - "name": "serviceName", - "type": "string" - }, - { - "internalType": "uint256", - "name": "servicePrice", - "type": "uint256" - } - ], - "name": "registerAgent", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "serviceRegistry", - "outputs": [ - { - "internalType": "contract ServiceRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "agent", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_reputation", - "type": "uint256" - } - ], - "name": "updateReputation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": { - "@_247": { - "entryPoint": null, - "id": 247, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_50": { - "entryPoint": null, - "id": 50, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_transferOwnership_146": { - "entryPoint": 132, - "id": 146, - "parameterSlots": 1, - "returnSlots": 0 - }, - "abi_decode_tuple_t_contract$_ServiceRegistry_$682_fromMemory": { - "entryPoint": 212, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - } - }, - "generatedSources": [ - { - "ast": { - "nodeType": "YulBlock", - "src": "0:537:7", - "statements": [ - { - "nodeType": "YulBlock", - "src": "6:3:7", - "statements": [] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "118:209:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "164:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "173:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "176:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "166:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "166:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "166:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "139:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "148:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "135:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "135:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "160:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "131:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "131:32:7" - }, - "nodeType": "YulIf", - "src": "128:52:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "189:29:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "208:9:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "202:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "202:16:7" - }, - "variables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "193:5:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "281:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "290:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "293:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "283:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "283:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "283:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "240:5:7" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "251:5:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "266:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "271:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "262:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "262:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "275:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "258:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "258:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "247:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "247:31:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "237:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "237:42:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "230:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "230:50:7" - }, - "nodeType": "YulIf", - "src": "227:70:7" - }, - { - "nodeType": "YulAssignment", - "src": "306:15:7", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "316:5:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "306:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_contract$_ServiceRegistry_$682_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "84:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "95:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "107:6:7", - "type": "" - } - ], - "src": "14:313:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "433:102:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "443:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "455:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "466:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "451:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "451:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "443:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "485:9:7" - }, - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "500:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "516:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "521:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "512:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "512:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "525:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "508:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "508:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "496:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "496:32:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "478:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "478:51:7" - }, - "nodeType": "YulExpressionStatement", - "src": "478:51:7" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "402:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "413:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "424:4:7", - "type": "" - } - ], - "src": "332:203:7" - } - ] - }, - "contents": "{\n { }\n function abi_decode_tuple_t_contract$_ServiceRegistry_$682_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n}", - "id": 7, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b5060405161132238038061132283398101604081905261002f916100d4565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e81610084565b50600180546001600160a01b0319166001600160a01b0392909216919091179055610104565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100e657600080fd5b81516001600160a01b03811681146100fd57600080fd5b9392505050565b61120f806101136000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063aac9f15a1161008c578063cbcf252a11610066578063cbcf252a146101ef578063f2fde38b14610202578063f5c91a0814610215578063fd66091e1461022857600080fd5b8063aac9f15a1461017c578063c3c5a547146101a0578063c7f758a8146101cf57600080fd5b8063013cf08b146100d45780632ab09d1414610100578063715018a6146101175780638da5cb5b1461012157806398366dbd146101465780639c89a0e214610169575b600080fd5b6100e76100e2366004610c9d565b61024d565b6040516100f79493929190610cfc565b60405180910390f35b61010960045481565b6040519081526020016100f7565b61011f61031b565b005b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100f7565b610159610154366004610df2565b61032f565b60405190151581526020016100f7565b610109610177366004610e93565b6106a5565b61018f61018a366004610e93565b61072e565b6040516100f7959493929190610eb5565b6101596101ae366004610e93565b6001600160a01b031660009081526002602052604090206005015460ff1690565b6101e26101dd366004610c9d565b61089f565b6040516100f79190610eff565b60015461012e906001600160a01b031681565b61011f610210366004610e93565b6109c3565b61011f610223366004610f4d565b610a01565b61023b610236366004610e93565b610aca565b6040516100f796959493929190610f77565b6003818154811061025d57600080fd5b6000918252602090912060049091020180546001820180546001600160a01b0390921693509061028c90610fcd565b80601f01602080910402602001604051908101604052809291908181526020018280546102b890610fcd565b80156103055780601f106102da57610100808354040283529160200191610305565b820191906000526020600020905b8154815290600101906020018083116102e857829003601f168201915b5050505050908060020154908060030154905084565b610323610c20565b61032d6000610c4d565b565b6001600160a01b03851660009081526002602052604081206005015460ff16156103a05760405162461bcd60e51b815260206004820152601860248201527f4167656e7420616c72656164792072656769737465726564000000000000000060448201526064015b60405180910390fd5b60015460405163b405166b60e01b81526001600160a01b039091169063b405166b906103d0908690600401611001565b602060405180830381865afa1580156103ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104119190611014565b6104565760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b6044820152606401610397565b6001600160a01b0386166000908152600260205260409020806104798782611085565b50600181016104888682611085565b506002810180546001600160a01b031990811633179091556003820180546001600160a01b038a811691841682179092556000600480860182905560058601805460ff191660019081179091556040805160808101825294855260208086018c81529186018b9052835460608701526006890180548085018255908652942085519490930290920180549390951692909516919091178355519092839291908201906105349082611085565b5060408201516002820155606090910151600391820155805460018101825560009190915281517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b600490920291820180546001600160a01b0319166001600160a01b03909216919091178155602083015183927fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c01906105d59082611085565b5060408201516002820155606090910151600390910155600480549060006105fc83611145565b9190505550336001600160a01b0316886001600160a01b03167f2a562efb52e7cec209321f57200606311256da6d2a1b19d44db7837a3209de28898960405161064692919061116c565b60405180910390a3876001600160a01b03167fe194e0bc2279adb185c748ae57db10fe2ef1005a1b5646f96235a881c88ddb798260600151878760405161068f9392919061119a565b60405180910390a2506001979650505050505050565b6001600160a01b038116600090815260026020526040812060050154829060ff166107095760405162461bcd60e51b81526020600482015260146024820152731059d95b9d081b9bdd081c9959da5cdd195c995960621b6044820152606401610397565b6001600160a01b03831660009081526002602052604090206004015491505b50919050565b6001600160a01b038082166000908152600260208190526040822090810154600382015460048301548354606096879695869586959194859460018601949283169390921691859061077f90610fcd565b80601f01602080910402602001604051908101604052809291908181526020018280546107ab90610fcd565b80156107f85780601f106107cd576101008083540402835291602001916107f8565b820191906000526020600020905b8154815290600101906020018083116107db57829003601f168201915b5050505050945083805461080b90610fcd565b80601f016020809104026020016040519081016040528092919081815260200182805461083790610fcd565b80156108845780601f1061085957610100808354040283529160200191610884565b820191906000526020600020905b81548152906001019060200180831161086757829003601f168201915b50505050509350955095509550955095505091939590929450565b6108d3604051806080016040528060006001600160a01b031681526020016060815260200160008152602001600081525090565b600382815481106108e6576108e66111c3565b6000918252602091829020604080516080810190915260049092020180546001600160a01b03168252600181018054929391929184019161092690610fcd565b80601f016020809104026020016040519081016040528092919081815260200182805461095290610fcd565b801561099f5780601f106109745761010080835404028352916020019161099f565b820191906000526020600020905b81548152906001019060200180831161098257829003601f168201915b50505050508152602001600282015481526020016003820154815250509050919050565b6109cb610c20565b6001600160a01b0381166109f557604051631e4fbdf760e01b815260006004820152602401610397565b6109fe81610c4d565b50565b610a09610c20565b6001600160a01b038216600090815260026020526040902060050154829060ff16610a6d5760405162461bcd60e51b81526020600482015260146024820152731059d95b9d081b9bdd081c9959da5cdd195c995960621b6044820152606401610397565b6001600160a01b03831660008181526002602052604090819020600401849055517ffc577563f1b9a0461e24abef1e1fcc0d33d3d881f20b5df6dda59de4aae2c82190610abd9085815260200190565b60405180910390a2505050565b600260205260009081526040902080548190610ae590610fcd565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1190610fcd565b8015610b5e5780601f10610b3357610100808354040283529160200191610b5e565b820191906000526020600020905b815481529060010190602001808311610b4157829003601f168201915b505050505090806001018054610b7390610fcd565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9f90610fcd565b8015610bec5780601f10610bc157610100808354040283529160200191610bec565b820191906000526020600020905b815481529060010190602001808311610bcf57829003601f168201915b5050505060028301546003840154600485015460059095015493946001600160a01b03928316949290911692509060ff1686565b6000546001600160a01b0316331461032d5760405163118cdaa760e01b8152336004820152602401610397565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610caf57600080fd5b5035919050565b6000815180845260005b81811015610cdc57602081850181015186830182015201610cc0565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0385168152608060208201819052600090610d2090830186610cb6565b6040830194909452506060015292915050565b80356001600160a01b0381168114610d4a57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610d7657600080fd5b813567ffffffffffffffff80821115610d9157610d91610d4f565b604051601f8301601f19908116603f01168101908282118183101715610db957610db9610d4f565b81604052838152866020858801011115610dd257600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a08688031215610e0a57600080fd5b610e1386610d33565b9450602086013567ffffffffffffffff80821115610e3057600080fd5b610e3c89838a01610d65565b95506040880135915080821115610e5257600080fd5b610e5e89838a01610d65565b94506060880135915080821115610e7457600080fd5b50610e8188828901610d65565b95989497509295608001359392505050565b600060208284031215610ea557600080fd5b610eae82610d33565b9392505050565b60a081526000610ec860a0830188610cb6565b8281036020840152610eda8188610cb6565b6001600160a01b03968716604085015294909516606083015250608001529392505050565b602080825282516001600160a01b03168282015282015160806040830152600090610f2d60a0840182610cb6565b905060408401516060840152606084015160808401528091505092915050565b60008060408385031215610f6057600080fd5b610f6983610d33565b946020939093013593505050565b60c081526000610f8a60c0830189610cb6565b8281036020840152610f9c8189610cb6565b6001600160a01b039788166040850152959096166060830152506080810192909252151560a0909101529392505050565b600181811c90821680610fe157607f821691505b60208210810361072857634e487b7160e01b600052602260045260246000fd5b602081526000610eae6020830184610cb6565b60006020828403121561102657600080fd5b81518015158114610eae57600080fd5b601f82111561108057600081815260208120601f850160051c8101602086101561105d5750805b601f850160051c820191505b8181101561107c57828155600101611069565b5050505b505050565b815167ffffffffffffffff81111561109f5761109f610d4f565b6110b3816110ad8454610fcd565b84611036565b602080601f8311600181146110e857600084156110d05750858301515b600019600386901b1c1916600185901b17855561107c565b600085815260208120601f198616915b82811015611117578886015182559484019460019091019084016110f8565b50858210156111355787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006001820161116557634e487b7160e01b600052601160045260246000fd5b5060010190565b60408152600061117f6040830185610cb6565b82810360208401526111918185610cb6565b95945050505050565b8381526060602082015260006111b36060830185610cb6565b9050826040830152949350505050565b634e487b7160e01b600052603260045260246000fdfea26469706673582212202fe5e950305276469a5e1b110d11d1a15beca558b7c205b065d06b11c61cfe7964736f6c63430008140033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1322 CODESIZE SUB DUP1 PUSH2 0x1322 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0xD4 JUMP JUMPDEST CALLER DUP1 PUSH2 0x55 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5E DUP2 PUSH2 0x84 JUMP JUMPDEST POP PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x104 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x120F DUP1 PUSH2 0x113 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xAAC9F15A GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xCBCF252A GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xCBCF252A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0xF5C91A08 EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0xFD66091E EQ PUSH2 0x228 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xAAC9F15A EQ PUSH2 0x17C JUMPI DUP1 PUSH4 0xC3C5A547 EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0xC7F758A8 EQ PUSH2 0x1CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x2AB09D14 EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x121 JUMPI DUP1 PUSH4 0x98366DBD EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x9C89A0E2 EQ PUSH2 0x169 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE7 PUSH2 0xE2 CALLDATASIZE PUSH1 0x4 PUSH2 0xC9D JUMP JUMPDEST PUSH2 0x24D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xCFC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x109 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF7 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x31B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF7 JUMP JUMPDEST PUSH2 0x159 PUSH2 0x154 CALLDATASIZE PUSH1 0x4 PUSH2 0xDF2 JUMP JUMPDEST PUSH2 0x32F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF7 JUMP JUMPDEST PUSH2 0x109 PUSH2 0x177 CALLDATASIZE PUSH1 0x4 PUSH2 0xE93 JUMP JUMPDEST PUSH2 0x6A5 JUMP JUMPDEST PUSH2 0x18F PUSH2 0x18A CALLDATASIZE PUSH1 0x4 PUSH2 0xE93 JUMP JUMPDEST PUSH2 0x72E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xEB5 JUMP JUMPDEST PUSH2 0x159 PUSH2 0x1AE CALLDATASIZE PUSH1 0x4 PUSH2 0xE93 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x5 ADD SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x1E2 PUSH2 0x1DD CALLDATASIZE PUSH1 0x4 PUSH2 0xC9D JUMP JUMPDEST PUSH2 0x89F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP2 SWAP1 PUSH2 0xEFF JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x12E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x210 CALLDATASIZE PUSH1 0x4 PUSH2 0xE93 JUMP JUMPDEST PUSH2 0x9C3 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x223 CALLDATASIZE PUSH1 0x4 PUSH2 0xF4D JUMP JUMPDEST PUSH2 0xA01 JUMP JUMPDEST PUSH2 0x23B PUSH2 0x236 CALLDATASIZE PUSH1 0x4 PUSH2 0xE93 JUMP JUMPDEST PUSH2 0xACA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF77 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x25D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x4 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP4 POP SWAP1 PUSH2 0x28C SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2B8 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x305 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2DA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x305 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2E8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 POP DUP5 JUMP JUMPDEST PUSH2 0x323 PUSH2 0xC20 JUMP JUMPDEST PUSH2 0x32D PUSH1 0x0 PUSH2 0xC4D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x5 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x3A0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4167656E7420616C726561647920726567697374657265640000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0x3D0 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1001 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3ED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x411 SWAP2 SWAP1 PUSH2 0x1014 JUMP JUMPDEST PUSH2 0x456 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x14D95C9D9A58D9481B9BDD081C9959DA5CDD195C9959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x397 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 PUSH2 0x479 DUP8 DUP3 PUSH2 0x1085 JUMP JUMPDEST POP PUSH1 0x1 DUP2 ADD PUSH2 0x488 DUP7 DUP3 PUSH2 0x1085 JUMP JUMPDEST POP PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP2 DUP5 AND DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 PUSH1 0x4 DUP1 DUP7 ADD DUP3 SWAP1 SSTORE PUSH1 0x5 DUP7 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE SWAP5 DUP6 MSTORE PUSH1 0x20 DUP1 DUP7 ADD DUP13 DUP2 MSTORE SWAP2 DUP7 ADD DUP12 SWAP1 MSTORE DUP4 SLOAD PUSH1 0x60 DUP8 ADD MSTORE PUSH1 0x6 DUP10 ADD DUP1 SLOAD DUP1 DUP6 ADD DUP3 SSTORE SWAP1 DUP7 MSTORE SWAP5 KECCAK256 DUP6 MLOAD SWAP5 SWAP1 SWAP4 MUL SWAP1 SWAP3 ADD DUP1 SLOAD SWAP4 SWAP1 SWAP6 AND SWAP3 SWAP1 SWAP6 AND SWAP2 SWAP1 SWAP2 OR DUP4 SSTORE MLOAD SWAP1 SWAP3 DUP4 SWAP3 SWAP2 SWAP1 DUP3 ADD SWAP1 PUSH2 0x534 SWAP1 DUP3 PUSH2 0x1085 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SSTORE PUSH1 0x60 SWAP1 SWAP2 ADD MLOAD PUSH1 0x3 SWAP2 DUP3 ADD SSTORE DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B PUSH1 0x4 SWAP1 SWAP3 MUL SWAP2 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x20 DUP4 ADD MLOAD DUP4 SWAP3 PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85C ADD SWAP1 PUSH2 0x5D5 SWAP1 DUP3 PUSH2 0x1085 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SSTORE PUSH1 0x60 SWAP1 SWAP2 ADD MLOAD PUSH1 0x3 SWAP1 SWAP2 ADD SSTORE PUSH1 0x4 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x5FC DUP4 PUSH2 0x1145 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x2A562EFB52E7CEC209321F57200606311256DA6D2A1B19D44DB7837A3209DE28 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH2 0x646 SWAP3 SWAP2 SWAP1 PUSH2 0x116C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xE194E0BC2279ADB185C748AE57DB10FE2EF1005A1B5646F96235A881C88DDB79 DUP3 PUSH1 0x60 ADD MLOAD DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x68F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x119A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP PUSH1 0x1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x5 ADD SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH2 0x709 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x1059D95B9D081B9BDD081C9959DA5CDD195C9959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x397 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD SWAP2 POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SWAP1 DUP2 ADD SLOAD PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x4 DUP4 ADD SLOAD DUP4 SLOAD PUSH1 0x60 SWAP7 DUP8 SWAP7 SWAP6 DUP7 SWAP6 DUP7 SWAP6 SWAP2 SWAP5 DUP6 SWAP5 PUSH1 0x1 DUP7 ADD SWAP5 SWAP3 DUP4 AND SWAP4 SWAP1 SWAP3 AND SWAP2 DUP6 SWAP1 PUSH2 0x77F SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x7AB SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7F8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x7CD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x7F8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x7DB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP5 POP DUP4 DUP1 SLOAD PUSH2 0x80B SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x837 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x884 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x859 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x884 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x867 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP4 POP SWAP6 POP SWAP6 POP SWAP6 POP SWAP6 POP SWAP6 POP POP SWAP2 SWAP4 SWAP6 SWAP1 SWAP3 SWAP5 POP JUMP JUMPDEST PUSH2 0x8D3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x8E6 JUMPI PUSH2 0x8E6 PUSH2 0x11C3 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x4 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE PUSH1 0x1 DUP2 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x926 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x952 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x99F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x974 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x99F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x982 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9CB PUSH2 0xC20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x9F5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x397 JUMP JUMPDEST PUSH2 0x9FE DUP2 PUSH2 0xC4D JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xA09 PUSH2 0xC20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x5 ADD SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH2 0xA6D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x1059D95B9D081B9BDD081C9959DA5CDD195C9959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x397 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 PUSH1 0x4 ADD DUP5 SWAP1 SSTORE MLOAD PUSH32 0xFC577563F1B9A0461E24ABEF1E1FCC0D33D3D881F20B5DF6DDA59DE4AAE2C821 SWAP1 PUSH2 0xABD SWAP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP2 SWAP1 PUSH2 0xAE5 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xB11 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB5E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB33 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB5E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB41 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0xB73 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xB9F SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0xBEC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBC1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xBEC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xBCF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 DUP6 ADD SLOAD PUSH1 0x5 SWAP1 SWAP6 ADD SLOAD SWAP4 SWAP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP5 SWAP3 SWAP1 SWAP2 AND SWAP3 POP SWAP1 PUSH1 0xFF AND DUP7 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x32D JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x397 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xCDC JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0xCC0 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xD20 SWAP1 DUP4 ADD DUP7 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x60 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xD76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xD91 JUMPI PUSH2 0xD91 PUSH2 0xD4F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xDB9 JUMPI PUSH2 0xDB9 PUSH2 0xD4F JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0xDD2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xE0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE13 DUP7 PUSH2 0xD33 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xE30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE3C DUP10 DUP4 DUP11 ADD PUSH2 0xD65 JUMP JUMPDEST SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xE52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE5E DUP10 DUP4 DUP11 ADD PUSH2 0xD65 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xE74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE81 DUP9 DUP3 DUP10 ADD PUSH2 0xD65 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP3 SWAP6 PUSH1 0x80 ADD CALLDATALOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEAE DUP3 PUSH2 0xD33 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP2 MSTORE PUSH1 0x0 PUSH2 0xEC8 PUSH1 0xA0 DUP4 ADD DUP9 PUSH2 0xCB6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xEDA DUP2 DUP9 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP7 DUP8 AND PUSH1 0x40 DUP6 ADD MSTORE SWAP5 SWAP1 SWAP6 AND PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 DUP3 ADD MSTORE DUP3 ADD MLOAD PUSH1 0x80 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x0 SWAP1 PUSH2 0xF2D PUSH1 0xA0 DUP5 ADD DUP3 PUSH2 0xCB6 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x80 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF69 DUP4 PUSH2 0xD33 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0xC0 DUP2 MSTORE PUSH1 0x0 PUSH2 0xF8A PUSH1 0xC0 DUP4 ADD DUP10 PUSH2 0xCB6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xF9C DUP2 DUP10 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 DUP9 AND PUSH1 0x40 DUP6 ADD MSTORE SWAP6 SWAP1 SWAP7 AND PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE ISZERO ISZERO PUSH1 0xA0 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xFE1 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x728 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xEAE PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1026 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xEAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1080 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x105D JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x107C JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1069 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x109F JUMPI PUSH2 0x109F PUSH2 0xD4F JUMP JUMPDEST PUSH2 0x10B3 DUP2 PUSH2 0x10AD DUP5 SLOAD PUSH2 0xFCD JUMP JUMPDEST DUP5 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x10E8 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x10D0 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x107C JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1117 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x10F8 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x1135 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x1165 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x117F PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0xCB6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x1191 DUP2 DUP6 PUSH2 0xCB6 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x11B3 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0xCB6 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2F 0xE5 0xE9 POP ADDRESS MSTORE PUSH23 0x469A5E1B110D11D1A15BECA558B7C205B065D06B11C61C INVALID PUSH26 0x64736F6C63430008140033000000000000000000000000000000 ", - "sourceMap": "362:3969:2:-:0;;;922:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;976:10;;1269:95:0;;1322:31;;-1:-1:-1;;;1322:31:0;;1350:1;1322:31;;;478:51:7;451:18;;1322:31:0;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;998:15:2::1;:34:::0;;-1:-1:-1;;;;;;998:34:2::1;-1:-1:-1::0;;;;;998:34:2;;;::::1;::::0;;;::::1;::::0;;362:3969;;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:313:7:-;107:6;160:2;148:9;139:7;135:23;131:32;128:52;;;176:1;173;166:12;128:52;202:16;;-1:-1:-1;;;;;247:31:7;;237:42;;227:70;;293:1;290;283:12;227:70;316:5;14:313;-1:-1:-1;;;14:313:7:o;332:203::-;362:3969:2;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@_checkOwner_84": { - "entryPoint": 3104, - "id": 84, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_msgSender_159": { - "entryPoint": null, - "id": 159, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_transferOwnership_146": { - "entryPoint": 3149, - "id": 146, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@agents_212": { - "entryPoint": 2762, - "id": 212, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@getAgentData_492": { - "entryPoint": 1838, - "id": 492, - "parameterSlots": 1, - "returnSlots": 5 - }, - "@getProposal_505": { - "entryPoint": 2207, - "id": 505, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getReputation_443": { - "entryPoint": 1701, - "id": 443, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@isRegistered_456": { - "entryPoint": null, - "id": 456, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@nextProposalId_218": { - "entryPoint": null, - "id": 218, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@owner_67": { - "entryPoint": null, - "id": 67, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@proposals_216": { - "entryPoint": 589, - "id": 216, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@registerAgent_402": { - "entryPoint": 815, - "id": 402, - "parameterSlots": 5, - "returnSlots": 1 - }, - "@renounceOwnership_98": { - "entryPoint": 795, - "id": 98, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@serviceRegistry_207": { - "entryPoint": null, - "id": 207, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@transferOwnership_126": { - "entryPoint": 2499, - "id": 126, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@updateReputation_427": { - "entryPoint": 2561, - "id": 427, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_decode_address": { - "entryPoint": 3379, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_decode_string": { - "entryPoint": 3429, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_address": { - "entryPoint": 3731, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_addresst_string_memory_ptrt_string_memory_ptrt_string_memory_ptrt_uint256": { - "entryPoint": 3570, - "id": null, - "parameterSlots": 2, - "returnSlots": 5 - }, - "abi_decode_tuple_t_addresst_uint256": { - "entryPoint": 3917, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_bool_fromMemory": { - "entryPoint": 4116, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint256": { - "entryPoint": 3229, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_string": { - "entryPoint": 3254, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_string_memory_ptr_t_uint256_t_uint256__to_t_address_t_string_memory_ptr_t_uint256_t_uint256__fromStack_reversed": { - "entryPoint": 3324, - "id": null, - "parameterSlots": 5, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_contract$_ServiceRegistry_$682__to_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 4097, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 4460, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256__to_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256__fromStack_reversed": { - "entryPoint": 3765, - "id": null, - "parameterSlots": 6, - "returnSlots": 1 - }, - "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256_t_bool__to_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256_t_bool__fromStack_reversed": { - "entryPoint": 3959, - "id": null, - "parameterSlots": 7, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_3c17f52d7f382f39131bc893c7e27e69aa71bee31c68e2de3649b59b8bfebc2b__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_6b24a63f053c9f60b33a6142346432678adff778fb93a8ecec9013d5a898e395__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_struct$_Proposal_$1014_memory_ptr__to_t_struct$_Proposal_$1014_memory_ptr__fromStack_reversed": { - "entryPoint": 3839, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_string_memory_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_uint256__fromStack_reversed": { - "entryPoint": 4506, - "id": null, - "parameterSlots": 4, - "returnSlots": 1 - }, - "array_dataslot_string_storage": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "clean_up_bytearray_end_slots_string_storage": { - "entryPoint": 4150, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { - "entryPoint": 4229, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "extract_byte_array_length": { - "entryPoint": 4045, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "extract_used_part_and_set_length_of_short_byte_array": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "increment_t_uint256": { - "entryPoint": 4421, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "panic_error_0x32": { - "entryPoint": 4547, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x41": { - "entryPoint": 3407, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nodeType": "YulBlock", - "src": "0:11535:7", - "statements": [ - { - "nodeType": "YulBlock", - "src": "6:3:7", - "statements": [] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "84:110:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "130:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "139:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "142:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "132:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "132:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "132:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "105:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "114:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "101:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "101:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "126:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "97:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "97:32:7" - }, - "nodeType": "YulIf", - "src": "94:52:7" - }, - { - "nodeType": "YulAssignment", - "src": "155:33:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "178:9:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "165:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "165:23:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "155:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "50:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "61:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "73:6:7", - "type": "" - } - ], - "src": "14:180:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "249:373:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "259:26:7", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "279:5:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "273:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "273:12:7" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "263:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "301:3:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "306:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "294:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "294:19:7" - }, - "nodeType": "YulExpressionStatement", - "src": "294:19:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "322:10:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "331:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "326:1:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "393:110:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "407:14:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "417:4:7", - "type": "", - "value": "0x20" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "411:2:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "449:3:7" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "454:1:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "445:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "445:11:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "458:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "441:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "441:20:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "477:5:7" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "484:1:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "473:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "473:13:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "488:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "469:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "469:22:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "463:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "463:29:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "434:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "434:59:7" - }, - "nodeType": "YulExpressionStatement", - "src": "434:59:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "352:1:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "355:6:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "349:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "349:13:7" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "363:21:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "365:17:7", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "374:1:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "377:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "370:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "370:12:7" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "365:1:7" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "345:3:7", - "statements": [] - }, - "src": "341:162:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "527:3:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "532:6:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "523:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "523:16:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "541:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "519:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "519:27:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "548:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "512:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "512:38:7" - }, - "nodeType": "YulExpressionStatement", - "src": "512:38:7" - }, - { - "nodeType": "YulAssignment", - "src": "559:57:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "574:3:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "587:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "595:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "583:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "583:15:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "604:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "600:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "600:7:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "579:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "579:29:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "570:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "570:39:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "611:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "566:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "566:50:7" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "559:3:7" - } - ] - } - ] - }, - "name": "abi_encode_string", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "226:5:7", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "233:3:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "241:3:7", - "type": "" - } - ], - "src": "199:423:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "832:256:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "849:9:7" - }, - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "864:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "880:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "885:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "876:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "876:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "889:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "872:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "872:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "860:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "860:32:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "842:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "842:51:7" - }, - "nodeType": "YulExpressionStatement", - "src": "842:51:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "913:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "924:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "909:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "909:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "929:3:7", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "902:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "902:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "902:31:7" - }, - { - "nodeType": "YulAssignment", - "src": "942:54:7", - "value": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "968:6:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "980:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "991:3:7", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "976:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "976:19:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "950:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "950:46:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "942:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1016:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1027:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1012:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1012:18:7" - }, - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "1032:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1005:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1005:34:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1005:34:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1059:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1070:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1055:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1055:18:7" - }, - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "1075:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1048:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1048:34:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1048:34:7" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_string_memory_ptr_t_uint256_t_uint256__to_t_address_t_string_memory_ptr_t_uint256_t_uint256__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "777:9:7", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "788:6:7", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "796:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "804:6:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "812:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "823:4:7", - "type": "" - } - ], - "src": "627:461:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1194:76:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1204:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1216:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1227:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1212:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1212:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "1204:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1246:9:7" - }, - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1257:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1239:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1239:25:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1239:25:7" - } - ] - }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1163:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1174:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "1185:4:7", - "type": "" - } - ], - "src": "1093:177:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1376:102:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1386:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1398:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1409:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1394:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1394:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "1386:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1428:9:7" - }, - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1443:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1459:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1464:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "1455:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1455:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1468:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "1451:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1451:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "1439:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1439:32:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1421:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1421:51:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1421:51:7" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1345:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1356:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "1367:4:7", - "type": "" - } - ], - "src": "1275:203:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1532:124:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1542:29:7", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1564:6:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "1551:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "1551:20:7" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1542:5:7" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1634:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1643:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1646:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1636:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1636:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1636:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1593:5:7" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1604:5:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1619:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1624:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "1615:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1615:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1628:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "1611:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1611:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "1600:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1600:31:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "1590:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "1590:42:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "1583:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1583:50:7" - }, - "nodeType": "YulIf", - "src": "1580:70:7" - } - ] - }, - "name": "abi_decode_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1511:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1522:5:7", - "type": "" - } - ], - "src": "1483:173:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1693:95:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1710:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1717:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1722:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "1713:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1713:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1703:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1703:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1703:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1750:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1753:4:7", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1743:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1743:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1743:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1774:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1777:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1767:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1767:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1767:15:7" - } - ] - }, - "name": "panic_error_0x41", - "nodeType": "YulFunctionDefinition", - "src": "1661:127:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1846:666:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "1895:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1904:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1907:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1897:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1897:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1897:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1874:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1882:4:7", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1870:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1870:17:7" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "1889:3:7" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "1866:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1866:27:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "1859:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1859:35:7" - }, - "nodeType": "YulIf", - "src": "1856:55:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "1920:30:7", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1943:6:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "1930:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "1930:20:7" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "1924:2:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "1959:28:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1969:18:7", - "type": "", - "value": "0xffffffffffffffff" - }, - "variables": [ - { - "name": "_2", - "nodeType": "YulTypedName", - "src": "1963:2:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2010:22:7", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "2012:16:7" - }, - "nodeType": "YulFunctionCall", - "src": "2012:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2012:18:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "2002:2:7" - }, - { - "name": "_2", - "nodeType": "YulIdentifier", - "src": "2006:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "1999:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "1999:10:7" - }, - "nodeType": "YulIf", - "src": "1996:36:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2041:17:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2055:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "2051:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2051:7:7" - }, - "variables": [ - { - "name": "_3", - "nodeType": "YulTypedName", - "src": "2045:2:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2067:23:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2087:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "2081:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "2081:9:7" - }, - "variables": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "2071:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2099:71:7", - "value": { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "2121:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "2145:2:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2149:4:7", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2141:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2141:13:7" - }, - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "2156:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "2137:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2137:22:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2161:2:7", - "type": "", - "value": "63" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2133:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2133:31:7" - }, - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "2166:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "2129:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2129:40:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2117:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2117:53:7" - }, - "variables": [ - { - "name": "newFreePtr", - "nodeType": "YulTypedName", - "src": "2103:10:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2229:22:7", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "2231:16:7" - }, - "nodeType": "YulFunctionCall", - "src": "2231:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2231:18:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "2188:10:7" - }, - { - "name": "_2", - "nodeType": "YulIdentifier", - "src": "2200:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "2185:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "2185:18:7" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "2208:10:7" - }, - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "2220:6:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "2205:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "2205:22:7" - } - ], - "functionName": { - "name": "or", - "nodeType": "YulIdentifier", - "src": "2182:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "2182:46:7" - }, - "nodeType": "YulIf", - "src": "2179:72:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2267:2:7", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "2271:10:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2260:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2260:22:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2260:22:7" - }, - { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "2298:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "2306:2:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2291:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2291:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2291:18:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2357:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2366:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2369:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "2359:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2359:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2359:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "2332:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "2340:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2328:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2328:15:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2345:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2324:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2324:26:7" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "2352:3:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "2321:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "2321:35:7" - }, - "nodeType": "YulIf", - "src": "2318:55:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "2399:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2407:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2395:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2395:17:7" - }, - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "2418:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2426:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2414:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2414:17:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "2433:2:7" - } - ], - "functionName": { - "name": "calldatacopy", - "nodeType": "YulIdentifier", - "src": "2382:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "2382:54:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2382:54:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "2460:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "2468:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2456:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2456:15:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2473:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2452:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2452:26:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2480:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2445:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2445:37:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2445:37:7" - }, - { - "nodeType": "YulAssignment", - "src": "2491:15:7", - "value": { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "2500:6:7" - }, - "variableNames": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "2491:5:7" - } - ] - } - ] - }, - "name": "abi_decode_string", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1820:6:7", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "1828:3:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nodeType": "YulTypedName", - "src": "1836:5:7", - "type": "" - } - ], - "src": "1793:719:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2685:719:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "2732:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2741:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2744:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "2734:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2734:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2734:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "2706:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2715:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "2702:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2702:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2727:3:7", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "2698:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2698:33:7" - }, - "nodeType": "YulIf", - "src": "2695:53:7" - }, - { - "nodeType": "YulAssignment", - "src": "2757:39:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2786:9:7" - } - ], - "functionName": { - "name": "abi_decode_address", - "nodeType": "YulIdentifier", - "src": "2767:18:7" - }, - "nodeType": "YulFunctionCall", - "src": "2767:29:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2757:6:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2805:46:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2836:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2847:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2832:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2832:18:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "2819:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "2819:32:7" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "2809:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2860:28:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2870:18:7", - "type": "", - "value": "0xffffffffffffffff" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "2864:2:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2915:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2924:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2927:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "2917:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2917:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2917:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "2903:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "2911:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "2900:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "2900:14:7" - }, - "nodeType": "YulIf", - "src": "2897:34:7" - }, - { - "nodeType": "YulAssignment", - "src": "2940:60:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2972:9:7" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "2983:6:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2968:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2968:22:7" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "2992:7:7" - } - ], - "functionName": { - "name": "abi_decode_string", - "nodeType": "YulIdentifier", - "src": "2950:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "2950:50:7" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "2940:6:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3009:48:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3042:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3053:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3038:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3038:18:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "3025:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "3025:32:7" - }, - "variables": [ - { - "name": "offset_1", - "nodeType": "YulTypedName", - "src": "3013:8:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3086:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3095:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3098:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "3088:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3088:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3088:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset_1", - "nodeType": "YulIdentifier", - "src": "3072:8:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "3082:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "3069:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "3069:16:7" - }, - "nodeType": "YulIf", - "src": "3066:36:7" - }, - { - "nodeType": "YulAssignment", - "src": "3111:62:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3143:9:7" - }, - { - "name": "offset_1", - "nodeType": "YulIdentifier", - "src": "3154:8:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3139:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3139:24:7" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3165:7:7" - } - ], - "functionName": { - "name": "abi_decode_string", - "nodeType": "YulIdentifier", - "src": "3121:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "3121:52:7" - }, - "variableNames": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "3111:6:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3182:48:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3215:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3226:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3211:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3211:18:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "3198:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "3198:32:7" - }, - "variables": [ - { - "name": "offset_2", - "nodeType": "YulTypedName", - "src": "3186:8:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3259:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3268:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3271:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "3261:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3261:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3261:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset_2", - "nodeType": "YulIdentifier", - "src": "3245:8:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "3255:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "3242:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "3242:16:7" - }, - "nodeType": "YulIf", - "src": "3239:36:7" - }, - { - "nodeType": "YulAssignment", - "src": "3284:62:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3316:9:7" - }, - { - "name": "offset_2", - "nodeType": "YulIdentifier", - "src": "3327:8:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3312:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3312:24:7" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3338:7:7" - } - ], - "functionName": { - "name": "abi_decode_string", - "nodeType": "YulIdentifier", - "src": "3294:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "3294:52:7" - }, - "variableNames": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "3284:6:7" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "3355:43:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3382:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3393:3:7", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3378:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3378:19:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "3365:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "3365:33:7" - }, - "variableNames": [ - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "3355:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_string_memory_ptrt_string_memory_ptrt_string_memory_ptrt_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "2619:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "2630:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "2642:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "2650:6:7", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "2658:6:7", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "2666:6:7", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "2674:6:7", - "type": "" - } - ], - "src": "2517:887:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3504:92:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "3514:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3526:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3537:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3522:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3522:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3514:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3556:9:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3581:6:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "3574:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3574:14:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "3567:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3567:22:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3549:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3549:41:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3549:41:7" - } - ] - }, - "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3473:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "3484:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "3495:4:7", - "type": "" - } - ], - "src": "3409:187:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3671:116:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "3717:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3726:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3729:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "3719:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3719:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3719:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3692:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3701:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "3688:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3688:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3713:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "3684:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3684:32:7" - }, - "nodeType": "YulIf", - "src": "3681:52:7" - }, - { - "nodeType": "YulAssignment", - "src": "3742:39:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3771:9:7" - } - ], - "functionName": { - "name": "abi_decode_address", - "nodeType": "YulIdentifier", - "src": "3752:18:7" - }, - "nodeType": "YulFunctionCall", - "src": "3752:29:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3742:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3637:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "3648:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "3660:6:7", - "type": "" - } - ], - "src": "3601:186:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4045:402:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4062:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4073:3:7", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4055:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4055:22:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4055:22:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "4086:60:7", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4118:6:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4130:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4141:3:7", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4126:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4126:19:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "4100:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "4100:46:7" - }, - "variables": [ - { - "name": "tail_1", - "nodeType": "YulTypedName", - "src": "4090:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4166:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4177:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4162:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4162:18:7" - }, - { - "arguments": [ - { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "4186:6:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4194:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "4182:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4182:22:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4155:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4155:50:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4155:50:7" - }, - { - "nodeType": "YulAssignment", - "src": "4214:41:7", - "value": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "4240:6:7" - }, - { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "4248:6:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "4222:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "4222:33:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "4214:4:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "4264:29:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4282:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4287:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "4278:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4278:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4291:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "4274:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4274:19:7" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "4268:2:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4313:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4324:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4309:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4309:18:7" - }, - { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "4333:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "4341:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "4329:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4329:15:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4302:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4302:43:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4302:43:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4365:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4376:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4361:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4361:18:7" - }, - { - "arguments": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "4385:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "4393:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "4381:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4381:15:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4354:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4354:43:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4354:43:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4417:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4428:3:7", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4413:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4413:19:7" - }, - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "4434:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4406:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4406:35:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4406:35:7" - } - ] - }, - "name": "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256__to_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3982:9:7", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "3993:6:7", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "4001:6:7", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "4009:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "4017:6:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "4025:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "4036:4:7", - "type": "" - } - ], - "src": "3792:655:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4605:423:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4622:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4633:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4615:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4615:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4615:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4656:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4667:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4652:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4652:18:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4682:6:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "4676:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "4676:13:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4699:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4704:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "4695:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4695:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4708:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "4691:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4691:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "4672:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4672:39:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4645:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4645:67:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4645:67:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "4721:42:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4751:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4759:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4747:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4747:15:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "4741:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "4741:22:7" - }, - "variables": [ - { - "name": "memberValue0", - "nodeType": "YulTypedName", - "src": "4725:12:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4783:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4794:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4779:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4779:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4799:4:7", - "type": "", - "value": "0x80" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4772:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4772:32:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4772:32:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "4813:66:7", - "value": { - "arguments": [ - { - "name": "memberValue0", - "nodeType": "YulIdentifier", - "src": "4845:12:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4863:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4874:3:7", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4859:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4859:19:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "4827:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "4827:52:7" - }, - "variables": [ - { - "name": "tail_1", - "nodeType": "YulTypedName", - "src": "4817:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4899:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4910:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4895:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4895:18:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4925:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4933:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4921:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4921:15:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "4915:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "4915:22:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4888:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4888:50:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4888:50:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4958:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4969:4:7", - "type": "", - "value": "0x80" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4954:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4954:20:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4986:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4994:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4982:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4982:15:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "4976:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "4976:22:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4947:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4947:52:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4947:52:7" - }, - { - "nodeType": "YulAssignment", - "src": "5008:14:7", - "value": { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "5016:6:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "5008:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_struct$_Proposal_$1014_memory_ptr__to_t_struct$_Proposal_$1014_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "4574:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "4585:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "4596:4:7", - "type": "" - } - ], - "src": "4452:576:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5157:102:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "5167:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5179:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5190:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5175:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5175:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "5167:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5209:9:7" - }, - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5224:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5240:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5245:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "5236:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5236:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5249:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "5232:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5232:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "5220:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5220:32:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "5202:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5202:51:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5202:51:7" - } - ] - }, - "name": "abi_encode_tuple_t_contract$_ServiceRegistry_$682__to_t_address__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "5126:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5137:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "5148:4:7", - "type": "" - } - ], - "src": "5033:226:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5351:167:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "5397:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5406:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5409:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "5399:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5399:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5399:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "5372:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5381:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "5368:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5368:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5393:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "5364:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5364:32:7" - }, - "nodeType": "YulIf", - "src": "5361:52:7" - }, - { - "nodeType": "YulAssignment", - "src": "5422:39:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5451:9:7" - } - ], - "functionName": { - "name": "abi_decode_address", - "nodeType": "YulIdentifier", - "src": "5432:18:7" - }, - "nodeType": "YulFunctionCall", - "src": "5432:29:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5422:6:7" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "5470:42:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5497:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5508:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5493:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5493:18:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "5480:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "5480:32:7" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "5470:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "5309:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "5320:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5332:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "5340:6:7", - "type": "" - } - ], - "src": "5264:254:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5798:462:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5815:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5826:3:7", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "5808:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5808:22:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5808:22:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "5839:60:7", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5871:6:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5883:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5894:3:7", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5879:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5879:19:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "5853:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "5853:46:7" - }, - "variables": [ - { - "name": "tail_1", - "nodeType": "YulTypedName", - "src": "5843:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5919:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5930:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5915:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5915:18:7" - }, - { - "arguments": [ - { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "5939:6:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5947:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "5935:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5935:22:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "5908:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5908:50:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5908:50:7" - }, - { - "nodeType": "YulAssignment", - "src": "5967:41:7", - "value": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "5993:6:7" - }, - { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "6001:6:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "5975:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "5975:33:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "5967:4:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "6017:29:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6035:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6040:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "6031:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6031:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6044:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "6027:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6027:19:7" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "6021:2:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6066:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6077:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6062:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6062:18:7" - }, - { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "6086:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "6094:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "6082:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6082:15:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6055:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6055:43:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6055:43:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6118:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6129:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6114:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6114:18:7" - }, - { - "arguments": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "6138:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "6146:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "6134:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6134:15:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6107:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6107:43:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6107:43:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6170:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6181:3:7", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6166:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6166:19:7" - }, - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "6187:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6159:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6159:35:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6159:35:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6214:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6225:3:7", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6210:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6210:19:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value5", - "nodeType": "YulIdentifier", - "src": "6245:6:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "6238:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6238:14:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "6231:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6231:22:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6203:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6203:51:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6203:51:7" - } - ] - }, - "name": "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256_t_bool__to_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256_t_bool__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "5727:9:7", - "type": "" - }, - { - "name": "value5", - "nodeType": "YulTypedName", - "src": "5738:6:7", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "5746:6:7", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "5754:6:7", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "5762:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "5770:6:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5778:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "5789:4:7", - "type": "" - } - ], - "src": "5523:737:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6320:325:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "6330:22:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6344:1:7", - "type": "", - "value": "1" - }, - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "6347:4:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "6340:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6340:12:7" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6330:6:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "6361:38:7", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "6391:4:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6397:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "6387:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6387:12:7" - }, - "variables": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulTypedName", - "src": "6365:18:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6438:31:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "6440:27:7", - "value": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6454:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6462:4:7", - "type": "", - "value": "0x7f" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "6450:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6450:17:7" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6440:6:7" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulIdentifier", - "src": "6418:18:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "6411:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6411:26:7" - }, - "nodeType": "YulIf", - "src": "6408:61:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6528:111:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6549:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6556:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6561:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "6552:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6552:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6542:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6542:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6542:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6593:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6596:4:7", - "type": "", - "value": "0x22" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6586:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6586:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6586:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6621:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6624:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "6614:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6614:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6614:15:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulIdentifier", - "src": "6484:18:7" - }, - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6507:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6515:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "6504:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "6504:14:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "6481:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "6481:38:7" - }, - "nodeType": "YulIf", - "src": "6478:161:7" - } - ] - }, - "name": "extract_byte_array_length", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "6300:4:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "6309:6:7", - "type": "" - } - ], - "src": "6265:380:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6824:174:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6841:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6852:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6834:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6834:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6834:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6875:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6886:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6871:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6871:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6891:2:7", - "type": "", - "value": "24" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6864:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6864:30:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6864:30:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6914:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6925:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6910:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6910:18:7" - }, - { - "hexValue": "4167656e7420616c72656164792072656769737465726564", - "kind": "string", - "nodeType": "YulLiteral", - "src": "6930:26:7", - "type": "", - "value": "Agent already registered" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6903:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6903:54:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6903:54:7" - }, - { - "nodeType": "YulAssignment", - "src": "6966:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6978:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6989:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6974:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6974:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6966:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_3c17f52d7f382f39131bc893c7e27e69aa71bee31c68e2de3649b59b8bfebc2b__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "6801:9:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "6815:4:7", - "type": "" - } - ], - "src": "6650:348:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7124:99:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7141:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7152:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "7134:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7134:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7134:21:7" - }, - { - "nodeType": "YulAssignment", - "src": "7164:53:7", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "7190:6:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7202:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7213:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7198:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7198:18:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "7172:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "7172:45:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7164:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "7093:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "7104:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "7115:4:7", - "type": "" - } - ], - "src": "7003:220:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7306:199:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "7352:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7361:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7364:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7354:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7354:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7354:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "7327:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7336:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "7323:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7323:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7348:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "7319:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7319:32:7" - }, - "nodeType": "YulIf", - "src": "7316:52:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7377:29:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7396:9:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "7390:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "7390:16:7" - }, - "variables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "7381:5:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7459:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7468:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7471:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7461:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7461:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7461:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7428:5:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7449:5:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "7442:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7442:13:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "7435:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7435:21:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "7425:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "7425:32:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "7418:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7418:40:7" - }, - "nodeType": "YulIf", - "src": "7415:60:7" - }, - { - "nodeType": "YulAssignment", - "src": "7484:15:7", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7494:5:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "7484:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bool_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "7272:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "7283:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "7295:6:7", - "type": "" - } - ], - "src": "7228:277:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7684:172:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7701:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7712:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "7694:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7694:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7694:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7735:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7746:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7731:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7731:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7751:2:7", - "type": "", - "value": "22" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "7724:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7724:30:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7724:30:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7774:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7785:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7770:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7770:18:7" - }, - { - "hexValue": "53657276696365206e6f742072656769737465726564", - "kind": "string", - "nodeType": "YulLiteral", - "src": "7790:24:7", - "type": "", - "value": "Service not registered" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "7763:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7763:52:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7763:52:7" - }, - { - "nodeType": "YulAssignment", - "src": "7824:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7836:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7847:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7832:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7832:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7824:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "7661:9:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "7675:4:7", - "type": "" - } - ], - "src": "7510:346:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7917:65:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7934:1:7", - "type": "", - "value": "0" - }, - { - "name": "ptr", - "nodeType": "YulIdentifier", - "src": "7937:3:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "7927:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7927:14:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7927:14:7" - }, - { - "nodeType": "YulAssignment", - "src": "7950:26:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7968:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7971:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "keccak256", - "nodeType": "YulIdentifier", - "src": "7958:9:7" - }, - "nodeType": "YulFunctionCall", - "src": "7958:18:7" - }, - "variableNames": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "7950:4:7" - } - ] - } - ] - }, - "name": "array_dataslot_string_storage", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "ptr", - "nodeType": "YulTypedName", - "src": "7900:3:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "7908:4:7", - "type": "" - } - ], - "src": "7861:121:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8068:464:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "8101:425:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "8115:11:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8125:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "8119:2:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "8146:2:7" - }, - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "8150:5:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8139:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8139:17:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8139:17:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "8169:31:7", - "value": { - "arguments": [ - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "8191:2:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8195:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "keccak256", - "nodeType": "YulIdentifier", - "src": "8181:9:7" - }, - "nodeType": "YulFunctionCall", - "src": "8181:19:7" - }, - "variables": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "8173:4:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "8213:57:7", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "8236:4:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8246:1:7", - "type": "", - "value": "5" - }, - { - "arguments": [ - { - "name": "startIndex", - "nodeType": "YulIdentifier", - "src": "8253:10:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8265:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8249:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8249:19:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "8242:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8242:27:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8232:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8232:38:7" - }, - "variables": [ - { - "name": "deleteStart", - "nodeType": "YulTypedName", - "src": "8217:11:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8307:23:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "8309:19:7", - "value": { - "name": "data", - "nodeType": "YulIdentifier", - "src": "8324:4:7" - }, - "variableNames": [ - { - "name": "deleteStart", - "nodeType": "YulIdentifier", - "src": "8309:11:7" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "startIndex", - "nodeType": "YulIdentifier", - "src": "8289:10:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8301:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "8286:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "8286:20:7" - }, - "nodeType": "YulIf", - "src": "8283:47:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "8343:41:7", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "8357:4:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8367:1:7", - "type": "", - "value": "5" - }, - { - "arguments": [ - { - "name": "len", - "nodeType": "YulIdentifier", - "src": "8374:3:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8379:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8370:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8370:12:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "8363:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8363:20:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8353:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8353:31:7" - }, - "variables": [ - { - "name": "_2", - "nodeType": "YulTypedName", - "src": "8347:2:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "8397:24:7", - "value": { - "name": "deleteStart", - "nodeType": "YulIdentifier", - "src": "8410:11:7" - }, - "variables": [ - { - "name": "start", - "nodeType": "YulTypedName", - "src": "8401:5:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8495:21:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "8504:5:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "8511:2:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "8497:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8497:17:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8497:17:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "8445:5:7" - }, - { - "name": "_2", - "nodeType": "YulIdentifier", - "src": "8452:2:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "8442:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "8442:13:7" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "8456:26:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "8458:22:7", - "value": { - "arguments": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "8471:5:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8478:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8467:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8467:13:7" - }, - "variableNames": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "8458:5:7" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "8438:3:7", - "statements": [] - }, - "src": "8434:82:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "len", - "nodeType": "YulIdentifier", - "src": "8084:3:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8089:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "8081:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "8081:11:7" - }, - "nodeType": "YulIf", - "src": "8078:448:7" - } - ] - }, - "name": "clean_up_bytearray_end_slots_string_storage", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "array", - "nodeType": "YulTypedName", - "src": "8040:5:7", - "type": "" - }, - { - "name": "len", - "nodeType": "YulTypedName", - "src": "8047:3:7", - "type": "" - }, - { - "name": "startIndex", - "nodeType": "YulTypedName", - "src": "8052:10:7", - "type": "" - } - ], - "src": "7987:545:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8622:81:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "8632:65:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "8647:4:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8665:1:7", - "type": "", - "value": "3" - }, - { - "name": "len", - "nodeType": "YulIdentifier", - "src": "8668:3:7" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "8661:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8661:11:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8678:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "8674:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8674:6:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "8657:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8657:24:7" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "8653:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8653:29:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "8643:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8643:40:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8689:1:7", - "type": "", - "value": "1" - }, - { - "name": "len", - "nodeType": "YulIdentifier", - "src": "8692:3:7" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "8685:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8685:11:7" - } - ], - "functionName": { - "name": "or", - "nodeType": "YulIdentifier", - "src": "8640:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "8640:57:7" - }, - "variableNames": [ - { - "name": "used", - "nodeType": "YulIdentifier", - "src": "8632:4:7" - } - ] - } - ] - }, - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "8599:4:7", - "type": "" - }, - { - "name": "len", - "nodeType": "YulTypedName", - "src": "8605:3:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "used", - "nodeType": "YulTypedName", - "src": "8613:4:7", - "type": "" - } - ], - "src": "8537:166:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8804:1256:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "8814:24:7", - "value": { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "8834:3:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "8828:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "8828:10:7" - }, - "variables": [ - { - "name": "newLen", - "nodeType": "YulTypedName", - "src": "8818:6:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8881:22:7", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "8883:16:7" - }, - "nodeType": "YulFunctionCall", - "src": "8883:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8883:18:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "8853:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8861:18:7", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "8850:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "8850:30:7" - }, - "nodeType": "YulIf", - "src": "8847:56:7" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "8956:4:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "8994:4:7" - } - ], - "functionName": { - "name": "sload", - "nodeType": "YulIdentifier", - "src": "8988:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "8988:11:7" - } - ], - "functionName": { - "name": "extract_byte_array_length", - "nodeType": "YulIdentifier", - "src": "8962:25:7" - }, - "nodeType": "YulFunctionCall", - "src": "8962:38:7" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "9002:6:7" - } - ], - "functionName": { - "name": "clean_up_bytearray_end_slots_string_storage", - "nodeType": "YulIdentifier", - "src": "8912:43:7" - }, - "nodeType": "YulFunctionCall", - "src": "8912:97:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8912:97:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "9018:18:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9035:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "srcOffset", - "nodeType": "YulTypedName", - "src": "9022:9:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "9045:23:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9064:4:7", - "type": "", - "value": "0x20" - }, - "variables": [ - { - "name": "srcOffset_1", - "nodeType": "YulTypedName", - "src": "9049:11:7", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "9077:24:7", - "value": { - "name": "srcOffset_1", - "nodeType": "YulIdentifier", - "src": "9090:11:7" - }, - "variableNames": [ - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "9077:9:7" - } - ] - }, - { - "cases": [ - { - "body": { - "nodeType": "YulBlock", - "src": "9147:656:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "9161:35:7", - "value": { - "arguments": [ - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "9180:6:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9192:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "9188:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9188:7:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "9176:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9176:20:7" - }, - "variables": [ - { - "name": "loopEnd", - "nodeType": "YulTypedName", - "src": "9165:7:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "9209:49:7", - "value": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "9253:4:7" - } - ], - "functionName": { - "name": "array_dataslot_string_storage", - "nodeType": "YulIdentifier", - "src": "9223:29:7" - }, - "nodeType": "YulFunctionCall", - "src": "9223:35:7" - }, - "variables": [ - { - "name": "dstPtr", - "nodeType": "YulTypedName", - "src": "9213:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "9271:10:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9280:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "9275:1:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9358:172:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "dstPtr", - "nodeType": "YulIdentifier", - "src": "9383:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "9401:3:7" - }, - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "9406:9:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9397:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9397:19:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "9391:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "9391:26:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "9376:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "9376:42:7" - }, - "nodeType": "YulExpressionStatement", - "src": "9376:42:7" - }, - { - "nodeType": "YulAssignment", - "src": "9435:24:7", - "value": { - "arguments": [ - { - "name": "dstPtr", - "nodeType": "YulIdentifier", - "src": "9449:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9457:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9445:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9445:14:7" - }, - "variableNames": [ - { - "name": "dstPtr", - "nodeType": "YulIdentifier", - "src": "9435:6:7" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "9476:40:7", - "value": { - "arguments": [ - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "9493:9:7" - }, - { - "name": "srcOffset_1", - "nodeType": "YulIdentifier", - "src": "9504:11:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9489:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9489:27:7" - }, - "variableNames": [ - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "9476:9:7" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "9305:1:7" - }, - { - "name": "loopEnd", - "nodeType": "YulIdentifier", - "src": "9308:7:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "9302:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "9302:14:7" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "9317:28:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "9319:24:7", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "9328:1:7" - }, - { - "name": "srcOffset_1", - "nodeType": "YulIdentifier", - "src": "9331:11:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9324:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9324:19:7" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "9319:1:7" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "9298:3:7", - "statements": [] - }, - "src": "9294:236:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9578:166:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "9596:43:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "9623:3:7" - }, - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "9628:9:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9619:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9619:19:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "9613:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "9613:26:7" - }, - "variables": [ - { - "name": "lastValue", - "nodeType": "YulTypedName", - "src": "9600:9:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "dstPtr", - "nodeType": "YulIdentifier", - "src": "9663:6:7" - }, - { - "arguments": [ - { - "name": "lastValue", - "nodeType": "YulIdentifier", - "src": "9675:9:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9702:1:7", - "type": "", - "value": "3" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "9705:6:7" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "9698:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9698:14:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9714:3:7", - "type": "", - "value": "248" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "9694:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9694:24:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9724:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "9720:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9720:6:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "9690:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9690:37:7" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "9686:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9686:42:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "9671:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9671:58:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "9656:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "9656:74:7" - }, - "nodeType": "YulExpressionStatement", - "src": "9656:74:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "loopEnd", - "nodeType": "YulIdentifier", - "src": "9549:7:7" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "9558:6:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "9546:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "9546:19:7" - }, - "nodeType": "YulIf", - "src": "9543:201:7" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "9764:4:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9778:1:7", - "type": "", - "value": "1" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "9781:6:7" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "9774:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9774:14:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9790:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9770:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9770:22:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "9757:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "9757:36:7" - }, - "nodeType": "YulExpressionStatement", - "src": "9757:36:7" - } - ] - }, - "nodeType": "YulCase", - "src": "9140:663:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9145:1:7", - "type": "", - "value": "1" - } - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9820:234:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "9834:14:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9847:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "9838:5:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9883:67:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "9901:35:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "9920:3:7" - }, - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "9925:9:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9916:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9916:19:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "9910:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "9910:26:7" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "9901:5:7" - } - ] - } - ] - }, - "condition": { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "9864:6:7" - }, - "nodeType": "YulIf", - "src": "9861:89:7" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "9970:4:7" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "10029:5:7" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "10036:6:7" - } - ], - "functionName": { - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nodeType": "YulIdentifier", - "src": "9976:52:7" - }, - "nodeType": "YulFunctionCall", - "src": "9976:67:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "9963:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "9963:81:7" - }, - "nodeType": "YulExpressionStatement", - "src": "9963:81:7" - } - ] - }, - "nodeType": "YulCase", - "src": "9812:242:7", - "value": "default" - } - ], - "expression": { - "arguments": [ - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "9120:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9128:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "9117:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "9117:14:7" - }, - "nodeType": "YulSwitch", - "src": "9110:944:7" - } - ] - }, - "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "slot", - "nodeType": "YulTypedName", - "src": "8789:4:7", - "type": "" - }, - { - "name": "src", - "nodeType": "YulTypedName", - "src": "8795:3:7", - "type": "" - } - ], - "src": "8708:1352:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10112:185:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "10151:111:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10172:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10179:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10184:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "10175:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10175:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "10165:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "10165:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10165:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10216:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10219:4:7", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "10209:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "10209:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10209:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10244:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10247:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "10237:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "10237:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10237:15:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "10128:5:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10139:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "10135:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10135:6:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "10125:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "10125:17:7" - }, - "nodeType": "YulIf", - "src": "10122:140:7" - }, - { - "nodeType": "YulAssignment", - "src": "10271:20:7", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "10282:5:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10289:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10278:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10278:13:7" - }, - "variableNames": [ - { - "name": "ret", - "nodeType": "YulIdentifier", - "src": "10271:3:7" - } - ] - } - ] - }, - "name": "increment_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "10094:5:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nodeType": "YulTypedName", - "src": "10104:3:7", - "type": "" - } - ], - "src": "10065:232:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10471:214:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "10488:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10499:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "10481:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "10481:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10481:21:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "10511:59:7", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "10543:6:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "10555:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10566:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10551:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10551:18:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "10525:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "10525:45:7" - }, - "variables": [ - { - "name": "tail_1", - "nodeType": "YulTypedName", - "src": "10515:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "10590:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10601:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10586:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10586:18:7" - }, - { - "arguments": [ - { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "10610:6:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "10618:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "10606:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10606:22:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "10579:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "10579:50:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10579:50:7" - }, - { - "nodeType": "YulAssignment", - "src": "10638:41:7", - "value": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "10664:6:7" - }, - { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "10672:6:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "10646:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "10646:33:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "10638:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "10432:9:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "10443:6:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "10451:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "10462:4:7", - "type": "" - } - ], - "src": "10302:383:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10867:185:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "10884:9:7" - }, - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "10895:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "10877:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "10877:25:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10877:25:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "10922:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10933:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10918:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10918:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10938:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "10911:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "10911:30:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10911:30:7" - }, - { - "nodeType": "YulAssignment", - "src": "10950:53:7", - "value": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "10976:6:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "10988:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10999:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10984:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10984:18:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "10958:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "10958:45:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "10950:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11023:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11034:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11019:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11019:18:7" - }, - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "11039:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11012:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11012:34:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11012:34:7" - } - ] - }, - "name": "abi_encode_tuple_t_uint256_t_string_memory_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_uint256__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "10820:9:7", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "10831:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "10839:6:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "10847:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "10858:4:7", - "type": "" - } - ], - "src": "10690:362:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11231:170:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11248:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11259:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11241:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11241:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11241:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11282:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11293:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11278:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11278:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11298:2:7", - "type": "", - "value": "20" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11271:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11271:30:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11271:30:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11321:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11332:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11317:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11317:18:7" - }, - { - "hexValue": "4167656e74206e6f742072656769737465726564", - "kind": "string", - "nodeType": "YulLiteral", - "src": "11337:22:7", - "type": "", - "value": "Agent not registered" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11310:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11310:50:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11310:50:7" - }, - { - "nodeType": "YulAssignment", - "src": "11369:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11381:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11392:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11377:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11377:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "11369:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_6b24a63f053c9f60b33a6142346432678adff778fb93a8ecec9013d5a898e395__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "11208:9:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "11222:4:7", - "type": "" - } - ], - "src": "11057:344:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11438:95:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11455:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11462:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11467:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "11458:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11458:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11448:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11448:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11448:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11495:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11498:4:7", - "type": "", - "value": "0x32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11488:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11488:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11488:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11519:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11522:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "11512:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11512:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11512:15:7" - } - ] - }, - "name": "panic_error_0x32", - "nodeType": "YulFunctionDefinition", - "src": "11406:127:7" - } - ] - }, - "contents": "{\n { }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n let _1 := 0x20\n mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n }\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_address_t_string_memory_ptr_t_uint256_t_uint256__to_t_address_t_string_memory_ptr_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), 128)\n tail := abi_encode_string(value1, add(headStart, 128))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_string(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0xffffffffffffffff\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(memPtr, 0x20), add(offset, 0x20), _1)\n mstore(add(add(memPtr, _1), 0x20), 0)\n array := memPtr\n }\n function abi_decode_tuple_t_addresst_string_memory_ptrt_string_memory_ptrt_string_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value1 := abi_decode_string(add(headStart, offset), dataEnd)\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _1) { revert(0, 0) }\n value2 := abi_decode_string(add(headStart, offset_1), dataEnd)\n let offset_2 := calldataload(add(headStart, 96))\n if gt(offset_2, _1) { revert(0, 0) }\n value3 := abi_decode_string(add(headStart, offset_2), dataEnd)\n value4 := calldataload(add(headStart, 128))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256__to_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, 160)\n let tail_1 := abi_encode_string(value0, add(headStart, 160))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n tail := abi_encode_string(value1, tail_1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_struct$_Proposal_$1014_memory_ptr__to_t_struct$_Proposal_$1014_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), and(mload(value0), sub(shl(160, 1), 1)))\n let memberValue0 := mload(add(value0, 32))\n mstore(add(headStart, 64), 0x80)\n let tail_1 := abi_encode_string(memberValue0, add(headStart, 160))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n mstore(add(headStart, 0x80), mload(add(value0, 96)))\n tail := tail_1\n }\n function abi_encode_tuple_t_contract$_ServiceRegistry_$682__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256_t_bool__to_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256_t_bool__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, 192)\n let tail_1 := abi_encode_string(value0, add(headStart, 192))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n tail := abi_encode_string(value1, tail_1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), iszero(iszero(value5)))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_stringliteral_3c17f52d7f382f39131bc893c7e27e69aa71bee31c68e2de3649b59b8bfebc2b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Agent already registered\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Service not registered\")\n tail := add(headStart, 96)\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n ret := add(value, 1)\n }\n function abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, 64)\n let tail_1 := abi_encode_string(value0, add(headStart, 64))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n tail := abi_encode_string(value1, tail_1)\n }\n function abi_encode_tuple_t_uint256_t_string_memory_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), 96)\n tail := abi_encode_string(value1, add(headStart, 96))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_stringliteral_6b24a63f053c9f60b33a6142346432678adff778fb93a8ecec9013d5a898e395__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"Agent not registered\")\n tail := add(headStart, 96)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n}", - "id": 7, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": {}, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063aac9f15a1161008c578063cbcf252a11610066578063cbcf252a146101ef578063f2fde38b14610202578063f5c91a0814610215578063fd66091e1461022857600080fd5b8063aac9f15a1461017c578063c3c5a547146101a0578063c7f758a8146101cf57600080fd5b8063013cf08b146100d45780632ab09d1414610100578063715018a6146101175780638da5cb5b1461012157806398366dbd146101465780639c89a0e214610169575b600080fd5b6100e76100e2366004610c9d565b61024d565b6040516100f79493929190610cfc565b60405180910390f35b61010960045481565b6040519081526020016100f7565b61011f61031b565b005b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100f7565b610159610154366004610df2565b61032f565b60405190151581526020016100f7565b610109610177366004610e93565b6106a5565b61018f61018a366004610e93565b61072e565b6040516100f7959493929190610eb5565b6101596101ae366004610e93565b6001600160a01b031660009081526002602052604090206005015460ff1690565b6101e26101dd366004610c9d565b61089f565b6040516100f79190610eff565b60015461012e906001600160a01b031681565b61011f610210366004610e93565b6109c3565b61011f610223366004610f4d565b610a01565b61023b610236366004610e93565b610aca565b6040516100f796959493929190610f77565b6003818154811061025d57600080fd5b6000918252602090912060049091020180546001820180546001600160a01b0390921693509061028c90610fcd565b80601f01602080910402602001604051908101604052809291908181526020018280546102b890610fcd565b80156103055780601f106102da57610100808354040283529160200191610305565b820191906000526020600020905b8154815290600101906020018083116102e857829003601f168201915b5050505050908060020154908060030154905084565b610323610c20565b61032d6000610c4d565b565b6001600160a01b03851660009081526002602052604081206005015460ff16156103a05760405162461bcd60e51b815260206004820152601860248201527f4167656e7420616c72656164792072656769737465726564000000000000000060448201526064015b60405180910390fd5b60015460405163b405166b60e01b81526001600160a01b039091169063b405166b906103d0908690600401611001565b602060405180830381865afa1580156103ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104119190611014565b6104565760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b6044820152606401610397565b6001600160a01b0386166000908152600260205260409020806104798782611085565b50600181016104888682611085565b506002810180546001600160a01b031990811633179091556003820180546001600160a01b038a811691841682179092556000600480860182905560058601805460ff191660019081179091556040805160808101825294855260208086018c81529186018b9052835460608701526006890180548085018255908652942085519490930290920180549390951692909516919091178355519092839291908201906105349082611085565b5060408201516002820155606090910151600391820155805460018101825560009190915281517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b600490920291820180546001600160a01b0319166001600160a01b03909216919091178155602083015183927fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c01906105d59082611085565b5060408201516002820155606090910151600390910155600480549060006105fc83611145565b9190505550336001600160a01b0316886001600160a01b03167f2a562efb52e7cec209321f57200606311256da6d2a1b19d44db7837a3209de28898960405161064692919061116c565b60405180910390a3876001600160a01b03167fe194e0bc2279adb185c748ae57db10fe2ef1005a1b5646f96235a881c88ddb798260600151878760405161068f9392919061119a565b60405180910390a2506001979650505050505050565b6001600160a01b038116600090815260026020526040812060050154829060ff166107095760405162461bcd60e51b81526020600482015260146024820152731059d95b9d081b9bdd081c9959da5cdd195c995960621b6044820152606401610397565b6001600160a01b03831660009081526002602052604090206004015491505b50919050565b6001600160a01b038082166000908152600260208190526040822090810154600382015460048301548354606096879695869586959194859460018601949283169390921691859061077f90610fcd565b80601f01602080910402602001604051908101604052809291908181526020018280546107ab90610fcd565b80156107f85780601f106107cd576101008083540402835291602001916107f8565b820191906000526020600020905b8154815290600101906020018083116107db57829003601f168201915b5050505050945083805461080b90610fcd565b80601f016020809104026020016040519081016040528092919081815260200182805461083790610fcd565b80156108845780601f1061085957610100808354040283529160200191610884565b820191906000526020600020905b81548152906001019060200180831161086757829003601f168201915b50505050509350955095509550955095505091939590929450565b6108d3604051806080016040528060006001600160a01b031681526020016060815260200160008152602001600081525090565b600382815481106108e6576108e66111c3565b6000918252602091829020604080516080810190915260049092020180546001600160a01b03168252600181018054929391929184019161092690610fcd565b80601f016020809104026020016040519081016040528092919081815260200182805461095290610fcd565b801561099f5780601f106109745761010080835404028352916020019161099f565b820191906000526020600020905b81548152906001019060200180831161098257829003601f168201915b50505050508152602001600282015481526020016003820154815250509050919050565b6109cb610c20565b6001600160a01b0381166109f557604051631e4fbdf760e01b815260006004820152602401610397565b6109fe81610c4d565b50565b610a09610c20565b6001600160a01b038216600090815260026020526040902060050154829060ff16610a6d5760405162461bcd60e51b81526020600482015260146024820152731059d95b9d081b9bdd081c9959da5cdd195c995960621b6044820152606401610397565b6001600160a01b03831660008181526002602052604090819020600401849055517ffc577563f1b9a0461e24abef1e1fcc0d33d3d881f20b5df6dda59de4aae2c82190610abd9085815260200190565b60405180910390a2505050565b600260205260009081526040902080548190610ae590610fcd565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1190610fcd565b8015610b5e5780601f10610b3357610100808354040283529160200191610b5e565b820191906000526020600020905b815481529060010190602001808311610b4157829003601f168201915b505050505090806001018054610b7390610fcd565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9f90610fcd565b8015610bec5780601f10610bc157610100808354040283529160200191610bec565b820191906000526020600020905b815481529060010190602001808311610bcf57829003601f168201915b5050505060028301546003840154600485015460059095015493946001600160a01b03928316949290911692509060ff1686565b6000546001600160a01b0316331461032d5760405163118cdaa760e01b8152336004820152602401610397565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610caf57600080fd5b5035919050565b6000815180845260005b81811015610cdc57602081850181015186830182015201610cc0565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0385168152608060208201819052600090610d2090830186610cb6565b6040830194909452506060015292915050565b80356001600160a01b0381168114610d4a57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610d7657600080fd5b813567ffffffffffffffff80821115610d9157610d91610d4f565b604051601f8301601f19908116603f01168101908282118183101715610db957610db9610d4f565b81604052838152866020858801011115610dd257600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a08688031215610e0a57600080fd5b610e1386610d33565b9450602086013567ffffffffffffffff80821115610e3057600080fd5b610e3c89838a01610d65565b95506040880135915080821115610e5257600080fd5b610e5e89838a01610d65565b94506060880135915080821115610e7457600080fd5b50610e8188828901610d65565b95989497509295608001359392505050565b600060208284031215610ea557600080fd5b610eae82610d33565b9392505050565b60a081526000610ec860a0830188610cb6565b8281036020840152610eda8188610cb6565b6001600160a01b03968716604085015294909516606083015250608001529392505050565b602080825282516001600160a01b03168282015282015160806040830152600090610f2d60a0840182610cb6565b905060408401516060840152606084015160808401528091505092915050565b60008060408385031215610f6057600080fd5b610f6983610d33565b946020939093013593505050565b60c081526000610f8a60c0830189610cb6565b8281036020840152610f9c8189610cb6565b6001600160a01b039788166040850152959096166060830152506080810192909252151560a0909101529392505050565b600181811c90821680610fe157607f821691505b60208210810361072857634e487b7160e01b600052602260045260246000fd5b602081526000610eae6020830184610cb6565b60006020828403121561102657600080fd5b81518015158114610eae57600080fd5b601f82111561108057600081815260208120601f850160051c8101602086101561105d5750805b601f850160051c820191505b8181101561107c57828155600101611069565b5050505b505050565b815167ffffffffffffffff81111561109f5761109f610d4f565b6110b3816110ad8454610fcd565b84611036565b602080601f8311600181146110e857600084156110d05750858301515b600019600386901b1c1916600185901b17855561107c565b600085815260208120601f198616915b82811015611117578886015182559484019460019091019084016110f8565b50858210156111355787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006001820161116557634e487b7160e01b600052601160045260246000fd5b5060010190565b60408152600061117f6040830185610cb6565b82810360208401526111918185610cb6565b95945050505050565b8381526060602082015260006111b36060830185610cb6565b9050826040830152949350505050565b634e487b7160e01b600052603260045260246000fdfea26469706673582212202fe5e950305276469a5e1b110d11d1a15beca558b7c205b065d06b11c61cfe7964736f6c63430008140033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xAAC9F15A GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xCBCF252A GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xCBCF252A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0xF5C91A08 EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0xFD66091E EQ PUSH2 0x228 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xAAC9F15A EQ PUSH2 0x17C JUMPI DUP1 PUSH4 0xC3C5A547 EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0xC7F758A8 EQ PUSH2 0x1CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x2AB09D14 EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x121 JUMPI DUP1 PUSH4 0x98366DBD EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x9C89A0E2 EQ PUSH2 0x169 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE7 PUSH2 0xE2 CALLDATASIZE PUSH1 0x4 PUSH2 0xC9D JUMP JUMPDEST PUSH2 0x24D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xCFC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x109 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF7 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x31B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF7 JUMP JUMPDEST PUSH2 0x159 PUSH2 0x154 CALLDATASIZE PUSH1 0x4 PUSH2 0xDF2 JUMP JUMPDEST PUSH2 0x32F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF7 JUMP JUMPDEST PUSH2 0x109 PUSH2 0x177 CALLDATASIZE PUSH1 0x4 PUSH2 0xE93 JUMP JUMPDEST PUSH2 0x6A5 JUMP JUMPDEST PUSH2 0x18F PUSH2 0x18A CALLDATASIZE PUSH1 0x4 PUSH2 0xE93 JUMP JUMPDEST PUSH2 0x72E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xEB5 JUMP JUMPDEST PUSH2 0x159 PUSH2 0x1AE CALLDATASIZE PUSH1 0x4 PUSH2 0xE93 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x5 ADD SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x1E2 PUSH2 0x1DD CALLDATASIZE PUSH1 0x4 PUSH2 0xC9D JUMP JUMPDEST PUSH2 0x89F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP2 SWAP1 PUSH2 0xEFF JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x12E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x210 CALLDATASIZE PUSH1 0x4 PUSH2 0xE93 JUMP JUMPDEST PUSH2 0x9C3 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x223 CALLDATASIZE PUSH1 0x4 PUSH2 0xF4D JUMP JUMPDEST PUSH2 0xA01 JUMP JUMPDEST PUSH2 0x23B PUSH2 0x236 CALLDATASIZE PUSH1 0x4 PUSH2 0xE93 JUMP JUMPDEST PUSH2 0xACA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF77 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x25D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x4 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP4 POP SWAP1 PUSH2 0x28C SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2B8 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x305 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2DA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x305 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2E8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 POP DUP5 JUMP JUMPDEST PUSH2 0x323 PUSH2 0xC20 JUMP JUMPDEST PUSH2 0x32D PUSH1 0x0 PUSH2 0xC4D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x5 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x3A0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4167656E7420616C726561647920726567697374657265640000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0x3D0 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1001 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3ED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x411 SWAP2 SWAP1 PUSH2 0x1014 JUMP JUMPDEST PUSH2 0x456 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x14D95C9D9A58D9481B9BDD081C9959DA5CDD195C9959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x397 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 PUSH2 0x479 DUP8 DUP3 PUSH2 0x1085 JUMP JUMPDEST POP PUSH1 0x1 DUP2 ADD PUSH2 0x488 DUP7 DUP3 PUSH2 0x1085 JUMP JUMPDEST POP PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP2 DUP5 AND DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 PUSH1 0x4 DUP1 DUP7 ADD DUP3 SWAP1 SSTORE PUSH1 0x5 DUP7 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE SWAP5 DUP6 MSTORE PUSH1 0x20 DUP1 DUP7 ADD DUP13 DUP2 MSTORE SWAP2 DUP7 ADD DUP12 SWAP1 MSTORE DUP4 SLOAD PUSH1 0x60 DUP8 ADD MSTORE PUSH1 0x6 DUP10 ADD DUP1 SLOAD DUP1 DUP6 ADD DUP3 SSTORE SWAP1 DUP7 MSTORE SWAP5 KECCAK256 DUP6 MLOAD SWAP5 SWAP1 SWAP4 MUL SWAP1 SWAP3 ADD DUP1 SLOAD SWAP4 SWAP1 SWAP6 AND SWAP3 SWAP1 SWAP6 AND SWAP2 SWAP1 SWAP2 OR DUP4 SSTORE MLOAD SWAP1 SWAP3 DUP4 SWAP3 SWAP2 SWAP1 DUP3 ADD SWAP1 PUSH2 0x534 SWAP1 DUP3 PUSH2 0x1085 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SSTORE PUSH1 0x60 SWAP1 SWAP2 ADD MLOAD PUSH1 0x3 SWAP2 DUP3 ADD SSTORE DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B PUSH1 0x4 SWAP1 SWAP3 MUL SWAP2 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x20 DUP4 ADD MLOAD DUP4 SWAP3 PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85C ADD SWAP1 PUSH2 0x5D5 SWAP1 DUP3 PUSH2 0x1085 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SSTORE PUSH1 0x60 SWAP1 SWAP2 ADD MLOAD PUSH1 0x3 SWAP1 SWAP2 ADD SSTORE PUSH1 0x4 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x5FC DUP4 PUSH2 0x1145 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x2A562EFB52E7CEC209321F57200606311256DA6D2A1B19D44DB7837A3209DE28 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH2 0x646 SWAP3 SWAP2 SWAP1 PUSH2 0x116C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xE194E0BC2279ADB185C748AE57DB10FE2EF1005A1B5646F96235A881C88DDB79 DUP3 PUSH1 0x60 ADD MLOAD DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x68F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x119A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP PUSH1 0x1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x5 ADD SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH2 0x709 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x1059D95B9D081B9BDD081C9959DA5CDD195C9959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x397 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD SWAP2 POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SWAP1 DUP2 ADD SLOAD PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x4 DUP4 ADD SLOAD DUP4 SLOAD PUSH1 0x60 SWAP7 DUP8 SWAP7 SWAP6 DUP7 SWAP6 DUP7 SWAP6 SWAP2 SWAP5 DUP6 SWAP5 PUSH1 0x1 DUP7 ADD SWAP5 SWAP3 DUP4 AND SWAP4 SWAP1 SWAP3 AND SWAP2 DUP6 SWAP1 PUSH2 0x77F SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x7AB SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7F8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x7CD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x7F8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x7DB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP5 POP DUP4 DUP1 SLOAD PUSH2 0x80B SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x837 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x884 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x859 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x884 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x867 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP4 POP SWAP6 POP SWAP6 POP SWAP6 POP SWAP6 POP SWAP6 POP POP SWAP2 SWAP4 SWAP6 SWAP1 SWAP3 SWAP5 POP JUMP JUMPDEST PUSH2 0x8D3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x8E6 JUMPI PUSH2 0x8E6 PUSH2 0x11C3 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x4 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE PUSH1 0x1 DUP2 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x926 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x952 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x99F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x974 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x99F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x982 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9CB PUSH2 0xC20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x9F5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x397 JUMP JUMPDEST PUSH2 0x9FE DUP2 PUSH2 0xC4D JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xA09 PUSH2 0xC20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x5 ADD SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH2 0xA6D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x1059D95B9D081B9BDD081C9959DA5CDD195C9959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x397 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 PUSH1 0x4 ADD DUP5 SWAP1 SSTORE MLOAD PUSH32 0xFC577563F1B9A0461E24ABEF1E1FCC0D33D3D881F20B5DF6DDA59DE4AAE2C821 SWAP1 PUSH2 0xABD SWAP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP2 SWAP1 PUSH2 0xAE5 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xB11 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB5E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB33 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB5E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB41 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0xB73 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xB9F SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0xBEC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBC1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xBEC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xBCF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 DUP6 ADD SLOAD PUSH1 0x5 SWAP1 SWAP6 ADD SLOAD SWAP4 SWAP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP5 SWAP3 SWAP1 SWAP2 AND SWAP3 POP SWAP1 PUSH1 0xFF AND DUP7 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x32D JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x397 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xCDC JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0xCC0 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xD20 SWAP1 DUP4 ADD DUP7 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x60 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xD76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xD91 JUMPI PUSH2 0xD91 PUSH2 0xD4F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xDB9 JUMPI PUSH2 0xDB9 PUSH2 0xD4F JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0xDD2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xE0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE13 DUP7 PUSH2 0xD33 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xE30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE3C DUP10 DUP4 DUP11 ADD PUSH2 0xD65 JUMP JUMPDEST SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xE52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE5E DUP10 DUP4 DUP11 ADD PUSH2 0xD65 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xE74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE81 DUP9 DUP3 DUP10 ADD PUSH2 0xD65 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP3 SWAP6 PUSH1 0x80 ADD CALLDATALOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEAE DUP3 PUSH2 0xD33 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP2 MSTORE PUSH1 0x0 PUSH2 0xEC8 PUSH1 0xA0 DUP4 ADD DUP9 PUSH2 0xCB6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xEDA DUP2 DUP9 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP7 DUP8 AND PUSH1 0x40 DUP6 ADD MSTORE SWAP5 SWAP1 SWAP6 AND PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 DUP3 ADD MSTORE DUP3 ADD MLOAD PUSH1 0x80 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x0 SWAP1 PUSH2 0xF2D PUSH1 0xA0 DUP5 ADD DUP3 PUSH2 0xCB6 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x80 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF69 DUP4 PUSH2 0xD33 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0xC0 DUP2 MSTORE PUSH1 0x0 PUSH2 0xF8A PUSH1 0xC0 DUP4 ADD DUP10 PUSH2 0xCB6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xF9C DUP2 DUP10 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 DUP9 AND PUSH1 0x40 DUP6 ADD MSTORE SWAP6 SWAP1 SWAP7 AND PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE ISZERO ISZERO PUSH1 0xA0 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xFE1 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x728 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xEAE PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1026 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xEAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1080 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x105D JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x107C JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1069 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x109F JUMPI PUSH2 0x109F PUSH2 0xD4F JUMP JUMPDEST PUSH2 0x10B3 DUP2 PUSH2 0x10AD DUP5 SLOAD PUSH2 0xFCD JUMP JUMPDEST DUP5 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x10E8 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x10D0 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x107C JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1117 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x10F8 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x1135 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x1165 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x117F PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0xCB6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x1191 DUP2 DUP6 PUSH2 0xCB6 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x11B3 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0xCB6 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2F 0xE5 0xE9 POP ADDRESS MSTORE PUSH23 0x469A5E1B110D11D1A15BECA558B7C205B065D06B11C61C INVALID PUSH26 0x64736F6C63430008140033000000000000000000000000000000 ", - "sourceMap": "362:3969:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;721:27;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;754:29;;;;;;;;;1239:25:7;;;1227:2;1212:18;754:29:2;1093:177:7;2293:101:0;;;:::i;:::-;;1638:85;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;1638:85;;;-1:-1:-1;;;;;1439:32:7;;;1421:51;;1409:2;1394:18;1638:85:0;1275:203:7;1988:1021:2;;;;;;:::i;:::-;;:::i;:::-;;;3574:14:7;;3567:22;3549:41;;3537:2;3522:18;1988:1021:2;3409:187:7;3231:140:2;;;;;;:::i;:::-;;:::i;3855:341::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;3377:116::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3460:13:2;3437:4;3460:13;;;:6;:13;;;;;:26;;;;;;3377:116;4203:126;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;628:38::-;;;;;-1:-1:-1;;;;;628:38:2;;;2543:215:0;;;;;;:::i;:::-;;:::i;3015:210:2:-;;;;;;:::i;:::-;;:::i;672:43::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;721:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;721:27:2;;;;-1:-1:-1;721:27:2;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1988:1021:2:-;-1:-1:-1;;;;;2208:13:2;;2183:4;2208:13;;;:6;:13;;;;;:26;;;;;2207:27;2199:64;;;;-1:-1:-1;;;2199:64:2;;6852:2:7;2199:64:2;;;6834:21:7;6891:2;6871:18;;;6864:30;6930:26;6910:18;;;6903:54;6974:18;;2199:64:2;;;;;;;;;2281:15;;:48;;-1:-1:-1;;;2281:48:2;;-1:-1:-1;;;;;2281:15:2;;;;:35;;:48;;2317:11;;2281:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2273:83;;;;-1:-1:-1;;;2273:83:2;;7712:2:7;2273:83:2;;;7694:21:7;7751:2;7731:18;;;7724:30;-1:-1:-1;;;7770:18:7;;;7763:52;7832:18;;2273:83:2;7510:346:7;2273:83:2;-1:-1:-1;;;;;2405:13:2;;2375:27;2405:13;;;:6;:13;;;;;;2428:21;2445:4;2405:13;2428:21;:::i;:::-;-1:-1:-1;2459:18:2;;;:29;2480:8;2459:18;:29;:::i;:::-;-1:-1:-1;2498:15:2;;;:28;;-1:-1:-1;;;;;;2498:28:2;;;2516:10;2498:28;;;;2536:15;;;:23;;-1:-1:-1;;;;;2536:23:2;;;;;;;;;;;2498:15;2569:20;;;;:24;;;2603:22;;;:29;;-1:-1:-1;;2603:29:2;2498:28;2603:29;;;;;;2669:58;;;;;;;;;;;;;;;;;;;;;;;;2712:14;;2669:58;;;;2737:19;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2669:58;;;;2737:34;;;;;;;;;:::i;:::-;-1:-1:-1;2737:34:2;;;;;;;;;;;;;;;;;;2781:24;;;;;;;-1:-1:-1;2781:24:2;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2781:24:2;-1:-1:-1;;;;;2781:24:2;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2781:24:2;;;;;;;;;;;;;;;;;;2816:14;:16;;;-1:-1:-1;2816:16:2;;;:::i;:::-;;;;;;2870:10;-1:-1:-1;;;;;2847:50:2;2863:5;-1:-1:-1;;;;;2847:50:2;;2882:4;2888:8;2847:50;;;;;;;:::i;:::-;;;;;;;;2926:5;-1:-1:-1;;;;;2912:68:2;;2933:8;:19;;;2954:11;2967:12;2912:68;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;2998:4:2;;1988:1021;-1:-1:-1;;;;;;;1988:1021:2:o;3231:140::-;-1:-1:-1;;;;;847:13:2;;3314:7;847:13;;;:6;:13;;;;;:26;;;3298:5;;847:26;;839:59;;;;-1:-1:-1;;;839:59:2;;11259:2:7;839:59:2;;;11241:21:7;11298:2;11278:18;;;11271:30;-1:-1:-1;;;11317:18:7;;;11310:50;11377:18;;839:59:2;11057:344:7;839:59:2;-1:-1:-1;;;;;3340:13:2;::::1;;::::0;;;:6:::1;:13;::::0;;;;:24:::1;;::::0;;-1:-1:-1;908:1:2::1;3231:140:::0;;;;:::o;3855:341::-;-1:-1:-1;;;;;4091:14:2;;;3985:13;4091:14;;;:6;:14;;;;;;;4149:10;;;;4161;;;;4173:15;;;;4115:74;;3925:18;;;;3985:13;;;;;4091:14;;;;4134:13;;;;4149:10;;;;4161;;;;4091:14;;4115:74;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3855:341;;;;;;;:::o;4203:126::-;4267:15;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4267:15:2;4301:9;4311:10;4301:21;;;;;;;;:::i;:::-;;;;;;;;;;4294:28;;;;;;;;;4301:21;;;;;4294:28;;-1:-1:-1;;;;;4294:28:2;;;;;;;;;;4301:21;;4294:28;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4203:126;;;:::o;2543:215:0:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:0;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:0;;2700:1:::1;2672:31;::::0;::::1;1421:51:7::0;1394:18;;2672:31:0::1;1275:203:7::0;2623:91:0::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;3015:210:2:-;1531:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;847:13:2;::::1;;::::0;;;:6:::1;:13;::::0;;;;:26:::1;;::::0;3111:5;;847:26:::1;;839:59;;;::::0;-1:-1:-1;;;839:59:2;;11259:2:7;839:59:2::1;::::0;::::1;11241:21:7::0;11298:2;11278:18;;;11271:30;-1:-1:-1;;;11317:18:7;;;11310:50;11377:18;;839:59:2::1;11057:344:7::0;839:59:2::1;-1:-1:-1::0;;;;;3128:13:2;::::2;;::::0;;;:6:::2;:13;::::0;;;;;;:24:::2;;:38:::0;;;3181:37;::::2;::::0;::::2;::::0;3155:11;1239:25:7;;1227:2;1212:18;;1093:177;3181:37:2::2;;;;;;;;1554:1:0::1;3015:210:2::0;;:::o;672:43::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;672:43:2;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;672:43:2;;;;;;;;;-1:-1:-1;672:43:2;;;;:::o;1796:162:0:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;735:10:1;1855:23:0;1851:101;;1901:40;;-1:-1:-1;;;1901:40:0;;735:10:1;1901:40:0;;;1421:51:7;1394:18;;1901:40:0;1275:203:7;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:180:7:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:7;;14:180;-1:-1:-1;14:180:7:o;199:423::-;241:3;279:5;273:12;306:6;301:3;294:19;331:1;341:162;355:6;352:1;349:13;341:162;;;417:4;473:13;;;469:22;;463:29;445:11;;;441:20;;434:59;370:12;341:162;;;345:3;548:1;541:4;532:6;527:3;523:16;519:27;512:38;611:4;604:2;600:7;595:2;587:6;583:15;579:29;574:3;570:39;566:50;559:57;;;199:423;;;;:::o;627:461::-;-1:-1:-1;;;;;860:32:7;;842:51;;929:3;924:2;909:18;;902:31;;;-1:-1:-1;;950:46:7;;976:19;;968:6;950:46;:::i;:::-;1027:2;1012:18;;1005:34;;;;-1:-1:-1;1070:2:7;1055:18;1048:34;942:54;627:461;-1:-1:-1;;627:461:7:o;1483:173::-;1551:20;;-1:-1:-1;;;;;1600:31:7;;1590:42;;1580:70;;1646:1;1643;1636:12;1580:70;1483:173;;;:::o;1661:127::-;1722:10;1717:3;1713:20;1710:1;1703:31;1753:4;1750:1;1743:15;1777:4;1774:1;1767:15;1793:719;1836:5;1889:3;1882:4;1874:6;1870:17;1866:27;1856:55;;1907:1;1904;1897:12;1856:55;1943:6;1930:20;1969:18;2006:2;2002;1999:10;1996:36;;;2012:18;;:::i;:::-;2087:2;2081:9;2055:2;2141:13;;-1:-1:-1;;2137:22:7;;;2161:2;2133:31;2129:40;2117:53;;;2185:18;;;2205:22;;;2182:46;2179:72;;;2231:18;;:::i;:::-;2271:10;2267:2;2260:22;2306:2;2298:6;2291:18;2352:3;2345:4;2340:2;2332:6;2328:15;2324:26;2321:35;2318:55;;;2369:1;2366;2359:12;2318:55;2433:2;2426:4;2418:6;2414:17;2407:4;2399:6;2395:17;2382:54;2480:1;2473:4;2468:2;2460:6;2456:15;2452:26;2445:37;2500:6;2491:15;;;;;;1793:719;;;;:::o;2517:887::-;2642:6;2650;2658;2666;2674;2727:3;2715:9;2706:7;2702:23;2698:33;2695:53;;;2744:1;2741;2734:12;2695:53;2767:29;2786:9;2767:29;:::i;:::-;2757:39;;2847:2;2836:9;2832:18;2819:32;2870:18;2911:2;2903:6;2900:14;2897:34;;;2927:1;2924;2917:12;2897:34;2950:50;2992:7;2983:6;2972:9;2968:22;2950:50;:::i;:::-;2940:60;;3053:2;3042:9;3038:18;3025:32;3009:48;;3082:2;3072:8;3069:16;3066:36;;;3098:1;3095;3088:12;3066:36;3121:52;3165:7;3154:8;3143:9;3139:24;3121:52;:::i;:::-;3111:62;;3226:2;3215:9;3211:18;3198:32;3182:48;;3255:2;3245:8;3242:16;3239:36;;;3271:1;3268;3261:12;3239:36;;3294:52;3338:7;3327:8;3316:9;3312:24;3294:52;:::i;:::-;2517:887;;;;-1:-1:-1;2517:887:7;;3393:3;3378:19;3365:33;;2517:887;-1:-1:-1;;;2517:887:7:o;3601:186::-;3660:6;3713:2;3701:9;3692:7;3688:23;3684:32;3681:52;;;3729:1;3726;3719:12;3681:52;3752:29;3771:9;3752:29;:::i;:::-;3742:39;3601:186;-1:-1:-1;;;3601:186:7:o;3792:655::-;4073:3;4062:9;4055:22;4036:4;4100:46;4141:3;4130:9;4126:19;4118:6;4100:46;:::i;:::-;4194:9;4186:6;4182:22;4177:2;4166:9;4162:18;4155:50;4222:33;4248:6;4240;4222:33;:::i;:::-;-1:-1:-1;;;;;4329:15:7;;;4324:2;4309:18;;4302:43;4381:15;;;;4376:2;4361:18;;4354:43;-1:-1:-1;4428:3:7;4413:19;4406:35;4214:41;3792:655;-1:-1:-1;;;3792:655:7:o;4452:576::-;4633:2;4615:21;;;4676:13;;-1:-1:-1;;;;;4672:39:7;4652:18;;;4645:67;4747:15;;4741:22;4799:4;4794:2;4779:18;;4772:32;-1:-1:-1;;4827:52:7;4699:3;4859:19;;4741:22;4827:52;:::i;:::-;4813:66;;4933:2;4925:6;4921:15;4915:22;4910:2;4899:9;4895:18;4888:50;4994:2;4986:6;4982:15;4976:22;4969:4;4958:9;4954:20;4947:52;5016:6;5008:14;;;4452:576;;;;:::o;5264:254::-;5332:6;5340;5393:2;5381:9;5372:7;5368:23;5364:32;5361:52;;;5409:1;5406;5399:12;5361:52;5432:29;5451:9;5432:29;:::i;:::-;5422:39;5508:2;5493:18;;;;5480:32;;-1:-1:-1;;;5264:254:7:o;5523:737::-;5826:3;5815:9;5808:22;5789:4;5853:46;5894:3;5883:9;5879:19;5871:6;5853:46;:::i;:::-;5947:9;5939:6;5935:22;5930:2;5919:9;5915:18;5908:50;5975:33;6001:6;5993;5975:33;:::i;:::-;-1:-1:-1;;;;;6082:15:7;;;6077:2;6062:18;;6055:43;6134:15;;;;6129:2;6114:18;;6107:43;-1:-1:-1;6181:3:7;6166:19;;6159:35;;;;6238:14;6231:22;6035:3;6210:19;;;6203:51;6134:15;5967:41;-1:-1:-1;;;5523:737:7:o;6265:380::-;6344:1;6340:12;;;;6387;;;6408:61;;6462:4;6454:6;6450:17;6440:27;;6408:61;6515:2;6507:6;6504:14;6484:18;6481:38;6478:161;;6561:10;6556:3;6552:20;6549:1;6542:31;6596:4;6593:1;6586:15;6624:4;6621:1;6614:15;7003:220;7152:2;7141:9;7134:21;7115:4;7172:45;7213:2;7202:9;7198:18;7190:6;7172:45;:::i;7228:277::-;7295:6;7348:2;7336:9;7327:7;7323:23;7319:32;7316:52;;;7364:1;7361;7354:12;7316:52;7396:9;7390:16;7449:5;7442:13;7435:21;7428:5;7425:32;7415:60;;7471:1;7468;7461:12;7987:545;8089:2;8084:3;8081:11;8078:448;;;8125:1;8150:5;8146:2;8139:17;8195:4;8191:2;8181:19;8265:2;8253:10;8249:19;8246:1;8242:27;8236:4;8232:38;8301:4;8289:10;8286:20;8283:47;;;-1:-1:-1;8324:4:7;8283:47;8379:2;8374:3;8370:12;8367:1;8363:20;8357:4;8353:31;8343:41;;8434:82;8452:2;8445:5;8442:13;8434:82;;;8497:17;;;8478:1;8467:13;8434:82;;;8438:3;;;8078:448;7987:545;;;:::o;8708:1352::-;8834:3;8828:10;8861:18;8853:6;8850:30;8847:56;;;8883:18;;:::i;:::-;8912:97;9002:6;8962:38;8994:4;8988:11;8962:38;:::i;:::-;8956:4;8912:97;:::i;:::-;9064:4;;9128:2;9117:14;;9145:1;9140:663;;;;9847:1;9864:6;9861:89;;;-1:-1:-1;9916:19:7;;;9910:26;9861:89;-1:-1:-1;;8665:1:7;8661:11;;;8657:24;8653:29;8643:40;8689:1;8685:11;;;8640:57;9963:81;;9110:944;;9140:663;7934:1;7927:14;;;7971:4;7958:18;;-1:-1:-1;;9176:20:7;;;9294:236;9308:7;9305:1;9302:14;9294:236;;;9397:19;;;9391:26;9376:42;;9489:27;;;;9457:1;9445:14;;;;9324:19;;9294:236;;;9298:3;9558:6;9549:7;9546:19;9543:201;;;9619:19;;;9613:26;-1:-1:-1;;9702:1:7;9698:14;;;9714:3;9694:24;9690:37;9686:42;9671:58;9656:74;;9543:201;-1:-1:-1;;;;;9790:1:7;9774:14;;;9770:22;9757:36;;-1:-1:-1;8708:1352:7:o;10065:232::-;10104:3;10125:17;;;10122:140;;10184:10;10179:3;10175:20;10172:1;10165:31;10219:4;10216:1;10209:15;10247:4;10244:1;10237:15;10122:140;-1:-1:-1;10289:1:7;10278:13;;10065:232::o;10302:383::-;10499:2;10488:9;10481:21;10462:4;10525:45;10566:2;10555:9;10551:18;10543:6;10525:45;:::i;:::-;10618:9;10610:6;10606:22;10601:2;10590:9;10586:18;10579:50;10646:33;10672:6;10664;10646:33;:::i;:::-;10638:41;10302:383;-1:-1:-1;;;;;10302:383:7:o;10690:362::-;10895:6;10884:9;10877:25;10938:2;10933;10922:9;10918:18;10911:30;10858:4;10958:45;10999:2;10988:9;10984:18;10976:6;10958:45;:::i;:::-;10950:53;;11039:6;11034:2;11023:9;11019:18;11012:34;10690:362;;;;;;:::o;11406:127::-;11467:10;11462:3;11458:20;11455:1;11448:31;11498:4;11495:1;11488:15;11522:4;11519:1;11512:15" - }, - "methodIdentifiers": { - "agents(address)": "fd66091e", - "getAgentData(address)": "aac9f15a", - "getProposal(uint256)": "c7f758a8", - "getReputation(address)": "9c89a0e2", - "isRegistered(address)": "c3c5a547", - "nextProposalId()": "2ab09d14", - "owner()": "8da5cb5b", - "proposals(uint256)": "013cf08b", - "registerAgent(address,string,string,string,uint256)": "98366dbd", - "renounceOwnership()": "715018a6", - "serviceRegistry()": "cbcf252a", - "transferOwnership(address)": "f2fde38b", - "updateReputation(address,uint256)": "f5c91a08" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ServiceRegistry\",\"name\":\"_serviceRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"agentUri\",\"type\":\"string\"}],\"name\":\"AgentRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"ProposalAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newReputation\",\"type\":\"uint256\"}],\"name\":\"ReputationUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"name\",\"type\":\"uint256\"}],\"name\":\"ServiceAdded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"agents\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"agentUri\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reputation\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isRegistered\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"getAgentData\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"agentUri\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reputation\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"getProposal\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"serviceName\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"internalType\":\"struct IProposalStruct.Proposal\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"}],\"name\":\"getReputation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"}],\"name\":\"isRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextProposalId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"serviceName\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"agentUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"serviceName\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"servicePrice\",\"type\":\"uint256\"}],\"name\":\"registerAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"serviceRegistry\",\"outputs\":[{\"internalType\":\"contract ServiceRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_reputation\",\"type\":\"uint256\"}],\"name\":\"updateReputation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"leonprou\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"getAgentData(address)\":{\"details\":\"get agent data\",\"params\":{\"_agent\":\"The address of the agent\"},\"returns\":{\"agent\":\"The agent contract address\",\"agentUri\":\"The URI pointing to the agent's metadata\",\"name\":\"The name of the agent\",\"owner\":\"The owner address of the agent\",\"reputation\":\"The reputation score of the agent\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"registerAgent(address,string,string,string,uint256)\":{\"details\":\"Registers a new agent with the given details.\",\"params\":{\"agent\":\"The address of the agent.\",\"agentUri\":\"The URI pointing to the agent's metadata.\",\"name\":\"The name of the agent.\",\"serviceName\":\"The name of the service.\",\"servicePrice\":\"The price of the service.\"},\"returns\":{\"_0\":\"true if the agent was registered successfully, false otherwise. Requirements: - The agent must not already be registered. - The caller will be set as the owner of the agent. Emits an {AgentRegistered} event.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"AgentsRegistry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A smart contract that stores information about the agents, and the services proposals provided by the agents.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/AgentsRegistry.sol\":\"AgentsRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/AgentsRegistry.sol\":{\"keccak256\":\"0xa8ac31890b6bd6c348b34a7e8e2a364f56a45ca1b6bf91ba4ac30f7b9a9d5479\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79850d07565e9a9685acf093c2c78a766a5d1b6e5b4f7dff0a4f058ca878fcfe\",\"dweb:/ipfs/QmdsQpZhWhbUsNt9RtdW6JbXB6uQU3SgehGFxUs1J6uhHH\"]},\"contracts/ServiceRegistry.sol\":{\"keccak256\":\"0xa86b05303aaeee4c1437e7857fb03fe70473bed68f68c50dbabc261bfa6cdca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://069be2bed01b0f80d688a4b5da526051507245c340745a58f2bd78fbf3700373\",\"dweb:/ipfs/QmWU9yZSLZNJvZaXNRPem7AySUL94aTaCAR1TGTdcnPmmA\"]},\"contracts/interfaces/IProposalStruct.sol\":{\"keccak256\":\"0x9d05f54eb20cbe5f8e11fb0b8229714378d8b9956771d308ca8550d27728fd10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://665b3367f5eabd0a4e09ec1f77c992391617be5410b02755811ebb278a457320\",\"dweb:/ipfs/QmNWdoe8B2y92uKvCZECJNPobKL8ieEww2H3AkHEddoojf\"]}},\"version\":1}" - } - }, - "contracts/ServiceRegistry.sol": { - "ServiceRegistry": { - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "category", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "description", - "type": "string" - } - ], - "name": "ServiceRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "category", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "description", - "type": "string" - } - ], - "name": "ServiceUpdated", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - } - ], - "name": "getService", - "outputs": [ - { - "components": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "category", - "type": "string" - }, - { - "internalType": "string", - "name": "description", - "type": "string" - } - ], - "internalType": "struct ServiceRegistry.Service", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - } - ], - "name": "isServiceRegistered", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "category", - "type": "string" - }, - { - "internalType": "string", - "name": "description", - "type": "string" - } - ], - "name": "registerService", - "outputs": [ - { - "components": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "category", - "type": "string" - }, - { - "internalType": "string", - "name": "description", - "type": "string" - } - ], - "internalType": "struct ServiceRegistry.Service", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "serviceCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "name": "services", - "outputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "category", - "type": "string" - }, - { - "internalType": "string", - "name": "description", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "category", - "type": "string" - }, - { - "internalType": "string", - "name": "description", - "type": "string" - } - ], - "name": "updateService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": { - "@_50": { - "entryPoint": null, - "id": 50, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_550": { - "entryPoint": null, - "id": 550, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_transferOwnership_146": { - "entryPoint": 70, - "id": 146, - "parameterSlots": 1, - "returnSlots": 0 - }, - "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - } - }, - "generatedSources": [ - { - "ast": { - "nodeType": "YulBlock", - "src": "0:219:7", - "statements": [ - { - "nodeType": "YulBlock", - "src": "6:3:7", - "statements": [] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "115:102:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "125:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "137:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "148:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "133:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "133:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "125:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "167:9:7" - }, - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "182:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "198:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "203:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "194:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "194:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "207:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "190:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "190:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "178:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "178:32:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "160:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "160:51:7" - }, - "nodeType": "YulExpressionStatement", - "src": "160:51:7" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "84:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "95:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "106:4:7", - "type": "" - } - ], - "src": "14:203:7" - } - ] - }, - "contents": "{\n { }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n}", - "id": 7, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610e34806100a56000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80637f3ed719116100665780637f3ed719146101005780638da5cb5b14610113578063b405166b1461012e578063ef57d88414610151578063f2fde38b1461016457600080fd5b806306237526146100985780633017ba09146100b4578063715018a6146100d6578063794758be146100e0575b600080fd5b6100a160025481565b6040519081526020015b60405180910390f35b6100c76100c2366004610a54565b610177565b6040516100ab93929190610ae1565b6100de61033c565b005b6100f36100ee366004610a54565b610350565b6040516100ab9190610b24565b6100de61010e366004610b85565b61055a565b6000546040516001600160a01b0390911681526020016100ab565b61014161013c366004610a54565b6106c6565b60405190151581526020016100ab565b6100f361015f366004610b85565b610745565b6100de610172366004610c0d565b6108f6565b805160208183018101805160018252928201919093012091528054819061019d90610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546101c990610c3d565b80156102165780601f106101eb57610100808354040283529160200191610216565b820191906000526020600020905b8154815290600101906020018083116101f957829003601f168201915b50505050509080600101805461022b90610c3d565b80601f016020809104026020016040519081016040528092919081815260200182805461025790610c3d565b80156102a45780601f10610279576101008083540402835291602001916102a4565b820191906000526020600020905b81548152906001019060200180831161028757829003601f168201915b5050505050908060020180546102b990610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546102e590610c3d565b80156103325780601f1061030757610100808354040283529160200191610332565b820191906000526020600020905b81548152906001019060200180831161031557829003601f168201915b5050505050905083565b610344610934565b61034e6000610961565b565b61037460405180606001604052806060815260200160608152602001606081525090565b6001826040516103849190610c77565b90815260200160405180910390206040518060600160405290816000820180546103ad90610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990610c3d565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050815260200160018201805461043f90610c3d565b80601f016020809104026020016040519081016040528092919081815260200182805461046b90610c3d565b80156104b85780601f1061048d576101008083540402835291602001916104b8565b820191906000526020600020905b81548152906001019060200180831161049b57829003601f168201915b505050505081526020016002820180546104d190610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546104fd90610c3d565b801561054a5780601f1061051f5761010080835404028352916020019161054a565b820191906000526020600020905b81548152906001019060200180831161052d57829003601f168201915b5050505050815250509050919050565b610562610934565b60405163b405166b60e01b8152309063b405166b90610585908690600401610c93565b602060405180830381865afa1580156105a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c69190610ca6565b6106105760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b60448201526064015b60405180910390fd5b60405180606001604052808481526020018381526020018281525060018460405161063b9190610c77565b908152604051908190036020019020815181906106589082610d17565b506020820151600182019061066d9082610d17565b50604082015160028201906106829082610d17565b509050507f4cd09e35844ccdf25aac9862af453cedf05d8a8b765f2763be8373b55215df8d8383836040516106b993929190610ae1565b60405180910390a1505050565b60008082511161070f5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073657276696365206e616d6560601b6044820152606401610607565b60006001836040516107219190610c77565b908152604051908190036020019020805461073b90610c3d565b9050119050919050565b61076960405180606001604052806060815260200160608152602001606081525090565b610771610934565b60405163b405166b60e01b8152309063b405166b90610794908790600401610c93565b602060405180830381865afa1580156107b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d59190610ca6565b156108225760405162461bcd60e51b815260206004820152601a60248201527f5365727669636520616c726561647920726567697374657265640000000000006044820152606401610607565b60006040518060600160405280868152602001858152602001848152509050806001866040516108529190610c77565b9081526040519081900360200190208151819061086f9082610d17565b50602082015160018201906108849082610d17565b50604082015160028201906108999082610d17565b509050507fc182fe36565be4905be53a8ed353f07898b528f1625e778edf77c136748064868585856040516108d093929190610ae1565b60405180910390a1600280549060006108e883610dd7565b909155509095945050505050565b6108fe610934565b6001600160a01b03811661092857604051631e4fbdf760e01b815260006004820152602401610607565b61093181610961565b50565b6000546001600160a01b0316331461034e5760405163118cdaa760e01b8152336004820152602401610607565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126109d857600080fd5b813567ffffffffffffffff808211156109f3576109f36109b1565b604051601f8301601f19908116603f01168101908282118183101715610a1b57610a1b6109b1565b81604052838152866020858801011115610a3457600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215610a6657600080fd5b813567ffffffffffffffff811115610a7d57600080fd5b610a89848285016109c7565b949350505050565b60005b83811015610aac578181015183820152602001610a94565b50506000910152565b60008151808452610acd816020860160208601610a91565b601f01601f19169290920160200192915050565b606081526000610af46060830186610ab5565b8281036020840152610b068186610ab5565b90508281036040840152610b1a8185610ab5565b9695505050505050565b602081526000825160606020840152610b406080840182610ab5565b90506020840151601f1980858403016040860152610b5e8383610ab5565b9250604086015191508085840301606086015250610b7c8282610ab5565b95945050505050565b600080600060608486031215610b9a57600080fd5b833567ffffffffffffffff80821115610bb257600080fd5b610bbe878388016109c7565b94506020860135915080821115610bd457600080fd5b610be0878388016109c7565b93506040860135915080821115610bf657600080fd5b50610c03868287016109c7565b9150509250925092565b600060208284031215610c1f57600080fd5b81356001600160a01b0381168114610c3657600080fd5b9392505050565b600181811c90821680610c5157607f821691505b602082108103610c7157634e487b7160e01b600052602260045260246000fd5b50919050565b60008251610c89818460208701610a91565b9190910192915050565b602081526000610c366020830184610ab5565b600060208284031215610cb857600080fd5b81518015158114610c3657600080fd5b601f821115610d1257600081815260208120601f850160051c81016020861015610cef5750805b601f850160051c820191505b81811015610d0e57828155600101610cfb565b5050505b505050565b815167ffffffffffffffff811115610d3157610d316109b1565b610d4581610d3f8454610c3d565b84610cc8565b602080601f831160018114610d7a5760008415610d625750858301515b600019600386901b1c1916600185901b178555610d0e565b600085815260208120601f198616915b82811015610da957888601518255948401946001909101908401610d8a565b5085821015610dc75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060018201610df757634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220d9d13b31a10bf6dfe0cb147d4236389d36ab889b339ea5d17d968e4d3ba1034564736f6c63430008140033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER DUP1 PUSH2 0x37 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x40 DUP2 PUSH2 0x46 JUMP JUMPDEST POP PUSH2 0x96 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xE34 DUP1 PUSH2 0xA5 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x93 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F3ED719 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x7F3ED719 EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x113 JUMPI DUP1 PUSH4 0xB405166B EQ PUSH2 0x12E JUMPI DUP1 PUSH4 0xEF57D884 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x164 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6237526 EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x3017BA09 EQ PUSH2 0xB4 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xD6 JUMPI DUP1 PUSH4 0x794758BE EQ PUSH2 0xE0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA1 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC7 PUSH2 0xC2 CALLDATASIZE PUSH1 0x4 PUSH2 0xA54 JUMP JUMPDEST PUSH2 0x177 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x33C JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF3 PUSH2 0xEE CALLDATASIZE PUSH1 0x4 PUSH2 0xA54 JUMP JUMPDEST PUSH2 0x350 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAB SWAP2 SWAP1 PUSH2 0xB24 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x10E CALLDATASIZE PUSH1 0x4 PUSH2 0xB85 JUMP JUMPDEST PUSH2 0x55A JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAB JUMP JUMPDEST PUSH2 0x141 PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0xA54 JUMP JUMPDEST PUSH2 0x6C6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAB JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0xB85 JUMP JUMPDEST PUSH2 0x745 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0xC0D JUMP JUMPDEST PUSH2 0x8F6 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP2 DUP4 ADD DUP2 ADD DUP1 MLOAD PUSH1 0x1 DUP3 MSTORE SWAP3 DUP3 ADD SWAP2 SWAP1 SWAP4 ADD KECCAK256 SWAP2 MSTORE DUP1 SLOAD DUP2 SWAP1 PUSH2 0x19D SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1C9 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x216 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1EB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x216 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1F9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x22B SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x257 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2A4 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x279 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2A4 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x287 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0x2B9 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2E5 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x332 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x307 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x332 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x315 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH2 0x344 PUSH2 0x934 JUMP JUMPDEST PUSH2 0x34E PUSH1 0x0 PUSH2 0x961 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x374 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x40 MLOAD PUSH2 0x384 SWAP2 SWAP1 PUSH2 0xC77 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x3AD SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3D9 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x426 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3FB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x426 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x409 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH2 0x43F SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x46B SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x48D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4B8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x49B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD DUP1 SLOAD PUSH2 0x4D1 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4FD SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x54A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x51F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x54A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x52D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x562 PUSH2 0x934 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0x585 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xC93 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5C6 SWAP2 SWAP1 PUSH2 0xCA6 JUMP JUMPDEST PUSH2 0x610 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x14D95C9D9A58D9481B9BDD081C9959DA5CDD195C9959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE POP PUSH1 0x1 DUP5 PUSH1 0x40 MLOAD PUSH2 0x63B SWAP2 SWAP1 PUSH2 0xC77 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP2 MLOAD DUP2 SWAP1 PUSH2 0x658 SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x66D SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SWAP1 PUSH2 0x682 SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP SWAP1 POP POP PUSH32 0x4CD09E35844CCDF25AAC9862AF453CEDF05D8A8B765F2763BE8373B55215DF8D DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x6B9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT PUSH2 0x70F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x496E76616C69642073657276696365206E616D65 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x607 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP4 PUSH1 0x40 MLOAD PUSH2 0x721 SWAP2 SWAP1 PUSH2 0xC77 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x73B SWAP1 PUSH2 0xC3D JUMP JUMPDEST SWAP1 POP GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x769 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x771 PUSH2 0x934 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0x794 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0xC93 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7D5 SWAP2 SWAP1 PUSH2 0xCA6 JUMP JUMPDEST ISZERO PUSH2 0x822 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5365727669636520616C72656164792072656769737465726564000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x607 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x1 DUP7 PUSH1 0x40 MLOAD PUSH2 0x852 SWAP2 SWAP1 PUSH2 0xC77 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP2 MLOAD DUP2 SWAP1 PUSH2 0x86F SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x884 SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SWAP1 PUSH2 0x899 SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP SWAP1 POP POP PUSH32 0xC182FE36565BE4905BE53A8ED353F07898B528F1625E778EDF77C13674806486 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x8D0 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x8E8 DUP4 PUSH2 0xDD7 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8FE PUSH2 0x934 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x928 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x607 JUMP JUMPDEST PUSH2 0x931 DUP2 PUSH2 0x961 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x34E JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x607 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x9D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x9F3 JUMPI PUSH2 0x9F3 PUSH2 0x9B1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xA1B JUMPI PUSH2 0xA1B PUSH2 0x9B1 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0xA34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA89 DUP5 DUP3 DUP6 ADD PUSH2 0x9C7 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xAAC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xA94 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xACD DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xA91 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH2 0xAF4 PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0xAB5 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xB06 DUP2 DUP7 PUSH2 0xAB5 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0xB1A DUP2 DUP6 PUSH2 0xAB5 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH1 0x60 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xB40 PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0xAB5 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP1 DUP6 DUP5 SUB ADD PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0xB5E DUP4 DUP4 PUSH2 0xAB5 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP7 ADD MLOAD SWAP2 POP DUP1 DUP6 DUP5 SUB ADD PUSH1 0x60 DUP7 ADD MSTORE POP PUSH2 0xB7C DUP3 DUP3 PUSH2 0xAB5 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xBB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBBE DUP8 DUP4 DUP9 ADD PUSH2 0x9C7 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xBD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBE0 DUP8 DUP4 DUP9 ADD PUSH2 0x9C7 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xBF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC03 DUP7 DUP3 DUP8 ADD PUSH2 0x9C7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xC36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xC51 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xC71 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0xC89 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xA91 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xC36 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xAB5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xC36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xD12 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0xCEF JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xD0E JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xCFB JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD31 JUMPI PUSH2 0xD31 PUSH2 0x9B1 JUMP JUMPDEST PUSH2 0xD45 DUP2 PUSH2 0xD3F DUP5 SLOAD PUSH2 0xC3D JUMP JUMPDEST DUP5 PUSH2 0xCC8 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0xD7A JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0xD62 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0xD0E JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xDA9 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0xD8A JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0xDC7 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0xDF7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD9 0xD1 EXTCODESIZE BALANCE LOG1 SIGNEXTEND 0xF6 0xDF 0xE0 0xCB EQ PUSH30 0x4236389D36AB889B339EA5D17D968E4D3BA1034564736F6C634300081400 CALLER ", - "sourceMap": "256:2022:3:-:0;;;638:36;;;;;;;;;-1:-1:-1;660:10:3;;1269:95:0;;1322:31;;-1:-1:-1;;;1322:31:0;;1350:1;1322:31;;;160:51:7;133:18;;1322:31:0;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;256:2022:3;;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:203:7:-;256:2022:3;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@_checkOwner_84": { - "entryPoint": 2356, - "id": 84, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_msgSender_159": { - "entryPoint": null, - "id": 159, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_transferOwnership_146": { - "entryPoint": 2401, - "id": 146, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@getService_615": { - "entryPoint": 848, - "id": 615, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@isServiceRegistered_645": { - "entryPoint": 1734, - "id": 645, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@owner_67": { - "entryPoint": null, - "id": 67, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@registerService_601": { - "entryPoint": 1861, - "id": 601, - "parameterSlots": 3, - "returnSlots": 1 - }, - "@renounceOwnership_98": { - "entryPoint": 828, - "id": 98, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@serviceCount_526": { - "entryPoint": null, - "id": 526, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@services_524": { - "entryPoint": 375, - "id": 524, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@transferOwnership_126": { - "entryPoint": 2294, - "id": 126, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@updateService_681": { - "entryPoint": 1370, - "id": 681, - "parameterSlots": 3, - "returnSlots": 0 - }, - "abi_decode_string": { - "entryPoint": 2503, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_address": { - "entryPoint": 3085, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_bool_fromMemory": { - "entryPoint": 3238, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_string_memory_ptr": { - "entryPoint": 2644, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr": { - "entryPoint": 2949, - "id": null, - "parameterSlots": 2, - "returnSlots": 3 - }, - "abi_encode_string": { - "entryPoint": 2741, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { - "entryPoint": 3191, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 3219, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 2785, - "id": null, - "parameterSlots": 4, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_ac2c61739514b5f463c314c2780e64fc7747cb6b4d2c3e9147a35ee5c42aeefa__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_b193a272406cc908bf089bbfd62bbee3e6f0f99dfc3103f9a3b8b4618c96abfe__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_struct$_Service_$519_memory_ptr__to_t_struct$_Service_$519_memory_ptr__fromStack_reversed": { - "entryPoint": 2852, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "array_dataslot_string_storage": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "clean_up_bytearray_end_slots_string_storage": { - "entryPoint": 3272, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { - "entryPoint": 3351, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "copy_memory_to_memory_with_cleanup": { - "entryPoint": 2705, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "extract_byte_array_length": { - "entryPoint": 3133, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "extract_used_part_and_set_length_of_short_byte_array": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "increment_t_uint256": { - "entryPoint": 3543, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "panic_error_0x41": { - "entryPoint": 2481, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nodeType": "YulBlock", - "src": "0:9320:7", - "statements": [ - { - "nodeType": "YulBlock", - "src": "6:3:7", - "statements": [] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "115:76:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "125:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "137:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "148:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "133:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "133:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "125:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "167:9:7" - }, - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "178:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "160:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "160:25:7" - }, - "nodeType": "YulExpressionStatement", - "src": "160:25:7" - } - ] - }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "84:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "95:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "106:4:7", - "type": "" - } - ], - "src": "14:177:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "228:95:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "245:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "252:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "257:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "248:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "248:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "238:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "238:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "238:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "285:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "288:4:7", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "278:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "278:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "278:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "309:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "312:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "302:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "302:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "302:15:7" - } - ] - }, - "name": "panic_error_0x41", - "nodeType": "YulFunctionDefinition", - "src": "196:127:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "381:666:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "430:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "439:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "442:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "432:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "432:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "432:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "409:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "417:4:7", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "405:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "405:17:7" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "424:3:7" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "401:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "401:27:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "394:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "394:35:7" - }, - "nodeType": "YulIf", - "src": "391:55:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "455:30:7", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "478:6:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "465:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "465:20:7" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "459:2:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "494:28:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "504:18:7", - "type": "", - "value": "0xffffffffffffffff" - }, - "variables": [ - { - "name": "_2", - "nodeType": "YulTypedName", - "src": "498:2:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "545:22:7", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "547:16:7" - }, - "nodeType": "YulFunctionCall", - "src": "547:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "547:18:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "537:2:7" - }, - { - "name": "_2", - "nodeType": "YulIdentifier", - "src": "541:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "534:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "534:10:7" - }, - "nodeType": "YulIf", - "src": "531:36:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "576:17:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "590:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "586:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "586:7:7" - }, - "variables": [ - { - "name": "_3", - "nodeType": "YulTypedName", - "src": "580:2:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "602:23:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "622:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "616:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "616:9:7" - }, - "variables": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "606:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "634:71:7", - "value": { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "656:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "680:2:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "684:4:7", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "676:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "676:13:7" - }, - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "691:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "672:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "672:22:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "696:2:7", - "type": "", - "value": "63" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "668:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "668:31:7" - }, - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "701:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "664:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "664:40:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "652:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "652:53:7" - }, - "variables": [ - { - "name": "newFreePtr", - "nodeType": "YulTypedName", - "src": "638:10:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "764:22:7", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "766:16:7" - }, - "nodeType": "YulFunctionCall", - "src": "766:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "766:18:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "723:10:7" - }, - { - "name": "_2", - "nodeType": "YulIdentifier", - "src": "735:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "720:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "720:18:7" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "743:10:7" - }, - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "755:6:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "740:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "740:22:7" - } - ], - "functionName": { - "name": "or", - "nodeType": "YulIdentifier", - "src": "717:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "717:46:7" - }, - "nodeType": "YulIf", - "src": "714:72:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "802:2:7", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "806:10:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "795:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "795:22:7" - }, - "nodeType": "YulExpressionStatement", - "src": "795:22:7" - }, - { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "833:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "841:2:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "826:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "826:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "826:18:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "892:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "901:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "904:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "894:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "894:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "894:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "867:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "875:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "863:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "863:15:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "880:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "859:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "859:26:7" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "887:3:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "856:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "856:35:7" - }, - "nodeType": "YulIf", - "src": "853:55:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "934:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "942:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "930:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "930:17:7" - }, - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "953:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "961:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "949:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "949:17:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "968:2:7" - } - ], - "functionName": { - "name": "calldatacopy", - "nodeType": "YulIdentifier", - "src": "917:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "917:54:7" - }, - "nodeType": "YulExpressionStatement", - "src": "917:54:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "995:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "1003:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "991:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "991:15:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1008:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "987:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "987:26:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1015:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "980:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "980:37:7" - }, - "nodeType": "YulExpressionStatement", - "src": "980:37:7" - }, - { - "nodeType": "YulAssignment", - "src": "1026:15:7", - "value": { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "1035:6:7" - }, - "variableNames": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "1026:5:7" - } - ] - } - ] - }, - "name": "abi_decode_string", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "355:6:7", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "363:3:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nodeType": "YulTypedName", - "src": "371:5:7", - "type": "" - } - ], - "src": "328:719:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1132:242:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "1178:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1187:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1190:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1180:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1180:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1180:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1153:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1162:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "1149:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1149:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1174:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "1145:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1145:32:7" - }, - "nodeType": "YulIf", - "src": "1142:52:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "1203:37:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1230:9:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "1217:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "1217:23:7" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1207:6:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1283:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1292:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1295:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1285:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1285:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1285:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1255:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1263:18:7", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "1252:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "1252:30:7" - }, - "nodeType": "YulIf", - "src": "1249:50:7" - }, - { - "nodeType": "YulAssignment", - "src": "1308:60:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1340:9:7" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1351:6:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1336:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1336:22:7" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1360:7:7" - } - ], - "functionName": { - "name": "abi_decode_string", - "nodeType": "YulIdentifier", - "src": "1318:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "1318:50:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1308:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1098:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "1109:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1121:6:7", - "type": "" - } - ], - "src": "1052:322:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1445:184:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1455:10:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1464:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "1459:1:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1524:63:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "1549:3:7" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "1554:1:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1545:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1545:11:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "1568:3:7" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "1573:1:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1564:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1564:11:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "1558:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "1558:18:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1538:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1538:39:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1538:39:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "1485:1:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1488:6:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "1482:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "1482:13:7" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "1496:19:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1498:15:7", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "1507:1:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1510:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1503:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1503:10:7" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "1498:1:7" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "1478:3:7", - "statements": [] - }, - "src": "1474:113:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "1607:3:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1612:6:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1603:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1603:16:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1621:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1596:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1596:27:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1596:27:7" - } - ] - }, - "name": "copy_memory_to_memory_with_cleanup", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nodeType": "YulTypedName", - "src": "1423:3:7", - "type": "" - }, - { - "name": "dst", - "nodeType": "YulTypedName", - "src": "1428:3:7", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "1433:6:7", - "type": "" - } - ], - "src": "1379:250:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1684:221:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1694:26:7", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1714:5:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "1708:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "1708:12:7" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "1698:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1736:3:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1741:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1729:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1729:19:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1729:19:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1796:5:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1803:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1792:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1792:16:7" - }, - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1814:3:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1819:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1810:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1810:14:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1826:6:7" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nodeType": "YulIdentifier", - "src": "1757:34:7" - }, - "nodeType": "YulFunctionCall", - "src": "1757:76:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1757:76:7" - }, - { - "nodeType": "YulAssignment", - "src": "1842:57:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1857:3:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1870:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1878:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1866:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1866:15:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1887:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "1883:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1883:7:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "1862:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1862:29:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1853:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1853:39:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1894:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1849:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1849:50:7" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "1842:3:7" - } - ] - } - ] - }, - "name": "abi_encode_string", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1661:5:7", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "1668:3:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "1676:3:7", - "type": "" - } - ], - "src": "1634:271:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2127:329:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2144:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2155:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2137:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2137:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2137:21:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2167:59:7", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2199:6:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2211:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2222:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2207:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2207:18:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "2181:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "2181:45:7" - }, - "variables": [ - { - "name": "tail_1", - "nodeType": "YulTypedName", - "src": "2171:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2246:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2257:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2242:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2242:18:7" - }, - { - "arguments": [ - { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "2266:6:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2274:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "2262:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2262:22:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2235:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2235:50:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2235:50:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2294:47:7", - "value": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "2326:6:7" - }, - { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "2334:6:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "2308:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "2308:33:7" - }, - "variables": [ - { - "name": "tail_2", - "nodeType": "YulTypedName", - "src": "2298:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2361:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2372:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2357:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2357:18:7" - }, - { - "arguments": [ - { - "name": "tail_2", - "nodeType": "YulIdentifier", - "src": "2381:6:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2389:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "2377:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2377:22:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2350:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2350:50:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2350:50:7" - }, - { - "nodeType": "YulAssignment", - "src": "2409:41:7", - "value": { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "2435:6:7" - }, - { - "name": "tail_2", - "nodeType": "YulIdentifier", - "src": "2443:6:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "2417:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "2417:33:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "2409:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "2080:9:7", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "2091:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "2099:6:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "2107:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "2118:4:7", - "type": "" - } - ], - "src": "1910:546:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2610:587:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2627:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2638:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2620:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2620:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2620:21:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2650:33:7", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2676:6:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "2670:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "2670:13:7" - }, - "variables": [ - { - "name": "memberValue0", - "nodeType": "YulTypedName", - "src": "2654:12:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2703:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2714:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2699:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2699:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2719:4:7", - "type": "", - "value": "0x60" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2692:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2692:32:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2692:32:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2733:66:7", - "value": { - "arguments": [ - { - "name": "memberValue0", - "nodeType": "YulIdentifier", - "src": "2765:12:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2783:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2794:3:7", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2779:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2779:19:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "2747:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "2747:52:7" - }, - "variables": [ - { - "name": "tail_1", - "nodeType": "YulTypedName", - "src": "2737:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2808:44:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2840:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2848:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2836:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2836:15:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "2830:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "2830:22:7" - }, - "variables": [ - { - "name": "memberValue0_1", - "nodeType": "YulTypedName", - "src": "2812:14:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2861:17:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2875:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "2871:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2871:7:7" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "2865:2:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2898:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2909:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2894:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2894:18:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "2922:6:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2930:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "2918:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2918:22:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "2942:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2914:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2914:31:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2887:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2887:59:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2887:59:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2955:55:7", - "value": { - "arguments": [ - { - "name": "memberValue0_1", - "nodeType": "YulIdentifier", - "src": "2987:14:7" - }, - { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "3003:6:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "2969:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "2969:41:7" - }, - "variables": [ - { - "name": "tail_2", - "nodeType": "YulTypedName", - "src": "2959:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3019:44:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3051:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3059:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3047:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3047:15:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "3041:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "3041:22:7" - }, - "variables": [ - { - "name": "memberValue0_2", - "nodeType": "YulTypedName", - "src": "3023:14:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3083:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3094:4:7", - "type": "", - "value": "0x60" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3079:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3079:20:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "tail_2", - "nodeType": "YulIdentifier", - "src": "3109:6:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3117:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "3105:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3105:22:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "3129:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3101:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3101:31:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3072:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3072:61:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3072:61:7" - }, - { - "nodeType": "YulAssignment", - "src": "3142:49:7", - "value": { - "arguments": [ - { - "name": "memberValue0_2", - "nodeType": "YulIdentifier", - "src": "3168:14:7" - }, - { - "name": "tail_2", - "nodeType": "YulIdentifier", - "src": "3184:6:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "3150:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "3150:41:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3142:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_struct$_Service_$519_memory_ptr__to_t_struct$_Service_$519_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "2579:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "2590:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "2601:4:7", - "type": "" - } - ], - "src": "2461:736:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3336:609:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "3382:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3391:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3394:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "3384:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3384:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3384:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3357:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3366:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "3353:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3353:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3378:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "3349:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3349:32:7" - }, - "nodeType": "YulIf", - "src": "3346:52:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3407:37:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3434:9:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "3421:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "3421:23:7" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "3411:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3453:28:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3463:18:7", - "type": "", - "value": "0xffffffffffffffff" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "3457:2:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3508:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3517:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3520:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "3510:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3510:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3510:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "3496:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "3504:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "3493:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "3493:14:7" - }, - "nodeType": "YulIf", - "src": "3490:34:7" - }, - { - "nodeType": "YulAssignment", - "src": "3533:60:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3565:9:7" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "3576:6:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3561:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3561:22:7" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3585:7:7" - } - ], - "functionName": { - "name": "abi_decode_string", - "nodeType": "YulIdentifier", - "src": "3543:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "3543:50:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3533:6:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3602:48:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3635:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3646:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3631:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3631:18:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "3618:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "3618:32:7" - }, - "variables": [ - { - "name": "offset_1", - "nodeType": "YulTypedName", - "src": "3606:8:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3679:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3688:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3691:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "3681:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3681:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3681:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset_1", - "nodeType": "YulIdentifier", - "src": "3665:8:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "3675:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "3662:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "3662:16:7" - }, - "nodeType": "YulIf", - "src": "3659:36:7" - }, - { - "nodeType": "YulAssignment", - "src": "3704:62:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3736:9:7" - }, - { - "name": "offset_1", - "nodeType": "YulIdentifier", - "src": "3747:8:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3732:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3732:24:7" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3758:7:7" - } - ], - "functionName": { - "name": "abi_decode_string", - "nodeType": "YulIdentifier", - "src": "3714:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "3714:52:7" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "3704:6:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3775:48:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3808:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3819:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3804:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3804:18:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "3791:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "3791:32:7" - }, - "variables": [ - { - "name": "offset_2", - "nodeType": "YulTypedName", - "src": "3779:8:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3852:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3861:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3864:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "3854:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3854:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3854:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset_2", - "nodeType": "YulIdentifier", - "src": "3838:8:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "3848:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "3835:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "3835:16:7" - }, - "nodeType": "YulIf", - "src": "3832:36:7" - }, - { - "nodeType": "YulAssignment", - "src": "3877:62:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3909:9:7" - }, - { - "name": "offset_2", - "nodeType": "YulIdentifier", - "src": "3920:8:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3905:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3905:24:7" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3931:7:7" - } - ], - "functionName": { - "name": "abi_decode_string", - "nodeType": "YulIdentifier", - "src": "3887:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "3887:52:7" - }, - "variableNames": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "3877:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3286:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "3297:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "3309:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "3317:6:7", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "3325:6:7", - "type": "" - } - ], - "src": "3202:743:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4051:102:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "4061:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4073:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4084:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4069:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4069:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "4061:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4103:9:7" - }, - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4118:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4134:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4139:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "4130:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4130:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4143:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "4126:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4126:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "4114:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4114:32:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4096:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4096:51:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4096:51:7" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "4020:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "4031:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "4042:4:7", - "type": "" - } - ], - "src": "3950:203:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4253:92:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "4263:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4275:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4286:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4271:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4271:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "4263:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4305:9:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4330:6:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "4323:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4323:14:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "4316:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4316:22:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4298:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4298:41:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4298:41:7" - } - ] - }, - "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "4222:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "4233:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "4244:4:7", - "type": "" - } - ], - "src": "4158:187:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4420:216:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "4466:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4475:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4478:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "4468:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4468:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4468:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "4441:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4450:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "4437:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4437:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4462:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "4433:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4433:32:7" - }, - "nodeType": "YulIf", - "src": "4430:52:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "4491:36:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4517:9:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "4504:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "4504:23:7" - }, - "variables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "4495:5:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4590:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4599:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4602:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "4592:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4592:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4592:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "4549:5:7" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "4560:5:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4575:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4580:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "4571:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4571:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4584:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "4567:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4567:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "4556:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4556:31:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "4546:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "4546:42:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "4539:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4539:50:7" - }, - "nodeType": "YulIf", - "src": "4536:70:7" - }, - { - "nodeType": "YulAssignment", - "src": "4615:15:7", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "4625:5:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4615:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "4386:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "4397:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "4409:6:7", - "type": "" - } - ], - "src": "4350:286:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4696:325:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "4706:22:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4720:1:7", - "type": "", - "value": "1" - }, - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "4723:4:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "4716:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4716:12:7" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "4706:6:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "4737:38:7", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "4767:4:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4773:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "4763:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4763:12:7" - }, - "variables": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulTypedName", - "src": "4741:18:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4814:31:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "4816:27:7", - "value": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "4830:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4838:4:7", - "type": "", - "value": "0x7f" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "4826:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4826:17:7" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "4816:6:7" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulIdentifier", - "src": "4794:18:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "4787:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4787:26:7" - }, - "nodeType": "YulIf", - "src": "4784:61:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4904:111:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4925:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4932:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4937:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "4928:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4928:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4918:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4918:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4918:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4969:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4972:4:7", - "type": "", - "value": "0x22" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4962:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4962:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4962:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4997:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5000:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "4990:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4990:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4990:15:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulIdentifier", - "src": "4860:18:7" - }, - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "4883:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4891:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "4880:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "4880:14:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "4857:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "4857:38:7" - }, - "nodeType": "YulIf", - "src": "4854:161:7" - } - ] - }, - "name": "extract_byte_array_length", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "4676:4:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "4685:6:7", - "type": "" - } - ], - "src": "4641:380:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5165:150:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "5175:27:7", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5195:6:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "5189:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "5189:13:7" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "5179:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5250:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5258:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5246:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5246:17:7" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5265:3:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "5270:6:7" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nodeType": "YulIdentifier", - "src": "5211:34:7" - }, - "nodeType": "YulFunctionCall", - "src": "5211:66:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5211:66:7" - }, - { - "nodeType": "YulAssignment", - "src": "5286:23:7", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5297:3:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "5302:6:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5293:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5293:16:7" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "5286:3:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "5141:3:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5146:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "5157:3:7", - "type": "" - } - ], - "src": "5026:289:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5441:99:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5458:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5469:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "5451:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5451:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5451:21:7" - }, - { - "nodeType": "YulAssignment", - "src": "5481:53:7", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5507:6:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5519:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5530:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5515:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5515:18:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "5489:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "5489:45:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "5481:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "5410:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5421:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "5432:4:7", - "type": "" - } - ], - "src": "5320:220:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5623:199:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "5669:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5678:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5681:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "5671:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5671:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5671:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "5644:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5653:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "5640:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5640:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5665:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "5636:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5636:32:7" - }, - "nodeType": "YulIf", - "src": "5633:52:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "5694:29:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5713:9:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "5707:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "5707:16:7" - }, - "variables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "5698:5:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5776:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5785:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5788:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "5778:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5778:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5778:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "5745:5:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "5766:5:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "5759:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5759:13:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "5752:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5752:21:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "5742:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "5742:32:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "5735:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5735:40:7" - }, - "nodeType": "YulIf", - "src": "5732:60:7" - }, - { - "nodeType": "YulAssignment", - "src": "5801:15:7", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "5811:5:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5801:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bool_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "5589:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "5600:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5612:6:7", - "type": "" - } - ], - "src": "5545:277:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6001:172:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6018:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6029:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6011:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6011:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6011:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6052:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6063:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6048:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6048:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6068:2:7", - "type": "", - "value": "22" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6041:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6041:30:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6041:30:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6091:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6102:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6087:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6087:18:7" - }, - { - "hexValue": "53657276696365206e6f742072656769737465726564", - "kind": "string", - "nodeType": "YulLiteral", - "src": "6107:24:7", - "type": "", - "value": "Service not registered" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6080:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6080:52:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6080:52:7" - }, - { - "nodeType": "YulAssignment", - "src": "6141:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6153:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6164:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6149:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6149:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6141:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "5978:9:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "5992:4:7", - "type": "" - } - ], - "src": "5827:346:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6234:65:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6251:1:7", - "type": "", - "value": "0" - }, - { - "name": "ptr", - "nodeType": "YulIdentifier", - "src": "6254:3:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6244:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6244:14:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6244:14:7" - }, - { - "nodeType": "YulAssignment", - "src": "6267:26:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6285:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6288:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "keccak256", - "nodeType": "YulIdentifier", - "src": "6275:9:7" - }, - "nodeType": "YulFunctionCall", - "src": "6275:18:7" - }, - "variableNames": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "6267:4:7" - } - ] - } - ] - }, - "name": "array_dataslot_string_storage", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "ptr", - "nodeType": "YulTypedName", - "src": "6217:3:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "6225:4:7", - "type": "" - } - ], - "src": "6178:121:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6385:464:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "6418:425:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "6432:11:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6442:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "6436:2:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "6463:2:7" - }, - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "6467:5:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6456:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6456:17:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6456:17:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "6486:31:7", - "value": { - "arguments": [ - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "6508:2:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6512:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "keccak256", - "nodeType": "YulIdentifier", - "src": "6498:9:7" - }, - "nodeType": "YulFunctionCall", - "src": "6498:19:7" - }, - "variables": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "6490:4:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "6530:57:7", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "6553:4:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6563:1:7", - "type": "", - "value": "5" - }, - { - "arguments": [ - { - "name": "startIndex", - "nodeType": "YulIdentifier", - "src": "6570:10:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6582:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6566:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6566:19:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "6559:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6559:27:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6549:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6549:38:7" - }, - "variables": [ - { - "name": "deleteStart", - "nodeType": "YulTypedName", - "src": "6534:11:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6624:23:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "6626:19:7", - "value": { - "name": "data", - "nodeType": "YulIdentifier", - "src": "6641:4:7" - }, - "variableNames": [ - { - "name": "deleteStart", - "nodeType": "YulIdentifier", - "src": "6626:11:7" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "startIndex", - "nodeType": "YulIdentifier", - "src": "6606:10:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6618:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "6603:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "6603:20:7" - }, - "nodeType": "YulIf", - "src": "6600:47:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "6660:41:7", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "6674:4:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6684:1:7", - "type": "", - "value": "5" - }, - { - "arguments": [ - { - "name": "len", - "nodeType": "YulIdentifier", - "src": "6691:3:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6696:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6687:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6687:12:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "6680:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6680:20:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6670:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6670:31:7" - }, - "variables": [ - { - "name": "_2", - "nodeType": "YulTypedName", - "src": "6664:2:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "6714:24:7", - "value": { - "name": "deleteStart", - "nodeType": "YulIdentifier", - "src": "6727:11:7" - }, - "variables": [ - { - "name": "start", - "nodeType": "YulTypedName", - "src": "6718:5:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6812:21:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "6821:5:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "6828:2:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "6814:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6814:17:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6814:17:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "6762:5:7" - }, - { - "name": "_2", - "nodeType": "YulIdentifier", - "src": "6769:2:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "6759:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "6759:13:7" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "6773:26:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "6775:22:7", - "value": { - "arguments": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "6788:5:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6795:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6784:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6784:13:7" - }, - "variableNames": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "6775:5:7" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "6755:3:7", - "statements": [] - }, - "src": "6751:82:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "len", - "nodeType": "YulIdentifier", - "src": "6401:3:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6406:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "6398:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "6398:11:7" - }, - "nodeType": "YulIf", - "src": "6395:448:7" - } - ] - }, - "name": "clean_up_bytearray_end_slots_string_storage", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "array", - "nodeType": "YulTypedName", - "src": "6357:5:7", - "type": "" - }, - { - "name": "len", - "nodeType": "YulTypedName", - "src": "6364:3:7", - "type": "" - }, - { - "name": "startIndex", - "nodeType": "YulTypedName", - "src": "6369:10:7", - "type": "" - } - ], - "src": "6304:545:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6939:81:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "6949:65:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "6964:4:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6982:1:7", - "type": "", - "value": "3" - }, - { - "name": "len", - "nodeType": "YulIdentifier", - "src": "6985:3:7" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "6978:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6978:11:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6995:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "6991:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6991:6:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "6974:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6974:24:7" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "6970:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6970:29:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "6960:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6960:40:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7006:1:7", - "type": "", - "value": "1" - }, - { - "name": "len", - "nodeType": "YulIdentifier", - "src": "7009:3:7" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "7002:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7002:11:7" - } - ], - "functionName": { - "name": "or", - "nodeType": "YulIdentifier", - "src": "6957:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "6957:57:7" - }, - "variableNames": [ - { - "name": "used", - "nodeType": "YulIdentifier", - "src": "6949:4:7" - } - ] - } - ] - }, - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "6916:4:7", - "type": "" - }, - { - "name": "len", - "nodeType": "YulTypedName", - "src": "6922:3:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "used", - "nodeType": "YulTypedName", - "src": "6930:4:7", - "type": "" - } - ], - "src": "6854:166:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7121:1256:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "7131:24:7", - "value": { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "7151:3:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "7145:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "7145:10:7" - }, - "variables": [ - { - "name": "newLen", - "nodeType": "YulTypedName", - "src": "7135:6:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7198:22:7", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "7200:16:7" - }, - "nodeType": "YulFunctionCall", - "src": "7200:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7200:18:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "7170:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7178:18:7", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "7167:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "7167:30:7" - }, - "nodeType": "YulIf", - "src": "7164:56:7" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "7273:4:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "7311:4:7" - } - ], - "functionName": { - "name": "sload", - "nodeType": "YulIdentifier", - "src": "7305:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "7305:11:7" - } - ], - "functionName": { - "name": "extract_byte_array_length", - "nodeType": "YulIdentifier", - "src": "7279:25:7" - }, - "nodeType": "YulFunctionCall", - "src": "7279:38:7" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "7319:6:7" - } - ], - "functionName": { - "name": "clean_up_bytearray_end_slots_string_storage", - "nodeType": "YulIdentifier", - "src": "7229:43:7" - }, - "nodeType": "YulFunctionCall", - "src": "7229:97:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7229:97:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7335:18:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7352:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "srcOffset", - "nodeType": "YulTypedName", - "src": "7339:9:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7362:23:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7381:4:7", - "type": "", - "value": "0x20" - }, - "variables": [ - { - "name": "srcOffset_1", - "nodeType": "YulTypedName", - "src": "7366:11:7", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "7394:24:7", - "value": { - "name": "srcOffset_1", - "nodeType": "YulIdentifier", - "src": "7407:11:7" - }, - "variableNames": [ - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "7394:9:7" - } - ] - }, - { - "cases": [ - { - "body": { - "nodeType": "YulBlock", - "src": "7464:656:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "7478:35:7", - "value": { - "arguments": [ - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "7497:6:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7509:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "7505:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7505:7:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "7493:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7493:20:7" - }, - "variables": [ - { - "name": "loopEnd", - "nodeType": "YulTypedName", - "src": "7482:7:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7526:49:7", - "value": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "7570:4:7" - } - ], - "functionName": { - "name": "array_dataslot_string_storage", - "nodeType": "YulIdentifier", - "src": "7540:29:7" - }, - "nodeType": "YulFunctionCall", - "src": "7540:35:7" - }, - "variables": [ - { - "name": "dstPtr", - "nodeType": "YulTypedName", - "src": "7530:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7588:10:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7597:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "7592:1:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7675:172:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "dstPtr", - "nodeType": "YulIdentifier", - "src": "7700:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "7718:3:7" - }, - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "7723:9:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7714:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7714:19:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "7708:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "7708:26:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "7693:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7693:42:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7693:42:7" - }, - { - "nodeType": "YulAssignment", - "src": "7752:24:7", - "value": { - "arguments": [ - { - "name": "dstPtr", - "nodeType": "YulIdentifier", - "src": "7766:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7774:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7762:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7762:14:7" - }, - "variableNames": [ - { - "name": "dstPtr", - "nodeType": "YulIdentifier", - "src": "7752:6:7" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "7793:40:7", - "value": { - "arguments": [ - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "7810:9:7" - }, - { - "name": "srcOffset_1", - "nodeType": "YulIdentifier", - "src": "7821:11:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7806:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7806:27:7" - }, - "variableNames": [ - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "7793:9:7" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "7622:1:7" - }, - { - "name": "loopEnd", - "nodeType": "YulIdentifier", - "src": "7625:7:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "7619:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "7619:14:7" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "7634:28:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "7636:24:7", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "7645:1:7" - }, - { - "name": "srcOffset_1", - "nodeType": "YulIdentifier", - "src": "7648:11:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7641:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7641:19:7" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "7636:1:7" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "7615:3:7", - "statements": [] - }, - "src": "7611:236:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7895:166:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "7913:43:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "7940:3:7" - }, - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "7945:9:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7936:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7936:19:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "7930:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "7930:26:7" - }, - "variables": [ - { - "name": "lastValue", - "nodeType": "YulTypedName", - "src": "7917:9:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "dstPtr", - "nodeType": "YulIdentifier", - "src": "7980:6:7" - }, - { - "arguments": [ - { - "name": "lastValue", - "nodeType": "YulIdentifier", - "src": "7992:9:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8019:1:7", - "type": "", - "value": "3" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "8022:6:7" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "8015:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8015:14:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8031:3:7", - "type": "", - "value": "248" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "8011:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8011:24:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8041:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "8037:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8037:6:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "8007:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8007:37:7" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "8003:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8003:42:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "7988:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7988:58:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "7973:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7973:74:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7973:74:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "loopEnd", - "nodeType": "YulIdentifier", - "src": "7866:7:7" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "7875:6:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "7863:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "7863:19:7" - }, - "nodeType": "YulIf", - "src": "7860:201:7" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "8081:4:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8095:1:7", - "type": "", - "value": "1" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "8098:6:7" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "8091:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8091:14:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8107:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8087:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8087:22:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "8074:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8074:36:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8074:36:7" - } - ] - }, - "nodeType": "YulCase", - "src": "7457:663:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7462:1:7", - "type": "", - "value": "1" - } - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8137:234:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "8151:14:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8164:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "8155:5:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8200:67:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "8218:35:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "8237:3:7" - }, - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "8242:9:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8233:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8233:19:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "8227:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "8227:26:7" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "8218:5:7" - } - ] - } - ] - }, - "condition": { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "8181:6:7" - }, - "nodeType": "YulIf", - "src": "8178:89:7" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "8287:4:7" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "8346:5:7" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "8353:6:7" - } - ], - "functionName": { - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nodeType": "YulIdentifier", - "src": "8293:52:7" - }, - "nodeType": "YulFunctionCall", - "src": "8293:67:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "8280:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8280:81:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8280:81:7" - } - ] - }, - "nodeType": "YulCase", - "src": "8129:242:7", - "value": "default" - } - ], - "expression": { - "arguments": [ - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "7437:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7445:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "7434:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "7434:14:7" - }, - "nodeType": "YulSwitch", - "src": "7427:944:7" - } - ] - }, - "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "slot", - "nodeType": "YulTypedName", - "src": "7106:4:7", - "type": "" - }, - { - "name": "src", - "nodeType": "YulTypedName", - "src": "7112:3:7", - "type": "" - } - ], - "src": "7025:1352:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8556:170:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8573:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8584:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8566:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8566:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8566:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8607:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8618:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8603:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8603:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8623:2:7", - "type": "", - "value": "20" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8596:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8596:30:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8596:30:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8646:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8657:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8642:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8642:18:7" - }, - { - "hexValue": "496e76616c69642073657276696365206e616d65", - "kind": "string", - "nodeType": "YulLiteral", - "src": "8662:22:7", - "type": "", - "value": "Invalid service name" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8635:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8635:50:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8635:50:7" - }, - { - "nodeType": "YulAssignment", - "src": "8694:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8706:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8717:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8702:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8702:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "8694:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_b193a272406cc908bf089bbfd62bbee3e6f0f99dfc3103f9a3b8b4618c96abfe__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "8533:9:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "8547:4:7", - "type": "" - } - ], - "src": "8382:344:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8905:176:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8922:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8933:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8915:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8915:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8915:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8956:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8967:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8952:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8952:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8972:2:7", - "type": "", - "value": "26" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8945:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8945:30:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8945:30:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8995:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9006:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8991:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8991:18:7" - }, - { - "hexValue": "5365727669636520616c72656164792072656769737465726564", - "kind": "string", - "nodeType": "YulLiteral", - "src": "9011:28:7", - "type": "", - "value": "Service already registered" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8984:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8984:56:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8984:56:7" - }, - { - "nodeType": "YulAssignment", - "src": "9049:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "9061:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9072:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9057:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9057:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "9049:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_ac2c61739514b5f463c314c2780e64fc7747cb6b4d2c3e9147a35ee5c42aeefa__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "8882:9:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "8896:4:7", - "type": "" - } - ], - "src": "8731:350:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9133:185:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "9172:111:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9193:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9200:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9205:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "9196:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9196:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "9186:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "9186:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "9186:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9237:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9240:4:7", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "9230:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "9230:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "9230:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9265:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9268:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "9258:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "9258:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "9258:15:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "9149:5:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9160:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "9156:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9156:6:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "9146:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "9146:17:7" - }, - "nodeType": "YulIf", - "src": "9143:140:7" - }, - { - "nodeType": "YulAssignment", - "src": "9292:20:7", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "9303:5:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9310:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9299:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9299:13:7" - }, - "variableNames": [ - { - "name": "ret", - "nodeType": "YulIdentifier", - "src": "9292:3:7" - } - ] - } - ] - }, - "name": "increment_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "9115:5:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nodeType": "YulTypedName", - "src": "9125:3:7", - "type": "" - } - ], - "src": "9086:232:7" - } - ] - }, - "contents": "{\n { }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_string(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0xffffffffffffffff\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(memPtr, 0x20), add(offset, 0x20), _1)\n mstore(add(add(memPtr, _1), 0x20), 0)\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, 96)\n let tail_1 := abi_encode_string(value0, add(headStart, 96))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n let tail_2 := abi_encode_string(value1, tail_1)\n mstore(add(headStart, 64), sub(tail_2, headStart))\n tail := abi_encode_string(value2, tail_2)\n }\n function abi_encode_tuple_t_struct$_Service_$519_memory_ptr__to_t_struct$_Service_$519_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let memberValue0 := mload(value0)\n mstore(add(headStart, 32), 0x60)\n let tail_1 := abi_encode_string(memberValue0, add(headStart, 128))\n let memberValue0_1 := mload(add(value0, 32))\n let _1 := not(31)\n mstore(add(headStart, 64), add(sub(tail_1, headStart), _1))\n let tail_2 := abi_encode_string(memberValue0_1, tail_1)\n let memberValue0_2 := mload(add(value0, 64))\n mstore(add(headStart, 0x60), add(sub(tail_2, headStart), _1))\n tail := abi_encode_string(memberValue0_2, tail_2)\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n let offset_1 := calldataload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string(add(headStart, offset_1), dataEnd)\n let offset_2 := calldataload(add(headStart, 64))\n if gt(offset_2, _1) { revert(0, 0) }\n value2 := abi_decode_string(add(headStart, offset_2), dataEnd)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Service not registered\")\n tail := add(headStart, 96)\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_stringliteral_b193a272406cc908bf089bbfd62bbee3e6f0f99dfc3103f9a3b8b4618c96abfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"Invalid service name\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_ac2c61739514b5f463c314c2780e64fc7747cb6b4d2c3e9147a35ee5c42aeefa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"Service already registered\")\n tail := add(headStart, 96)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n ret := add(value, 1)\n }\n}", - "id": 7, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": {}, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100935760003560e01c80637f3ed719116100665780637f3ed719146101005780638da5cb5b14610113578063b405166b1461012e578063ef57d88414610151578063f2fde38b1461016457600080fd5b806306237526146100985780633017ba09146100b4578063715018a6146100d6578063794758be146100e0575b600080fd5b6100a160025481565b6040519081526020015b60405180910390f35b6100c76100c2366004610a54565b610177565b6040516100ab93929190610ae1565b6100de61033c565b005b6100f36100ee366004610a54565b610350565b6040516100ab9190610b24565b6100de61010e366004610b85565b61055a565b6000546040516001600160a01b0390911681526020016100ab565b61014161013c366004610a54565b6106c6565b60405190151581526020016100ab565b6100f361015f366004610b85565b610745565b6100de610172366004610c0d565b6108f6565b805160208183018101805160018252928201919093012091528054819061019d90610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546101c990610c3d565b80156102165780601f106101eb57610100808354040283529160200191610216565b820191906000526020600020905b8154815290600101906020018083116101f957829003601f168201915b50505050509080600101805461022b90610c3d565b80601f016020809104026020016040519081016040528092919081815260200182805461025790610c3d565b80156102a45780601f10610279576101008083540402835291602001916102a4565b820191906000526020600020905b81548152906001019060200180831161028757829003601f168201915b5050505050908060020180546102b990610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546102e590610c3d565b80156103325780601f1061030757610100808354040283529160200191610332565b820191906000526020600020905b81548152906001019060200180831161031557829003601f168201915b5050505050905083565b610344610934565b61034e6000610961565b565b61037460405180606001604052806060815260200160608152602001606081525090565b6001826040516103849190610c77565b90815260200160405180910390206040518060600160405290816000820180546103ad90610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990610c3d565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050815260200160018201805461043f90610c3d565b80601f016020809104026020016040519081016040528092919081815260200182805461046b90610c3d565b80156104b85780601f1061048d576101008083540402835291602001916104b8565b820191906000526020600020905b81548152906001019060200180831161049b57829003601f168201915b505050505081526020016002820180546104d190610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546104fd90610c3d565b801561054a5780601f1061051f5761010080835404028352916020019161054a565b820191906000526020600020905b81548152906001019060200180831161052d57829003601f168201915b5050505050815250509050919050565b610562610934565b60405163b405166b60e01b8152309063b405166b90610585908690600401610c93565b602060405180830381865afa1580156105a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c69190610ca6565b6106105760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b60448201526064015b60405180910390fd5b60405180606001604052808481526020018381526020018281525060018460405161063b9190610c77565b908152604051908190036020019020815181906106589082610d17565b506020820151600182019061066d9082610d17565b50604082015160028201906106829082610d17565b509050507f4cd09e35844ccdf25aac9862af453cedf05d8a8b765f2763be8373b55215df8d8383836040516106b993929190610ae1565b60405180910390a1505050565b60008082511161070f5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073657276696365206e616d6560601b6044820152606401610607565b60006001836040516107219190610c77565b908152604051908190036020019020805461073b90610c3d565b9050119050919050565b61076960405180606001604052806060815260200160608152602001606081525090565b610771610934565b60405163b405166b60e01b8152309063b405166b90610794908790600401610c93565b602060405180830381865afa1580156107b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d59190610ca6565b156108225760405162461bcd60e51b815260206004820152601a60248201527f5365727669636520616c726561647920726567697374657265640000000000006044820152606401610607565b60006040518060600160405280868152602001858152602001848152509050806001866040516108529190610c77565b9081526040519081900360200190208151819061086f9082610d17565b50602082015160018201906108849082610d17565b50604082015160028201906108999082610d17565b509050507fc182fe36565be4905be53a8ed353f07898b528f1625e778edf77c136748064868585856040516108d093929190610ae1565b60405180910390a1600280549060006108e883610dd7565b909155509095945050505050565b6108fe610934565b6001600160a01b03811661092857604051631e4fbdf760e01b815260006004820152602401610607565b61093181610961565b50565b6000546001600160a01b0316331461034e5760405163118cdaa760e01b8152336004820152602401610607565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126109d857600080fd5b813567ffffffffffffffff808211156109f3576109f36109b1565b604051601f8301601f19908116603f01168101908282118183101715610a1b57610a1b6109b1565b81604052838152866020858801011115610a3457600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215610a6657600080fd5b813567ffffffffffffffff811115610a7d57600080fd5b610a89848285016109c7565b949350505050565b60005b83811015610aac578181015183820152602001610a94565b50506000910152565b60008151808452610acd816020860160208601610a91565b601f01601f19169290920160200192915050565b606081526000610af46060830186610ab5565b8281036020840152610b068186610ab5565b90508281036040840152610b1a8185610ab5565b9695505050505050565b602081526000825160606020840152610b406080840182610ab5565b90506020840151601f1980858403016040860152610b5e8383610ab5565b9250604086015191508085840301606086015250610b7c8282610ab5565b95945050505050565b600080600060608486031215610b9a57600080fd5b833567ffffffffffffffff80821115610bb257600080fd5b610bbe878388016109c7565b94506020860135915080821115610bd457600080fd5b610be0878388016109c7565b93506040860135915080821115610bf657600080fd5b50610c03868287016109c7565b9150509250925092565b600060208284031215610c1f57600080fd5b81356001600160a01b0381168114610c3657600080fd5b9392505050565b600181811c90821680610c5157607f821691505b602082108103610c7157634e487b7160e01b600052602260045260246000fd5b50919050565b60008251610c89818460208701610a91565b9190910192915050565b602081526000610c366020830184610ab5565b600060208284031215610cb857600080fd5b81518015158114610c3657600080fd5b601f821115610d1257600081815260208120601f850160051c81016020861015610cef5750805b601f850160051c820191505b81811015610d0e57828155600101610cfb565b5050505b505050565b815167ffffffffffffffff811115610d3157610d316109b1565b610d4581610d3f8454610c3d565b84610cc8565b602080601f831160018114610d7a5760008415610d625750858301515b600019600386901b1c1916600185901b178555610d0e565b600085815260208120601f198616915b82811015610da957888601518255948401946001909101908401610d8a565b5085821015610dc75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060018201610df757634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220d9d13b31a10bf6dfe0cb147d4236389d36ab889b339ea5d17d968e4d3ba1034564736f6c63430008140033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x93 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F3ED719 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x7F3ED719 EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x113 JUMPI DUP1 PUSH4 0xB405166B EQ PUSH2 0x12E JUMPI DUP1 PUSH4 0xEF57D884 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x164 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6237526 EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x3017BA09 EQ PUSH2 0xB4 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xD6 JUMPI DUP1 PUSH4 0x794758BE EQ PUSH2 0xE0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA1 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC7 PUSH2 0xC2 CALLDATASIZE PUSH1 0x4 PUSH2 0xA54 JUMP JUMPDEST PUSH2 0x177 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x33C JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF3 PUSH2 0xEE CALLDATASIZE PUSH1 0x4 PUSH2 0xA54 JUMP JUMPDEST PUSH2 0x350 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAB SWAP2 SWAP1 PUSH2 0xB24 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x10E CALLDATASIZE PUSH1 0x4 PUSH2 0xB85 JUMP JUMPDEST PUSH2 0x55A JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAB JUMP JUMPDEST PUSH2 0x141 PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0xA54 JUMP JUMPDEST PUSH2 0x6C6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAB JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0xB85 JUMP JUMPDEST PUSH2 0x745 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0xC0D JUMP JUMPDEST PUSH2 0x8F6 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP2 DUP4 ADD DUP2 ADD DUP1 MLOAD PUSH1 0x1 DUP3 MSTORE SWAP3 DUP3 ADD SWAP2 SWAP1 SWAP4 ADD KECCAK256 SWAP2 MSTORE DUP1 SLOAD DUP2 SWAP1 PUSH2 0x19D SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1C9 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x216 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1EB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x216 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1F9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x22B SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x257 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2A4 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x279 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2A4 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x287 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0x2B9 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2E5 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x332 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x307 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x332 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x315 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH2 0x344 PUSH2 0x934 JUMP JUMPDEST PUSH2 0x34E PUSH1 0x0 PUSH2 0x961 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x374 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x40 MLOAD PUSH2 0x384 SWAP2 SWAP1 PUSH2 0xC77 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x3AD SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3D9 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x426 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3FB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x426 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x409 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH2 0x43F SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x46B SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x48D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4B8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x49B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD DUP1 SLOAD PUSH2 0x4D1 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4FD SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x54A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x51F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x54A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x52D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x562 PUSH2 0x934 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0x585 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xC93 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5C6 SWAP2 SWAP1 PUSH2 0xCA6 JUMP JUMPDEST PUSH2 0x610 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x14D95C9D9A58D9481B9BDD081C9959DA5CDD195C9959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE POP PUSH1 0x1 DUP5 PUSH1 0x40 MLOAD PUSH2 0x63B SWAP2 SWAP1 PUSH2 0xC77 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP2 MLOAD DUP2 SWAP1 PUSH2 0x658 SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x66D SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SWAP1 PUSH2 0x682 SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP SWAP1 POP POP PUSH32 0x4CD09E35844CCDF25AAC9862AF453CEDF05D8A8B765F2763BE8373B55215DF8D DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x6B9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT PUSH2 0x70F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x496E76616C69642073657276696365206E616D65 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x607 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP4 PUSH1 0x40 MLOAD PUSH2 0x721 SWAP2 SWAP1 PUSH2 0xC77 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x73B SWAP1 PUSH2 0xC3D JUMP JUMPDEST SWAP1 POP GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x769 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x771 PUSH2 0x934 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0x794 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0xC93 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7D5 SWAP2 SWAP1 PUSH2 0xCA6 JUMP JUMPDEST ISZERO PUSH2 0x822 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5365727669636520616C72656164792072656769737465726564000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x607 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x1 DUP7 PUSH1 0x40 MLOAD PUSH2 0x852 SWAP2 SWAP1 PUSH2 0xC77 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP2 MLOAD DUP2 SWAP1 PUSH2 0x86F SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x884 SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SWAP1 PUSH2 0x899 SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP SWAP1 POP POP PUSH32 0xC182FE36565BE4905BE53A8ED353F07898B528F1625E778EDF77C13674806486 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x8D0 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x8E8 DUP4 PUSH2 0xDD7 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8FE PUSH2 0x934 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x928 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x607 JUMP JUMPDEST PUSH2 0x931 DUP2 PUSH2 0x961 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x34E JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x607 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x9D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x9F3 JUMPI PUSH2 0x9F3 PUSH2 0x9B1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xA1B JUMPI PUSH2 0xA1B PUSH2 0x9B1 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0xA34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA89 DUP5 DUP3 DUP6 ADD PUSH2 0x9C7 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xAAC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xA94 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xACD DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xA91 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH2 0xAF4 PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0xAB5 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xB06 DUP2 DUP7 PUSH2 0xAB5 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0xB1A DUP2 DUP6 PUSH2 0xAB5 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH1 0x60 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xB40 PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0xAB5 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP1 DUP6 DUP5 SUB ADD PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0xB5E DUP4 DUP4 PUSH2 0xAB5 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP7 ADD MLOAD SWAP2 POP DUP1 DUP6 DUP5 SUB ADD PUSH1 0x60 DUP7 ADD MSTORE POP PUSH2 0xB7C DUP3 DUP3 PUSH2 0xAB5 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xBB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBBE DUP8 DUP4 DUP9 ADD PUSH2 0x9C7 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xBD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBE0 DUP8 DUP4 DUP9 ADD PUSH2 0x9C7 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xBF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC03 DUP7 DUP3 DUP8 ADD PUSH2 0x9C7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xC36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xC51 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xC71 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0xC89 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xA91 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xC36 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xAB5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xC36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xD12 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0xCEF JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xD0E JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xCFB JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD31 JUMPI PUSH2 0xD31 PUSH2 0x9B1 JUMP JUMPDEST PUSH2 0xD45 DUP2 PUSH2 0xD3F DUP5 SLOAD PUSH2 0xC3D JUMP JUMPDEST DUP5 PUSH2 0xCC8 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0xD7A JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0xD62 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0xD0E JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xDA9 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0xD8A JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0xDC7 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0xDF7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD9 0xD1 EXTCODESIZE BALANCE LOG1 SIGNEXTEND 0xF6 0xDF 0xE0 0xCB EQ PUSH30 0x4236389D36AB889B339EA5D17D968E4D3BA1034564736F6C634300081400 CALLER ", - "sourceMap": "256:2022:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;448:27;;;;;;;;;160:25:7;;;148:2;133:18;448:27:3;;;;;;;;400:42;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;2293:101:0:-;;;:::i;:::-;;1547:117:3;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1881:395::-;;;;;;:::i;:::-;;:::i;1638:85:0:-;1684:7;1710:6;1638:85;;-1:-1:-1;;;;;1710:6:0;;;4096:51:7;;4084:2;4069:18;1638:85:0;3950:203:7;1670:205:3;;;;;;:::i;:::-;;:::i;:::-;;;4323:14:7;;4316:22;4298:41;;4286:2;4271:18;1670:205:3;4158:187:7;856:522:3;;;;;;:::i;:::-;;:::i;2543:215:0:-;;;;;;:::i;:::-;;:::i;400:42:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1547:117:3:-;1610:14;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;1610:14:3;1643:8;1652:4;1643:14;;;;;;:::i;:::-;;;;;;;;;;;;;1636:21;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1547:117;;;:::o;1881:395::-;1531:13:0;:11;:13::i;:::-;2012:30:3::1;::::0;-1:-1:-1;;;2012:30:3;;:4:::1;::::0;:24:::1;::::0;:30:::1;::::0;2037:4;;2012:30:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2004:65;;;::::0;-1:-1:-1;;;2004:65:3;;6029:2:7;2004:65:3::1;::::0;::::1;6011:21:7::0;6068:2;6048:18;;;6041:30;-1:-1:-1;;;6087:18:7;;;6080:52;6149:18;;2004:65:3::1;;;;;;;;;2097:113;;;;;;;;2125:4;2097:113;;;;2153:8;2097:113;;;;2188:11;2097:113;;::::0;2080:8:::1;2089:4;2080:14;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:130;;:14;;:130:::1;::::0;:14;:130:::1;:::i;:::-;-1:-1:-1::0;2080:130:3::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;2080:130:3::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;;;;;2226:43;2241:4;2247:8;2257:11;2226:43;;;;;;;;:::i;:::-;;;;;;;;1881:395:::0;;;:::o;1670:205::-;1742:4;1787:1;1772:4;1766:18;:22;1758:55;;;;-1:-1:-1;;;1758:55:3;;8584:2:7;1758:55:3;;;8566:21:7;8623:2;8603:18;;;8596:30;-1:-1:-1;;;8642:18:7;;;8635:50;8702:18;;1758:55:3;8382:344:7;1758:55:3;1867:1;1837:8;1846:4;1837:14;;;;;;:::i;:::-;;;;;;;;;;;;;;1831:33;;;;;:::i;:::-;;;:37;1824:44;;1670:205;;;:::o;856:522::-;980:14;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;980:14:3;1531:13:0;:11;:13::i;:::-;1015:30:3::1;::::0;-1:-1:-1;;;1015:30:3;;:4:::1;::::0;:24:::1;::::0;:30:::1;::::0;1040:4;;1015:30:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1014:31;1006:70;;;::::0;-1:-1:-1;;;1006:70:3;;8933:2:7;1006:70:3::1;::::0;::::1;8915:21:7::0;8972:2;8952:18;;;8945:30;9011:28;8991:18;;;8984:56;9057:18;;1006:70:3::1;8731:350:7::0;1006:70:3::1;1087:22;1112:113;;;;;;;;1140:4;1112:113;;;;1168:8;1112:113;;;;1203:11;1112:113;;::::0;1087:138:::1;;1253:7;1236:8;1245:4;1236:14;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:24;;:14;;:24:::1;::::0;:14;:24:::1;:::i;:::-;-1:-1:-1::0;1236:24:3::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;1236:24:3::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;;;;;1276:46;1294:4;1300:8;1310:11;1276:46;;;;;;;;:::i;:::-;;;;;;;;1333:12;:14:::0;;;:12:::1;:14;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;1364:7:3;;856:522;-1:-1:-1;;;;;856:522:3:o;2543:215:0:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:0;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:0;;2700:1:::1;2672:31;::::0;::::1;4096:51:7::0;4069:18;;2672:31:0::1;3950:203:7::0;2623:91:0::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;735:10:1;1855:23:0;1851:101;;1901:40;;-1:-1:-1;;;1901:40:0;;735:10:1;1901:40:0;;;4096:51:7;4069:18;;1901:40:0;3950:203:7;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;196:127:7:-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:719;371:5;424:3;417:4;409:6;405:17;401:27;391:55;;442:1;439;432:12;391:55;478:6;465:20;504:18;541:2;537;534:10;531:36;;;547:18;;:::i;:::-;622:2;616:9;590:2;676:13;;-1:-1:-1;;672:22:7;;;696:2;668:31;664:40;652:53;;;720:18;;;740:22;;;717:46;714:72;;;766:18;;:::i;:::-;806:10;802:2;795:22;841:2;833:6;826:18;887:3;880:4;875:2;867:6;863:15;859:26;856:35;853:55;;;904:1;901;894:12;853:55;968:2;961:4;953:6;949:17;942:4;934:6;930:17;917:54;1015:1;1008:4;1003:2;995:6;991:15;987:26;980:37;1035:6;1026:15;;;;;;328:719;;;;:::o;1052:322::-;1121:6;1174:2;1162:9;1153:7;1149:23;1145:32;1142:52;;;1190:1;1187;1180:12;1142:52;1230:9;1217:23;1263:18;1255:6;1252:30;1249:50;;;1295:1;1292;1285:12;1249:50;1318;1360:7;1351:6;1340:9;1336:22;1318:50;:::i;:::-;1308:60;1052:322;-1:-1:-1;;;;1052:322:7:o;1379:250::-;1464:1;1474:113;1488:6;1485:1;1482:13;1474:113;;;1564:11;;;1558:18;1545:11;;;1538:39;1510:2;1503:10;1474:113;;;-1:-1:-1;;1621:1:7;1603:16;;1596:27;1379:250::o;1634:271::-;1676:3;1714:5;1708:12;1741:6;1736:3;1729:19;1757:76;1826:6;1819:4;1814:3;1810:14;1803:4;1796:5;1792:16;1757:76;:::i;:::-;1887:2;1866:15;-1:-1:-1;;1862:29:7;1853:39;;;;1894:4;1849:50;;1634:271;-1:-1:-1;;1634:271:7:o;1910:546::-;2155:2;2144:9;2137:21;2118:4;2181:45;2222:2;2211:9;2207:18;2199:6;2181:45;:::i;:::-;2274:9;2266:6;2262:22;2257:2;2246:9;2242:18;2235:50;2308:33;2334:6;2326;2308:33;:::i;:::-;2294:47;;2389:9;2381:6;2377:22;2372:2;2361:9;2357:18;2350:50;2417:33;2443:6;2435;2417:33;:::i;:::-;2409:41;1910:546;-1:-1:-1;;;;;;1910:546:7:o;2461:736::-;2638:2;2627:9;2620:21;2601:4;2676:6;2670:13;2719:4;2714:2;2703:9;2699:18;2692:32;2747:52;2794:3;2783:9;2779:19;2765:12;2747:52;:::i;:::-;2733:66;;2848:2;2840:6;2836:15;2830:22;2875:2;2871:7;2942:2;2930:9;2922:6;2918:22;2914:31;2909:2;2898:9;2894:18;2887:59;2969:41;3003:6;2987:14;2969:41;:::i;:::-;2955:55;;3059:2;3051:6;3047:15;3041:22;3019:44;;3129:2;3117:9;3109:6;3105:22;3101:31;3094:4;3083:9;3079:20;3072:61;;3150:41;3184:6;3168:14;3150:41;:::i;:::-;3142:49;2461:736;-1:-1:-1;;;;;2461:736:7:o;3202:743::-;3309:6;3317;3325;3378:2;3366:9;3357:7;3353:23;3349:32;3346:52;;;3394:1;3391;3384:12;3346:52;3434:9;3421:23;3463:18;3504:2;3496:6;3493:14;3490:34;;;3520:1;3517;3510:12;3490:34;3543:50;3585:7;3576:6;3565:9;3561:22;3543:50;:::i;:::-;3533:60;;3646:2;3635:9;3631:18;3618:32;3602:48;;3675:2;3665:8;3662:16;3659:36;;;3691:1;3688;3681:12;3659:36;3714:52;3758:7;3747:8;3736:9;3732:24;3714:52;:::i;:::-;3704:62;;3819:2;3808:9;3804:18;3791:32;3775:48;;3848:2;3838:8;3835:16;3832:36;;;3864:1;3861;3854:12;3832:36;;3887:52;3931:7;3920:8;3909:9;3905:24;3887:52;:::i;:::-;3877:62;;;3202:743;;;;;:::o;4350:286::-;4409:6;4462:2;4450:9;4441:7;4437:23;4433:32;4430:52;;;4478:1;4475;4468:12;4430:52;4504:23;;-1:-1:-1;;;;;4556:31:7;;4546:42;;4536:70;;4602:1;4599;4592:12;4536:70;4625:5;4350:286;-1:-1:-1;;;4350:286:7:o;4641:380::-;4720:1;4716:12;;;;4763;;;4784:61;;4838:4;4830:6;4826:17;4816:27;;4784:61;4891:2;4883:6;4880:14;4860:18;4857:38;4854:161;;4937:10;4932:3;4928:20;4925:1;4918:31;4972:4;4969:1;4962:15;5000:4;4997:1;4990:15;4854:161;;4641:380;;;:::o;5026:289::-;5157:3;5195:6;5189:13;5211:66;5270:6;5265:3;5258:4;5250:6;5246:17;5211:66;:::i;:::-;5293:16;;;;;5026:289;-1:-1:-1;;5026:289:7:o;5320:220::-;5469:2;5458:9;5451:21;5432:4;5489:45;5530:2;5519:9;5515:18;5507:6;5489:45;:::i;5545:277::-;5612:6;5665:2;5653:9;5644:7;5640:23;5636:32;5633:52;;;5681:1;5678;5671:12;5633:52;5713:9;5707:16;5766:5;5759:13;5752:21;5745:5;5742:32;5732:60;;5788:1;5785;5778:12;6304:545;6406:2;6401:3;6398:11;6395:448;;;6442:1;6467:5;6463:2;6456:17;6512:4;6508:2;6498:19;6582:2;6570:10;6566:19;6563:1;6559:27;6553:4;6549:38;6618:4;6606:10;6603:20;6600:47;;;-1:-1:-1;6641:4:7;6600:47;6696:2;6691:3;6687:12;6684:1;6680:20;6674:4;6670:31;6660:41;;6751:82;6769:2;6762:5;6759:13;6751:82;;;6814:17;;;6795:1;6784:13;6751:82;;;6755:3;;;6395:448;6304:545;;;:::o;7025:1352::-;7151:3;7145:10;7178:18;7170:6;7167:30;7164:56;;;7200:18;;:::i;:::-;7229:97;7319:6;7279:38;7311:4;7305:11;7279:38;:::i;:::-;7273:4;7229:97;:::i;:::-;7381:4;;7445:2;7434:14;;7462:1;7457:663;;;;8164:1;8181:6;8178:89;;;-1:-1:-1;8233:19:7;;;8227:26;8178:89;-1:-1:-1;;6982:1:7;6978:11;;;6974:24;6970:29;6960:40;7006:1;7002:11;;;6957:57;8280:81;;7427:944;;7457:663;6251:1;6244:14;;;6288:4;6275:18;;-1:-1:-1;;7493:20:7;;;7611:236;7625:7;7622:1;7619:14;7611:236;;;7714:19;;;7708:26;7693:42;;7806:27;;;;7774:1;7762:14;;;;7641:19;;7611:236;;;7615:3;7875:6;7866:7;7863:19;7860:201;;;7936:19;;;7930:26;-1:-1:-1;;8019:1:7;8015:14;;;8031:3;8011:24;8007:37;8003:42;7988:58;7973:74;;7860:201;-1:-1:-1;;;;;8107:1:7;8091:14;;;8087:22;8074:36;;-1:-1:-1;7025:1352:7:o;9086:232::-;9125:3;9146:17;;;9143:140;;9205:10;9200:3;9196:20;9193:1;9186:31;9240:4;9237:1;9230:15;9268:4;9265:1;9258:15;9143:140;-1:-1:-1;9310:1:7;9299:13;;9086:232::o" - }, - "methodIdentifiers": { - "getService(string)": "794758be", - "isServiceRegistered(string)": "b405166b", - "owner()": "8da5cb5b", - "registerService(string,string,string)": "ef57d884", - "renounceOwnership()": "715018a6", - "serviceCount()": "06237526", - "services(string)": "3017ba09", - "transferOwnership(address)": "f2fde38b", - "updateService(string,string,string)": "7f3ed719" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ServiceRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ServiceUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"getService\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"internalType\":\"struct ServiceRegistry.Service\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"isServiceRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"registerService\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"internalType\":\"struct ServiceRegistry.Service\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"serviceCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"services\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"updateService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"leonprou\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"getService(string)\":{\"details\":\"Retrieves the details of a service.\",\"params\":{\"name\":\"The name of the service to retrieve.\"},\"returns\":{\"_0\":\"The details of the service.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"registerService(string,string,string)\":{\"details\":\"Registers a new service with the given name and price.\",\"params\":{\"name\":\"The name of the service.\"},\"returns\":{\"_0\":\"The ID of the registered service.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"ServiceRegistry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A smart contract that stores information about the services provided by agents.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ServiceRegistry.sol\":\"ServiceRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/ServiceRegistry.sol\":{\"keccak256\":\"0xa86b05303aaeee4c1437e7857fb03fe70473bed68f68c50dbabc261bfa6cdca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://069be2bed01b0f80d688a4b5da526051507245c340745a58f2bd78fbf3700373\",\"dweb:/ipfs/QmWU9yZSLZNJvZaXNRPem7AySUL94aTaCAR1TGTdcnPmmA\"]}},\"version\":1}" - } - }, - "contracts/TaskRegistry.sol": { - "TaskRegistry": { - "abi": [ - { - "inputs": [ - { - "internalType": "contract AgentsRegistry", - "name": "_agentRegistry", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "taskId", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "issuer", - "type": "address" - }, - { - "internalType": "string", - "name": "serviceName", - "type": "string" - }, - { - "internalType": "uint256", - "name": "price", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - } - ], - "indexed": false, - "internalType": "struct IProposalStruct.Proposal", - "name": "proposal", - "type": "tuple" - } - ], - "name": "ProposalApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "taskId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "agent", - "type": "address" - } - ], - "name": "TaskAssigned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "taskId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "result", - "type": "string" - } - ], - "name": "TaskCompleted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "issuer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "assignee", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "taskId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "prompt", - "type": "string" - } - ], - "name": "TaskCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "taskId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "enum TaskRegistry.TaskStatus", - "name": "status", - "type": "uint8" - } - ], - "name": "TaskStatusChanged", - "type": "event" - }, - { - "inputs": [], - "name": "agentRegistry", - "outputs": [ - { - "internalType": "contract AgentsRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "taskId", - "type": "uint256" - }, - { - "internalType": "string", - "name": "result", - "type": "string" - } - ], - "name": "completeTask", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "prompt", - "type": "string" - }, - { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - } - ], - "name": "createTask", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "string", - "name": "prompt", - "type": "string" - }, - { - "internalType": "address", - "name": "issuer", - "type": "address" - }, - { - "internalType": "enum TaskRegistry.TaskStatus", - "name": "status", - "type": "uint8" - }, - { - "internalType": "address", - "name": "assignee", - "type": "address" - }, - { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - } - ], - "internalType": "struct TaskRegistry.TaskData", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "taskId", - "type": "uint256" - } - ], - "name": "getAssignee", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "taskId", - "type": "uint256" - } - ], - "name": "getStatus", - "outputs": [ - { - "internalType": "enum TaskRegistry.TaskStatus", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "taskId", - "type": "uint256" - } - ], - "name": "getTask", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "string", - "name": "prompt", - "type": "string" - }, - { - "internalType": "address", - "name": "issuer", - "type": "address" - }, - { - "internalType": "enum TaskRegistry.TaskStatus", - "name": "status", - "type": "uint8" - }, - { - "internalType": "address", - "name": "assignee", - "type": "address" - }, - { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - } - ], - "internalType": "struct TaskRegistry.TaskData", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "issuer", - "type": "address" - } - ], - "name": "getTasksByIssuer", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "issuerTasks", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "tasks", - "outputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "string", - "name": "prompt", - "type": "string" - }, - { - "internalType": "address", - "name": "issuer", - "type": "address" - }, - { - "internalType": "enum TaskRegistry.TaskStatus", - "name": "status", - "type": "uint8" - }, - { - "internalType": "address", - "name": "assignee", - "type": "address" - }, - { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": { - "@_50": { - "entryPoint": null, - "id": 50, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_742": { - "entryPoint": null, - "id": 742, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_transferOwnership_146": { - "entryPoint": 132, - "id": 146, - "parameterSlots": 1, - "returnSlots": 0 - }, - "abi_decode_tuple_t_contract$_AgentsRegistry_$506_fromMemory": { - "entryPoint": 212, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - } - }, - "generatedSources": [ - { - "ast": { - "nodeType": "YulBlock", - "src": "0:536:7", - "statements": [ - { - "nodeType": "YulBlock", - "src": "6:3:7", - "statements": [] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "117:209:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "163:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "172:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "175:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "165:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "165:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "165:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "138:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "147:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "134:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "134:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "159:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "130:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "130:32:7" - }, - "nodeType": "YulIf", - "src": "127:52:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "188:29:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "207:9:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "201:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "201:16:7" - }, - "variables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "192:5:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "280:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "289:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "292:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "282:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "282:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "282:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "239:5:7" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "250:5:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "265:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "270:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "261:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "261:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "274:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "257:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "257:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "246:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "246:31:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "236:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "236:42:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "229:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "229:50:7" - }, - "nodeType": "YulIf", - "src": "226:70:7" - }, - { - "nodeType": "YulAssignment", - "src": "305:15:7", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "315:5:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "305:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_contract$_AgentsRegistry_$506_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "83:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "94:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "106:6:7", - "type": "" - } - ], - "src": "14:312:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "432:102:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "442:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "454:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "465:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "450:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "450:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "442:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "484:9:7" - }, - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "499:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "515:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "520:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "511:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "511:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "524:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "507:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "507:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "495:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "495:32:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "477:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "477:51:7" - }, - "nodeType": "YulExpressionStatement", - "src": "477:51:7" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "401:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "412:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "423:4:7", - "type": "" - } - ], - "src": "331:203:7" - } - ] - }, - "contents": "{\n { }\n function abi_decode_tuple_t_contract$_AgentsRegistry_$506_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n}", - "id": 7, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b5060405161137a38038061137a83398101604081905261002f916100d4565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e81610084565b50600480546001600160a01b0319166001600160a01b0392909216919091179055610104565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100e657600080fd5b81516001600160a01b03811681146100fd57600080fd5b9392505050565b611267806101136000396000f3fe6080604052600436106100a75760003560e01c8063639241ab11610064578063639241ab146101db578063715018a61461020857806374aaa7601461021f5780638d9776721461023f5780638da5cb5b14610271578063f2fde38b1461028f57600080fd5b806304fe2b34146100ac57806307b31818146100d55780630d1cfcae146101265780631d65e77e146101465780632a2b3a9d146101665780635c622a0e14610194575b600080fd5b6100bf6100ba366004610cf4565b6102af565b6040516100cc9190610dc1565b60405180910390f35b3480156100e157600080fd5b5061010e6100f0366004610e35565b6000908152600160205260409020600301546001600160a01b031690565b6040516001600160a01b0390911681526020016100cc565b34801561013257600080fd5b5060045461010e906001600160a01b031681565b34801561015257600080fd5b506100bf610161366004610e35565b61058f565b34801561017257600080fd5b50610186610181366004610e63565b6106b6565b6040519081526020016100cc565b3480156101a057600080fd5b506101ce6101af366004610e35565b600090815260016020526040902060020154600160a01b900460ff1690565b6040516100cc9190610e8f565b3480156101e757600080fd5b506101fb6101f6366004610e9d565b6106e7565b6040516100cc9190610ec1565b34801561021457600080fd5b5061021d610753565b005b34801561022b57600080fd5b5061021d61023a366004610f05565b610767565b34801561024b57600080fd5b5061025f61025a366004610e35565b61094e565b6040516100cc96959493929190610f4c565b34801561027d57600080fd5b506000546001600160a01b031661010e565b34801561029b57600080fd5b5061021d6102aa366004610e9d565b610a1c565b6102b7610bb6565b600480546040516318feeb1560e31b81529182018490526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610303573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261032b9190810190610f9a565b9050348160400151146103755760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420707269636560981b60448201526064015b60405180910390fd5b600380549060006103858361106b565b9091555050600354600081815260016020819052604090912091825581016103ad868261111a565b5060028181018054336001600160a01b031991821681178355600485018890558551600380870180549094166001600160a01b0390921691909117909255600090815260209384526040812091548254600181810185559383529490912090930192909255805460ff60a01b1916600160a01b830217905550815160035460608401516040516001600160a01b039093169233927f5c005bbbb9da508c37935b1a9f270836e0be1fd11d4d47119f925a3ff33820e99261046e928b906111da565b60405180910390a3806040518060c00160405290816000820154815260200160018201805461049c90611092565b80601f01602080910402602001604051908101604052809291908181526020018280546104c890611092565b80156105155780601f106104ea57610100808354040283529160200191610515565b820191906000526020600020905b8154815290600101906020018083116104f857829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff16600381111561055257610552610d89565b600381111561056357610563610d89565b815260038201546001600160a01b03166020820152600490910154604090910152925050505b92915050565b610597610bb6565b600082815260016020818152604092839020835160c08101909452805484529182018054918401916105c890611092565b80601f01602080910402602001604051908101604052809291908181526020018280546105f490611092565b80156106415780601f1061061657610100808354040283529160200191610641565b820191906000526020600020905b81548152906001019060200180831161062457829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff16600381111561067e5761067e610d89565b600381111561068f5761068f610d89565b815260038201546001600160a01b0316602082015260049091015460409091015292915050565b600260205281600052604060002081815481106106d257600080fd5b90600052602060002001600091509150505481565b6001600160a01b03811660009081526002602090815260409182902080548351818402810184019094528084526060939283018282801561074757602002820191906000526020600020905b815481526020019060010190808311610733575b50505050509050919050565b61075b610a5a565b6107656000610a87565b565b600082815260016020526040902060038101546001600160a01b031633146107c25760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b604482015260640161036c565b60016002820154600160a01b900460ff1660038111156107e4576107e4610d89565b146108275760405162461bcd60e51b8152602060048201526013602482015272496e76616c6964207461736b2073746174757360681b604482015260640161036c565b600281018054600160a11b60ff60a01b1990911617905560048054818301546040516318feeb1560e31b8152928301526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa15801561088c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108b49190810190610f9a565b90506108c881600001518260400151610ad7565b600282015460405185917fd76ef80cfb1ce0c70d0cbc0ab1b9f2f298a78f9fca5c841be963ae9a5d721bb49161090891600160a01b900460ff1690610e8f565b60405180910390a2837f7e6ffc29fe63759579d96a0457a8f2e08339aca345bd469f59dc2e61f82a5aeb846040516109409190611202565b60405180910390a250505050565b60016020819052600091825260409091208054918101805461096f90611092565b80601f016020809104026020016040519081016040528092919081815260200182805461099b90611092565b80156109e85780601f106109bd576101008083540402835291602001916109e8565b820191906000526020600020905b8154815290600101906020018083116109cb57829003601f168201915b505050506002830154600384015460049094015492936001600160a01b0380831694600160a01b90930460ff169350169086565b610a24610a5a565b6001600160a01b038116610a4e57604051631e4fbdf760e01b81526000600482015260240161036c565b610a5781610a87565b50565b6000546001600160a01b031633146107655760405163118cdaa760e01b815233600482015260240161036c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516000808252602082019092526001600160a01b038416908390604051610b019190611215565b60006040518083038185875af1925050503d8060008114610b3e576040519150601f19603f3d011682016040523d82523d6000602084013e610b43565b606091505b5050905080610bb15760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b606482015260840161036c565b505050565b6040518060c00160405280600081526020016060815260200160006001600160a01b0316815260200160006003811115610bf257610bf2610d89565b815260006020820181905260409091015290565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715610c3f57610c3f610c06565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610c6e57610c6e610c06565b604052919050565b600067ffffffffffffffff821115610c9057610c90610c06565b50601f01601f191660200190565b600082601f830112610caf57600080fd5b8135610cc2610cbd82610c76565b610c45565b818152846020838601011115610cd757600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215610d0757600080fd5b823567ffffffffffffffff811115610d1e57600080fd5b610d2a85828601610c9e565b95602094909401359450505050565b60005b83811015610d54578181015183820152602001610d3c565b50506000910152565b60008151808452610d75816020860160208601610d39565b601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b60048110610dbd57634e487b7160e01b600052602160045260246000fd5b9052565b60208152815160208201526000602083015160c06040840152610de760e0840182610d5d565b60408501516001600160a01b03908116606086810191909152860151919250610e136080860183610d9f565b8060808701511660a0860152505060a084015160c08401528091505092915050565b600060208284031215610e4757600080fd5b5035919050565b6001600160a01b0381168114610a5757600080fd5b60008060408385031215610e7657600080fd5b8235610e8181610e4e565b946020939093013593505050565b602081016105898284610d9f565b600060208284031215610eaf57600080fd5b8135610eba81610e4e565b9392505050565b6020808252825182820181905260009190848201906040850190845b81811015610ef957835183529284019291840191600101610edd565b50909695505050505050565b60008060408385031215610f1857600080fd5b82359150602083013567ffffffffffffffff811115610f3657600080fd5b610f4285828601610c9e565b9150509250929050565b86815260c060208201526000610f6560c0830188610d5d565b6001600160a01b038781166040850152909150610f856060840187610d9f565b93909316608082015260a00152949350505050565b60006020808385031215610fad57600080fd5b825167ffffffffffffffff80821115610fc557600080fd5b9084019060808287031215610fd957600080fd5b610fe1610c1c565b8251610fec81610e4e565b81528284015182811115610fff57600080fd5b83019150601f8201871361101257600080fd5b8151611020610cbd82610c76565b818152888683860101111561103457600080fd5b61104382878301888701610d39565b8086840152505060408301516040820152606083015160608201528094505050505092915050565b60006001820161108b57634e487b7160e01b600052601160045260246000fd5b5060010190565b600181811c908216806110a657607f821691505b6020821081036110c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610bb157600081815260208120601f850160051c810160208610156110f35750805b601f850160051c820191505b81811015611112578281556001016110ff565b505050505050565b815167ffffffffffffffff81111561113457611134610c06565b611148816111428454611092565b846110cc565b602080601f83116001811461117d57600084156111655750858301515b600019600386901b1c1916600185901b178555611112565b600085815260208120601f198616915b828110156111ac5788860151825594840194600190910190840161118d565b50858210156111ca5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8381528260208201526060604082015260006111f96060830184610d5d565b95945050505050565b602081526000610eba6020830184610d5d565b60008251611227818460208701610d39565b919091019291505056fea26469706673582212208fea540d1850f13c6ff2e624aad1350e882c979266f7e96eccd88f013d73295a64736f6c63430008140033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x137A CODESIZE SUB DUP1 PUSH2 0x137A DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0xD4 JUMP JUMPDEST CALLER DUP1 PUSH2 0x55 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5E DUP2 PUSH2 0x84 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x104 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1267 DUP1 PUSH2 0x113 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA7 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x639241AB GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x639241AB EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x208 JUMPI DUP1 PUSH4 0x74AAA760 EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x8D977672 EQ PUSH2 0x23F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x271 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x28F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4FE2B34 EQ PUSH2 0xAC JUMPI DUP1 PUSH4 0x7B31818 EQ PUSH2 0xD5 JUMPI DUP1 PUSH4 0xD1CFCAE EQ PUSH2 0x126 JUMPI DUP1 PUSH4 0x1D65E77E EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x2A2B3A9D EQ PUSH2 0x166 JUMPI DUP1 PUSH4 0x5C622A0E EQ PUSH2 0x194 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBF PUSH2 0xBA CALLDATASIZE PUSH1 0x4 PUSH2 0xCF4 JUMP JUMPDEST PUSH2 0x2AF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP2 SWAP1 PUSH2 0xDC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10E PUSH2 0xF0 CALLDATASIZE PUSH1 0x4 PUSH2 0xE35 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x132 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x10E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBF PUSH2 0x161 CALLDATASIZE PUSH1 0x4 PUSH2 0xE35 JUMP JUMPDEST PUSH2 0x58F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x172 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x186 PUSH2 0x181 CALLDATASIZE PUSH1 0x4 PUSH2 0xE63 JUMP JUMPDEST PUSH2 0x6B6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CE PUSH2 0x1AF CALLDATASIZE PUSH1 0x4 PUSH2 0xE35 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP2 SWAP1 PUSH2 0xE8F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FB PUSH2 0x1F6 CALLDATASIZE PUSH1 0x4 PUSH2 0xE9D JUMP JUMPDEST PUSH2 0x6E7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP2 SWAP1 PUSH2 0xEC1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x214 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21D PUSH2 0x753 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21D PUSH2 0x23A CALLDATASIZE PUSH1 0x4 PUSH2 0xF05 JUMP JUMPDEST PUSH2 0x767 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25F PUSH2 0x25A CALLDATASIZE PUSH1 0x4 PUSH2 0xE35 JUMP JUMPDEST PUSH2 0x94E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x10E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21D PUSH2 0x2AA CALLDATASIZE PUSH1 0x4 PUSH2 0xE9D JUMP JUMPDEST PUSH2 0xA1C JUMP JUMPDEST PUSH2 0x2B7 PUSH2 0xBB6 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18FEEB15 PUSH1 0xE3 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC7F758A8 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x303 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x32B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0xF9A JUMP JUMPDEST SWAP1 POP CALLVALUE DUP2 PUSH1 0x40 ADD MLOAD EQ PUSH2 0x375 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x496E76616C6964207072696365 PUSH1 0x98 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x385 DUP4 PUSH2 0x106B JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x3 SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP2 DUP3 SSTORE DUP2 ADD PUSH2 0x3AD DUP7 DUP3 PUSH2 0x111A JUMP JUMPDEST POP PUSH1 0x2 DUP2 DUP2 ADD DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND DUP2 OR DUP4 SSTORE PUSH1 0x4 DUP6 ADD DUP9 SWAP1 SSTORE DUP6 MLOAD PUSH1 0x3 DUP1 DUP8 ADD DUP1 SLOAD SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SLOAD DUP3 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP6 SSTORE SWAP4 DUP4 MSTORE SWAP5 SWAP1 SWAP2 KECCAK256 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP3 SSTORE DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL DUP4 MUL OR SWAP1 SSTORE POP DUP2 MLOAD PUSH1 0x3 SLOAD PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 CALLER SWAP3 PUSH32 0x5C005BBBB9DA508C37935B1A9F270836E0BE1FD11D4D47119F925A3FF33820E9 SWAP3 PUSH2 0x46E SWAP3 DUP12 SWAP1 PUSH2 0x11DA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH2 0x49C SWAP1 PUSH2 0x1092 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4C8 SWAP1 PUSH2 0x1092 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x515 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4EA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x515 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x4F8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x552 JUMPI PUSH2 0x552 PUSH2 0xD89 JUMP JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x563 JUMPI PUSH2 0x563 PUSH2 0xD89 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP3 POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x597 PUSH2 0xBB6 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP5 MSTORE DUP1 SLOAD DUP5 MSTORE SWAP2 DUP3 ADD DUP1 SLOAD SWAP2 DUP5 ADD SWAP2 PUSH2 0x5C8 SWAP1 PUSH2 0x1092 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x5F4 SWAP1 PUSH2 0x1092 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x641 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x616 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x641 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x624 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x67E JUMPI PUSH2 0x67E PUSH2 0xD89 JUMP JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x68F JUMPI PUSH2 0x68F PUSH2 0xD89 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x6D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD DUP2 DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x747 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x733 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x75B PUSH2 0xA5A JUMP JUMPDEST PUSH2 0x765 PUSH1 0x0 PUSH2 0xA87 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x7C2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x139BDD08185D5D1A1BDC9A5E9959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x36C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x7E4 JUMPI PUSH2 0x7E4 PUSH2 0xD89 JUMP JUMPDEST EQ PUSH2 0x827 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x496E76616C6964207461736B20737461747573 PUSH1 0x68 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x36C JUMP JUMPDEST PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA1 SHL PUSH1 0xFF PUSH1 0xA0 SHL NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x4 DUP1 SLOAD DUP2 DUP4 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x18FEEB15 PUSH1 0xE3 SHL DUP2 MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC7F758A8 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x88C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x8B4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0xF9A JUMP JUMPDEST SWAP1 POP PUSH2 0x8C8 DUP2 PUSH1 0x0 ADD MLOAD DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0xAD7 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x40 MLOAD DUP6 SWAP2 PUSH32 0xD76EF80CFB1CE0C70D0CBC0AB1B9F2F298A78F9FCA5C841BE963AE9A5D721BB4 SWAP2 PUSH2 0x908 SWAP2 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 PUSH2 0xE8F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP4 PUSH32 0x7E6FFC29FE63759579D96A0457A8F2E08339ACA345BD469F59DC2E61F82A5AEB DUP5 PUSH1 0x40 MLOAD PUSH2 0x940 SWAP2 SWAP1 PUSH2 0x1202 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD SWAP2 DUP2 ADD DUP1 SLOAD PUSH2 0x96F SWAP1 PUSH2 0x1092 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x99B SWAP1 PUSH2 0x1092 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x9E8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9BD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x9E8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x9CB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 SWAP1 SWAP5 ADD SLOAD SWAP3 SWAP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND SWAP5 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP4 DIV PUSH1 0xFF AND SWAP4 POP AND SWAP1 DUP7 JUMP JUMPDEST PUSH2 0xA24 PUSH2 0xA5A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xA4E JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x36C JUMP JUMPDEST PUSH2 0xA57 DUP2 PUSH2 0xA87 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x765 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x36C JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP4 SWAP1 PUSH1 0x40 MLOAD PUSH2 0xB01 SWAP2 SWAP1 PUSH2 0x1215 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xB3E JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xB43 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xBB1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x34 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A3A736166655472616E736665724554483A PUSH1 0x44 DUP3 ADD MSTORE PUSH20 0x8115512081D1C985B9CD9995C8819985A5B1959 PUSH1 0x62 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x36C JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xBF2 JUMPI PUSH2 0xBF2 PUSH2 0xD89 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xC3F JUMPI PUSH2 0xC3F PUSH2 0xC06 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xC6E JUMPI PUSH2 0xC6E PUSH2 0xC06 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xC90 JUMPI PUSH2 0xC90 PUSH2 0xC06 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xCAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xCC2 PUSH2 0xCBD DUP3 PUSH2 0xC76 JUMP JUMPDEST PUSH2 0xC45 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0xCD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD2A DUP6 DUP3 DUP7 ADD PUSH2 0xC9E JUMP JUMPDEST SWAP6 PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD54 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xD3C JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xD75 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xD39 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0xDBD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0xDE7 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0xD5D JUMP JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x60 DUP7 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP7 ADD MLOAD SWAP2 SWAP3 POP PUSH2 0xE13 PUSH1 0x80 DUP7 ADD DUP4 PUSH2 0xD9F JUMP JUMPDEST DUP1 PUSH1 0x80 DUP8 ADD MLOAD AND PUSH1 0xA0 DUP7 ADD MSTORE POP POP PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0xC0 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0xE81 DUP2 PUSH2 0xE4E JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x589 DUP3 DUP5 PUSH2 0xD9F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xEBA DUP2 PUSH2 0xE4E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xEF9 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0xEDD JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF42 DUP6 DUP3 DUP7 ADD PUSH2 0xC9E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP7 DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0xF65 PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0xD5D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0xF85 PUSH1 0x60 DUP5 ADD DUP8 PUSH2 0xD9F JUMP JUMPDEST SWAP4 SWAP1 SWAP4 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xFAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xFC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP5 ADD SWAP1 PUSH1 0x80 DUP3 DUP8 SUB SLT ISZERO PUSH2 0xFD9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xFE1 PUSH2 0xC1C JUMP JUMPDEST DUP3 MLOAD PUSH2 0xFEC DUP2 PUSH2 0xE4E JUMP JUMPDEST DUP2 MSTORE DUP3 DUP5 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0xFFF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD SWAP2 POP PUSH1 0x1F DUP3 ADD DUP8 SGT PUSH2 0x1012 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1020 PUSH2 0xCBD DUP3 PUSH2 0xC76 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP9 DUP7 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x1034 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1043 DUP3 DUP8 DUP4 ADD DUP9 DUP8 ADD PUSH2 0xD39 JUMP JUMPDEST DUP1 DUP7 DUP5 ADD MSTORE POP POP PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x108B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x10A6 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x10C6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xBB1 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x10F3 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1112 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x10FF JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1134 JUMPI PUSH2 0x1134 PUSH2 0xC06 JUMP JUMPDEST PUSH2 0x1148 DUP2 PUSH2 0x1142 DUP5 SLOAD PUSH2 0x1092 JUMP JUMPDEST DUP5 PUSH2 0x10CC JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x117D JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1165 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x1112 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x11AC JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x118D JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x11CA JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP4 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x11F9 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xD5D JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xEBA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xD5D JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1227 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xD39 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP16 0xEA SLOAD 0xD XOR POP CALL EXTCODECOPY PUSH16 0xF2E624AAD1350E882C979266F7E96ECC 0xD8 DUP16 ADD RETURNDATASIZE PUSH20 0x295A64736F6C6343000814003300000000000000 ", - "sourceMap": "380:3160:4:-:0;;;854:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;905:10;;1269:95:0;;1322:31;;-1:-1:-1;;;1322:31:0;;1350:1;1322:31;;;477:51:7;450:18;;1322:31:0;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;927:13:4::1;:30:::0;;-1:-1:-1;;;;;;927:30:4::1;-1:-1:-1::0;;;;;927:30:4;;;::::1;::::0;;;::::1;::::0;;380:3160;;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:312:7:-;106:6;159:2;147:9;138:7;134:23;130:32;127:52;;;175:1;172;165:12;127:52;201:16;;-1:-1:-1;;;;;246:31:7;;236:42;;226:70;;292:1;289;282:12;226:70;315:5;14:312;-1:-1:-1;;;14:312:7:o;331:203::-;380:3160:4;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@_checkOwner_84": { - "entryPoint": 2650, - "id": 84, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_msgSender_159": { - "entryPoint": null, - "id": 159, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_transferOwnership_146": { - "entryPoint": 2695, - "id": 146, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@agentRegistry_727": { - "entryPoint": null, - "id": 727, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@completeTask_949": { - "entryPoint": 1895, - "id": 949, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@createTask_879": { - "entryPoint": 687, - "id": 879, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@getAssignee_1002": { - "entryPoint": null, - "id": 1002, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getStatus_989": { - "entryPoint": null, - "id": 989, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getTask_975": { - "entryPoint": 1423, - "id": 975, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getTasksByIssuer_962": { - "entryPoint": 1767, - "id": 962, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@issuerTasks_722": { - "entryPoint": 1718, - "id": 722, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@owner_67": { - "entryPoint": null, - "id": 67, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@renounceOwnership_98": { - "entryPoint": 1875, - "id": 98, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@safeTransferETH_1174": { - "entryPoint": 2775, - "id": 1174, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@tasks_717": { - "entryPoint": 2382, - "id": 717, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@transferOwnership_126": { - "entryPoint": 2588, - "id": 126, - "parameterSlots": 1, - "returnSlots": 0 - }, - "abi_decode_string": { - "entryPoint": 3230, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_address": { - "entryPoint": 3741, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_addresst_uint256": { - "entryPoint": 3683, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_string_memory_ptrt_uint256": { - "entryPoint": 3316, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_struct$_Proposal_$1014_memory_ptr_fromMemory": { - "entryPoint": 3994, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint256": { - "entryPoint": 3637, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint256t_string_memory_ptr": { - "entryPoint": 3845, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_encode_enum_TaskStatus": { - "entryPoint": 3487, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_string": { - "entryPoint": 3421, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { - "entryPoint": 4629, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { - "entryPoint": 3777, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_contract$_AgentsRegistry_$506__to_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_enum$_TaskStatus_$698__to_t_uint8__fromStack_reversed": { - "entryPoint": 3727, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 4610, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_35c761622bcc8ab75f9adfaf21a4872a39cd06f2745d5488272d29f1f753f270__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_43d7bec223ecf9eb06ea147e7d564bc71c2448662d62a4ea86ce71fc4518b350__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_eaa01effe6abd0543e9529d3961b0f5d26980f0661c156a79b89c39a093463f7__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_struct$_TaskData_$712_memory_ptr__to_t_struct$_TaskData_$712_memory_ptr__fromStack_reversed": { - "entryPoint": 3521, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_string_memory_ptr_t_address_t_enum$_TaskStatus_$698_t_address_t_uint256__to_t_uint256_t_string_memory_ptr_t_address_t_uint8_t_address_t_uint256__fromStack_reversed": { - "entryPoint": 3916, - "id": null, - "parameterSlots": 7, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_uint256_t_string_memory_ptr__to_t_uint256_t_uint256_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 4570, - "id": null, - "parameterSlots": 4, - "returnSlots": 1 - }, - "allocate_memory": { - "entryPoint": 3141, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "allocate_memory_1882": { - "entryPoint": 3100, - "id": null, - "parameterSlots": 0, - "returnSlots": 1 - }, - "array_allocation_size_string": { - "entryPoint": 3190, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_dataslot_string_storage": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "clean_up_bytearray_end_slots_string_storage": { - "entryPoint": 4300, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { - "entryPoint": 4378, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "copy_memory_to_memory_with_cleanup": { - "entryPoint": 3385, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "extract_byte_array_length": { - "entryPoint": 4242, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "extract_used_part_and_set_length_of_short_byte_array": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "increment_t_uint256": { - "entryPoint": 4203, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "panic_error_0x21": { - "entryPoint": 3465, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x41": { - "entryPoint": 3078, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "validator_revert_address": { - "entryPoint": 3662, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nodeType": "YulBlock", - "src": "0:13261:7", - "statements": [ - { - "nodeType": "YulBlock", - "src": "6:3:7", - "statements": [] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "46:95:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "63:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "70:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "75:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "66:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "66:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "56:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "56:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "56:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "103:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "106:4:7", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "96:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "96:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "96:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "127:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "130:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "120:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "120:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "120:15:7" - } - ] - }, - "name": "panic_error_0x41", - "nodeType": "YulFunctionDefinition", - "src": "14:127:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "192:207:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "202:19:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "218:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "212:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "212:9:7" - }, - "variableNames": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "202:6:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "230:35:7", - "value": { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "252:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "260:4:7", - "type": "", - "value": "0x80" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "248:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "248:17:7" - }, - "variables": [ - { - "name": "newFreePtr", - "nodeType": "YulTypedName", - "src": "234:10:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "340:22:7", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "342:16:7" - }, - "nodeType": "YulFunctionCall", - "src": "342:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "342:18:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "283:10:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "295:18:7", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "280:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "280:34:7" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "319:10:7" - }, - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "331:6:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "316:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "316:22:7" - } - ], - "functionName": { - "name": "or", - "nodeType": "YulIdentifier", - "src": "277:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "277:62:7" - }, - "nodeType": "YulIf", - "src": "274:88:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "378:2:7", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "382:10:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "371:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "371:22:7" - }, - "nodeType": "YulExpressionStatement", - "src": "371:22:7" - } - ] - }, - "name": "allocate_memory_1882", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "181:6:7", - "type": "" - } - ], - "src": "146:253:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "449:230:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "459:19:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "475:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "469:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "469:9:7" - }, - "variableNames": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "459:6:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "487:58:7", - "value": { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "509:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "525:4:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "531:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "521:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "521:13:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "540:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "536:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "536:7:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "517:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "517:27:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "505:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "505:40:7" - }, - "variables": [ - { - "name": "newFreePtr", - "nodeType": "YulTypedName", - "src": "491:10:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "620:22:7", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "622:16:7" - }, - "nodeType": "YulFunctionCall", - "src": "622:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "622:18:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "563:10:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "575:18:7", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "560:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "560:34:7" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "599:10:7" - }, - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "611:6:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "596:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "596:22:7" - } - ], - "functionName": { - "name": "or", - "nodeType": "YulIdentifier", - "src": "557:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "557:62:7" - }, - "nodeType": "YulIf", - "src": "554:88:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "658:2:7", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "662:10:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "651:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "651:22:7" - }, - "nodeType": "YulExpressionStatement", - "src": "651:22:7" - } - ] - }, - "name": "allocate_memory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "size", - "nodeType": "YulTypedName", - "src": "429:4:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "438:6:7", - "type": "" - } - ], - "src": "404:275:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "742:129:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "786:22:7", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "788:16:7" - }, - "nodeType": "YulFunctionCall", - "src": "788:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "788:18:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "758:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "766:18:7", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "755:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "755:30:7" - }, - "nodeType": "YulIf", - "src": "752:56:7" - }, - { - "nodeType": "YulAssignment", - "src": "817:48:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "837:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "845:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "833:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "833:15:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "854:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "850:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "850:7:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "829:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "829:29:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "860:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "825:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "825:40:7" - }, - "variableNames": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "817:4:7" - } - ] - } - ] - }, - "name": "array_allocation_size_string", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "722:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "size", - "nodeType": "YulTypedName", - "src": "733:4:7", - "type": "" - } - ], - "src": "684:187:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "929:411:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "978:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "987:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "990:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "980:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "980:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "980:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "957:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "965:4:7", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "953:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "953:17:7" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "972:3:7" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "949:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "949:27:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "942:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "942:35:7" - }, - "nodeType": "YulIf", - "src": "939:55:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "1003:30:7", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1026:6:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "1013:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "1013:20:7" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "1007:2:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "1042:64:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "1102:2:7" - } - ], - "functionName": { - "name": "array_allocation_size_string", - "nodeType": "YulIdentifier", - "src": "1073:28:7" - }, - "nodeType": "YulFunctionCall", - "src": "1073:32:7" - } - ], - "functionName": { - "name": "allocate_memory", - "nodeType": "YulIdentifier", - "src": "1057:15:7" - }, - "nodeType": "YulFunctionCall", - "src": "1057:49:7" - }, - "variables": [ - { - "name": "array_1", - "nodeType": "YulTypedName", - "src": "1046:7:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "array_1", - "nodeType": "YulIdentifier", - "src": "1122:7:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "1131:2:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1115:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1115:19:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1115:19:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1182:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1191:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1194:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1184:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1184:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1184:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1157:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "1165:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1153:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1153:15:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1170:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1149:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1149:26:7" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "1177:3:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "1146:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "1146:35:7" - }, - "nodeType": "YulIf", - "src": "1143:55:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "array_1", - "nodeType": "YulIdentifier", - "src": "1224:7:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1233:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1220:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1220:18:7" - }, - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1244:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1252:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1240:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1240:17:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "1259:2:7" - } - ], - "functionName": { - "name": "calldatacopy", - "nodeType": "YulIdentifier", - "src": "1207:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "1207:55:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1207:55:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "array_1", - "nodeType": "YulIdentifier", - "src": "1286:7:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "1295:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1282:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1282:16:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1300:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1278:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1278:27:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1307:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1271:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1271:38:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1271:38:7" - }, - { - "nodeType": "YulAssignment", - "src": "1318:16:7", - "value": { - "name": "array_1", - "nodeType": "YulIdentifier", - "src": "1327:7:7" - }, - "variableNames": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "1318:5:7" - } - ] - } - ] - }, - "name": "abi_decode_string", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "903:6:7", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "911:3:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nodeType": "YulTypedName", - "src": "919:5:7", - "type": "" - } - ], - "src": "876:464:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1442:293:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "1488:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1497:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1500:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1490:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1490:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1490:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1463:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1472:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "1459:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1459:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1484:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "1455:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1455:32:7" - }, - "nodeType": "YulIf", - "src": "1452:52:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "1513:37:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1540:9:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "1527:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "1527:23:7" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1517:6:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1593:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1602:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1605:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1595:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1595:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1595:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1565:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1573:18:7", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "1562:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "1562:30:7" - }, - "nodeType": "YulIf", - "src": "1559:50:7" - }, - { - "nodeType": "YulAssignment", - "src": "1618:60:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1650:9:7" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1661:6:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1646:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1646:22:7" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1670:7:7" - } - ], - "functionName": { - "name": "abi_decode_string", - "nodeType": "YulIdentifier", - "src": "1628:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "1628:50:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1618:6:7" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "1687:42:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1714:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1725:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1710:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1710:18:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "1697:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "1697:32:7" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "1687:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_string_memory_ptrt_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1400:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "1411:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1423:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "1431:6:7", - "type": "" - } - ], - "src": "1345:390:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1806:184:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1816:10:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1825:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "1820:1:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1885:63:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "1910:3:7" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "1915:1:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1906:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1906:11:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "1929:3:7" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "1934:1:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1925:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1925:11:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "1919:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "1919:18:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1899:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1899:39:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1899:39:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "1846:1:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1849:6:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "1843:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "1843:13:7" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "1857:19:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1859:15:7", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "1868:1:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1871:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1864:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1864:10:7" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "1859:1:7" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "1839:3:7", - "statements": [] - }, - "src": "1835:113:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "1968:3:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1973:6:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1964:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1964:16:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1982:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1957:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1957:27:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1957:27:7" - } - ] - }, - "name": "copy_memory_to_memory_with_cleanup", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nodeType": "YulTypedName", - "src": "1784:3:7", - "type": "" - }, - { - "name": "dst", - "nodeType": "YulTypedName", - "src": "1789:3:7", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "1794:6:7", - "type": "" - } - ], - "src": "1740:250:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2045:221:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "2055:26:7", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2075:5:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "2069:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "2069:12:7" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "2059:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2097:3:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2102:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2090:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2090:19:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2090:19:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2157:5:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2164:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2153:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2153:16:7" - }, - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2175:3:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2180:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2171:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2171:14:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2187:6:7" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nodeType": "YulIdentifier", - "src": "2118:34:7" - }, - "nodeType": "YulFunctionCall", - "src": "2118:76:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2118:76:7" - }, - { - "nodeType": "YulAssignment", - "src": "2203:57:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2218:3:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2231:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2239:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2227:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2227:15:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2248:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "2244:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2244:7:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "2223:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2223:29:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2214:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2214:39:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2255:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2210:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2210:50:7" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "2203:3:7" - } - ] - } - ] - }, - "name": "abi_encode_string", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2022:5:7", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "2029:3:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "2037:3:7", - "type": "" - } - ], - "src": "1995:271:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2303:95:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2320:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2327:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2332:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "2323:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2323:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2313:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2313:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2313:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2360:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2363:4:7", - "type": "", - "value": "0x21" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2353:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2353:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2353:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2384:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2387:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "2377:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2377:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2377:15:7" - } - ] - }, - "name": "panic_error_0x21", - "nodeType": "YulFunctionDefinition", - "src": "2271:127:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2455:186:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "2497:111:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2518:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2525:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2530:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "2521:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2521:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2511:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2511:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2511:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2562:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2565:4:7", - "type": "", - "value": "0x21" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2555:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2555:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2555:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2590:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2593:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "2583:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2583:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2583:15:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2478:5:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2485:1:7", - "type": "", - "value": "4" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "2475:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "2475:12:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "2468:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2468:20:7" - }, - "nodeType": "YulIf", - "src": "2465:143:7" - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2624:3:7" - }, - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2629:5:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2617:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2617:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2617:18:7" - } - ] - }, - "name": "abi_encode_enum_TaskStatus", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2439:5:7", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "2446:3:7", - "type": "" - } - ], - "src": "2403:238:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2797:685:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2814:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2825:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2807:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2807:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2807:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2848:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2859:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2844:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2844:18:7" - }, - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2870:6:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "2864:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "2864:13:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2837:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2837:41:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2837:41:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2887:42:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2917:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2925:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2913:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2913:15:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "2907:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "2907:22:7" - }, - "variables": [ - { - "name": "memberValue0", - "nodeType": "YulTypedName", - "src": "2891:12:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2949:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2960:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2945:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2945:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2965:4:7", - "type": "", - "value": "0xc0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2938:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2938:32:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2938:32:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2979:66:7", - "value": { - "arguments": [ - { - "name": "memberValue0", - "nodeType": "YulIdentifier", - "src": "3011:12:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3029:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3040:3:7", - "type": "", - "value": "224" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3025:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3025:19:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "2993:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "2993:52:7" - }, - "variables": [ - { - "name": "tail_1", - "nodeType": "YulTypedName", - "src": "2983:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3054:44:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3086:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3094:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3082:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3082:15:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "3076:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "3076:22:7" - }, - "variables": [ - { - "name": "memberValue0_1", - "nodeType": "YulTypedName", - "src": "3058:14:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3107:29:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3125:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3130:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "3121:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3121:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3134:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "3117:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3117:19:7" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "3111:2:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3156:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3167:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3152:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3152:18:7" - }, - { - "arguments": [ - { - "name": "memberValue0_1", - "nodeType": "YulIdentifier", - "src": "3176:14:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "3192:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "3172:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3172:23:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3145:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3145:51:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3145:51:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3205:44:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3237:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3245:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3233:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3233:15:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "3227:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "3227:22:7" - }, - "variables": [ - { - "name": "memberValue0_2", - "nodeType": "YulTypedName", - "src": "3209:14:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "memberValue0_2", - "nodeType": "YulIdentifier", - "src": "3285:14:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3305:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3316:3:7", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3301:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3301:19:7" - } - ], - "functionName": { - "name": "abi_encode_enum_TaskStatus", - "nodeType": "YulIdentifier", - "src": "3258:26:7" - }, - "nodeType": "YulFunctionCall", - "src": "3258:63:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3258:63:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3341:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3352:3:7", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3337:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3337:19:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3372:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3380:3:7", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3368:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3368:16:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "3362:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "3362:23:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "3387:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "3358:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3358:32:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3330:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3330:61:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3330:61:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3411:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3422:4:7", - "type": "", - "value": "0xc0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3407:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3407:20:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3439:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3447:3:7", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3435:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3435:16:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "3429:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "3429:23:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3400:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3400:53:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3400:53:7" - }, - { - "nodeType": "YulAssignment", - "src": "3462:14:7", - "value": { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "3470:6:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3462:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_struct$_TaskData_$712_memory_ptr__to_t_struct$_TaskData_$712_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "2766:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "2777:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "2788:4:7", - "type": "" - } - ], - "src": "2646:836:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3557:110:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "3603:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3612:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3615:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "3605:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3605:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3605:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3578:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3587:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "3574:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3574:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3599:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "3570:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3570:32:7" - }, - "nodeType": "YulIf", - "src": "3567:52:7" - }, - { - "nodeType": "YulAssignment", - "src": "3628:33:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3651:9:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "3638:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "3638:23:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3628:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3523:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "3534:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "3546:6:7", - "type": "" - } - ], - "src": "3487:180:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3773:102:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "3783:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3795:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3806:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3791:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3791:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3783:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3825:9:7" - }, - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3840:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3856:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3861:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "3852:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3852:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3865:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "3848:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3848:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "3836:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3836:32:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3818:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3818:51:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3818:51:7" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3742:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "3753:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "3764:4:7", - "type": "" - } - ], - "src": "3672:203:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4003:102:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "4013:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4025:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4036:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4021:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4021:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "4013:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4055:9:7" - }, - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4070:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4086:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4091:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "4082:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4082:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4095:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "4078:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4078:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "4066:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4066:32:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4048:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4048:51:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4048:51:7" - } - ] - }, - "name": "abi_encode_tuple_t_contract$_AgentsRegistry_$506__to_t_address__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3972:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "3983:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "3994:4:7", - "type": "" - } - ], - "src": "3880:225:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4155:86:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "4219:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4228:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4231:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "4221:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4221:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4221:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "4178:5:7" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "4189:5:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4204:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4209:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "4200:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4200:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4213:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "4196:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4196:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "4185:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4185:31:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "4175:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "4175:42:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "4168:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4168:50:7" - }, - "nodeType": "YulIf", - "src": "4165:70:7" - } - ] - }, - "name": "validator_revert_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "4144:5:7", - "type": "" - } - ], - "src": "4110:131:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4333:228:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "4379:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4388:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4391:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "4381:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4381:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4381:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "4354:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4363:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "4350:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4350:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4375:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "4346:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4346:32:7" - }, - "nodeType": "YulIf", - "src": "4343:52:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "4404:36:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4430:9:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "4417:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "4417:23:7" - }, - "variables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "4408:5:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "4474:5:7" - } - ], - "functionName": { - "name": "validator_revert_address", - "nodeType": "YulIdentifier", - "src": "4449:24:7" - }, - "nodeType": "YulFunctionCall", - "src": "4449:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4449:31:7" - }, - { - "nodeType": "YulAssignment", - "src": "4489:15:7", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "4499:5:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4489:6:7" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "4513:42:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4540:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4551:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4536:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4536:18:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "4523:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "4523:32:7" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "4513:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "4291:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "4302:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "4314:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "4322:6:7", - "type": "" - } - ], - "src": "4246:315:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4667:76:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "4677:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4689:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4700:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4685:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4685:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "4677:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4719:9:7" - }, - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4730:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4712:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4712:25:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4712:25:7" - } - ] - }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "4636:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "4647:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "4658:4:7", - "type": "" - } - ], - "src": "4566:177:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4861:96:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "4871:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4883:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4894:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4879:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4879:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "4871:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4933:6:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4941:9:7" - } - ], - "functionName": { - "name": "abi_encode_enum_TaskStatus", - "nodeType": "YulIdentifier", - "src": "4906:26:7" - }, - "nodeType": "YulFunctionCall", - "src": "4906:45:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4906:45:7" - } - ] - }, - "name": "abi_encode_tuple_t_enum$_TaskStatus_$698__to_t_uint8__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "4830:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "4841:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "4852:4:7", - "type": "" - } - ], - "src": "4748:209:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5032:177:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "5078:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5087:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5090:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "5080:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5080:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5080:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "5053:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5062:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "5049:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5049:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5074:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "5045:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5045:32:7" - }, - "nodeType": "YulIf", - "src": "5042:52:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "5103:36:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5129:9:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "5116:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "5116:23:7" - }, - "variables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "5107:5:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "5173:5:7" - } - ], - "functionName": { - "name": "validator_revert_address", - "nodeType": "YulIdentifier", - "src": "5148:24:7" - }, - "nodeType": "YulFunctionCall", - "src": "5148:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5148:31:7" - }, - { - "nodeType": "YulAssignment", - "src": "5188:15:7", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "5198:5:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5188:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "4998:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "5009:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5021:6:7", - "type": "" - } - ], - "src": "4962:247:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5365:481:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "5375:12:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5385:2:7", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "5379:2:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "5396:32:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5414:9:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "5425:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5410:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5410:18:7" - }, - "variables": [ - { - "name": "tail_1", - "nodeType": "YulTypedName", - "src": "5400:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5444:9:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "5455:2:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "5437:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5437:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5437:21:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "5467:17:7", - "value": { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "5478:6:7" - }, - "variables": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "5471:3:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "5493:27:7", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5513:6:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "5507:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "5507:13:7" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "5497:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "5536:6:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "5544:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "5529:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5529:22:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5529:22:7" - }, - { - "nodeType": "YulAssignment", - "src": "5560:25:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5571:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5582:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5567:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5567:18:7" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5560:3:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "5594:29:7", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5612:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "5620:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5608:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5608:15:7" - }, - "variables": [ - { - "name": "srcPtr", - "nodeType": "YulTypedName", - "src": "5598:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "5632:10:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5641:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "5636:1:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5700:120:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5721:3:7" - }, - { - "arguments": [ - { - "name": "srcPtr", - "nodeType": "YulIdentifier", - "src": "5732:6:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "5726:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "5726:13:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "5714:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5714:26:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5714:26:7" - }, - { - "nodeType": "YulAssignment", - "src": "5753:19:7", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5764:3:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "5769:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5760:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5760:12:7" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5753:3:7" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "5785:25:7", - "value": { - "arguments": [ - { - "name": "srcPtr", - "nodeType": "YulIdentifier", - "src": "5799:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "5807:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5795:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5795:15:7" - }, - "variableNames": [ - { - "name": "srcPtr", - "nodeType": "YulIdentifier", - "src": "5785:6:7" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "5662:1:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "5665:6:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "5659:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "5659:13:7" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "5673:18:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "5675:14:7", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "5684:1:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5687:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5680:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5680:9:7" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "5675:1:7" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "5655:3:7", - "statements": [] - }, - "src": "5651:169:7" - }, - { - "nodeType": "YulAssignment", - "src": "5829:11:7", - "value": { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5837:3:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "5829:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "5334:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5345:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "5356:4:7", - "type": "" - } - ], - "src": "5214:632:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5948:293:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "5994:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6003:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6006:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "5996:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5996:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5996:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "5969:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5978:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "5965:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5965:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5990:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "5961:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5961:32:7" - }, - "nodeType": "YulIf", - "src": "5958:52:7" - }, - { - "nodeType": "YulAssignment", - "src": "6019:33:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6042:9:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "6029:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "6029:23:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "6019:6:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "6061:46:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6092:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6103:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6088:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6088:18:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "6075:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "6075:32:7" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "6065:6:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6150:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6159:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6162:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "6152:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6152:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6152:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "6122:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6130:18:7", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "6119:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "6119:30:7" - }, - "nodeType": "YulIf", - "src": "6116:50:7" - }, - { - "nodeType": "YulAssignment", - "src": "6175:60:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6207:9:7" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "6218:6:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6203:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6203:22:7" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "6227:7:7" - } - ], - "functionName": { - "name": "abi_decode_string", - "nodeType": "YulIdentifier", - "src": "6185:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "6185:50:7" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "6175:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "5906:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "5917:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5929:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "5937:6:7", - "type": "" - } - ], - "src": "5851:390:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6519:394:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6536:9:7" - }, - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "6547:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6529:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6529:25:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6529:25:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6574:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6585:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6570:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6570:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6590:3:7", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6563:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6563:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6563:31:7" - }, - { - "nodeType": "YulAssignment", - "src": "6603:54:7", - "value": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "6629:6:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6641:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6652:3:7", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6637:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6637:19:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "6611:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "6611:46:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6603:4:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "6666:29:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6684:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6689:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "6680:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6680:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6693:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "6676:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6676:19:7" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "6670:2:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6715:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6726:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6711:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6711:18:7" - }, - { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "6735:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "6743:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "6731:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6731:15:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6704:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6704:43:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6704:43:7" - }, - { - "expression": { - "arguments": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "6783:6:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6795:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6806:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6791:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6791:18:7" - } - ], - "functionName": { - "name": "abi_encode_enum_TaskStatus", - "nodeType": "YulIdentifier", - "src": "6756:26:7" - }, - "nodeType": "YulFunctionCall", - "src": "6756:54:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6756:54:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6830:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6841:3:7", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6826:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6826:19:7" - }, - { - "arguments": [ - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "6851:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "6859:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "6847:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6847:15:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6819:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6819:44:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6819:44:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6883:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6894:3:7", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6879:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6879:19:7" - }, - { - "name": "value5", - "nodeType": "YulIdentifier", - "src": "6900:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6872:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6872:35:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6872:35:7" - } - ] - }, - "name": "abi_encode_tuple_t_uint256_t_string_memory_ptr_t_address_t_enum$_TaskStatus_$698_t_address_t_uint256__to_t_uint256_t_string_memory_ptr_t_address_t_uint8_t_address_t_uint256__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "6448:9:7", - "type": "" - }, - { - "name": "value5", - "nodeType": "YulTypedName", - "src": "6459:6:7", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "6467:6:7", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "6475:6:7", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "6483:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "6491:6:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "6499:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "6510:4:7", - "type": "" - } - ], - "src": "6246:667:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7025:1070:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "7035:12:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7045:2:7", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "7039:2:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7092:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7101:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7104:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7094:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7094:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7094:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "7067:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7076:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "7063:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7063:23:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "7088:2:7" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "7059:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7059:32:7" - }, - "nodeType": "YulIf", - "src": "7056:52:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7117:30:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7137:9:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "7131:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "7131:16:7" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "7121:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7156:28:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7166:18:7", - "type": "", - "value": "0xffffffffffffffff" - }, - "variables": [ - { - "name": "_2", - "nodeType": "YulTypedName", - "src": "7160:2:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7211:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7220:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7223:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7213:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7213:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7213:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "7199:6:7" - }, - { - "name": "_2", - "nodeType": "YulIdentifier", - "src": "7207:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "7196:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "7196:14:7" - }, - "nodeType": "YulIf", - "src": "7193:34:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7236:32:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7250:9:7" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "7261:6:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7246:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7246:22:7" - }, - "variables": [ - { - "name": "_3", - "nodeType": "YulTypedName", - "src": "7240:2:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7308:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7317:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7320:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7310:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7310:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7310:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "7288:7:7" - }, - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "7297:2:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "7284:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7284:16:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7302:4:7", - "type": "", - "value": "0x80" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "7280:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7280:27:7" - }, - "nodeType": "YulIf", - "src": "7277:47:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7333:35:7", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_memory_1882", - "nodeType": "YulIdentifier", - "src": "7346:20:7" - }, - "nodeType": "YulFunctionCall", - "src": "7346:22:7" - }, - "variables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "7337:5:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7377:24:7", - "value": { - "arguments": [ - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "7398:2:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "7392:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "7392:9:7" - }, - "variables": [ - { - "name": "value_1", - "nodeType": "YulTypedName", - "src": "7381:7:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value_1", - "nodeType": "YulIdentifier", - "src": "7435:7:7" - } - ], - "functionName": { - "name": "validator_revert_address", - "nodeType": "YulIdentifier", - "src": "7410:24:7" - }, - "nodeType": "YulFunctionCall", - "src": "7410:33:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7410:33:7" - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7459:5:7" - }, - { - "name": "value_1", - "nodeType": "YulIdentifier", - "src": "7466:7:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "7452:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7452:22:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7452:22:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7483:34:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "7509:2:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "7513:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7505:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7505:11:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "7499:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "7499:18:7" - }, - "variables": [ - { - "name": "offset_1", - "nodeType": "YulTypedName", - "src": "7487:8:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7546:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7555:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7558:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7548:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7548:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7548:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset_1", - "nodeType": "YulIdentifier", - "src": "7532:8:7" - }, - { - "name": "_2", - "nodeType": "YulIdentifier", - "src": "7542:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "7529:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "7529:16:7" - }, - "nodeType": "YulIf", - "src": "7526:36:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7571:27:7", - "value": { - "arguments": [ - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "7585:2:7" - }, - { - "name": "offset_1", - "nodeType": "YulIdentifier", - "src": "7589:8:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7581:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7581:17:7" - }, - "variables": [ - { - "name": "_4", - "nodeType": "YulTypedName", - "src": "7575:2:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7646:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7655:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7658:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7648:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7648:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7648:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "_4", - "nodeType": "YulIdentifier", - "src": "7625:2:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7629:4:7", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7621:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7621:13:7" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "7636:7:7" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "7617:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7617:27:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "7610:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7610:35:7" - }, - "nodeType": "YulIf", - "src": "7607:55:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7671:19:7", - "value": { - "arguments": [ - { - "name": "_4", - "nodeType": "YulIdentifier", - "src": "7687:2:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "7681:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "7681:9:7" - }, - "variables": [ - { - "name": "_5", - "nodeType": "YulTypedName", - "src": "7675:2:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7699:62:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "_5", - "nodeType": "YulIdentifier", - "src": "7757:2:7" - } - ], - "functionName": { - "name": "array_allocation_size_string", - "nodeType": "YulIdentifier", - "src": "7728:28:7" - }, - "nodeType": "YulFunctionCall", - "src": "7728:32:7" - } - ], - "functionName": { - "name": "allocate_memory", - "nodeType": "YulIdentifier", - "src": "7712:15:7" - }, - "nodeType": "YulFunctionCall", - "src": "7712:49:7" - }, - "variables": [ - { - "name": "array", - "nodeType": "YulTypedName", - "src": "7703:5:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "7777:5:7" - }, - { - "name": "_5", - "nodeType": "YulIdentifier", - "src": "7784:2:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "7770:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7770:17:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7770:17:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7833:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7842:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7845:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7835:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7835:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7835:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "_4", - "nodeType": "YulIdentifier", - "src": "7810:2:7" - }, - { - "name": "_5", - "nodeType": "YulIdentifier", - "src": "7814:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7806:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7806:11:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "7819:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7802:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7802:20:7" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "7824:7:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "7799:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "7799:33:7" - }, - "nodeType": "YulIf", - "src": "7796:53:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "_4", - "nodeType": "YulIdentifier", - "src": "7897:2:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "7901:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7893:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7893:11:7" - }, - { - "arguments": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "7910:5:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "7917:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7906:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7906:14:7" - }, - { - "name": "_5", - "nodeType": "YulIdentifier", - "src": "7922:2:7" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nodeType": "YulIdentifier", - "src": "7858:34:7" - }, - "nodeType": "YulFunctionCall", - "src": "7858:67:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7858:67:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7945:5:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "7952:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7941:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7941:14:7" - }, - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "7957:5:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "7934:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7934:29:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7934:29:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7983:5:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7990:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7979:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7979:14:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "8005:2:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8009:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8001:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8001:11:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "7995:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "7995:18:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "7972:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7972:42:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7972:42:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "8034:5:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8041:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8030:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8030:14:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "8056:2:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8060:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8052:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8052:11:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "8046:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "8046:18:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8023:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8023:42:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8023:42:7" - }, - { - "nodeType": "YulAssignment", - "src": "8074:15:7", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "8084:5:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "8074:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_struct$_Proposal_$1014_memory_ptr_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "6991:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "7002:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "7014:6:7", - "type": "" - } - ], - "src": "6918:1177:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8274:163:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8291:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8302:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8284:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8284:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8284:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8325:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8336:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8321:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8321:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8341:2:7", - "type": "", - "value": "13" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8314:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8314:30:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8314:30:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8364:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8375:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8360:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8360:18:7" - }, - { - "hexValue": "496e76616c6964207072696365", - "kind": "string", - "nodeType": "YulLiteral", - "src": "8380:15:7", - "type": "", - "value": "Invalid price" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8353:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8353:43:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8353:43:7" - }, - { - "nodeType": "YulAssignment", - "src": "8405:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8417:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8428:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8413:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8413:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "8405:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_eaa01effe6abd0543e9529d3961b0f5d26980f0661c156a79b89c39a093463f7__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "8251:9:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "8265:4:7", - "type": "" - } - ], - "src": "8100:337:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8489:185:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "8528:111:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8549:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8556:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8561:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "8552:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8552:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8542:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8542:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8542:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8593:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8596:4:7", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8586:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8586:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8586:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8621:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8624:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "8614:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8614:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8614:15:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "8505:5:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8516:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "8512:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8512:6:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "8502:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "8502:17:7" - }, - "nodeType": "YulIf", - "src": "8499:140:7" - }, - { - "nodeType": "YulAssignment", - "src": "8648:20:7", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "8659:5:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8666:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8655:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8655:13:7" - }, - "variableNames": [ - { - "name": "ret", - "nodeType": "YulIdentifier", - "src": "8648:3:7" - } - ] - } - ] - }, - "name": "increment_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "8471:5:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nodeType": "YulTypedName", - "src": "8481:3:7", - "type": "" - } - ], - "src": "8442:232:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8734:325:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "8744:22:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8758:1:7", - "type": "", - "value": "1" - }, - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "8761:4:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "8754:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8754:12:7" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "8744:6:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "8775:38:7", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "8805:4:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8811:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "8801:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8801:12:7" - }, - "variables": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulTypedName", - "src": "8779:18:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8852:31:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "8854:27:7", - "value": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "8868:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8876:4:7", - "type": "", - "value": "0x7f" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "8864:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8864:17:7" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "8854:6:7" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulIdentifier", - "src": "8832:18:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "8825:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8825:26:7" - }, - "nodeType": "YulIf", - "src": "8822:61:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8942:111:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8963:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8970:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8975:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "8966:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8966:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8956:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8956:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8956:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9007:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9010:4:7", - "type": "", - "value": "0x22" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "9000:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "9000:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "9000:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9035:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9038:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "9028:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "9028:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "9028:15:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulIdentifier", - "src": "8898:18:7" - }, - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "8921:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8929:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "8918:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "8918:14:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "8895:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "8895:38:7" - }, - "nodeType": "YulIf", - "src": "8892:161:7" - } - ] - }, - "name": "extract_byte_array_length", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "8714:4:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "8723:6:7", - "type": "" - } - ], - "src": "8679:380:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9120:65:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9137:1:7", - "type": "", - "value": "0" - }, - { - "name": "ptr", - "nodeType": "YulIdentifier", - "src": "9140:3:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "9130:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "9130:14:7" - }, - "nodeType": "YulExpressionStatement", - "src": "9130:14:7" - }, - { - "nodeType": "YulAssignment", - "src": "9153:26:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9171:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9174:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "keccak256", - "nodeType": "YulIdentifier", - "src": "9161:9:7" - }, - "nodeType": "YulFunctionCall", - "src": "9161:18:7" - }, - "variableNames": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "9153:4:7" - } - ] - } - ] - }, - "name": "array_dataslot_string_storage", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "ptr", - "nodeType": "YulTypedName", - "src": "9103:3:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "9111:4:7", - "type": "" - } - ], - "src": "9064:121:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9271:464:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "9304:425:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "9318:11:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9328:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "9322:2:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "9349:2:7" - }, - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "9353:5:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "9342:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "9342:17:7" - }, - "nodeType": "YulExpressionStatement", - "src": "9342:17:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "9372:31:7", - "value": { - "arguments": [ - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "9394:2:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9398:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "keccak256", - "nodeType": "YulIdentifier", - "src": "9384:9:7" - }, - "nodeType": "YulFunctionCall", - "src": "9384:19:7" - }, - "variables": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "9376:4:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "9416:57:7", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "9439:4:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9449:1:7", - "type": "", - "value": "5" - }, - { - "arguments": [ - { - "name": "startIndex", - "nodeType": "YulIdentifier", - "src": "9456:10:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9468:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9452:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9452:19:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "9445:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9445:27:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9435:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9435:38:7" - }, - "variables": [ - { - "name": "deleteStart", - "nodeType": "YulTypedName", - "src": "9420:11:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9510:23:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "9512:19:7", - "value": { - "name": "data", - "nodeType": "YulIdentifier", - "src": "9527:4:7" - }, - "variableNames": [ - { - "name": "deleteStart", - "nodeType": "YulIdentifier", - "src": "9512:11:7" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "startIndex", - "nodeType": "YulIdentifier", - "src": "9492:10:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9504:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "9489:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "9489:20:7" - }, - "nodeType": "YulIf", - "src": "9486:47:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "9546:41:7", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "9560:4:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9570:1:7", - "type": "", - "value": "5" - }, - { - "arguments": [ - { - "name": "len", - "nodeType": "YulIdentifier", - "src": "9577:3:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9582:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9573:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9573:12:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "9566:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9566:20:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9556:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9556:31:7" - }, - "variables": [ - { - "name": "_2", - "nodeType": "YulTypedName", - "src": "9550:2:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "9600:24:7", - "value": { - "name": "deleteStart", - "nodeType": "YulIdentifier", - "src": "9613:11:7" - }, - "variables": [ - { - "name": "start", - "nodeType": "YulTypedName", - "src": "9604:5:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9698:21:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "9707:5:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "9714:2:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "9700:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "9700:17:7" - }, - "nodeType": "YulExpressionStatement", - "src": "9700:17:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "9648:5:7" - }, - { - "name": "_2", - "nodeType": "YulIdentifier", - "src": "9655:2:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "9645:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "9645:13:7" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "9659:26:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "9661:22:7", - "value": { - "arguments": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "9674:5:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9681:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9670:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9670:13:7" - }, - "variableNames": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "9661:5:7" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "9641:3:7", - "statements": [] - }, - "src": "9637:82:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "len", - "nodeType": "YulIdentifier", - "src": "9287:3:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9292:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "9284:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "9284:11:7" - }, - "nodeType": "YulIf", - "src": "9281:448:7" - } - ] - }, - "name": "clean_up_bytearray_end_slots_string_storage", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "array", - "nodeType": "YulTypedName", - "src": "9243:5:7", - "type": "" - }, - { - "name": "len", - "nodeType": "YulTypedName", - "src": "9250:3:7", - "type": "" - }, - { - "name": "startIndex", - "nodeType": "YulTypedName", - "src": "9255:10:7", - "type": "" - } - ], - "src": "9190:545:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9825:81:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "9835:65:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "9850:4:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9868:1:7", - "type": "", - "value": "3" - }, - { - "name": "len", - "nodeType": "YulIdentifier", - "src": "9871:3:7" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "9864:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9864:11:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9881:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "9877:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9877:6:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "9860:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9860:24:7" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "9856:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9856:29:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "9846:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9846:40:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9892:1:7", - "type": "", - "value": "1" - }, - { - "name": "len", - "nodeType": "YulIdentifier", - "src": "9895:3:7" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "9888:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9888:11:7" - } - ], - "functionName": { - "name": "or", - "nodeType": "YulIdentifier", - "src": "9843:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "9843:57:7" - }, - "variableNames": [ - { - "name": "used", - "nodeType": "YulIdentifier", - "src": "9835:4:7" - } - ] - } - ] - }, - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "9802:4:7", - "type": "" - }, - { - "name": "len", - "nodeType": "YulTypedName", - "src": "9808:3:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "used", - "nodeType": "YulTypedName", - "src": "9816:4:7", - "type": "" - } - ], - "src": "9740:166:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10007:1256:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "10017:24:7", - "value": { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "10037:3:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "10031:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "10031:10:7" - }, - "variables": [ - { - "name": "newLen", - "nodeType": "YulTypedName", - "src": "10021:6:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10084:22:7", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "10086:16:7" - }, - "nodeType": "YulFunctionCall", - "src": "10086:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10086:18:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "10056:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10064:18:7", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "10053:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "10053:30:7" - }, - "nodeType": "YulIf", - "src": "10050:56:7" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "10159:4:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "10197:4:7" - } - ], - "functionName": { - "name": "sload", - "nodeType": "YulIdentifier", - "src": "10191:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "10191:11:7" - } - ], - "functionName": { - "name": "extract_byte_array_length", - "nodeType": "YulIdentifier", - "src": "10165:25:7" - }, - "nodeType": "YulFunctionCall", - "src": "10165:38:7" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "10205:6:7" - } - ], - "functionName": { - "name": "clean_up_bytearray_end_slots_string_storage", - "nodeType": "YulIdentifier", - "src": "10115:43:7" - }, - "nodeType": "YulFunctionCall", - "src": "10115:97:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10115:97:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "10221:18:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10238:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "srcOffset", - "nodeType": "YulTypedName", - "src": "10225:9:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "10248:23:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10267:4:7", - "type": "", - "value": "0x20" - }, - "variables": [ - { - "name": "srcOffset_1", - "nodeType": "YulTypedName", - "src": "10252:11:7", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "10280:24:7", - "value": { - "name": "srcOffset_1", - "nodeType": "YulIdentifier", - "src": "10293:11:7" - }, - "variableNames": [ - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "10280:9:7" - } - ] - }, - { - "cases": [ - { - "body": { - "nodeType": "YulBlock", - "src": "10350:656:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "10364:35:7", - "value": { - "arguments": [ - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "10383:6:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10395:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "10391:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10391:7:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "10379:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10379:20:7" - }, - "variables": [ - { - "name": "loopEnd", - "nodeType": "YulTypedName", - "src": "10368:7:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "10412:49:7", - "value": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "10456:4:7" - } - ], - "functionName": { - "name": "array_dataslot_string_storage", - "nodeType": "YulIdentifier", - "src": "10426:29:7" - }, - "nodeType": "YulFunctionCall", - "src": "10426:35:7" - }, - "variables": [ - { - "name": "dstPtr", - "nodeType": "YulTypedName", - "src": "10416:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "10474:10:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10483:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "10478:1:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10561:172:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "dstPtr", - "nodeType": "YulIdentifier", - "src": "10586:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "10604:3:7" - }, - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "10609:9:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10600:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10600:19:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "10594:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "10594:26:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "10579:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "10579:42:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10579:42:7" - }, - { - "nodeType": "YulAssignment", - "src": "10638:24:7", - "value": { - "arguments": [ - { - "name": "dstPtr", - "nodeType": "YulIdentifier", - "src": "10652:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10660:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10648:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10648:14:7" - }, - "variableNames": [ - { - "name": "dstPtr", - "nodeType": "YulIdentifier", - "src": "10638:6:7" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "10679:40:7", - "value": { - "arguments": [ - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "10696:9:7" - }, - { - "name": "srcOffset_1", - "nodeType": "YulIdentifier", - "src": "10707:11:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10692:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10692:27:7" - }, - "variableNames": [ - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "10679:9:7" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "10508:1:7" - }, - { - "name": "loopEnd", - "nodeType": "YulIdentifier", - "src": "10511:7:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "10505:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "10505:14:7" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "10520:28:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "10522:24:7", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "10531:1:7" - }, - { - "name": "srcOffset_1", - "nodeType": "YulIdentifier", - "src": "10534:11:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10527:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10527:19:7" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "10522:1:7" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "10501:3:7", - "statements": [] - }, - "src": "10497:236:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10781:166:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "10799:43:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "10826:3:7" - }, - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "10831:9:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10822:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10822:19:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "10816:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "10816:26:7" - }, - "variables": [ - { - "name": "lastValue", - "nodeType": "YulTypedName", - "src": "10803:9:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "dstPtr", - "nodeType": "YulIdentifier", - "src": "10866:6:7" - }, - { - "arguments": [ - { - "name": "lastValue", - "nodeType": "YulIdentifier", - "src": "10878:9:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10905:1:7", - "type": "", - "value": "3" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "10908:6:7" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "10901:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10901:14:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10917:3:7", - "type": "", - "value": "248" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "10897:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10897:24:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10927:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "10923:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10923:6:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "10893:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10893:37:7" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "10889:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10889:42:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "10874:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10874:58:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "10859:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "10859:74:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10859:74:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "loopEnd", - "nodeType": "YulIdentifier", - "src": "10752:7:7" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "10761:6:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "10749:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "10749:19:7" - }, - "nodeType": "YulIf", - "src": "10746:201:7" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "10967:4:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10981:1:7", - "type": "", - "value": "1" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "10984:6:7" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "10977:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10977:14:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10993:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10973:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10973:22:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "10960:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "10960:36:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10960:36:7" - } - ] - }, - "nodeType": "YulCase", - "src": "10343:663:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10348:1:7", - "type": "", - "value": "1" - } - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11023:234:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "11037:14:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11050:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "11041:5:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11086:67:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "11104:35:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "11123:3:7" - }, - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "11128:9:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11119:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11119:19:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "11113:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "11113:26:7" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "11104:5:7" - } - ] - } - ] - }, - "condition": { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "11067:6:7" - }, - "nodeType": "YulIf", - "src": "11064:89:7" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "11173:4:7" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "11232:5:7" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "11239:6:7" - } - ], - "functionName": { - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nodeType": "YulIdentifier", - "src": "11179:52:7" - }, - "nodeType": "YulFunctionCall", - "src": "11179:67:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "11166:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11166:81:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11166:81:7" - } - ] - }, - "nodeType": "YulCase", - "src": "11015:242:7", - "value": "default" - } - ], - "expression": { - "arguments": [ - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "10323:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10331:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "10320:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "10320:14:7" - }, - "nodeType": "YulSwitch", - "src": "10313:944:7" - } - ] - }, - "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "slot", - "nodeType": "YulTypedName", - "src": "9992:4:7", - "type": "" - }, - { - "name": "src", - "nodeType": "YulTypedName", - "src": "9998:3:7", - "type": "" - } - ], - "src": "9911:1352:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11445:185:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11462:9:7" - }, - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "11473:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11455:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11455:25:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11455:25:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11500:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11511:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11496:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11496:18:7" - }, - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "11516:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11489:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11489:34:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11489:34:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11543:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11554:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11539:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11539:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11559:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11532:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11532:30:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11532:30:7" - }, - { - "nodeType": "YulAssignment", - "src": "11571:53:7", - "value": { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "11597:6:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11609:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11620:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11605:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11605:18:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "11579:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "11579:45:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "11571:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_uint256_t_uint256_t_string_memory_ptr__to_t_uint256_t_uint256_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "11398:9:7", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "11409:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "11417:6:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "11425:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "11436:4:7", - "type": "" - } - ], - "src": "11268:362:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11809:164:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11826:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11837:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11819:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11819:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11819:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11860:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11871:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11856:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11856:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11876:2:7", - "type": "", - "value": "14" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11849:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11849:30:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11849:30:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11899:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11910:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11895:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11895:18:7" - }, - { - "hexValue": "4e6f7420617574686f72697a6564", - "kind": "string", - "nodeType": "YulLiteral", - "src": "11915:16:7", - "type": "", - "value": "Not authorized" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11888:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11888:44:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11888:44:7" - }, - { - "nodeType": "YulAssignment", - "src": "11941:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11953:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11964:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11949:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11949:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "11941:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "11786:9:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "11800:4:7", - "type": "" - } - ], - "src": "11635:338:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "12152:169:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12169:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12180:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "12162:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "12162:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "12162:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12203:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12214:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12199:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "12199:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12219:2:7", - "type": "", - "value": "19" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "12192:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "12192:30:7" - }, - "nodeType": "YulExpressionStatement", - "src": "12192:30:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12242:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12253:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12238:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "12238:18:7" - }, - { - "hexValue": "496e76616c6964207461736b20737461747573", - "kind": "string", - "nodeType": "YulLiteral", - "src": "12258:21:7", - "type": "", - "value": "Invalid task status" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "12231:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "12231:49:7" - }, - "nodeType": "YulExpressionStatement", - "src": "12231:49:7" - }, - { - "nodeType": "YulAssignment", - "src": "12289:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12301:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12312:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12297:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "12297:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "12289:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_35c761622bcc8ab75f9adfaf21a4872a39cd06f2745d5488272d29f1f753f270__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "12129:9:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "12143:4:7", - "type": "" - } - ], - "src": "11978:343:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "12447:99:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12464:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12475:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "12457:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "12457:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "12457:21:7" - }, - { - "nodeType": "YulAssignment", - "src": "12487:53:7", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "12513:6:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12525:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12536:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12521:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "12521:18:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "12495:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "12495:45:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "12487:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "12416:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "12427:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "12438:4:7", - "type": "" - } - ], - "src": "12326:220:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "12688:150:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "12698:27:7", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "12718:6:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "12712:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "12712:13:7" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "12702:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "12773:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12781:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12769:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "12769:17:7" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "12788:3:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "12793:6:7" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nodeType": "YulIdentifier", - "src": "12734:34:7" - }, - "nodeType": "YulFunctionCall", - "src": "12734:66:7" - }, - "nodeType": "YulExpressionStatement", - "src": "12734:66:7" - }, - { - "nodeType": "YulAssignment", - "src": "12809:23:7", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "12820:3:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "12825:6:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12816:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "12816:16:7" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "12809:3:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "12664:3:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "12669:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "12680:3:7", - "type": "" - } - ], - "src": "12551:287:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "13017:242:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13034:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13045:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "13027:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "13027:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "13027:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13068:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13079:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13064:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "13064:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13084:2:7", - "type": "", - "value": "52" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "13057:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "13057:30:7" - }, - "nodeType": "YulExpressionStatement", - "src": "13057:30:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13107:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13118:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13103:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "13103:18:7" - }, - { - "hexValue": "5472616e7366657248656c7065723a3a736166655472616e736665724554483a", - "kind": "string", - "nodeType": "YulLiteral", - "src": "13123:34:7", - "type": "", - "value": "TransferHelper::safeTransferETH:" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "13096:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "13096:62:7" - }, - "nodeType": "YulExpressionStatement", - "src": "13096:62:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13178:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13189:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13174:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "13174:18:7" - }, - { - "hexValue": "20455448207472616e73666572206661696c6564", - "kind": "string", - "nodeType": "YulLiteral", - "src": "13194:22:7", - "type": "", - "value": " ETH transfer failed" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "13167:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "13167:50:7" - }, - "nodeType": "YulExpressionStatement", - "src": "13167:50:7" - }, - { - "nodeType": "YulAssignment", - "src": "13226:27:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13238:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13249:3:7", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13234:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "13234:19:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "13226:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_43d7bec223ecf9eb06ea147e7d564bc71c2448662d62a4ea86ce71fc4518b350__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "12994:9:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "13008:4:7", - "type": "" - } - ], - "src": "12843:416:7" - } - ] - }, - "contents": "{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory_1882() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 0x80)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_string(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function abi_decode_string(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let array_1 := allocate_memory(array_allocation_size_string(_1))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n mstore(add(add(array_1, _1), 0x20), 0)\n array := array_1\n }\n function abi_decode_tuple_t_string_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n value1 := calldataload(add(headStart, 32))\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function abi_encode_enum_TaskStatus(value, pos)\n {\n if iszero(lt(value, 4))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(pos, value)\n }\n function abi_encode_tuple_t_struct$_TaskData_$712_memory_ptr__to_t_struct$_TaskData_$712_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), mload(value0))\n let memberValue0 := mload(add(value0, 32))\n mstore(add(headStart, 64), 0xc0)\n let tail_1 := abi_encode_string(memberValue0, add(headStart, 224))\n let memberValue0_1 := mload(add(value0, 64))\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 96), and(memberValue0_1, _1))\n let memberValue0_2 := mload(add(value0, 96))\n abi_encode_enum_TaskStatus(memberValue0_2, add(headStart, 128))\n mstore(add(headStart, 160), and(mload(add(value0, 128)), _1))\n mstore(add(headStart, 0xc0), mload(add(value0, 160)))\n tail := tail_1\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_AgentsRegistry_$506__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_enum$_TaskStatus_$698__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n abi_encode_enum_TaskStatus(value0, headStart)\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 64)\n let srcPtr := add(value0, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function abi_decode_tuple_t_uint256t_string_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_string(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_uint256_t_string_memory_ptr_t_address_t_enum$_TaskStatus_$698_t_address_t_uint256__to_t_uint256_t_string_memory_ptr_t_address_t_uint8_t_address_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), 192)\n tail := abi_encode_string(value1, add(headStart, 192))\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n abi_encode_enum_TaskStatus(value3, add(headStart, 96))\n mstore(add(headStart, 128), and(value4, _1))\n mstore(add(headStart, 160), value5)\n }\n function abi_decode_tuple_t_struct$_Proposal_$1014_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 32\n if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }\n let offset := mload(headStart)\n let _2 := 0xffffffffffffffff\n if gt(offset, _2) { revert(0, 0) }\n let _3 := add(headStart, offset)\n if slt(sub(dataEnd, _3), 0x80) { revert(0, 0) }\n let value := allocate_memory_1882()\n let value_1 := mload(_3)\n validator_revert_address(value_1)\n mstore(value, value_1)\n let offset_1 := mload(add(_3, _1))\n if gt(offset_1, _2) { revert(0, 0) }\n let _4 := add(_3, offset_1)\n if iszero(slt(add(_4, 0x1f), dataEnd)) { revert(0, 0) }\n let _5 := mload(_4)\n let array := allocate_memory(array_allocation_size_string(_5))\n mstore(array, _5)\n if gt(add(add(_4, _5), _1), dataEnd) { revert(0, 0) }\n copy_memory_to_memory_with_cleanup(add(_4, _1), add(array, _1), _5)\n mstore(add(value, _1), array)\n mstore(add(value, 64), mload(add(_3, 64)))\n mstore(add(value, 96), mload(add(_3, 96)))\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_eaa01effe6abd0543e9529d3961b0f5d26980f0661c156a79b89c39a093463f7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 13)\n mstore(add(headStart, 64), \"Invalid price\")\n tail := add(headStart, 96)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n ret := add(value, 1)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_string_memory_ptr__to_t_uint256_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_string(value2, add(headStart, 96))\n }\n function abi_encode_tuple_t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 14)\n mstore(add(headStart, 64), \"Not authorized\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_35c761622bcc8ab75f9adfaf21a4872a39cd06f2745d5488272d29f1f753f270__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 19)\n mstore(add(headStart, 64), \"Invalid task status\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_stringliteral_43d7bec223ecf9eb06ea147e7d564bc71c2448662d62a4ea86ce71fc4518b350__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 52)\n mstore(add(headStart, 64), \"TransferHelper::safeTransferETH:\")\n mstore(add(headStart, 96), \" ETH transfer failed\")\n tail := add(headStart, 128)\n }\n}", - "id": 7, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": {}, - "linkReferences": {}, - "object": "6080604052600436106100a75760003560e01c8063639241ab11610064578063639241ab146101db578063715018a61461020857806374aaa7601461021f5780638d9776721461023f5780638da5cb5b14610271578063f2fde38b1461028f57600080fd5b806304fe2b34146100ac57806307b31818146100d55780630d1cfcae146101265780631d65e77e146101465780632a2b3a9d146101665780635c622a0e14610194575b600080fd5b6100bf6100ba366004610cf4565b6102af565b6040516100cc9190610dc1565b60405180910390f35b3480156100e157600080fd5b5061010e6100f0366004610e35565b6000908152600160205260409020600301546001600160a01b031690565b6040516001600160a01b0390911681526020016100cc565b34801561013257600080fd5b5060045461010e906001600160a01b031681565b34801561015257600080fd5b506100bf610161366004610e35565b61058f565b34801561017257600080fd5b50610186610181366004610e63565b6106b6565b6040519081526020016100cc565b3480156101a057600080fd5b506101ce6101af366004610e35565b600090815260016020526040902060020154600160a01b900460ff1690565b6040516100cc9190610e8f565b3480156101e757600080fd5b506101fb6101f6366004610e9d565b6106e7565b6040516100cc9190610ec1565b34801561021457600080fd5b5061021d610753565b005b34801561022b57600080fd5b5061021d61023a366004610f05565b610767565b34801561024b57600080fd5b5061025f61025a366004610e35565b61094e565b6040516100cc96959493929190610f4c565b34801561027d57600080fd5b506000546001600160a01b031661010e565b34801561029b57600080fd5b5061021d6102aa366004610e9d565b610a1c565b6102b7610bb6565b600480546040516318feeb1560e31b81529182018490526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610303573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261032b9190810190610f9a565b9050348160400151146103755760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420707269636560981b60448201526064015b60405180910390fd5b600380549060006103858361106b565b9091555050600354600081815260016020819052604090912091825581016103ad868261111a565b5060028181018054336001600160a01b031991821681178355600485018890558551600380870180549094166001600160a01b0390921691909117909255600090815260209384526040812091548254600181810185559383529490912090930192909255805460ff60a01b1916600160a01b830217905550815160035460608401516040516001600160a01b039093169233927f5c005bbbb9da508c37935b1a9f270836e0be1fd11d4d47119f925a3ff33820e99261046e928b906111da565b60405180910390a3806040518060c00160405290816000820154815260200160018201805461049c90611092565b80601f01602080910402602001604051908101604052809291908181526020018280546104c890611092565b80156105155780601f106104ea57610100808354040283529160200191610515565b820191906000526020600020905b8154815290600101906020018083116104f857829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff16600381111561055257610552610d89565b600381111561056357610563610d89565b815260038201546001600160a01b03166020820152600490910154604090910152925050505b92915050565b610597610bb6565b600082815260016020818152604092839020835160c08101909452805484529182018054918401916105c890611092565b80601f01602080910402602001604051908101604052809291908181526020018280546105f490611092565b80156106415780601f1061061657610100808354040283529160200191610641565b820191906000526020600020905b81548152906001019060200180831161062457829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff16600381111561067e5761067e610d89565b600381111561068f5761068f610d89565b815260038201546001600160a01b0316602082015260049091015460409091015292915050565b600260205281600052604060002081815481106106d257600080fd5b90600052602060002001600091509150505481565b6001600160a01b03811660009081526002602090815260409182902080548351818402810184019094528084526060939283018282801561074757602002820191906000526020600020905b815481526020019060010190808311610733575b50505050509050919050565b61075b610a5a565b6107656000610a87565b565b600082815260016020526040902060038101546001600160a01b031633146107c25760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b604482015260640161036c565b60016002820154600160a01b900460ff1660038111156107e4576107e4610d89565b146108275760405162461bcd60e51b8152602060048201526013602482015272496e76616c6964207461736b2073746174757360681b604482015260640161036c565b600281018054600160a11b60ff60a01b1990911617905560048054818301546040516318feeb1560e31b8152928301526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa15801561088c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108b49190810190610f9a565b90506108c881600001518260400151610ad7565b600282015460405185917fd76ef80cfb1ce0c70d0cbc0ab1b9f2f298a78f9fca5c841be963ae9a5d721bb49161090891600160a01b900460ff1690610e8f565b60405180910390a2837f7e6ffc29fe63759579d96a0457a8f2e08339aca345bd469f59dc2e61f82a5aeb846040516109409190611202565b60405180910390a250505050565b60016020819052600091825260409091208054918101805461096f90611092565b80601f016020809104026020016040519081016040528092919081815260200182805461099b90611092565b80156109e85780601f106109bd576101008083540402835291602001916109e8565b820191906000526020600020905b8154815290600101906020018083116109cb57829003601f168201915b505050506002830154600384015460049094015492936001600160a01b0380831694600160a01b90930460ff169350169086565b610a24610a5a565b6001600160a01b038116610a4e57604051631e4fbdf760e01b81526000600482015260240161036c565b610a5781610a87565b50565b6000546001600160a01b031633146107655760405163118cdaa760e01b815233600482015260240161036c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516000808252602082019092526001600160a01b038416908390604051610b019190611215565b60006040518083038185875af1925050503d8060008114610b3e576040519150601f19603f3d011682016040523d82523d6000602084013e610b43565b606091505b5050905080610bb15760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b606482015260840161036c565b505050565b6040518060c00160405280600081526020016060815260200160006001600160a01b0316815260200160006003811115610bf257610bf2610d89565b815260006020820181905260409091015290565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715610c3f57610c3f610c06565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610c6e57610c6e610c06565b604052919050565b600067ffffffffffffffff821115610c9057610c90610c06565b50601f01601f191660200190565b600082601f830112610caf57600080fd5b8135610cc2610cbd82610c76565b610c45565b818152846020838601011115610cd757600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215610d0757600080fd5b823567ffffffffffffffff811115610d1e57600080fd5b610d2a85828601610c9e565b95602094909401359450505050565b60005b83811015610d54578181015183820152602001610d3c565b50506000910152565b60008151808452610d75816020860160208601610d39565b601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b60048110610dbd57634e487b7160e01b600052602160045260246000fd5b9052565b60208152815160208201526000602083015160c06040840152610de760e0840182610d5d565b60408501516001600160a01b03908116606086810191909152860151919250610e136080860183610d9f565b8060808701511660a0860152505060a084015160c08401528091505092915050565b600060208284031215610e4757600080fd5b5035919050565b6001600160a01b0381168114610a5757600080fd5b60008060408385031215610e7657600080fd5b8235610e8181610e4e565b946020939093013593505050565b602081016105898284610d9f565b600060208284031215610eaf57600080fd5b8135610eba81610e4e565b9392505050565b6020808252825182820181905260009190848201906040850190845b81811015610ef957835183529284019291840191600101610edd565b50909695505050505050565b60008060408385031215610f1857600080fd5b82359150602083013567ffffffffffffffff811115610f3657600080fd5b610f4285828601610c9e565b9150509250929050565b86815260c060208201526000610f6560c0830188610d5d565b6001600160a01b038781166040850152909150610f856060840187610d9f565b93909316608082015260a00152949350505050565b60006020808385031215610fad57600080fd5b825167ffffffffffffffff80821115610fc557600080fd5b9084019060808287031215610fd957600080fd5b610fe1610c1c565b8251610fec81610e4e565b81528284015182811115610fff57600080fd5b83019150601f8201871361101257600080fd5b8151611020610cbd82610c76565b818152888683860101111561103457600080fd5b61104382878301888701610d39565b8086840152505060408301516040820152606083015160608201528094505050505092915050565b60006001820161108b57634e487b7160e01b600052601160045260246000fd5b5060010190565b600181811c908216806110a657607f821691505b6020821081036110c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610bb157600081815260208120601f850160051c810160208610156110f35750805b601f850160051c820191505b81811015611112578281556001016110ff565b505050505050565b815167ffffffffffffffff81111561113457611134610c06565b611148816111428454611092565b846110cc565b602080601f83116001811461117d57600084156111655750858301515b600019600386901b1c1916600185901b178555611112565b600085815260208120601f198616915b828110156111ac5788860151825594840194600190910190840161118d565b50858210156111ca5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8381528260208201526060604082015260006111f96060830184610d5d565b95945050505050565b602081526000610eba6020830184610d5d565b60008251611227818460208701610d39565b919091019291505056fea26469706673582212208fea540d1850f13c6ff2e624aad1350e882c979266f7e96eccd88f013d73295a64736f6c63430008140033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA7 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x639241AB GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x639241AB EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x208 JUMPI DUP1 PUSH4 0x74AAA760 EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x8D977672 EQ PUSH2 0x23F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x271 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x28F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4FE2B34 EQ PUSH2 0xAC JUMPI DUP1 PUSH4 0x7B31818 EQ PUSH2 0xD5 JUMPI DUP1 PUSH4 0xD1CFCAE EQ PUSH2 0x126 JUMPI DUP1 PUSH4 0x1D65E77E EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x2A2B3A9D EQ PUSH2 0x166 JUMPI DUP1 PUSH4 0x5C622A0E EQ PUSH2 0x194 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBF PUSH2 0xBA CALLDATASIZE PUSH1 0x4 PUSH2 0xCF4 JUMP JUMPDEST PUSH2 0x2AF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP2 SWAP1 PUSH2 0xDC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10E PUSH2 0xF0 CALLDATASIZE PUSH1 0x4 PUSH2 0xE35 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x132 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x10E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBF PUSH2 0x161 CALLDATASIZE PUSH1 0x4 PUSH2 0xE35 JUMP JUMPDEST PUSH2 0x58F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x172 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x186 PUSH2 0x181 CALLDATASIZE PUSH1 0x4 PUSH2 0xE63 JUMP JUMPDEST PUSH2 0x6B6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CE PUSH2 0x1AF CALLDATASIZE PUSH1 0x4 PUSH2 0xE35 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP2 SWAP1 PUSH2 0xE8F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FB PUSH2 0x1F6 CALLDATASIZE PUSH1 0x4 PUSH2 0xE9D JUMP JUMPDEST PUSH2 0x6E7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP2 SWAP1 PUSH2 0xEC1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x214 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21D PUSH2 0x753 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21D PUSH2 0x23A CALLDATASIZE PUSH1 0x4 PUSH2 0xF05 JUMP JUMPDEST PUSH2 0x767 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25F PUSH2 0x25A CALLDATASIZE PUSH1 0x4 PUSH2 0xE35 JUMP JUMPDEST PUSH2 0x94E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x10E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21D PUSH2 0x2AA CALLDATASIZE PUSH1 0x4 PUSH2 0xE9D JUMP JUMPDEST PUSH2 0xA1C JUMP JUMPDEST PUSH2 0x2B7 PUSH2 0xBB6 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18FEEB15 PUSH1 0xE3 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC7F758A8 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x303 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x32B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0xF9A JUMP JUMPDEST SWAP1 POP CALLVALUE DUP2 PUSH1 0x40 ADD MLOAD EQ PUSH2 0x375 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x496E76616C6964207072696365 PUSH1 0x98 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x385 DUP4 PUSH2 0x106B JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x3 SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP2 DUP3 SSTORE DUP2 ADD PUSH2 0x3AD DUP7 DUP3 PUSH2 0x111A JUMP JUMPDEST POP PUSH1 0x2 DUP2 DUP2 ADD DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND DUP2 OR DUP4 SSTORE PUSH1 0x4 DUP6 ADD DUP9 SWAP1 SSTORE DUP6 MLOAD PUSH1 0x3 DUP1 DUP8 ADD DUP1 SLOAD SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SLOAD DUP3 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP6 SSTORE SWAP4 DUP4 MSTORE SWAP5 SWAP1 SWAP2 KECCAK256 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP3 SSTORE DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL DUP4 MUL OR SWAP1 SSTORE POP DUP2 MLOAD PUSH1 0x3 SLOAD PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 CALLER SWAP3 PUSH32 0x5C005BBBB9DA508C37935B1A9F270836E0BE1FD11D4D47119F925A3FF33820E9 SWAP3 PUSH2 0x46E SWAP3 DUP12 SWAP1 PUSH2 0x11DA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH2 0x49C SWAP1 PUSH2 0x1092 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4C8 SWAP1 PUSH2 0x1092 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x515 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4EA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x515 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x4F8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x552 JUMPI PUSH2 0x552 PUSH2 0xD89 JUMP JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x563 JUMPI PUSH2 0x563 PUSH2 0xD89 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP3 POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x597 PUSH2 0xBB6 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP5 MSTORE DUP1 SLOAD DUP5 MSTORE SWAP2 DUP3 ADD DUP1 SLOAD SWAP2 DUP5 ADD SWAP2 PUSH2 0x5C8 SWAP1 PUSH2 0x1092 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x5F4 SWAP1 PUSH2 0x1092 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x641 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x616 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x641 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x624 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x67E JUMPI PUSH2 0x67E PUSH2 0xD89 JUMP JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x68F JUMPI PUSH2 0x68F PUSH2 0xD89 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x6D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD DUP2 DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x747 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x733 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x75B PUSH2 0xA5A JUMP JUMPDEST PUSH2 0x765 PUSH1 0x0 PUSH2 0xA87 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x7C2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x139BDD08185D5D1A1BDC9A5E9959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x36C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x7E4 JUMPI PUSH2 0x7E4 PUSH2 0xD89 JUMP JUMPDEST EQ PUSH2 0x827 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x496E76616C6964207461736B20737461747573 PUSH1 0x68 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x36C JUMP JUMPDEST PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA1 SHL PUSH1 0xFF PUSH1 0xA0 SHL NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x4 DUP1 SLOAD DUP2 DUP4 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x18FEEB15 PUSH1 0xE3 SHL DUP2 MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC7F758A8 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x88C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x8B4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0xF9A JUMP JUMPDEST SWAP1 POP PUSH2 0x8C8 DUP2 PUSH1 0x0 ADD MLOAD DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0xAD7 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x40 MLOAD DUP6 SWAP2 PUSH32 0xD76EF80CFB1CE0C70D0CBC0AB1B9F2F298A78F9FCA5C841BE963AE9A5D721BB4 SWAP2 PUSH2 0x908 SWAP2 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 PUSH2 0xE8F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP4 PUSH32 0x7E6FFC29FE63759579D96A0457A8F2E08339ACA345BD469F59DC2E61F82A5AEB DUP5 PUSH1 0x40 MLOAD PUSH2 0x940 SWAP2 SWAP1 PUSH2 0x1202 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD SWAP2 DUP2 ADD DUP1 SLOAD PUSH2 0x96F SWAP1 PUSH2 0x1092 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x99B SWAP1 PUSH2 0x1092 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x9E8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9BD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x9E8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x9CB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 SWAP1 SWAP5 ADD SLOAD SWAP3 SWAP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND SWAP5 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP4 DIV PUSH1 0xFF AND SWAP4 POP AND SWAP1 DUP7 JUMP JUMPDEST PUSH2 0xA24 PUSH2 0xA5A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xA4E JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x36C JUMP JUMPDEST PUSH2 0xA57 DUP2 PUSH2 0xA87 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x765 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x36C JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP4 SWAP1 PUSH1 0x40 MLOAD PUSH2 0xB01 SWAP2 SWAP1 PUSH2 0x1215 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xB3E JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xB43 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xBB1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x34 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A3A736166655472616E736665724554483A PUSH1 0x44 DUP3 ADD MSTORE PUSH20 0x8115512081D1C985B9CD9995C8819985A5B1959 PUSH1 0x62 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x36C JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xBF2 JUMPI PUSH2 0xBF2 PUSH2 0xD89 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xC3F JUMPI PUSH2 0xC3F PUSH2 0xC06 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xC6E JUMPI PUSH2 0xC6E PUSH2 0xC06 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xC90 JUMPI PUSH2 0xC90 PUSH2 0xC06 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xCAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xCC2 PUSH2 0xCBD DUP3 PUSH2 0xC76 JUMP JUMPDEST PUSH2 0xC45 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0xCD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD2A DUP6 DUP3 DUP7 ADD PUSH2 0xC9E JUMP JUMPDEST SWAP6 PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD54 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xD3C JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xD75 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xD39 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0xDBD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0xDE7 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0xD5D JUMP JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x60 DUP7 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP7 ADD MLOAD SWAP2 SWAP3 POP PUSH2 0xE13 PUSH1 0x80 DUP7 ADD DUP4 PUSH2 0xD9F JUMP JUMPDEST DUP1 PUSH1 0x80 DUP8 ADD MLOAD AND PUSH1 0xA0 DUP7 ADD MSTORE POP POP PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0xC0 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0xE81 DUP2 PUSH2 0xE4E JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x589 DUP3 DUP5 PUSH2 0xD9F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xEBA DUP2 PUSH2 0xE4E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xEF9 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0xEDD JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF42 DUP6 DUP3 DUP7 ADD PUSH2 0xC9E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP7 DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0xF65 PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0xD5D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0xF85 PUSH1 0x60 DUP5 ADD DUP8 PUSH2 0xD9F JUMP JUMPDEST SWAP4 SWAP1 SWAP4 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xFAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xFC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP5 ADD SWAP1 PUSH1 0x80 DUP3 DUP8 SUB SLT ISZERO PUSH2 0xFD9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xFE1 PUSH2 0xC1C JUMP JUMPDEST DUP3 MLOAD PUSH2 0xFEC DUP2 PUSH2 0xE4E JUMP JUMPDEST DUP2 MSTORE DUP3 DUP5 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0xFFF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD SWAP2 POP PUSH1 0x1F DUP3 ADD DUP8 SGT PUSH2 0x1012 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1020 PUSH2 0xCBD DUP3 PUSH2 0xC76 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP9 DUP7 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x1034 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1043 DUP3 DUP8 DUP4 ADD DUP9 DUP8 ADD PUSH2 0xD39 JUMP JUMPDEST DUP1 DUP7 DUP5 ADD MSTORE POP POP PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x108B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x10A6 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x10C6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xBB1 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x10F3 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1112 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x10FF JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1134 JUMPI PUSH2 0x1134 PUSH2 0xC06 JUMP JUMPDEST PUSH2 0x1148 DUP2 PUSH2 0x1142 DUP5 SLOAD PUSH2 0x1092 JUMP JUMPDEST DUP5 PUSH2 0x10CC JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x117D JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1165 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x1112 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x11AC JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x118D JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x11CA JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP4 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x11F9 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xD5D JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xEBA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xD5D JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1227 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xD39 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP16 0xEA SLOAD 0xD XOR POP CALL EXTCODECOPY PUSH16 0xF2E624AAD1350E882C979266F7E96ECC 0xD8 DUP16 ADD RETURNDATASIZE PUSH20 0x295A64736F6C6343000814003300000000000000 ", - "sourceMap": "380:3160:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1573:728;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3423:115;;;;;;;;;;-1:-1:-1;3423:115:4;;;;;:::i;:::-;3483:7;3509:13;;;:5;:13;;;;;:22;;;-1:-1:-1;;;;;3509:22:4;;3423:115;;;;-1:-1:-1;;;;;3836:32:7;;;3818:51;;3806:2;3791:18;3423:115:4;3672:203:7;813:35:4;;;;;;;;;;-1:-1:-1;813:35:4;;;;-1:-1:-1;;;;;813:35:4;;;3183:110;;;;;;;;;;-1:-1:-1;3183:110:4;;;;;:::i;:::-;;:::i;727:48::-;;;;;;;;;;-1:-1:-1;727:48:4;;;;;:::i;:::-;;:::i;:::-;;;4712:25:7;;;4700:2;4685:18;727:48:4;4566:177:7;3299:114:4;;;;;;;;;;-1:-1:-1;3299:114:4;;;;;:::i;:::-;3357:10;3386:13;;;:5;:13;;;;;:20;;;-1:-1:-1;;;3386:20:4;;;;;3299:114;;;;;;;;:::i;3051:126::-;;;;;;;;;;-1:-1:-1;3051:126:4;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2293:101:0:-;;;;;;;;;;;;;:::i;:::-;;2477:567:4;;;;;;;;;;-1:-1:-1;2477:567:4;;;;;:::i;:::-;;:::i;680:41::-;;;;;;;;;;-1:-1:-1;680:41:4;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;1638:85:0:-;;;;;;;;;;-1:-1:-1;1684:7:0;1710:6;-1:-1:-1;;;;;1710:6:0;1638:85;;2543:215;;;;;;;;;;-1:-1:-1;2543:215:0;;;;;:::i;:::-;;:::i;1573:728:4:-;1683:15;;:::i;:::-;1737:13;;;:37;;-1:-1:-1;;;1737:37:4;;;;;4712:25:7;;;1710:24:4;;-1:-1:-1;;;;;1737:13:4;;;;:25;;4685:18:7;;1737:37:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1737:37:4;;;;;;;;;;;;:::i;:::-;1710:64;;1810:9;1792:8;:14;;;:27;1784:53;;;;-1:-1:-1;;;1784:53:4;;8302:2:7;1784:53:4;;;8284:21:7;8341:2;8321:18;;;8314:30;-1:-1:-1;;;8360:18:7;;;8353:43;8413:18;;1784:53:4;;;;;;;;;1848:10;:12;;;:10;:12;;;:::i;:::-;;;;-1:-1:-1;;1900:10:4;;1870:21;1894:17;;;:5;:17;;;;;;;;1921:20;;;1951:11;;:20;1965:6;1951:11;:20;:::i;:::-;-1:-1:-1;1981:11:4;;;;:24;;1995:10;-1:-1:-1;;;;;;1981:24:4;;;;;;;2015:15;;;:28;;;2069:15;;2053:13;;;;:31;;;;;-1:-1:-1;;;;;2053:31:4;;;;;;;;;;-1:-1:-1;2094:23:4;;;;;;;;;;2123:10;;2094:40;;-1:-1:-1;2094:40:4;;;;;;;;;;;;;;;;;;;2144:33;;-1:-1:-1;;;;2144:33:4;-1:-1:-1;;;;2144:33:4;;;;-1:-1:-1;2216:15:4;;2233:10;;2245:19;;;;2192:81;;-1:-1:-1;;;;;2192:81:4;;;;2204:10;;2192:81;;;;2266:6;;2192:81;:::i;:::-;;;;;;;;2290:4;2283:11;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2283:11:4;;;-1:-1:-1;;2283:11:4;;;;-1:-1:-1;;;;;2283:11:4;;;;;;;;;;;-1:-1:-1;;;2283:11:4;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2283:11:4;;;;;;;;;;;;;;;;-1:-1:-1;;;1573:728:4;;;;;:::o;3183:110::-;3239:15;;:::i;:::-;3273:13;;;;:5;:13;;;;;;;;;3266:20;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3266:20:4;;;-1:-1:-1;;3266:20:4;;;;-1:-1:-1;;;;;3266:20:4;;;;;;;;;;;-1:-1:-1;;;3266:20:4;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3266:20:4;;;;;;;;;;;;;;;;3183:110;-1:-1:-1;;3183:110:4:o;727:48::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3051:126::-;-1:-1:-1;;;;;3151:19:4;;;;;;:11;:19;;;;;;;;;3144:26;;;;;;;;;;;;;;;;;3116:16;;3144:26;;;3151:19;3144:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3051:126;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;2477:567:4:-;2556:21;2580:13;;;:5;:13;;;;;2625;;;;-1:-1:-1;;;;;2625:13:4;2611:10;:27;2603:54;;;;-1:-1:-1;;;2603:54:4;;11837:2:7;2603:54:4;;;11819:21:7;11876:2;11856:18;;;11849:30;-1:-1:-1;;;11895:18:7;;;11888:44;11949:18;;2603:54:4;11635:338:7;2603:54:4;2690:19;2675:11;;;;-1:-1:-1;;;2675:11:4;;;;:34;;;;;;;;:::i;:::-;;2667:66;;;;-1:-1:-1;;;2667:66:4;;12180:2:7;2667:66:4;;;12162:21:7;12219:2;12199:18;;;12192:30;-1:-1:-1;;;12238:18:7;;;12231:49;12297:18;;2667:66:4;11978:343:7;2667:66:4;2758:20;2744:11;;:34;;-1:-1:-1;;;;;;;2744:34:4;;;;;;2815:13;;;2841:15;;;;2815:42;;-1:-1:-1;;;2815:42:4;;;;;4712:25:7;-1:-1:-1;;;;;;;2815:13:4;;;;:25;;4685:18:7;;2815:42:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2815:42:4;;;;;;;;;;;;:::i;:::-;2788:69;;2876:63;2907:8;:15;;;2924:8;:14;;;2876:30;:63::i;:::-;2981:11;;;;2955:38;;2973:6;;2955:38;;;;-1:-1:-1;;;2981:11:4;;;;;2955:38;:::i;:::-;;;;;;;;3022:6;3008:29;3030:6;3008:29;;;;;;:::i;:::-;;;;;;;;2546:498;;2477:567;;:::o;680:41::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;680:41:4;;;;;;;;;;;;;;;-1:-1:-1;;;;;680:41:4;;;;-1:-1:-1;;;680:41:4;;;;;;-1:-1:-1;680:41:4;;;:::o;2543:215:0:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:0;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:0;;2700:1:::1;2672:31;::::0;::::1;3818:51:7::0;3791:18;;2672:31:0::1;3672:203:7::0;2623:91:0::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;735:10:1;1855:23:0;1851:101;;1901:40;;-1:-1:-1;;;1901:40:0;;735:10:1;1901:40:0;;;3818:51:7;3791:18;;1901:40:0;3672:203:7;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;1573:214:6:-;1685:12;;;1645;1685;;;;;;;;;-1:-1:-1;;;;;1663:7:6;;;1678:5;;1663:35;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1644:54;;;1716:7;1708:72;;;;-1:-1:-1;;;1708:72:6;;13045:2:7;1708:72:6;;;13027:21:7;13084:2;13064:18;;;13057:30;13123:34;13103:18;;;13096:62;-1:-1:-1;;;13174:18:7;;;13167:50;13234:19;;1708:72:6;12843:416:7;1708:72:6;1634:153;1573:214;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;14:127:7:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:253;218:2;212:9;260:4;248:17;;295:18;280:34;;316:22;;;277:62;274:88;;;342:18;;:::i;:::-;378:2;371:22;146:253;:::o;404:275::-;475:2;469:9;540:2;521:13;;-1:-1:-1;;517:27:7;505:40;;575:18;560:34;;596:22;;;557:62;554:88;;;622:18;;:::i;:::-;658:2;651:22;404:275;;-1:-1:-1;404:275:7:o;684:187::-;733:4;766:18;758:6;755:30;752:56;;;788:18;;:::i;:::-;-1:-1:-1;854:2:7;833:15;-1:-1:-1;;829:29:7;860:4;825:40;;684:187::o;876:464::-;919:5;972:3;965:4;957:6;953:17;949:27;939:55;;990:1;987;980:12;939:55;1026:6;1013:20;1057:49;1073:32;1102:2;1073:32;:::i;:::-;1057:49;:::i;:::-;1131:2;1122:7;1115:19;1177:3;1170:4;1165:2;1157:6;1153:15;1149:26;1146:35;1143:55;;;1194:1;1191;1184:12;1143:55;1259:2;1252:4;1244:6;1240:17;1233:4;1224:7;1220:18;1207:55;1307:1;1282:16;;;1300:4;1278:27;1271:38;;;;1286:7;876:464;-1:-1:-1;;;876:464:7:o;1345:390::-;1423:6;1431;1484:2;1472:9;1463:7;1459:23;1455:32;1452:52;;;1500:1;1497;1490:12;1452:52;1540:9;1527:23;1573:18;1565:6;1562:30;1559:50;;;1605:1;1602;1595:12;1559:50;1628;1670:7;1661:6;1650:9;1646:22;1628:50;:::i;:::-;1618:60;1725:2;1710:18;;;;1697:32;;-1:-1:-1;;;;1345:390:7:o;1740:250::-;1825:1;1835:113;1849:6;1846:1;1843:13;1835:113;;;1925:11;;;1919:18;1906:11;;;1899:39;1871:2;1864:10;1835:113;;;-1:-1:-1;;1982:1:7;1964:16;;1957:27;1740:250::o;1995:271::-;2037:3;2075:5;2069:12;2102:6;2097:3;2090:19;2118:76;2187:6;2180:4;2175:3;2171:14;2164:4;2157:5;2153:16;2118:76;:::i;:::-;2248:2;2227:15;-1:-1:-1;;2223:29:7;2214:39;;;;2255:4;2210:50;;1995:271;-1:-1:-1;;1995:271:7:o;2271:127::-;2332:10;2327:3;2323:20;2320:1;2313:31;2363:4;2360:1;2353:15;2387:4;2384:1;2377:15;2403:238;2485:1;2478:5;2475:12;2465:143;;2530:10;2525:3;2521:20;2518:1;2511:31;2565:4;2562:1;2555:15;2593:4;2590:1;2583:15;2465:143;2617:18;;2403:238::o;2646:836::-;2825:2;2814:9;2807:21;2870:6;2864:13;2859:2;2848:9;2844:18;2837:41;2788:4;2925:2;2917:6;2913:15;2907:22;2965:4;2960:2;2949:9;2945:18;2938:32;2993:52;3040:3;3029:9;3025:19;3011:12;2993:52;:::i;:::-;3094:2;3082:15;;3076:22;-1:-1:-1;;;;;3172:23:7;;;3167:2;3152:18;;;3145:51;;;;3233:15;;3227:22;2979:66;;-1:-1:-1;3258:63:7;3316:3;3301:19;;3227:22;3258:63;:::i;:::-;3387:2;3380:3;3372:6;3368:16;3362:23;3358:32;3352:3;3341:9;3337:19;3330:61;;;3447:3;3439:6;3435:16;3429:23;3422:4;3411:9;3407:20;3400:53;3470:6;3462:14;;;2646:836;;;;:::o;3487:180::-;3546:6;3599:2;3587:9;3578:7;3574:23;3570:32;3567:52;;;3615:1;3612;3605:12;3567:52;-1:-1:-1;3638:23:7;;3487:180;-1:-1:-1;3487:180:7:o;4110:131::-;-1:-1:-1;;;;;4185:31:7;;4175:42;;4165:70;;4231:1;4228;4221:12;4246:315;4314:6;4322;4375:2;4363:9;4354:7;4350:23;4346:32;4343:52;;;4391:1;4388;4381:12;4343:52;4430:9;4417:23;4449:31;4474:5;4449:31;:::i;:::-;4499:5;4551:2;4536:18;;;;4523:32;;-1:-1:-1;;;4246:315:7:o;4748:209::-;4894:2;4879:18;;4906:45;4883:9;4933:6;4906:45;:::i;4962:247::-;5021:6;5074:2;5062:9;5053:7;5049:23;5045:32;5042:52;;;5090:1;5087;5080:12;5042:52;5129:9;5116:23;5148:31;5173:5;5148:31;:::i;:::-;5198:5;4962:247;-1:-1:-1;;;4962:247:7:o;5214:632::-;5385:2;5437:21;;;5507:13;;5410:18;;;5529:22;;;5356:4;;5385:2;5608:15;;;;5582:2;5567:18;;;5356:4;5651:169;5665:6;5662:1;5659:13;5651:169;;;5726:13;;5714:26;;5795:15;;;;5760:12;;;;5687:1;5680:9;5651:169;;;-1:-1:-1;5837:3:7;;5214:632;-1:-1:-1;;;;;;5214:632:7:o;5851:390::-;5929:6;5937;5990:2;5978:9;5969:7;5965:23;5961:32;5958:52;;;6006:1;6003;5996:12;5958:52;6042:9;6029:23;6019:33;;6103:2;6092:9;6088:18;6075:32;6130:18;6122:6;6119:30;6116:50;;;6162:1;6159;6152:12;6116:50;6185;6227:7;6218:6;6207:9;6203:22;6185:50;:::i;:::-;6175:60;;;5851:390;;;;;:::o;6246:667::-;6547:6;6536:9;6529:25;6590:3;6585:2;6574:9;6570:18;6563:31;6510:4;6611:46;6652:3;6641:9;6637:19;6629:6;6611:46;:::i;:::-;-1:-1:-1;;;;;6731:15:7;;;6726:2;6711:18;;6704:43;6603:54;;-1:-1:-1;6756:54:7;6806:2;6791:18;;6783:6;6756:54;:::i;:::-;6847:15;;;;6841:3;6826:19;;6819:44;6894:3;6879:19;6872:35;6246:667;;-1:-1:-1;;;;6246:667:7:o;6918:1177::-;7014:6;7045:2;7088;7076:9;7067:7;7063:23;7059:32;7056:52;;;7104:1;7101;7094:12;7056:52;7137:9;7131:16;7166:18;7207:2;7199:6;7196:14;7193:34;;;7223:1;7220;7213:12;7193:34;7246:22;;;;7302:4;7284:16;;;7280:27;7277:47;;;7320:1;7317;7310:12;7277:47;7346:22;;:::i;:::-;7398:2;7392:9;7410:33;7435:7;7410:33;:::i;:::-;7452:22;;7505:11;;;7499:18;7529:16;;;7526:36;;;7558:1;7555;7548:12;7526:36;7581:17;;;-1:-1:-1;7629:4:7;7621:13;;7617:27;-1:-1:-1;7607:55:7;;7658:1;7655;7648:12;7607:55;7687:2;7681:9;7712:49;7728:32;7757:2;7728:32;:::i;7712:49::-;7784:2;7777:5;7770:17;7824:7;7819:2;7814;7810;7806:11;7802:20;7799:33;7796:53;;;7845:1;7842;7835:12;7796:53;7858:67;7922:2;7917;7910:5;7906:14;7901:2;7897;7893:11;7858:67;:::i;:::-;7957:5;7952:2;7945:5;7941:14;7934:29;;;8009:2;8005;8001:11;7995:18;7990:2;7983:5;7979:14;7972:42;8060:2;8056;8052:11;8046:18;8041:2;8034:5;8030:14;8023:42;8084:5;8074:15;;;;;;6918:1177;;;;:::o;8442:232::-;8481:3;8502:17;;;8499:140;;8561:10;8556:3;8552:20;8549:1;8542:31;8596:4;8593:1;8586:15;8624:4;8621:1;8614:15;8499:140;-1:-1:-1;8666:1:7;8655:13;;8442:232::o;8679:380::-;8758:1;8754:12;;;;8801;;;8822:61;;8876:4;8868:6;8864:17;8854:27;;8822:61;8929:2;8921:6;8918:14;8898:18;8895:38;8892:161;;8975:10;8970:3;8966:20;8963:1;8956:31;9010:4;9007:1;9000:15;9038:4;9035:1;9028:15;8892:161;;8679:380;;;:::o;9190:545::-;9292:2;9287:3;9284:11;9281:448;;;9328:1;9353:5;9349:2;9342:17;9398:4;9394:2;9384:19;9468:2;9456:10;9452:19;9449:1;9445:27;9439:4;9435:38;9504:4;9492:10;9489:20;9486:47;;;-1:-1:-1;9527:4:7;9486:47;9582:2;9577:3;9573:12;9570:1;9566:20;9560:4;9556:31;9546:41;;9637:82;9655:2;9648:5;9645:13;9637:82;;;9700:17;;;9681:1;9670:13;9637:82;;;9641:3;;;9190:545;;;:::o;9911:1352::-;10037:3;10031:10;10064:18;10056:6;10053:30;10050:56;;;10086:18;;:::i;:::-;10115:97;10205:6;10165:38;10197:4;10191:11;10165:38;:::i;:::-;10159:4;10115:97;:::i;:::-;10267:4;;10331:2;10320:14;;10348:1;10343:663;;;;11050:1;11067:6;11064:89;;;-1:-1:-1;11119:19:7;;;11113:26;11064:89;-1:-1:-1;;9868:1:7;9864:11;;;9860:24;9856:29;9846:40;9892:1;9888:11;;;9843:57;11166:81;;10313:944;;10343:663;9137:1;9130:14;;;9174:4;9161:18;;-1:-1:-1;;10379:20:7;;;10497:236;10511:7;10508:1;10505:14;10497:236;;;10600:19;;;10594:26;10579:42;;10692:27;;;;10660:1;10648:14;;;;10527:19;;10497:236;;;10501:3;10761:6;10752:7;10749:19;10746:201;;;10822:19;;;10816:26;-1:-1:-1;;10905:1:7;10901:14;;;10917:3;10897:24;10893:37;10889:42;10874:58;10859:74;;10746:201;-1:-1:-1;;;;;10993:1:7;10977:14;;;10973:22;10960:36;;-1:-1:-1;9911:1352:7:o;11268:362::-;11473:6;11462:9;11455:25;11516:6;11511:2;11500:9;11496:18;11489:34;11559:2;11554;11543:9;11539:18;11532:30;11436:4;11579:45;11620:2;11609:9;11605:18;11597:6;11579:45;:::i;:::-;11571:53;11268:362;-1:-1:-1;;;;;11268:362:7:o;12326:220::-;12475:2;12464:9;12457:21;12438:4;12495:45;12536:2;12525:9;12521:18;12513:6;12495:45;:::i;12551:287::-;12680:3;12718:6;12712:13;12734:66;12793:6;12788:3;12781:4;12773:6;12769:17;12734:66;:::i;:::-;12816:16;;;;;12551:287;-1:-1:-1;;12551:287:7:o" - }, - "methodIdentifiers": { - "agentRegistry()": "0d1cfcae", - "completeTask(uint256,string)": "74aaa760", - "createTask(string,uint256)": "04fe2b34", - "getAssignee(uint256)": "07b31818", - "getStatus(uint256)": "5c622a0e", - "getTask(uint256)": "1d65e77e", - "getTasksByIssuer(address)": "639241ab", - "issuerTasks(address,uint256)": "2a2b3a9d", - "owner()": "8da5cb5b", - "renounceOwnership()": "715018a6", - "tasks(uint256)": "8d977672", - "transferOwnership(address)": "f2fde38b" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract AgentsRegistry\",\"name\":\"_agentRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"serviceName\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IProposalStruct.Proposal\",\"name\":\"proposal\",\"type\":\"tuple\"}],\"name\":\"ProposalApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"}],\"name\":\"TaskAssigned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"result\",\"type\":\"string\"}],\"name\":\"TaskCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"assignee\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"prompt\",\"type\":\"string\"}],\"name\":\"TaskCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum TaskRegistry.TaskStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"TaskStatusChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"agentRegistry\",\"outputs\":[{\"internalType\":\"contract AgentsRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"result\",\"type\":\"string\"}],\"name\":\"completeTask\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"prompt\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"createTask\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"prompt\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"enum TaskRegistry.TaskStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"assignee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"internalType\":\"struct TaskRegistry.TaskData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"getAssignee\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"getStatus\",\"outputs\":[{\"internalType\":\"enum TaskRegistry.TaskStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"getTask\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"prompt\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"enum TaskRegistry.TaskStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"assignee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"internalType\":\"struct TaskRegistry.TaskData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"}],\"name\":\"getTasksByIssuer\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"issuerTasks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tasks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"prompt\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"enum TaskRegistry.TaskStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"assignee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"leonprou\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"completeTask(uint256,string)\":{\"details\":\"Completes a task with the given result.\",\"params\":{\"result\":\"The result or output of the completed task.\",\"taskId\":\"The ID of the task.\"}},\"createTask(string,uint256)\":{\"details\":\"Creates a new task with the given prompt and task type.\",\"params\":{\"prompt\":\"The description or prompt of the task.\"},\"returns\":{\"_0\":\"taskId The ID of the newly created task.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"TaskRegistry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A smart contract that stores information about the tasks issued for the agent service providers.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/TaskRegistry.sol\":\"TaskRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/AgentsRegistry.sol\":{\"keccak256\":\"0xa8ac31890b6bd6c348b34a7e8e2a364f56a45ca1b6bf91ba4ac30f7b9a9d5479\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79850d07565e9a9685acf093c2c78a766a5d1b6e5b4f7dff0a4f058ca878fcfe\",\"dweb:/ipfs/QmdsQpZhWhbUsNt9RtdW6JbXB6uQU3SgehGFxUs1J6uhHH\"]},\"contracts/ServiceRegistry.sol\":{\"keccak256\":\"0xa86b05303aaeee4c1437e7857fb03fe70473bed68f68c50dbabc261bfa6cdca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://069be2bed01b0f80d688a4b5da526051507245c340745a58f2bd78fbf3700373\",\"dweb:/ipfs/QmWU9yZSLZNJvZaXNRPem7AySUL94aTaCAR1TGTdcnPmmA\"]},\"contracts/TaskRegistry.sol\":{\"keccak256\":\"0xef57d28ba886553cdeb98da1eb00ba98fa35e7f5772f035fc076355c957bff61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7e4b777d4b802e701b39dbefbe3d77cb3145f0e105d04ec90ccafbebb55eff6\",\"dweb:/ipfs/QmTTi5keCc4joETGREotFT7NK6mPqatLwPbzf9FgR4xSGK\"]},\"contracts/interfaces/IProposalStruct.sol\":{\"keccak256\":\"0x9d05f54eb20cbe5f8e11fb0b8229714378d8b9956771d308ca8550d27728fd10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://665b3367f5eabd0a4e09ec1f77c992391617be5410b02755811ebb278a457320\",\"dweb:/ipfs/QmNWdoe8B2y92uKvCZECJNPobKL8ieEww2H3AkHEddoojf\"]},\"contracts/lib/TransferHelper.sol\":{\"keccak256\":\"0x65e08c88e7925dc1d5c0f7e774896f11af45bca8067ceeaa35ff4c93128c62c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd6919f03addec5eb18403934c51848d7e4f71f44359d429755cc82155d3e072\",\"dweb:/ipfs/QmeNazpowCEm8Q54cSoHPtvF5wofLnrAwVh4g71G4oVZ1w\"]}},\"version\":1}" - } - }, - "contracts/interfaces/IProposalStruct.sol": { - "IProposalStruct": { - "abi": [], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IProposalStruct.sol\":\"IProposalStruct\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IProposalStruct.sol\":{\"keccak256\":\"0x9d05f54eb20cbe5f8e11fb0b8229714378d8b9956771d308ca8550d27728fd10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://665b3367f5eabd0a4e09ec1f77c992391617be5410b02755811ebb278a457320\",\"dweb:/ipfs/QmNWdoe8B2y92uKvCZECJNPobKL8ieEww2H3AkHEddoojf\"]}},\"version\":1}" - } - }, - "contracts/lib/TransferHelper.sol": { - "TransferHelper": { - "abi": [], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122085b80507e318490f89aacc84ba4fec48af437f0af4c9f4a27df42a6238c1dec064736f6c63430008140033", - "opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP6 0xB8 SDIV SMOD 0xE3 XOR 0x49 0xF DUP10 0xAA 0xCC DUP5 0xBA 0x4F 0xEC BASEFEE 0xAF NUMBER PUSH32 0xAF4C9F4A27DF42A6238C1DEC064736F6C634300081400330000000000000000 ", - "sourceMap": "168:1621:6:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;168:1621:6;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122085b80507e318490f89aacc84ba4fec48af437f0af4c9f4a27df42a6238c1dec064736f6c63430008140033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP6 0xB8 SDIV SMOD 0xE3 XOR 0x49 0xF DUP10 0xAA 0xCC DUP5 0xBA 0x4F 0xEC BASEFEE 0xAF NUMBER PUSH32 0xAF4C9F4A27DF42A6238C1DEC064736F6C634300081400330000000000000000 ", - "sourceMap": "168:1621:6:-:0;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/lib/TransferHelper.sol\":\"TransferHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/lib/TransferHelper.sol\":{\"keccak256\":\"0x65e08c88e7925dc1d5c0f7e774896f11af45bca8067ceeaa35ff4c93128c62c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd6919f03addec5eb18403934c51848d7e4f71f44359d429755cc82155d3e072\",\"dweb:/ipfs/QmeNazpowCEm8Q54cSoHPtvF5wofLnrAwVh4g71G4oVZ1w\"]}},\"version\":1}" - } - } - } - } -} \ No newline at end of file diff --git a/packages/contracts/ignition/deployments/chain-84532/build-info/8b407914b25c585d6f6f5d75fd00e733.json b/packages/contracts/ignition/deployments/chain-84532/build-info/8b407914b25c585d6f6f5d75fd00e733.json deleted file mode 100644 index 6b257a9..0000000 --- a/packages/contracts/ignition/deployments/chain-84532/build-info/8b407914b25c585d6f6f5d75fd00e733.json +++ /dev/null @@ -1,43389 +0,0 @@ -{ - "id": "8b407914b25c585d6f6f5d75fd00e733", - "_format": "hh-sol-build-info-1", - "solcVersion": "0.8.20", - "solcLongVersion": "0.8.20+commit.a1b79de6", - "input": { - "language": "Solidity", - "sources": { - "@openzeppelin/contracts/access/Ownable.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\n\npragma solidity ^0.8.20;\n\nimport {Context} from \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * The initial owner is set to the address provided by the deployer. This can\n * later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n /**\n * @dev The caller account is not authorized to perform an operation.\n */\n error OwnableUnauthorizedAccount(address account);\n\n /**\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\n */\n error OwnableInvalidOwner(address owner);\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n */\n constructor(address initialOwner) {\n if (initialOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(initialOwner);\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n if (owner() != _msgSender()) {\n revert OwnableUnauthorizedAccount(_msgSender());\n }\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby disabling any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n if (newOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n" - }, - "@openzeppelin/contracts/utils/Context.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n" - }, - "contracts/AgentsRegistry.sol": { - "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport \"./ServiceRegistry.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"./interfaces/IProposalStruct.sol\";\n\n\n/**\n * @title AgentsRegistry\n * @author leonprou\n * @notice A smart contract that stores information about the agents, and the services proposals provided by the agents.\n */\ncontract AgentsRegistry is Ownable, IProposalStruct {\n\n struct AgentData {\n string name;\n string agentUri;\n address owner;\n address agent;\n uint256 reputation;\n bool isRegistered;\n Proposal[] proposals;\n }\n\n ServiceRegistry public serviceRegistry;\n mapping(address => AgentData) public agents;\n Proposal[] public proposals;\n uint256 public nextProposalId;\n\n modifier onlyRegistered(address agent) {\n require(agents[agent].isRegistered, \"Agent not registered\");\n _;\n }\n\n constructor(ServiceRegistry _serviceRegistry) Ownable(msg.sender) {\n serviceRegistry = _serviceRegistry;\n }\n\n event AgentRegistered(address indexed agent, address indexed owner, string name, string agentUri);\n event ReputationUpdated(address indexed agent, uint256 newReputation);\n event ServiceAdded(address indexed agent, uint256 name);\n event ProposalAdded(address indexed agent, uint256 proposalId, string name, uint256 price);\n \n /**\n * @dev Registers a new agent with the given details.\n * @param name The name of the agent.\n * @param agentUri The URI pointing to the agent's metadata.\n * @param agent The address of the agent.\n * @param serviceName The name of the service.\n * @param servicePrice The price of the service.\n * @return true if the agent was registered successfully, false otherwise.\n *\n * Requirements:\n *\n * - The agent must not already be registered.\n * - The caller will be set as the owner of the agent.\n *\n * Emits an {AgentRegistered} event.\n */\n function registerAgent(\n string memory name,\n string memory agentUri,\n address agent,\n string memory serviceName,\n uint256 servicePrice\n ) external returns (bool) {\n require(!agents[agent].isRegistered, \"Agent already registered\");\n require(serviceRegistry.isServiceRegistered(serviceName), \"Service not registered\");\n \n AgentData storage agentData = agents[agent];\n agentData.name = name;\n agentData.agentUri = agentUri;\n agentData.owner = msg.sender;\n agentData.agent = agent;\n agentData.reputation = 0;\n agentData.isRegistered = true;\n Proposal memory proposal = Proposal(agent, serviceName, servicePrice, nextProposalId);\n agentData.proposals.push(proposal);\n proposals.push(proposal);\n // agentData.proposals = new Proposal[](1);\n // agentData.proposals[1] = proposal;\n \n // agentData.proposals = new Proposal[](1);\n // agentData.proposals[0] = Proposal(serviceName, servicePrice, nextProposalId);\n nextProposalId++;\n emit AgentRegistered(agent, msg.sender, name, agentUri);\n emit ProposalAdded(agent, proposal.proposalId, serviceName, servicePrice);\n\n return true;\n }\n\n function updateReputation(address agent, uint256 _reputation) external onlyOwner onlyRegistered(agent) {\n agents[agent].reputation = _reputation;\n emit ReputationUpdated(agent, _reputation);\n }\n\n function getReputation(address agent) external view onlyRegistered(agent) returns (uint256) {\n return agents[agent].reputation;\n }\n\n function isRegistered(address agent) external view returns (bool) {\n return agents[agent].isRegistered;\n }\n\n /**\n * @dev get agent data\n * @param _agent The address of the agent\n * @return name The name of the agent\n * @return agentUri The URI pointing to the agent's metadata\n * @return owner The owner address of the agent\n * @return agent The agent contract address\n * @return reputation The reputation score of the agent\n */\n function getAgentData(address _agent) external view returns (\n string memory name,\n string memory agentUri,\n address owner,\n address agent,\n uint256 reputation\n ) {\n AgentData storage data = agents[_agent];\n return (data.name, data.agentUri, data.owner, data.agent, data.reputation);\n }\n\n\n function getProposal(uint256 proposalId) external view returns (Proposal memory) {\n return proposals[proposalId];\n }\n}\n" - }, - "contracts/interfaces/IProposalStruct.sol": { - "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\ninterface IProposalStruct {\n struct Proposal {\n address issuer;\n string serviceName;\n uint256 price;\n uint256 proposalId;\n }\n}" - }, - "contracts/lib/TransferHelper.sol": { - "content": "//SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\n// helper methods for interacting with ERC20 tokens and sending ETH that do not consistently return true/false\nlibrary TransferHelper {\n function safeApprove(\n address token,\n address to,\n uint256 value\n ) internal {\n // bytes4(keccak256(bytes('approve(address,uint256)')));\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));\n require(\n success && (data.length == 0 || abi.decode(data, (bool))),\n 'TransferHelper::safeApprove: approve failed'\n );\n }\n\n function safeTransfer(\n address token,\n address to,\n uint256 value\n ) internal {\n // bytes4(keccak256(bytes('transfer(address,uint256)')));\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));\n require(\n success && (data.length == 0 || abi.decode(data, (bool))),\n 'TransferHelper::safeTransfer: transfer failed'\n );\n }\n\n function safeTransferFrom(\n address token,\n address from,\n address to,\n uint256 value\n ) internal {\n // bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));\n require(\n success && (data.length == 0 || abi.decode(data, (bool))),\n 'TransferHelper::transferFrom: transferFrom failed'\n );\n }\n\n function safeTransferETH(address to, uint256 value) internal {\n (bool success, ) = to.call{value: value}(new bytes(0));\n require(success, 'TransferHelper::safeTransferETH: ETH transfer failed');\n }\n}" - }, - "contracts/ServiceRegistry.sol": { - "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n/**\n * @title ServiceRegistry\n * @author leonprou\n * @notice A smart contract that stores information about the services provided by agents.\n */\ncontract ServiceRegistry is Ownable {\n struct Service {\n string name;\n string category;\n string description;\n }\n\n mapping(string => Service) public services;\n uint256 public serviceCount;\n\n event ServiceRegistered(string name, string category, string description);\n event ServiceUpdated(string name, string category, string description);\n\n constructor() Ownable(msg.sender) {}\n\n /**\n * @dev Registers a new service with the given name and price.\n * @param name The name of the service.\n * @return The ID of the registered service.\n */\n function registerService(string memory name, string memory category, string memory description) external onlyOwner returns (Service memory) {\n require(!this.isServiceRegistered(name), \"Service already registered\");\n\n Service memory service = Service({\n name: name,\n category: category,\n description: description\n });\n\n services[name] = service;\n\n emit ServiceRegistered(name, category, description);\n\n serviceCount++;\n return service;\n }\n\n /**\n * @dev Retrieves the details of a service.\n * @param name The name of the service to retrieve.\n * @return The details of the service.\n */\n function getService(string memory name) external view returns (Service memory) {\n return services[name];\n }\n\n function isServiceRegistered(string memory name) external view returns (bool) {\n require(bytes(name).length > 0, \"Invalid service name\");\n\n return bytes(services[name].name).length > 0;\n }\n\n function updateService(string memory name, string memory category, string memory description) external onlyOwner {\n require(this.isServiceRegistered(name), \"Service not registered\");\n\n services[name] = Service({\n name: name,\n category: category,\n description: description\n });\n\n emit ServiceUpdated(name, category, description);\n }\n}\n" - }, - "contracts/TaskRegistry.sol": { - "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"./interfaces/IProposalStruct.sol\";\nimport \"./AgentsRegistry.sol\";\nimport \"./lib/TransferHelper.sol\";\n\n/**\n * @title TaskRegistry\n * @author leonprou\n * @notice A smart contract that stores information about the tasks issued for the agent service providers.\n */\ncontract TaskRegistry is Ownable, IProposalStruct {\n\n enum TaskStatus { CREATED, ASSIGNED, COMPLETED, FAILED }\n\n struct TaskData {\n uint256 id;\n string prompt;\n address issuer;\n TaskStatus status;\n address assignee;\n uint256 proposalId;\n }\n \n mapping(uint256 => TaskData) public tasks;\n mapping(address => uint256[]) public issuerTasks;\n uint256 private nextTaskId;\n AgentsRegistry public agentRegistry;\n constructor(AgentsRegistry _agentRegistry) Ownable(msg.sender) {\n agentRegistry = _agentRegistry;\n }\n \n event TaskCreated(address indexed issuer, address indexed assignee, uint256 taskId, uint256 proposalId, string prompt);\n event TaskStatusChanged(uint256 indexed taskId, TaskStatus status);\n event TaskAssigned(uint256 indexed taskId, address indexed agent);\n event ProposalApproved(uint256 indexed taskId, Proposal proposal);\n event TaskCompleted(uint256 indexed taskId, string result);\n\n /**\n * @dev Creates a new task with the given prompt and task type.\n * @param prompt The description or prompt of the task.\n * @return taskId The ID of the newly created task.\n */\n function createTask(\n string memory prompt,\n uint256 proposalId\n ) external payable returns (TaskData memory) {\n Proposal memory proposal = agentRegistry.getProposal(proposalId);\n require(proposal.price == msg.value, \"Invalid price\");\n\n nextTaskId++;\n TaskData storage task = tasks[nextTaskId];\n task.id = nextTaskId;\n task.prompt = prompt;\n task.issuer = msg.sender;\n task.proposalId = proposalId;\n task.assignee = proposal.issuer;\n issuerTasks[msg.sender].push(nextTaskId);\n task.status = TaskStatus.ASSIGNED;\n emit TaskCreated(msg.sender, proposal.issuer, nextTaskId, proposal.proposalId, prompt);\n return task;\n }\n\n /**\n * @dev Completes a task with the given result.\n * @param taskId The ID of the task.\n * @param result The result or output of the completed task.\n */\n function completeTask(uint256 taskId, string memory result) external {\n TaskData storage task = tasks[taskId];\n require(msg.sender == task.assignee, \"Not authorized\");\n require(task.status == TaskStatus.ASSIGNED, \"Invalid task status\");\n\n task.status = TaskStatus.COMPLETED;\n Proposal memory proposal = agentRegistry.getProposal(task.proposalId);\n \n TransferHelper.safeTransferETH(proposal.issuer, proposal.price);\n\n emit TaskStatusChanged(taskId, task.status);\n emit TaskCompleted(taskId, result);\n }\n\n\n function getTasksByIssuer(address issuer) external view returns (uint256[] memory) {\n return issuerTasks[issuer];\n }\n\n function getTask(uint256 taskId) external view returns (TaskData memory) {\n return tasks[taskId];\n }\n\n function getStatus(uint256 taskId) external view returns (TaskStatus) {\n return tasks[taskId].status;\n }\n \n function getAssignee(uint256 taskId) external view returns (address) {\n return tasks[taskId].assignee;\n }\n}\n" - } - }, - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "output": { - "sources": { - "@openzeppelin/contracts/access/Ownable.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", - "exportedSymbols": { - "Context": [ - 177 - ], - "Ownable": [ - 147 - ] - }, - "id": 148, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "102:24:0" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/Context.sol", - "file": "../utils/Context.sol", - "id": 3, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 148, - "sourceUnit": 178, - "src": "128:45:0", - "symbolAliases": [ - { - "foreign": { - "id": 2, - "name": "Context", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "136:7:0", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [ - { - "baseName": { - "id": 5, - "name": "Context", - "nameLocations": [ - "692:7:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 177, - "src": "692:7:0" - }, - "id": 6, - "nodeType": "InheritanceSpecifier", - "src": "692:7:0" - } - ], - "canonicalName": "Ownable", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 4, - "nodeType": "StructuredDocumentation", - "src": "175:487:0", - "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n The initial owner is set to the address provided by the deployer. This can\n later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." - }, - "fullyImplemented": true, - "id": 147, - "linearizedBaseContracts": [ - 147, - 177 - ], - "name": "Ownable", - "nameLocation": "681:7:0", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 8, - "mutability": "mutable", - "name": "_owner", - "nameLocation": "722:6:0", - "nodeType": "VariableDeclaration", - "scope": 147, - "src": "706:22:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "706:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "private" - }, - { - "documentation": { - "id": 9, - "nodeType": "StructuredDocumentation", - "src": "735:85:0", - "text": " @dev The caller account is not authorized to perform an operation." - }, - "errorSelector": "118cdaa7", - "id": 13, - "name": "OwnableUnauthorizedAccount", - "nameLocation": "831:26:0", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 12, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11, - "mutability": "mutable", - "name": "account", - "nameLocation": "866:7:0", - "nodeType": "VariableDeclaration", - "scope": 13, - "src": "858:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "858:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "857:17:0" - }, - "src": "825:50:0" - }, - { - "documentation": { - "id": 14, - "nodeType": "StructuredDocumentation", - "src": "881:82:0", - "text": " @dev The owner is not a valid owner account. (eg. `address(0)`)" - }, - "errorSelector": "1e4fbdf7", - "id": 18, - "name": "OwnableInvalidOwner", - "nameLocation": "974:19:0", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 17, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1002:5:0", - "nodeType": "VariableDeclaration", - "scope": 18, - "src": "994:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 15, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "994:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "993:15:0" - }, - "src": "968:41:0" - }, - { - "anonymous": false, - "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "id": 24, - "name": "OwnershipTransferred", - "nameLocation": "1021:20:0", - "nodeType": "EventDefinition", - "parameters": { - "id": 23, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "indexed": true, - "mutability": "mutable", - "name": "previousOwner", - "nameLocation": "1058:13:0", - "nodeType": "VariableDeclaration", - "scope": 24, - "src": "1042:29:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 19, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1042:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 22, - "indexed": true, - "mutability": "mutable", - "name": "newOwner", - "nameLocation": "1089:8:0", - "nodeType": "VariableDeclaration", - "scope": 24, - "src": "1073:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1073:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1041:57:0" - }, - "src": "1015:84:0" - }, - { - "body": { - "id": 49, - "nodeType": "Block", - "src": "1259:153:0", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 35, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 30, - "name": "initialOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27, - "src": "1273:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 33, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1297:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 32, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1289:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 31, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1289:7:0", - "typeDescriptions": {} - } - }, - "id": 34, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1289:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1273:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 44, - "nodeType": "IfStatement", - "src": "1269:95:0", - "trueBody": { - "id": 43, - "nodeType": "Block", - "src": "1301:63:0", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30", - "id": 39, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1350:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 38, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1342:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1342:7:0", - "typeDescriptions": {} - } - }, - "id": 40, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1342:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 36, - "name": "OwnableInvalidOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18, - "src": "1322:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" - } - }, - "id": 41, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1322:31:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 42, - "nodeType": "RevertStatement", - "src": "1315:38:0" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 46, - "name": "initialOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27, - "src": "1392:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 45, - "name": "_transferOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 146, - "src": "1373:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 47, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1373:32:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 48, - "nodeType": "ExpressionStatement", - "src": "1373:32:0" - } - ] - }, - "documentation": { - "id": 25, - "nodeType": "StructuredDocumentation", - "src": "1105:115:0", - "text": " @dev Initializes the contract setting the address provided by the deployer as the initial owner." - }, - "id": 50, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 28, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 27, - "mutability": "mutable", - "name": "initialOwner", - "nameLocation": "1245:12:0", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1237:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 26, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1237:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1236:22:0" - }, - "returnParameters": { - "id": 29, - "nodeType": "ParameterList", - "parameters": [], - "src": "1259:0:0" - }, - "scope": 147, - "src": "1225:187:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 57, - "nodeType": "Block", - "src": "1521:41:0", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 53, - "name": "_checkOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "1531:11:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 54, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1531:13:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 55, - "nodeType": "ExpressionStatement", - "src": "1531:13:0" - }, - { - "id": 56, - "nodeType": "PlaceholderStatement", - "src": "1554:1:0" - } - ] - }, - "documentation": { - "id": 51, - "nodeType": "StructuredDocumentation", - "src": "1418:77:0", - "text": " @dev Throws if called by any account other than the owner." - }, - "id": 58, - "name": "onlyOwner", - "nameLocation": "1509:9:0", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 52, - "nodeType": "ParameterList", - "parameters": [], - "src": "1518:2:0" - }, - "src": "1500:62:0", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 66, - "nodeType": "Block", - "src": "1693:30:0", - "statements": [ - { - "expression": { - "id": 64, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "1710:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 63, - "id": 65, - "nodeType": "Return", - "src": "1703:13:0" - } - ] - }, - "documentation": { - "id": 59, - "nodeType": "StructuredDocumentation", - "src": "1568:65:0", - "text": " @dev Returns the address of the current owner." - }, - "functionSelector": "8da5cb5b", - "id": 67, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "owner", - "nameLocation": "1647:5:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [], - "src": "1652:2:0" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 67, - "src": "1684:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1684:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1683:9:0" - }, - "scope": 147, - "src": "1638:85:0", - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "body": { - "id": 83, - "nodeType": "Block", - "src": "1841:117:0", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 75, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 71, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "1855:5:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 72, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1855:7:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 73, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 159, - "src": "1866:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 74, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1866:12:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1855:23:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 82, - "nodeType": "IfStatement", - "src": "1851:101:0", - "trueBody": { - "id": 81, - "nodeType": "Block", - "src": "1880:72:0", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 77, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 159, - "src": "1928:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 78, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1928:12:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 76, - "name": "OwnableUnauthorizedAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13, - "src": "1901:26:0", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" - } - }, - "id": 79, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1901:40:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 80, - "nodeType": "RevertStatement", - "src": "1894:47:0" - } - ] - } - } - ] - }, - "documentation": { - "id": 68, - "nodeType": "StructuredDocumentation", - "src": "1729:62:0", - "text": " @dev Throws if the sender is not the owner." - }, - "id": 84, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOwner", - "nameLocation": "1805:11:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 69, - "nodeType": "ParameterList", - "parameters": [], - "src": "1816:2:0" - }, - "returnParameters": { - "id": 70, - "nodeType": "ParameterList", - "parameters": [], - "src": "1841:0:0" - }, - "scope": 147, - "src": "1796:162:0", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 97, - "nodeType": "Block", - "src": "2347:47:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30", - "id": 93, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2384:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 92, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2376:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 91, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2376:7:0", - "typeDescriptions": {} - } - }, - "id": 94, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2376:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 90, - "name": "_transferOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 146, - "src": "2357:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 95, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2357:30:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 96, - "nodeType": "ExpressionStatement", - "src": "2357:30:0" - } - ] - }, - "documentation": { - "id": 85, - "nodeType": "StructuredDocumentation", - "src": "1964:324:0", - "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner." - }, - "functionSelector": "715018a6", - "id": 98, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 88, - "kind": "modifierInvocation", - "modifierName": { - "id": 87, - "name": "onlyOwner", - "nameLocations": [ - "2337:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 58, - "src": "2337:9:0" - }, - "nodeType": "ModifierInvocation", - "src": "2337:9:0" - } - ], - "name": "renounceOwnership", - "nameLocation": "2302:17:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 86, - "nodeType": "ParameterList", - "parameters": [], - "src": "2319:2:0" - }, - "returnParameters": { - "id": 89, - "nodeType": "ParameterList", - "parameters": [], - "src": "2347:0:0" - }, - "scope": 147, - "src": "2293:101:0", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "body": { - "id": 125, - "nodeType": "Block", - "src": "2613:145:0", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 106, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "2627:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 109, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2647:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 108, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2639:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 107, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2639:7:0", - "typeDescriptions": {} - } - }, - "id": 110, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2639:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2627:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 120, - "nodeType": "IfStatement", - "src": "2623:91:0", - "trueBody": { - "id": 119, - "nodeType": "Block", - "src": "2651:63:0", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30", - "id": 115, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2700:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2692:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2692:7:0", - "typeDescriptions": {} - } - }, - "id": 116, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2692:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 112, - "name": "OwnableInvalidOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18, - "src": "2672:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" - } - }, - "id": 117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2672:31:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 118, - "nodeType": "RevertStatement", - "src": "2665:38:0" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 122, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "2742:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 121, - "name": "_transferOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 146, - "src": "2723:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2723:28:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 124, - "nodeType": "ExpressionStatement", - "src": "2723:28:0" - } - ] - }, - "documentation": { - "id": 99, - "nodeType": "StructuredDocumentation", - "src": "2400:138:0", - "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." - }, - "functionSelector": "f2fde38b", - "id": 126, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 104, - "kind": "modifierInvocation", - "modifierName": { - "id": 103, - "name": "onlyOwner", - "nameLocations": [ - "2603:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 58, - "src": "2603:9:0" - }, - "nodeType": "ModifierInvocation", - "src": "2603:9:0" - } - ], - "name": "transferOwnership", - "nameLocation": "2552:17:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 101, - "mutability": "mutable", - "name": "newOwner", - "nameLocation": "2578:8:0", - "nodeType": "VariableDeclaration", - "scope": 126, - "src": "2570:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 100, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2570:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2569:18:0" - }, - "returnParameters": { - "id": 105, - "nodeType": "ParameterList", - "parameters": [], - "src": "2613:0:0" - }, - "scope": 147, - "src": "2543:215:0", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "body": { - "id": 145, - "nodeType": "Block", - "src": "2975:124:0", - "statements": [ - { - "assignments": [ - 133 - ], - "declarations": [ - { - "constant": false, - "id": 133, - "mutability": "mutable", - "name": "oldOwner", - "nameLocation": "2993:8:0", - "nodeType": "VariableDeclaration", - "scope": 145, - "src": "2985:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 132, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2985:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 135, - "initialValue": { - "id": 134, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "3004:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2985:25:0" - }, - { - "expression": { - "id": 138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 136, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "3020:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 137, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 129, - "src": "3029:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3020:17:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 139, - "nodeType": "ExpressionStatement", - "src": "3020:17:0" - }, - { - "eventCall": { - "arguments": [ - { - "id": 141, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 133, - "src": "3073:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 142, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 129, - "src": "3083:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 140, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "3052:20:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3052:40:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 144, - "nodeType": "EmitStatement", - "src": "3047:45:0" - } - ] - }, - "documentation": { - "id": 127, - "nodeType": "StructuredDocumentation", - "src": "2764:143:0", - "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction." - }, - "id": 146, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferOwnership", - "nameLocation": "2921:18:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 129, - "mutability": "mutable", - "name": "newOwner", - "nameLocation": "2948:8:0", - "nodeType": "VariableDeclaration", - "scope": 146, - "src": "2940:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2940:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2939:18:0" - }, - "returnParameters": { - "id": 131, - "nodeType": "ParameterList", - "parameters": [], - "src": "2975:0:0" - }, - "scope": 147, - "src": "2912:187:0", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - } - ], - "scope": 148, - "src": "663:2438:0", - "usedErrors": [ - 13, - 18 - ], - "usedEvents": [ - 24 - ] - } - ], - "src": "102:3000:0" - }, - "id": 0 - }, - "@openzeppelin/contracts/utils/Context.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/Context.sol", - "exportedSymbols": { - "Context": [ - 177 - ] - }, - "id": 178, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 149, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "101:24:1" - }, - { - "abstract": true, - "baseContracts": [], - "canonicalName": "Context", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 150, - "nodeType": "StructuredDocumentation", - "src": "127:496:1", - "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." - }, - "fullyImplemented": true, - "id": 177, - "linearizedBaseContracts": [ - 177 - ], - "name": "Context", - "nameLocation": "642:7:1", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 158, - "nodeType": "Block", - "src": "718:34:1", - "statements": [ - { - "expression": { - "expression": { - "id": 155, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "735:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "739:6:1", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "735:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 154, - "id": 157, - "nodeType": "Return", - "src": "728:17:1" - } - ] - }, - "id": 159, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_msgSender", - "nameLocation": "665:10:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 151, - "nodeType": "ParameterList", - "parameters": [], - "src": "675:2:1" - }, - "returnParameters": { - "id": 154, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 153, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 159, - "src": "709:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 152, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "709:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "708:9:1" - }, - "scope": 177, - "src": "656:96:1", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 167, - "nodeType": "Block", - "src": "825:32:1", - "statements": [ - { - "expression": { - "expression": { - "id": 164, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "842:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "846:4:1", - "memberName": "data", - "nodeType": "MemberAccess", - "src": "842:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "functionReturnParameters": 163, - "id": 166, - "nodeType": "Return", - "src": "835:15:1" - } - ] - }, - "id": 168, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_msgData", - "nameLocation": "767:8:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 160, - "nodeType": "ParameterList", - "parameters": [], - "src": "775:2:1" - }, - "returnParameters": { - "id": 163, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 162, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 168, - "src": "809:14:1", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 161, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "809:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "808:16:1" - }, - "scope": 177, - "src": "758:99:1", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 175, - "nodeType": "Block", - "src": "935:25:1", - "statements": [ - { - "expression": { - "hexValue": "30", - "id": 173, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "952:1:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 172, - "id": 174, - "nodeType": "Return", - "src": "945:8:1" - } - ] - }, - "id": 176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_contextSuffixLength", - "nameLocation": "872:20:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 169, - "nodeType": "ParameterList", - "parameters": [], - "src": "892:2:1" - }, - "returnParameters": { - "id": 172, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 171, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 176, - "src": "926:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 170, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "926:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "925:9:1" - }, - "scope": 177, - "src": "863:97:1", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - } - ], - "scope": 178, - "src": "624:338:1", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "101:862:1" - }, - "id": 1 - }, - "contracts/AgentsRegistry.sol": { - "ast": { - "absolutePath": "contracts/AgentsRegistry.sol", - "exportedSymbols": { - "AgentsRegistry": [ - 506 - ], - "Context": [ - 177 - ], - "IProposalStruct": [ - 1015 - ], - "Ownable": [ - 147 - ], - "ServiceRegistry": [ - 682 - ] - }, - "id": 507, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 179, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "32:24:2" - }, - { - "absolutePath": "contracts/ServiceRegistry.sol", - "file": "./ServiceRegistry.sol", - "id": 180, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 507, - "sourceUnit": 683, - "src": "58:31:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", - "file": "@openzeppelin/contracts/access/Ownable.sol", - "id": 181, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 507, - "sourceUnit": 148, - "src": "90:52:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/interfaces/IProposalStruct.sol", - "file": "./interfaces/IProposalStruct.sol", - "id": 182, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 507, - "sourceUnit": 1016, - "src": "143:42:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 184, - "name": "Ownable", - "nameLocations": [ - "389:7:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 147, - "src": "389:7:2" - }, - "id": 185, - "nodeType": "InheritanceSpecifier", - "src": "389:7:2" - }, - { - "baseName": { - "id": 186, - "name": "IProposalStruct", - "nameLocations": [ - "398:15:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1015, - "src": "398:15:2" - }, - "id": 187, - "nodeType": "InheritanceSpecifier", - "src": "398:15:2" - } - ], - "canonicalName": "AgentsRegistry", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 183, - "nodeType": "StructuredDocumentation", - "src": "188:173:2", - "text": " @title AgentsRegistry\n @author leonprou\n @notice A smart contract that stores information about the agents, and the services proposals provided by the agents." - }, - "fullyImplemented": true, - "id": 506, - "linearizedBaseContracts": [ - 506, - 1015, - 147, - 177 - ], - "name": "AgentsRegistry", - "nameLocation": "371:14:2", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "AgentsRegistry.AgentData", - "id": 204, - "members": [ - { - "constant": false, - "id": 189, - "mutability": "mutable", - "name": "name", - "nameLocation": "455:4:2", - "nodeType": "VariableDeclaration", - "scope": 204, - "src": "448:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 188, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "448:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 191, - "mutability": "mutable", - "name": "agentUri", - "nameLocation": "476:8:2", - "nodeType": "VariableDeclaration", - "scope": 204, - "src": "469:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 190, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "469:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 193, - "mutability": "mutable", - "name": "owner", - "nameLocation": "502:5:2", - "nodeType": "VariableDeclaration", - "scope": 204, - "src": "494:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 192, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "494:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 195, - "mutability": "mutable", - "name": "agent", - "nameLocation": "525:5:2", - "nodeType": "VariableDeclaration", - "scope": 204, - "src": "517:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 194, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "517:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 197, - "mutability": "mutable", - "name": "reputation", - "nameLocation": "548:10:2", - "nodeType": "VariableDeclaration", - "scope": 204, - "src": "540:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "540:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 199, - "mutability": "mutable", - "name": "isRegistered", - "nameLocation": "573:12:2", - "nodeType": "VariableDeclaration", - "scope": 204, - "src": "568:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 198, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "568:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 203, - "mutability": "mutable", - "name": "proposals", - "nameLocation": "606:9:2", - "nodeType": "VariableDeclaration", - "scope": 204, - "src": "595:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Proposal_$1014_storage_$dyn_storage_ptr", - "typeString": "struct IProposalStruct.Proposal[]" - }, - "typeName": { - "baseType": { - "id": 201, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 200, - "name": "Proposal", - "nameLocations": [ - "595:8:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1014, - "src": "595:8:2" - }, - "referencedDeclaration": 1014, - "src": "595:8:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_storage_ptr", - "typeString": "struct IProposalStruct.Proposal" - } - }, - "id": 202, - "nodeType": "ArrayTypeName", - "src": "595:10:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Proposal_$1014_storage_$dyn_storage_ptr", - "typeString": "struct IProposalStruct.Proposal[]" - } - }, - "visibility": "internal" - } - ], - "name": "AgentData", - "nameLocation": "428:9:2", - "nodeType": "StructDefinition", - "scope": 506, - "src": "421:201:2", - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "cbcf252a", - "id": 207, - "mutability": "mutable", - "name": "serviceRegistry", - "nameLocation": "651:15:2", - "nodeType": "VariableDeclaration", - "scope": 506, - "src": "628:38:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", - "typeString": "contract ServiceRegistry" - }, - "typeName": { - "id": 206, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 205, - "name": "ServiceRegistry", - "nameLocations": [ - "628:15:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 682, - "src": "628:15:2" - }, - "referencedDeclaration": 682, - "src": "628:15:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", - "typeString": "contract ServiceRegistry" - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "fd66091e", - "id": 212, - "mutability": "mutable", - "name": "agents", - "nameLocation": "709:6:2", - "nodeType": "VariableDeclaration", - "scope": 506, - "src": "672:43:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData)" - }, - "typeName": { - "id": 211, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 208, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "680:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "672:29:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 210, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 209, - "name": "AgentData", - "nameLocations": [ - "691:9:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 204, - "src": "691:9:2" - }, - "referencedDeclaration": 204, - "src": "691:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData" - } - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "013cf08b", - "id": 216, - "mutability": "mutable", - "name": "proposals", - "nameLocation": "739:9:2", - "nodeType": "VariableDeclaration", - "scope": 506, - "src": "721:27:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Proposal_$1014_storage_$dyn_storage", - "typeString": "struct IProposalStruct.Proposal[]" - }, - "typeName": { - "baseType": { - "id": 214, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 213, - "name": "Proposal", - "nameLocations": [ - "721:8:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1014, - "src": "721:8:2" - }, - "referencedDeclaration": 1014, - "src": "721:8:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_storage_ptr", - "typeString": "struct IProposalStruct.Proposal" - } - }, - "id": 215, - "nodeType": "ArrayTypeName", - "src": "721:10:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Proposal_$1014_storage_$dyn_storage_ptr", - "typeString": "struct IProposalStruct.Proposal[]" - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "2ab09d14", - "id": 218, - "mutability": "mutable", - "name": "nextProposalId", - "nameLocation": "769:14:2", - "nodeType": "VariableDeclaration", - "scope": 506, - "src": "754:29:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 217, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "754:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "body": { - "id": 231, - "nodeType": "Block", - "src": "829:87:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "baseExpression": { - "id": 223, - "name": "agents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "847:6:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" - } - }, - "id": 225, - "indexExpression": { - "id": 224, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "854:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "847:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage", - "typeString": "struct AgentsRegistry.AgentData storage ref" - } - }, - "id": 226, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "861:12:2", - "memberName": "isRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 199, - "src": "847:26:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "4167656e74206e6f742072656769737465726564", - "id": 227, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "875:22:2", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6b24a63f053c9f60b33a6142346432678adff778fb93a8ecec9013d5a898e395", - "typeString": "literal_string \"Agent not registered\"" - }, - "value": "Agent not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_6b24a63f053c9f60b33a6142346432678adff778fb93a8ecec9013d5a898e395", - "typeString": "literal_string \"Agent not registered\"" - } - ], - "id": 222, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "839:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "839:59:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 229, - "nodeType": "ExpressionStatement", - "src": "839:59:2" - }, - { - "id": 230, - "nodeType": "PlaceholderStatement", - "src": "908:1:2" - } - ] - }, - "id": 232, - "name": "onlyRegistered", - "nameLocation": "799:14:2", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 221, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 220, - "mutability": "mutable", - "name": "agent", - "nameLocation": "822:5:2", - "nodeType": "VariableDeclaration", - "scope": 232, - "src": "814:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 219, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "814:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "813:15:2" - }, - "src": "790:126:2", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 246, - "nodeType": "Block", - "src": "988:51:2", - "statements": [ - { - "expression": { - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 242, - "name": "serviceRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "998:15:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", - "typeString": "contract ServiceRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 243, - "name": "_serviceRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "1016:16:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", - "typeString": "contract ServiceRegistry" - } - }, - "src": "998:34:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", - "typeString": "contract ServiceRegistry" - } - }, - "id": 245, - "nodeType": "ExpressionStatement", - "src": "998:34:2" - } - ] - }, - "id": 247, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "expression": { - "id": 238, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "976:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 239, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "980:6:2", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "976:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 240, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 237, - "name": "Ownable", - "nameLocations": [ - "968:7:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 147, - "src": "968:7:2" - }, - "nodeType": "ModifierInvocation", - "src": "968:19:2" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 236, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 235, - "mutability": "mutable", - "name": "_serviceRegistry", - "nameLocation": "950:16:2", - "nodeType": "VariableDeclaration", - "scope": 247, - "src": "934:32:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", - "typeString": "contract ServiceRegistry" - }, - "typeName": { - "id": 234, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 233, - "name": "ServiceRegistry", - "nameLocations": [ - "934:15:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 682, - "src": "934:15:2" - }, - "referencedDeclaration": 682, - "src": "934:15:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", - "typeString": "contract ServiceRegistry" - } - }, - "visibility": "internal" - } - ], - "src": "933:34:2" - }, - "returnParameters": { - "id": 241, - "nodeType": "ParameterList", - "parameters": [], - "src": "988:0:2" - }, - "scope": 506, - "src": "922:117:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "anonymous": false, - "eventSelector": "2a562efb52e7cec209321f57200606311256da6d2a1b19d44db7837a3209de28", - "id": 257, - "name": "AgentRegistered", - "nameLocation": "1051:15:2", - "nodeType": "EventDefinition", - "parameters": { - "id": 256, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 249, - "indexed": true, - "mutability": "mutable", - "name": "agent", - "nameLocation": "1083:5:2", - "nodeType": "VariableDeclaration", - "scope": 257, - "src": "1067:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 248, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1067:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 251, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1106:5:2", - "nodeType": "VariableDeclaration", - "scope": 257, - "src": "1090:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 250, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1090:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "indexed": false, - "mutability": "mutable", - "name": "name", - "nameLocation": "1120:4:2", - "nodeType": "VariableDeclaration", - "scope": 257, - "src": "1113:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 252, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1113:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 255, - "indexed": false, - "mutability": "mutable", - "name": "agentUri", - "nameLocation": "1133:8:2", - "nodeType": "VariableDeclaration", - "scope": 257, - "src": "1126:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 254, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1126:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1066:76:2" - }, - "src": "1045:98:2" - }, - { - "anonymous": false, - "eventSelector": "fc577563f1b9a0461e24abef1e1fcc0d33d3d881f20b5df6dda59de4aae2c821", - "id": 263, - "name": "ReputationUpdated", - "nameLocation": "1154:17:2", - "nodeType": "EventDefinition", - "parameters": { - "id": 262, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 259, - "indexed": true, - "mutability": "mutable", - "name": "agent", - "nameLocation": "1188:5:2", - "nodeType": "VariableDeclaration", - "scope": 263, - "src": "1172:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 258, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1172:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 261, - "indexed": false, - "mutability": "mutable", - "name": "newReputation", - "nameLocation": "1203:13:2", - "nodeType": "VariableDeclaration", - "scope": 263, - "src": "1195:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 260, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1195:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1171:46:2" - }, - "src": "1148:70:2" - }, - { - "anonymous": false, - "eventSelector": "4a7780b7f79e16baaacac40fb37edda816d999f4bb8a380012a27164eab18387", - "id": 269, - "name": "ServiceAdded", - "nameLocation": "1229:12:2", - "nodeType": "EventDefinition", - "parameters": { - "id": 268, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 265, - "indexed": true, - "mutability": "mutable", - "name": "agent", - "nameLocation": "1258:5:2", - "nodeType": "VariableDeclaration", - "scope": 269, - "src": "1242:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 264, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1242:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 267, - "indexed": false, - "mutability": "mutable", - "name": "name", - "nameLocation": "1273:4:2", - "nodeType": "VariableDeclaration", - "scope": 269, - "src": "1265:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 266, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1265:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1241:37:2" - }, - "src": "1223:56:2" - }, - { - "anonymous": false, - "eventSelector": "e194e0bc2279adb185c748ae57db10fe2ef1005a1b5646f96235a881c88ddb79", - "id": 279, - "name": "ProposalAdded", - "nameLocation": "1290:13:2", - "nodeType": "EventDefinition", - "parameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 271, - "indexed": true, - "mutability": "mutable", - "name": "agent", - "nameLocation": "1320:5:2", - "nodeType": "VariableDeclaration", - "scope": 279, - "src": "1304:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 270, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1304:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 273, - "indexed": false, - "mutability": "mutable", - "name": "proposalId", - "nameLocation": "1335:10:2", - "nodeType": "VariableDeclaration", - "scope": 279, - "src": "1327:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 272, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1327:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 275, - "indexed": false, - "mutability": "mutable", - "name": "name", - "nameLocation": "1354:4:2", - "nodeType": "VariableDeclaration", - "scope": 279, - "src": "1347:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 274, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1347:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 277, - "indexed": false, - "mutability": "mutable", - "name": "price", - "nameLocation": "1368:5:2", - "nodeType": "VariableDeclaration", - "scope": 279, - "src": "1360:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 276, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1360:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1303:71:2" - }, - "src": "1284:91:2" - }, - { - "body": { - "id": 401, - "nodeType": "Block", - "src": "2189:1067:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2207:27:2", - "subExpression": { - "expression": { - "baseExpression": { - "id": 296, - "name": "agents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "2208:6:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" - } - }, - "id": 298, - "indexExpression": { - "id": 297, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 286, - "src": "2215:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2208:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage", - "typeString": "struct AgentsRegistry.AgentData storage ref" - } - }, - "id": 299, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2222:12:2", - "memberName": "isRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 199, - "src": "2208:26:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "4167656e7420616c72656164792072656769737465726564", - "id": 301, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2236:26:2", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3c17f52d7f382f39131bc893c7e27e69aa71bee31c68e2de3649b59b8bfebc2b", - "typeString": "literal_string \"Agent already registered\"" - }, - "value": "Agent already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3c17f52d7f382f39131bc893c7e27e69aa71bee31c68e2de3649b59b8bfebc2b", - "typeString": "literal_string \"Agent already registered\"" - } - ], - "id": 295, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2199:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2199:64:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 303, - "nodeType": "ExpressionStatement", - "src": "2199:64:2" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 307, - "name": "serviceName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 288, - "src": "2317:11:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "id": 305, - "name": "serviceRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "2281:15:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", - "typeString": "contract ServiceRegistry" - } - }, - "id": 306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2297:19:2", - "memberName": "isServiceRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 645, - "src": "2281:35:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_bool_$", - "typeString": "function (string memory) view external returns (bool)" - } - }, - "id": 308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2281:48:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "53657276696365206e6f742072656769737465726564", - "id": 309, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2331:24:2", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6", - "typeString": "literal_string \"Service not registered\"" - }, - "value": "Service not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6", - "typeString": "literal_string \"Service not registered\"" - } - ], - "id": 304, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2273:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2273:83:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 311, - "nodeType": "ExpressionStatement", - "src": "2273:83:2" - }, - { - "assignments": [ - 314 - ], - "declarations": [ - { - "constant": false, - "id": 314, - "mutability": "mutable", - "name": "agentData", - "nameLocation": "2393:9:2", - "nodeType": "VariableDeclaration", - "scope": 401, - "src": "2375:27:2", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData" - }, - "typeName": { - "id": 313, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 312, - "name": "AgentData", - "nameLocations": [ - "2375:9:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 204, - "src": "2375:9:2" - }, - "referencedDeclaration": 204, - "src": "2375:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData" - } - }, - "visibility": "internal" - } - ], - "id": 318, - "initialValue": { - "baseExpression": { - "id": 315, - "name": "agents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "2405:6:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" - } - }, - "id": 317, - "indexExpression": { - "id": 316, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 286, - "src": "2412:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2405:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage", - "typeString": "struct AgentsRegistry.AgentData storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2375:43:2" - }, - { - "expression": { - "id": 323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 319, - "name": "agentData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "2428:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 321, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2438:4:2", - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 189, - "src": "2428:14:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 322, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "2445:4:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "2428:21:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 324, - "nodeType": "ExpressionStatement", - "src": "2428:21:2" - }, - { - "expression": { - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 325, - "name": "agentData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "2459:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 327, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2469:8:2", - "memberName": "agentUri", - "nodeType": "MemberAccess", - "referencedDeclaration": 191, - "src": "2459:18:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 328, - "name": "agentUri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 284, - "src": "2480:8:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "2459:29:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 330, - "nodeType": "ExpressionStatement", - "src": "2459:29:2" - }, - { - "expression": { - "id": 336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 331, - "name": "agentData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "2498:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 333, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2508:5:2", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 193, - "src": "2498:15:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 334, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2516:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2520:6:2", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2516:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2498:28:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 337, - "nodeType": "ExpressionStatement", - "src": "2498:28:2" - }, - { - "expression": { - "id": 342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 338, - "name": "agentData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "2536:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 340, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2546:5:2", - "memberName": "agent", - "nodeType": "MemberAccess", - "referencedDeclaration": 195, - "src": "2536:15:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 341, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 286, - "src": "2554:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2536:23:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 343, - "nodeType": "ExpressionStatement", - "src": "2536:23:2" - }, - { - "expression": { - "id": 348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 344, - "name": "agentData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "2569:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 346, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2579:10:2", - "memberName": "reputation", - "nodeType": "MemberAccess", - "referencedDeclaration": 197, - "src": "2569:20:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "30", - "id": 347, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2592:1:2", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2569:24:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 349, - "nodeType": "ExpressionStatement", - "src": "2569:24:2" - }, - { - "expression": { - "id": 354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 350, - "name": "agentData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "2603:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 352, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2613:12:2", - "memberName": "isRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 199, - "src": "2603:22:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2628:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "2603:29:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 355, - "nodeType": "ExpressionStatement", - "src": "2603:29:2" - }, - { - "assignments": [ - 358 - ], - "declarations": [ - { - "constant": false, - "id": 358, - "mutability": "mutable", - "name": "proposal", - "nameLocation": "2658:8:2", - "nodeType": "VariableDeclaration", - "scope": 401, - "src": "2642:24:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal" - }, - "typeName": { - "id": 357, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 356, - "name": "Proposal", - "nameLocations": [ - "2642:8:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1014, - "src": "2642:8:2" - }, - "referencedDeclaration": 1014, - "src": "2642:8:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_storage_ptr", - "typeString": "struct IProposalStruct.Proposal" - } - }, - "visibility": "internal" - } - ], - "id": 365, - "initialValue": { - "arguments": [ - { - "id": 360, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 286, - "src": "2678:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 361, - "name": "serviceName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 288, - "src": "2685:11:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 362, - "name": "servicePrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 290, - "src": "2698:12:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 363, - "name": "nextProposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 218, - "src": "2712:14:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 359, - "name": "Proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1014, - "src": "2669:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Proposal_$1014_storage_ptr_$", - "typeString": "type(struct IProposalStruct.Proposal storage pointer)" - } - }, - "id": 364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2669:58:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2642:85:2" - }, - { - "expression": { - "arguments": [ - { - "id": 371, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 358, - "src": "2762:8:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - ], - "expression": { - "expression": { - "id": 366, - "name": "agentData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "2737:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 369, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2747:9:2", - "memberName": "proposals", - "nodeType": "MemberAccess", - "referencedDeclaration": 203, - "src": "2737:19:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Proposal_$1014_storage_$dyn_storage", - "typeString": "struct IProposalStruct.Proposal storage ref[] storage ref" - } - }, - "id": 370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2757:4:2", - "memberName": "push", - "nodeType": "MemberAccess", - "src": "2737:24:2", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_Proposal_$1014_storage_$dyn_storage_ptr_$_t_struct$_Proposal_$1014_storage_$returns$__$attached_to$_t_array$_t_struct$_Proposal_$1014_storage_$dyn_storage_ptr_$", - "typeString": "function (struct IProposalStruct.Proposal storage ref[] storage pointer,struct IProposalStruct.Proposal storage ref)" - } - }, - "id": 372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2737:34:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 373, - "nodeType": "ExpressionStatement", - "src": "2737:34:2" - }, - { - "expression": { - "arguments": [ - { - "id": 377, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 358, - "src": "2796:8:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - ], - "expression": { - "id": 374, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 216, - "src": "2781:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Proposal_$1014_storage_$dyn_storage", - "typeString": "struct IProposalStruct.Proposal storage ref[] storage ref" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2791:4:2", - "memberName": "push", - "nodeType": "MemberAccess", - "src": "2781:14:2", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_Proposal_$1014_storage_$dyn_storage_ptr_$_t_struct$_Proposal_$1014_storage_$returns$__$attached_to$_t_array$_t_struct$_Proposal_$1014_storage_$dyn_storage_ptr_$", - "typeString": "function (struct IProposalStruct.Proposal storage ref[] storage pointer,struct IProposalStruct.Proposal storage ref)" - } - }, - "id": 378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2781:24:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 379, - "nodeType": "ExpressionStatement", - "src": "2781:24:2" - }, - { - "expression": { - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3063:16:2", - "subExpression": { - "id": 380, - "name": "nextProposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 218, - "src": "3063:14:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 382, - "nodeType": "ExpressionStatement", - "src": "3063:16:2" - }, - { - "eventCall": { - "arguments": [ - { - "id": 384, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 286, - "src": "3110:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 385, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "3117:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3121:6:2", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "3117:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 387, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "3129:4:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 388, - "name": "agentUri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 284, - "src": "3135:8:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 383, - "name": "AgentRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 257, - "src": "3094:15:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,string memory,string memory)" - } - }, - "id": 389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3094:50:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 390, - "nodeType": "EmitStatement", - "src": "3089:55:2" - }, - { - "eventCall": { - "arguments": [ - { - "id": 392, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 286, - "src": "3173:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 393, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 358, - "src": "3180:8:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - }, - "id": 394, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3189:10:2", - "memberName": "proposalId", - "nodeType": "MemberAccess", - "referencedDeclaration": 1013, - "src": "3180:19:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 395, - "name": "serviceName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 288, - "src": "3201:11:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 396, - "name": "servicePrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 290, - "src": "3214:12:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 391, - "name": "ProposalAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "3159:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,string memory,uint256)" - } - }, - "id": 397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3159:68:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 398, - "nodeType": "EmitStatement", - "src": "3154:73:2" - }, - { - "expression": { - "hexValue": "74727565", - "id": 399, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3245:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 294, - "id": 400, - "nodeType": "Return", - "src": "3238:11:2" - } - ] - }, - "documentation": { - "id": 280, - "nodeType": "StructuredDocumentation", - "src": "1385:598:2", - "text": " @dev Registers a new agent with the given details.\n @param name The name of the agent.\n @param agentUri The URI pointing to the agent's metadata.\n @param agent The address of the agent.\n @param serviceName The name of the service.\n @param servicePrice The price of the service.\n @return true if the agent was registered successfully, false otherwise.\n Requirements:\n - The agent must not already be registered.\n - The caller will be set as the owner of the agent.\n Emits an {AgentRegistered} event." - }, - "functionSelector": "e194f2eb", - "id": 402, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "registerAgent", - "nameLocation": "1997:13:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 291, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 282, - "mutability": "mutable", - "name": "name", - "nameLocation": "2034:4:2", - "nodeType": "VariableDeclaration", - "scope": 402, - "src": "2020:18:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 281, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2020:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 284, - "mutability": "mutable", - "name": "agentUri", - "nameLocation": "2062:8:2", - "nodeType": "VariableDeclaration", - "scope": 402, - "src": "2048:22:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 283, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2048:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 286, - "mutability": "mutable", - "name": "agent", - "nameLocation": "2088:5:2", - "nodeType": "VariableDeclaration", - "scope": 402, - "src": "2080:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 285, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2080:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 288, - "mutability": "mutable", - "name": "serviceName", - "nameLocation": "2117:11:2", - "nodeType": "VariableDeclaration", - "scope": 402, - "src": "2103:25:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 287, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2103:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 290, - "mutability": "mutable", - "name": "servicePrice", - "nameLocation": "2146:12:2", - "nodeType": "VariableDeclaration", - "scope": 402, - "src": "2138:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 289, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2138:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2010:154:2" - }, - "returnParameters": { - "id": 294, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 293, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 402, - "src": "2183:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 292, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2183:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "2182:6:2" - }, - "scope": 506, - "src": "1988:1268:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 426, - "nodeType": "Block", - "src": "3365:107:2", - "statements": [ - { - "expression": { - "id": 419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "baseExpression": { - "id": 414, - "name": "agents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "3375:6:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" - } - }, - "id": 416, - "indexExpression": { - "id": 415, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 404, - "src": "3382:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3375:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage", - "typeString": "struct AgentsRegistry.AgentData storage ref" - } - }, - "id": 417, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "3389:10:2", - "memberName": "reputation", - "nodeType": "MemberAccess", - "referencedDeclaration": 197, - "src": "3375:24:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 418, - "name": "_reputation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 406, - "src": "3402:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3375:38:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 420, - "nodeType": "ExpressionStatement", - "src": "3375:38:2" - }, - { - "eventCall": { - "arguments": [ - { - "id": 422, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 404, - "src": "3446:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 423, - "name": "_reputation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 406, - "src": "3453:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 421, - "name": "ReputationUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 263, - "src": "3428:17:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3428:37:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 425, - "nodeType": "EmitStatement", - "src": "3423:42:2" - } - ] - }, - "functionSelector": "f5c91a08", - "id": 427, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 409, - "kind": "modifierInvocation", - "modifierName": { - "id": 408, - "name": "onlyOwner", - "nameLocations": [ - "3333:9:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 58, - "src": "3333:9:2" - }, - "nodeType": "ModifierInvocation", - "src": "3333:9:2" - }, - { - "arguments": [ - { - "id": 411, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 404, - "src": "3358:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 412, - "kind": "modifierInvocation", - "modifierName": { - "id": 410, - "name": "onlyRegistered", - "nameLocations": [ - "3343:14:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 232, - "src": "3343:14:2" - }, - "nodeType": "ModifierInvocation", - "src": "3343:21:2" - } - ], - "name": "updateReputation", - "nameLocation": "3271:16:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 407, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 404, - "mutability": "mutable", - "name": "agent", - "nameLocation": "3296:5:2", - "nodeType": "VariableDeclaration", - "scope": 427, - "src": "3288:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 403, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3288:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 406, - "mutability": "mutable", - "name": "_reputation", - "nameLocation": "3311:11:2", - "nodeType": "VariableDeclaration", - "scope": 427, - "src": "3303:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 405, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3303:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3287:36:2" - }, - "returnParameters": { - "id": 413, - "nodeType": "ParameterList", - "parameters": [], - "src": "3365:0:2" - }, - "scope": 506, - "src": "3262:210:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 442, - "nodeType": "Block", - "src": "3570:48:2", - "statements": [ - { - "expression": { - "expression": { - "baseExpression": { - "id": 437, - "name": "agents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "3587:6:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" - } - }, - "id": 439, - "indexExpression": { - "id": 438, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 429, - "src": "3594:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3587:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage", - "typeString": "struct AgentsRegistry.AgentData storage ref" - } - }, - "id": 440, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3601:10:2", - "memberName": "reputation", - "nodeType": "MemberAccess", - "referencedDeclaration": 197, - "src": "3587:24:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 436, - "id": 441, - "nodeType": "Return", - "src": "3580:31:2" - } - ] - }, - "functionSelector": "9c89a0e2", - "id": 443, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 432, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 429, - "src": "3545:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 433, - "kind": "modifierInvocation", - "modifierName": { - "id": 431, - "name": "onlyRegistered", - "nameLocations": [ - "3530:14:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 232, - "src": "3530:14:2" - }, - "nodeType": "ModifierInvocation", - "src": "3530:21:2" - } - ], - "name": "getReputation", - "nameLocation": "3487:13:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 430, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 429, - "mutability": "mutable", - "name": "agent", - "nameLocation": "3509:5:2", - "nodeType": "VariableDeclaration", - "scope": 443, - "src": "3501:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 428, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3501:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3500:15:2" - }, - "returnParameters": { - "id": 436, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 435, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 443, - "src": "3561:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 434, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3561:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3560:9:2" - }, - "scope": 506, - "src": "3478:140:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 455, - "nodeType": "Block", - "src": "3690:50:2", - "statements": [ - { - "expression": { - "expression": { - "baseExpression": { - "id": 450, - "name": "agents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "3707:6:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" - } - }, - "id": 452, - "indexExpression": { - "id": 451, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 445, - "src": "3714:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3707:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage", - "typeString": "struct AgentsRegistry.AgentData storage ref" - } - }, - "id": 453, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3721:12:2", - "memberName": "isRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 199, - "src": "3707:26:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 449, - "id": 454, - "nodeType": "Return", - "src": "3700:33:2" - } - ] - }, - "functionSelector": "c3c5a547", - "id": 456, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRegistered", - "nameLocation": "3633:12:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 446, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 445, - "mutability": "mutable", - "name": "agent", - "nameLocation": "3654:5:2", - "nodeType": "VariableDeclaration", - "scope": 456, - "src": "3646:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 444, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3646:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3645:15:2" - }, - "returnParameters": { - "id": 449, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 448, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 456, - "src": "3684:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 447, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3684:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "3683:6:2" - }, - "scope": 506, - "src": "3624:116:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 491, - "nodeType": "Block", - "src": "4303:140:2", - "statements": [ - { - "assignments": [ - 474 - ], - "declarations": [ - { - "constant": false, - "id": 474, - "mutability": "mutable", - "name": "data", - "nameLocation": "4331:4:2", - "nodeType": "VariableDeclaration", - "scope": 491, - "src": "4313:22:2", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData" - }, - "typeName": { - "id": 473, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 472, - "name": "AgentData", - "nameLocations": [ - "4313:9:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 204, - "src": "4313:9:2" - }, - "referencedDeclaration": 204, - "src": "4313:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData" - } - }, - "visibility": "internal" - } - ], - "id": 478, - "initialValue": { - "baseExpression": { - "id": 475, - "name": "agents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "4338:6:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" - } - }, - "id": 477, - "indexExpression": { - "id": 476, - "name": "_agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 459, - "src": "4345:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4338:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage", - "typeString": "struct AgentsRegistry.AgentData storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4313:39:2" - }, - { - "expression": { - "components": [ - { - "expression": { - "id": 479, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "4370:4:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 480, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4375:4:2", - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 189, - "src": "4370:9:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "expression": { - "id": 481, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "4381:4:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 482, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4386:8:2", - "memberName": "agentUri", - "nodeType": "MemberAccess", - "referencedDeclaration": 191, - "src": "4381:13:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "expression": { - "id": 483, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "4396:4:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 484, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4401:5:2", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 193, - "src": "4396:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 485, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "4408:4:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 486, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4413:5:2", - "memberName": "agent", - "nodeType": "MemberAccess", - "referencedDeclaration": 195, - "src": "4408:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 487, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "4420:4:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 488, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4425:10:2", - "memberName": "reputation", - "nodeType": "MemberAccess", - "referencedDeclaration": 197, - "src": "4420:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 489, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4369:67:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_string_storage_$_t_string_storage_$_t_address_$_t_address_$_t_uint256_$", - "typeString": "tuple(string storage ref,string storage ref,address,address,uint256)" - } - }, - "functionReturnParameters": 471, - "id": 490, - "nodeType": "Return", - "src": "4362:74:2" - } - ] - }, - "documentation": { - "id": 457, - "nodeType": "StructuredDocumentation", - "src": "3746:351:2", - "text": " @dev get agent data\n @param _agent The address of the agent\n @return name The name of the agent\n @return agentUri The URI pointing to the agent's metadata\n @return owner The owner address of the agent\n @return agent The agent contract address\n @return reputation The reputation score of the agent" - }, - "functionSelector": "aac9f15a", - "id": 492, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAgentData", - "nameLocation": "4111:12:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 459, - "mutability": "mutable", - "name": "_agent", - "nameLocation": "4132:6:2", - "nodeType": "VariableDeclaration", - "scope": 492, - "src": "4124:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 458, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4124:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4123:16:2" - }, - "returnParameters": { - "id": 471, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 462, - "mutability": "mutable", - "name": "name", - "nameLocation": "4186:4:2", - "nodeType": "VariableDeclaration", - "scope": 492, - "src": "4172:18:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 461, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4172:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 464, - "mutability": "mutable", - "name": "agentUri", - "nameLocation": "4214:8:2", - "nodeType": "VariableDeclaration", - "scope": 492, - "src": "4200:22:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 463, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4200:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 466, - "mutability": "mutable", - "name": "owner", - "nameLocation": "4240:5:2", - "nodeType": "VariableDeclaration", - "scope": 492, - "src": "4232:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 465, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4232:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 468, - "mutability": "mutable", - "name": "agent", - "nameLocation": "4263:5:2", - "nodeType": "VariableDeclaration", - "scope": 492, - "src": "4255:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 467, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4255:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 470, - "mutability": "mutable", - "name": "reputation", - "nameLocation": "4286:10:2", - "nodeType": "VariableDeclaration", - "scope": 492, - "src": "4278:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 469, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4278:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4162:140:2" - }, - "scope": 506, - "src": "4102:341:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 504, - "nodeType": "Block", - "src": "4531:45:2", - "statements": [ - { - "expression": { - "baseExpression": { - "id": 500, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 216, - "src": "4548:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Proposal_$1014_storage_$dyn_storage", - "typeString": "struct IProposalStruct.Proposal storage ref[] storage ref" - } - }, - "id": 502, - "indexExpression": { - "id": 501, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 494, - "src": "4558:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4548:21:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_storage", - "typeString": "struct IProposalStruct.Proposal storage ref" - } - }, - "functionReturnParameters": 499, - "id": 503, - "nodeType": "Return", - "src": "4541:28:2" - } - ] - }, - "functionSelector": "c7f758a8", - "id": 505, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getProposal", - "nameLocation": "4459:11:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 495, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 494, - "mutability": "mutable", - "name": "proposalId", - "nameLocation": "4479:10:2", - "nodeType": "VariableDeclaration", - "scope": 505, - "src": "4471:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 493, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4471:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4470:20:2" - }, - "returnParameters": { - "id": 499, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 498, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 505, - "src": "4514:15:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal" - }, - "typeName": { - "id": 497, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 496, - "name": "Proposal", - "nameLocations": [ - "4514:8:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1014, - "src": "4514:8:2" - }, - "referencedDeclaration": 1014, - "src": "4514:8:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_storage_ptr", - "typeString": "struct IProposalStruct.Proposal" - } - }, - "visibility": "internal" - } - ], - "src": "4513:17:2" - }, - "scope": 506, - "src": "4450:126:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 507, - "src": "362:4216:2", - "usedErrors": [ - 13, - 18 - ], - "usedEvents": [ - 24, - 257, - 263, - 269, - 279 - ] - } - ], - "src": "32:4547:2" - }, - "id": 2 - }, - "contracts/ServiceRegistry.sol": { - "ast": { - "absolutePath": "contracts/ServiceRegistry.sol", - "exportedSymbols": { - "Context": [ - 177 - ], - "Ownable": [ - 147 - ], - "ServiceRegistry": [ - 682 - ] - }, - "id": 683, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 508, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "32:24:3" - }, - { - "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", - "file": "@openzeppelin/contracts/access/Ownable.sol", - "id": 509, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 683, - "sourceUnit": 148, - "src": "58:52:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 511, - "name": "Ownable", - "nameLocations": [ - "284:7:3" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 147, - "src": "284:7:3" - }, - "id": 512, - "nodeType": "InheritanceSpecifier", - "src": "284:7:3" - } - ], - "canonicalName": "ServiceRegistry", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 510, - "nodeType": "StructuredDocumentation", - "src": "111:144:3", - "text": " @title ServiceRegistry\n @author leonprou\n @notice A smart contract that stores information about the services provided by agents." - }, - "fullyImplemented": true, - "id": 682, - "linearizedBaseContracts": [ - 682, - 147, - 177 - ], - "name": "ServiceRegistry", - "nameLocation": "265:15:3", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "ServiceRegistry.Service", - "id": 519, - "members": [ - { - "constant": false, - "id": 514, - "mutability": "mutable", - "name": "name", - "nameLocation": "330:4:3", - "nodeType": "VariableDeclaration", - "scope": 519, - "src": "323:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 513, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "323:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 516, - "mutability": "mutable", - "name": "category", - "nameLocation": "351:8:3", - "nodeType": "VariableDeclaration", - "scope": 519, - "src": "344:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 515, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "344:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 518, - "mutability": "mutable", - "name": "description", - "nameLocation": "376:11:3", - "nodeType": "VariableDeclaration", - "scope": 519, - "src": "369:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 517, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "369:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "name": "Service", - "nameLocation": "305:7:3", - "nodeType": "StructDefinition", - "scope": 682, - "src": "298:96:3", - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "3017ba09", - "id": 524, - "mutability": "mutable", - "name": "services", - "nameLocation": "434:8:3", - "nodeType": "VariableDeclaration", - "scope": 682, - "src": "400:42:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Service_$519_storage_$", - "typeString": "mapping(string => struct ServiceRegistry.Service)" - }, - "typeName": { - "id": 523, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 520, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "408:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "nodeType": "Mapping", - "src": "400:26:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Service_$519_storage_$", - "typeString": "mapping(string => struct ServiceRegistry.Service)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 522, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 521, - "name": "Service", - "nameLocations": [ - "418:7:3" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 519, - "src": "418:7:3" - }, - "referencedDeclaration": 519, - "src": "418:7:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage_ptr", - "typeString": "struct ServiceRegistry.Service" - } - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "06237526", - "id": 526, - "mutability": "mutable", - "name": "serviceCount", - "nameLocation": "463:12:3", - "nodeType": "VariableDeclaration", - "scope": 682, - "src": "448:27:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 525, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "448:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "anonymous": false, - "eventSelector": "c182fe36565be4905be53a8ed353f07898b528f1625e778edf77c13674806486", - "id": 534, - "name": "ServiceRegistered", - "nameLocation": "488:17:3", - "nodeType": "EventDefinition", - "parameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 528, - "indexed": false, - "mutability": "mutable", - "name": "name", - "nameLocation": "513:4:3", - "nodeType": "VariableDeclaration", - "scope": 534, - "src": "506:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 527, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "506:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 530, - "indexed": false, - "mutability": "mutable", - "name": "category", - "nameLocation": "526:8:3", - "nodeType": "VariableDeclaration", - "scope": 534, - "src": "519:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 529, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "519:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 532, - "indexed": false, - "mutability": "mutable", - "name": "description", - "nameLocation": "543:11:3", - "nodeType": "VariableDeclaration", - "scope": 534, - "src": "536:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 531, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "536:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "505:50:3" - }, - "src": "482:74:3" - }, - { - "anonymous": false, - "eventSelector": "4cd09e35844ccdf25aac9862af453cedf05d8a8b765f2763be8373b55215df8d", - "id": 542, - "name": "ServiceUpdated", - "nameLocation": "567:14:3", - "nodeType": "EventDefinition", - "parameters": { - "id": 541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 536, - "indexed": false, - "mutability": "mutable", - "name": "name", - "nameLocation": "589:4:3", - "nodeType": "VariableDeclaration", - "scope": 542, - "src": "582:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 535, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "582:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 538, - "indexed": false, - "mutability": "mutable", - "name": "category", - "nameLocation": "602:8:3", - "nodeType": "VariableDeclaration", - "scope": 542, - "src": "595:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 537, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "595:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 540, - "indexed": false, - "mutability": "mutable", - "name": "description", - "nameLocation": "619:11:3", - "nodeType": "VariableDeclaration", - "scope": 542, - "src": "612:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 539, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "612:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "581:50:3" - }, - "src": "561:71:3" - }, - { - "body": { - "id": 549, - "nodeType": "Block", - "src": "672:2:3", - "statements": [] - }, - "id": 550, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "expression": { - "id": 545, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "660:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "664:6:3", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "660:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 547, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 544, - "name": "Ownable", - "nameLocations": [ - "652:7:3" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 147, - "src": "652:7:3" - }, - "nodeType": "ModifierInvocation", - "src": "652:19:3" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 543, - "nodeType": "ParameterList", - "parameters": [], - "src": "649:2:3" - }, - "returnParameters": { - "id": 548, - "nodeType": "ParameterList", - "parameters": [], - "src": "672:0:3" - }, - "scope": 682, - "src": "638:36:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 600, - "nodeType": "Block", - "src": "996:382:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1014:31:3", - "subExpression": { - "arguments": [ - { - "id": 568, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 553, - "src": "1040:4:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "id": 566, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "1015:4:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", - "typeString": "contract ServiceRegistry" - } - }, - "id": 567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1020:19:3", - "memberName": "isServiceRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 645, - "src": "1015:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_bool_$", - "typeString": "function (string memory) view external returns (bool)" - } - }, - "id": 569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1015:30:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "5365727669636520616c72656164792072656769737465726564", - "id": 571, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1047:28:3", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ac2c61739514b5f463c314c2780e64fc7747cb6b4d2c3e9147a35ee5c42aeefa", - "typeString": "literal_string \"Service already registered\"" - }, - "value": "Service already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ac2c61739514b5f463c314c2780e64fc7747cb6b4d2c3e9147a35ee5c42aeefa", - "typeString": "literal_string \"Service already registered\"" - } - ], - "id": 565, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1006:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1006:70:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 573, - "nodeType": "ExpressionStatement", - "src": "1006:70:3" - }, - { - "assignments": [ - 576 - ], - "declarations": [ - { - "constant": false, - "id": 576, - "mutability": "mutable", - "name": "service", - "nameLocation": "1102:7:3", - "nodeType": "VariableDeclaration", - "scope": 600, - "src": "1087:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_memory_ptr", - "typeString": "struct ServiceRegistry.Service" - }, - "typeName": { - "id": 575, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 574, - "name": "Service", - "nameLocations": [ - "1087:7:3" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 519, - "src": "1087:7:3" - }, - "referencedDeclaration": 519, - "src": "1087:7:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage_ptr", - "typeString": "struct ServiceRegistry.Service" - } - }, - "visibility": "internal" - } - ], - "id": 582, - "initialValue": { - "arguments": [ - { - "id": 578, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 553, - "src": "1140:4:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 579, - "name": "category", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 555, - "src": "1168:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 580, - "name": "description", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 557, - "src": "1203:11:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 577, - "name": "Service", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "1112:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Service_$519_storage_ptr_$", - "typeString": "type(struct ServiceRegistry.Service storage pointer)" - } - }, - "id": 581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "1134:4:3", - "1158:8:3", - "1190:11:3" - ], - "names": [ - "name", - "category", - "description" - ], - "nodeType": "FunctionCall", - "src": "1112:113:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_memory_ptr", - "typeString": "struct ServiceRegistry.Service memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1087:138:3" - }, - { - "expression": { - "id": 587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 583, - "name": "services", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "1236:8:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Service_$519_storage_$", - "typeString": "mapping(string memory => struct ServiceRegistry.Service storage ref)" - } - }, - "id": 585, - "indexExpression": { - "id": 584, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 553, - "src": "1245:4:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1236:14:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage", - "typeString": "struct ServiceRegistry.Service storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 586, - "name": "service", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 576, - "src": "1253:7:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_memory_ptr", - "typeString": "struct ServiceRegistry.Service memory" - } - }, - "src": "1236:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage", - "typeString": "struct ServiceRegistry.Service storage ref" - } - }, - "id": 588, - "nodeType": "ExpressionStatement", - "src": "1236:24:3" - }, - { - "eventCall": { - "arguments": [ - { - "id": 590, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 553, - "src": "1294:4:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 591, - "name": "category", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 555, - "src": "1300:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 592, - "name": "description", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 557, - "src": "1310:11:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 589, - "name": "ServiceRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 534, - "src": "1276:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory,string memory,string memory)" - } - }, - "id": 593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1276:46:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 594, - "nodeType": "EmitStatement", - "src": "1271:51:3" - }, - { - "expression": { - "id": 596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1333:14:3", - "subExpression": { - "id": 595, - "name": "serviceCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 526, - "src": "1333:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 597, - "nodeType": "ExpressionStatement", - "src": "1333:14:3" - }, - { - "expression": { - "id": 598, - "name": "service", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 576, - "src": "1364:7:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_memory_ptr", - "typeString": "struct ServiceRegistry.Service memory" - } - }, - "functionReturnParameters": 564, - "id": 599, - "nodeType": "Return", - "src": "1357:14:3" - } - ] - }, - "documentation": { - "id": 551, - "nodeType": "StructuredDocumentation", - "src": "680:171:3", - "text": " @dev Registers a new service with the given name and price.\n @param name The name of the service.\n @return The ID of the registered service." - }, - "functionSelector": "ef57d884", - "id": 601, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 560, - "kind": "modifierInvocation", - "modifierName": { - "id": 559, - "name": "onlyOwner", - "nameLocations": [ - "961:9:3" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 58, - "src": "961:9:3" - }, - "nodeType": "ModifierInvocation", - "src": "961:9:3" - } - ], - "name": "registerService", - "nameLocation": "865:15:3", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 553, - "mutability": "mutable", - "name": "name", - "nameLocation": "895:4:3", - "nodeType": "VariableDeclaration", - "scope": 601, - "src": "881:18:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 552, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "881:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 555, - "mutability": "mutable", - "name": "category", - "nameLocation": "915:8:3", - "nodeType": "VariableDeclaration", - "scope": 601, - "src": "901:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 554, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "901:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 557, - "mutability": "mutable", - "name": "description", - "nameLocation": "939:11:3", - "nodeType": "VariableDeclaration", - "scope": 601, - "src": "925:25:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 556, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "925:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "880:71:3" - }, - "returnParameters": { - "id": 564, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 563, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 601, - "src": "980:14:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_memory_ptr", - "typeString": "struct ServiceRegistry.Service" - }, - "typeName": { - "id": 562, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 561, - "name": "Service", - "nameLocations": [ - "980:7:3" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 519, - "src": "980:7:3" - }, - "referencedDeclaration": 519, - "src": "980:7:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage_ptr", - "typeString": "struct ServiceRegistry.Service" - } - }, - "visibility": "internal" - } - ], - "src": "979:16:3" - }, - "scope": 682, - "src": "856:522:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 614, - "nodeType": "Block", - "src": "1626:38:3", - "statements": [ - { - "expression": { - "baseExpression": { - "id": 610, - "name": "services", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "1643:8:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Service_$519_storage_$", - "typeString": "mapping(string memory => struct ServiceRegistry.Service storage ref)" - } - }, - "id": 612, - "indexExpression": { - "id": 611, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 604, - "src": "1652:4:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1643:14:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage", - "typeString": "struct ServiceRegistry.Service storage ref" - } - }, - "functionReturnParameters": 609, - "id": 613, - "nodeType": "Return", - "src": "1636:21:3" - } - ] - }, - "documentation": { - "id": 602, - "nodeType": "StructuredDocumentation", - "src": "1384:158:3", - "text": " @dev Retrieves the details of a service.\n @param name The name of the service to retrieve.\n @return The details of the service." - }, - "functionSelector": "794758be", - "id": 615, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getService", - "nameLocation": "1556:10:3", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 605, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 604, - "mutability": "mutable", - "name": "name", - "nameLocation": "1581:4:3", - "nodeType": "VariableDeclaration", - "scope": 615, - "src": "1567:18:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 603, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1567:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1566:20:3" - }, - "returnParameters": { - "id": 609, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 608, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 615, - "src": "1610:14:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_memory_ptr", - "typeString": "struct ServiceRegistry.Service" - }, - "typeName": { - "id": 607, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 606, - "name": "Service", - "nameLocations": [ - "1610:7:3" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 519, - "src": "1610:7:3" - }, - "referencedDeclaration": 519, - "src": "1610:7:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage_ptr", - "typeString": "struct ServiceRegistry.Service" - } - }, - "visibility": "internal" - } - ], - "src": "1609:16:3" - }, - "scope": 682, - "src": "1547:117:3", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 644, - "nodeType": "Block", - "src": "1748:127:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "arguments": [ - { - "id": 625, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 617, - "src": "1772:4:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 624, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1766:5:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 623, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1766:5:3", - "typeDescriptions": {} - } - }, - "id": 626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1766:11:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 627, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1778:6:3", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1766:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1787:1:3", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1766:22:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "496e76616c69642073657276696365206e616d65", - "id": 630, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1790:22:3", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b193a272406cc908bf089bbfd62bbee3e6f0f99dfc3103f9a3b8b4618c96abfe", - "typeString": "literal_string \"Invalid service name\"" - }, - "value": "Invalid service name" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b193a272406cc908bf089bbfd62bbee3e6f0f99dfc3103f9a3b8b4618c96abfe", - "typeString": "literal_string \"Invalid service name\"" - } - ], - "id": 622, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1758:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1758:55:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 632, - "nodeType": "ExpressionStatement", - "src": "1758:55:3" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "arguments": [ - { - "expression": { - "baseExpression": { - "id": 635, - "name": "services", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "1837:8:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Service_$519_storage_$", - "typeString": "mapping(string memory => struct ServiceRegistry.Service storage ref)" - } - }, - "id": 637, - "indexExpression": { - "id": 636, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 617, - "src": "1846:4:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1837:14:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage", - "typeString": "struct ServiceRegistry.Service storage ref" - } - }, - "id": 638, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1852:4:3", - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 514, - "src": "1837:19:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 634, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1831:5:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 633, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1831:5:3", - "typeDescriptions": {} - } - }, - "id": 639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1831:26:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1858:6:3", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1831:33:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1867:1:3", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1831:37:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 621, - "id": 643, - "nodeType": "Return", - "src": "1824:44:3" - } - ] - }, - "functionSelector": "b405166b", - "id": 645, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isServiceRegistered", - "nameLocation": "1679:19:3", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 618, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 617, - "mutability": "mutable", - "name": "name", - "nameLocation": "1713:4:3", - "nodeType": "VariableDeclaration", - "scope": 645, - "src": "1699:18:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 616, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1699:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1698:20:3" - }, - "returnParameters": { - "id": 621, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 620, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 645, - "src": "1742:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 619, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1742:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "1741:6:3" - }, - "scope": 682, - "src": "1670:205:3", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 680, - "nodeType": "Block", - "src": "1994:282:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 659, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "2037:4:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "id": 657, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "2012:4:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", - "typeString": "contract ServiceRegistry" - } - }, - "id": 658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2017:19:3", - "memberName": "isServiceRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 645, - "src": "2012:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_bool_$", - "typeString": "function (string memory) view external returns (bool)" - } - }, - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2012:30:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "53657276696365206e6f742072656769737465726564", - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2044:24:3", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6", - "typeString": "literal_string \"Service not registered\"" - }, - "value": "Service not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6", - "typeString": "literal_string \"Service not registered\"" - } - ], - "id": 656, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2004:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2004:65:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 663, - "nodeType": "ExpressionStatement", - "src": "2004:65:3" - }, - { - "expression": { - "id": 672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 664, - "name": "services", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "2080:8:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Service_$519_storage_$", - "typeString": "mapping(string memory => struct ServiceRegistry.Service storage ref)" - } - }, - "id": 666, - "indexExpression": { - "id": 665, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "2089:4:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2080:14:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage", - "typeString": "struct ServiceRegistry.Service storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 668, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "2125:4:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 669, - "name": "category", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 649, - "src": "2153:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 670, - "name": "description", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 651, - "src": "2188:11:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 667, - "name": "Service", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "2097:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Service_$519_storage_ptr_$", - "typeString": "type(struct ServiceRegistry.Service storage pointer)" - } - }, - "id": 671, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "2119:4:3", - "2143:8:3", - "2175:11:3" - ], - "names": [ - "name", - "category", - "description" - ], - "nodeType": "FunctionCall", - "src": "2097:113:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_memory_ptr", - "typeString": "struct ServiceRegistry.Service memory" - } - }, - "src": "2080:130:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage", - "typeString": "struct ServiceRegistry.Service storage ref" - } - }, - "id": 673, - "nodeType": "ExpressionStatement", - "src": "2080:130:3" - }, - { - "eventCall": { - "arguments": [ - { - "id": 675, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "2241:4:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 676, - "name": "category", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 649, - "src": "2247:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 677, - "name": "description", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 651, - "src": "2257:11:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 674, - "name": "ServiceUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 542, - "src": "2226:14:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory,string memory,string memory)" - } - }, - "id": 678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2226:43:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 679, - "nodeType": "EmitStatement", - "src": "2221:48:3" - } - ] - }, - "functionSelector": "7f3ed719", - "id": 681, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 654, - "kind": "modifierInvocation", - "modifierName": { - "id": 653, - "name": "onlyOwner", - "nameLocations": [ - "1984:9:3" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 58, - "src": "1984:9:3" - }, - "nodeType": "ModifierInvocation", - "src": "1984:9:3" - } - ], - "name": "updateService", - "nameLocation": "1890:13:3", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 652, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 647, - "mutability": "mutable", - "name": "name", - "nameLocation": "1918:4:3", - "nodeType": "VariableDeclaration", - "scope": 681, - "src": "1904:18:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 646, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1904:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 649, - "mutability": "mutable", - "name": "category", - "nameLocation": "1938:8:3", - "nodeType": "VariableDeclaration", - "scope": 681, - "src": "1924:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 648, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1924:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 651, - "mutability": "mutable", - "name": "description", - "nameLocation": "1962:11:3", - "nodeType": "VariableDeclaration", - "scope": 681, - "src": "1948:25:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 650, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1948:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1903:71:3" - }, - "returnParameters": { - "id": 655, - "nodeType": "ParameterList", - "parameters": [], - "src": "1994:0:3" - }, - "scope": 682, - "src": "1881:395:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 683, - "src": "256:2022:3", - "usedErrors": [ - 13, - 18 - ], - "usedEvents": [ - 24, - 534, - 542 - ] - } - ], - "src": "32:2247:3" - }, - "id": 3 - }, - "contracts/TaskRegistry.sol": { - "ast": { - "absolutePath": "contracts/TaskRegistry.sol", - "exportedSymbols": { - "AgentsRegistry": [ - 506 - ], - "Context": [ - 177 - ], - "IProposalStruct": [ - 1015 - ], - "Ownable": [ - 147 - ], - "ServiceRegistry": [ - 682 - ], - "TaskRegistry": [ - 1003 - ], - "TransferHelper": [ - 1175 - ] - }, - "id": 1004, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 684, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "32:24:4" - }, - { - "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", - "file": "@openzeppelin/contracts/access/Ownable.sol", - "id": 685, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1004, - "sourceUnit": 148, - "src": "58:52:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/interfaces/IProposalStruct.sol", - "file": "./interfaces/IProposalStruct.sol", - "id": 686, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1004, - "sourceUnit": 1016, - "src": "111:42:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/AgentsRegistry.sol", - "file": "./AgentsRegistry.sol", - "id": 687, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1004, - "sourceUnit": 507, - "src": "154:30:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "contracts/lib/TransferHelper.sol", - "file": "./lib/TransferHelper.sol", - "id": 688, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1004, - "sourceUnit": 1176, - "src": "185:34:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 690, - "name": "Ownable", - "nameLocations": [ - "405:7:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 147, - "src": "405:7:4" - }, - "id": 691, - "nodeType": "InheritanceSpecifier", - "src": "405:7:4" - }, - { - "baseName": { - "id": 692, - "name": "IProposalStruct", - "nameLocations": [ - "414:15:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1015, - "src": "414:15:4" - }, - "id": 693, - "nodeType": "InheritanceSpecifier", - "src": "414:15:4" - } - ], - "canonicalName": "TaskRegistry", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 689, - "nodeType": "StructuredDocumentation", - "src": "221:158:4", - "text": " @title TaskRegistry\n @author leonprou\n @notice A smart contract that stores information about the tasks issued for the agent service providers." - }, - "fullyImplemented": true, - "id": 1003, - "linearizedBaseContracts": [ - 1003, - 1015, - 147, - 177 - ], - "name": "TaskRegistry", - "nameLocation": "389:12:4", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "TaskRegistry.TaskStatus", - "id": 698, - "members": [ - { - "id": 694, - "name": "CREATED", - "nameLocation": "455:7:4", - "nodeType": "EnumValue", - "src": "455:7:4" - }, - { - "id": 695, - "name": "ASSIGNED", - "nameLocation": "464:8:4", - "nodeType": "EnumValue", - "src": "464:8:4" - }, - { - "id": 696, - "name": "COMPLETED", - "nameLocation": "474:9:4", - "nodeType": "EnumValue", - "src": "474:9:4" - }, - { - "id": 697, - "name": "FAILED", - "nameLocation": "485:6:4", - "nodeType": "EnumValue", - "src": "485:6:4" - } - ], - "name": "TaskStatus", - "nameLocation": "442:10:4", - "nodeType": "EnumDefinition", - "src": "437:56:4" - }, - { - "canonicalName": "TaskRegistry.TaskData", - "id": 712, - "members": [ - { - "constant": false, - "id": 700, - "mutability": "mutable", - "name": "id", - "nameLocation": "533:2:4", - "nodeType": "VariableDeclaration", - "scope": 712, - "src": "525:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 699, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "525:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 702, - "mutability": "mutable", - "name": "prompt", - "nameLocation": "552:6:4", - "nodeType": "VariableDeclaration", - "scope": 712, - "src": "545:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 701, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "545:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 704, - "mutability": "mutable", - "name": "issuer", - "nameLocation": "576:6:4", - "nodeType": "VariableDeclaration", - "scope": 712, - "src": "568:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 703, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "568:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 707, - "mutability": "mutable", - "name": "status", - "nameLocation": "603:6:4", - "nodeType": "VariableDeclaration", - "scope": 712, - "src": "592:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - }, - "typeName": { - "id": 706, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 705, - "name": "TaskStatus", - "nameLocations": [ - "592:10:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 698, - "src": "592:10:4" - }, - "referencedDeclaration": 698, - "src": "592:10:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 709, - "mutability": "mutable", - "name": "assignee", - "nameLocation": "627:8:4", - "nodeType": "VariableDeclaration", - "scope": 712, - "src": "619:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 708, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "619:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 711, - "mutability": "mutable", - "name": "proposalId", - "nameLocation": "653:10:4", - "nodeType": "VariableDeclaration", - "scope": 712, - "src": "645:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 710, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "645:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "TaskData", - "nameLocation": "506:8:4", - "nodeType": "StructDefinition", - "scope": 1003, - "src": "499:171:4", - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "8d977672", - "id": 717, - "mutability": "mutable", - "name": "tasks", - "nameLocation": "716:5:4", - "nodeType": "VariableDeclaration", - "scope": 1003, - "src": "680:41:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$712_storage_$", - "typeString": "mapping(uint256 => struct TaskRegistry.TaskData)" - }, - "typeName": { - "id": 716, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 713, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "688:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "680:28:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$712_storage_$", - "typeString": "mapping(uint256 => struct TaskRegistry.TaskData)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 715, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 714, - "name": "TaskData", - "nameLocations": [ - "699:8:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 712, - "src": "699:8:4" - }, - "referencedDeclaration": 712, - "src": "699:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData" - } - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "2a2b3a9d", - "id": 722, - "mutability": "mutable", - "name": "issuerTasks", - "nameLocation": "764:11:4", - "nodeType": "VariableDeclaration", - "scope": 1003, - "src": "727:48:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 721, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 718, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "735:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "727:29:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "baseType": { - "id": 719, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "746:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 720, - "nodeType": "ArrayTypeName", - "src": "746:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "visibility": "public" - }, - { - "constant": false, - "id": 724, - "mutability": "mutable", - "name": "nextTaskId", - "nameLocation": "797:10:4", - "nodeType": "VariableDeclaration", - "scope": 1003, - "src": "781:26:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 723, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "781:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "private" - }, - { - "constant": false, - "functionSelector": "0d1cfcae", - "id": 727, - "mutability": "mutable", - "name": "agentRegistry", - "nameLocation": "835:13:4", - "nodeType": "VariableDeclaration", - "scope": 1003, - "src": "813:35:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", - "typeString": "contract AgentsRegistry" - }, - "typeName": { - "id": 726, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 725, - "name": "AgentsRegistry", - "nameLocations": [ - "813:14:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 506, - "src": "813:14:4" - }, - "referencedDeclaration": 506, - "src": "813:14:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", - "typeString": "contract AgentsRegistry" - } - }, - "visibility": "public" - }, - { - "body": { - "id": 741, - "nodeType": "Block", - "src": "917:47:4", - "statements": [ - { - "expression": { - "id": 739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 737, - "name": "agentRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "927:13:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", - "typeString": "contract AgentsRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 738, - "name": "_agentRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "943:14:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", - "typeString": "contract AgentsRegistry" - } - }, - "src": "927:30:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", - "typeString": "contract AgentsRegistry" - } - }, - "id": 740, - "nodeType": "ExpressionStatement", - "src": "927:30:4" - } - ] - }, - "id": 742, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "expression": { - "id": 733, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "905:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "909:6:4", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "905:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 735, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 732, - "name": "Ownable", - "nameLocations": [ - "897:7:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 147, - "src": "897:7:4" - }, - "nodeType": "ModifierInvocation", - "src": "897:19:4" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 731, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 730, - "mutability": "mutable", - "name": "_agentRegistry", - "nameLocation": "881:14:4", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "866:29:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", - "typeString": "contract AgentsRegistry" - }, - "typeName": { - "id": 729, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 728, - "name": "AgentsRegistry", - "nameLocations": [ - "866:14:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 506, - "src": "866:14:4" - }, - "referencedDeclaration": 506, - "src": "866:14:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", - "typeString": "contract AgentsRegistry" - } - }, - "visibility": "internal" - } - ], - "src": "865:31:4" - }, - "returnParameters": { - "id": 736, - "nodeType": "ParameterList", - "parameters": [], - "src": "917:0:4" - }, - "scope": 1003, - "src": "854:110:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "anonymous": false, - "eventSelector": "5c005bbbb9da508c37935b1a9f270836e0be1fd11d4d47119f925a3ff33820e9", - "id": 754, - "name": "TaskCreated", - "nameLocation": "980:11:4", - "nodeType": "EventDefinition", - "parameters": { - "id": 753, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 744, - "indexed": true, - "mutability": "mutable", - "name": "issuer", - "nameLocation": "1008:6:4", - "nodeType": "VariableDeclaration", - "scope": 754, - "src": "992:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 743, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "992:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 746, - "indexed": true, - "mutability": "mutable", - "name": "assignee", - "nameLocation": "1032:8:4", - "nodeType": "VariableDeclaration", - "scope": 754, - "src": "1016:24:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 745, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1016:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 748, - "indexed": false, - "mutability": "mutable", - "name": "taskId", - "nameLocation": "1050:6:4", - "nodeType": "VariableDeclaration", - "scope": 754, - "src": "1042:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 747, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1042:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 750, - "indexed": false, - "mutability": "mutable", - "name": "proposalId", - "nameLocation": "1066:10:4", - "nodeType": "VariableDeclaration", - "scope": 754, - "src": "1058:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 749, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1058:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 752, - "indexed": false, - "mutability": "mutable", - "name": "prompt", - "nameLocation": "1085:6:4", - "nodeType": "VariableDeclaration", - "scope": 754, - "src": "1078:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 751, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1078:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "991:101:4" - }, - "src": "974:119:4" - }, - { - "anonymous": false, - "eventSelector": "d76ef80cfb1ce0c70d0cbc0ab1b9f2f298a78f9fca5c841be963ae9a5d721bb4", - "id": 761, - "name": "TaskStatusChanged", - "nameLocation": "1104:17:4", - "nodeType": "EventDefinition", - "parameters": { - "id": 760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 756, - "indexed": true, - "mutability": "mutable", - "name": "taskId", - "nameLocation": "1138:6:4", - "nodeType": "VariableDeclaration", - "scope": 761, - "src": "1122:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 755, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1122:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 759, - "indexed": false, - "mutability": "mutable", - "name": "status", - "nameLocation": "1157:6:4", - "nodeType": "VariableDeclaration", - "scope": 761, - "src": "1146:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - }, - "typeName": { - "id": 758, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 757, - "name": "TaskStatus", - "nameLocations": [ - "1146:10:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 698, - "src": "1146:10:4" - }, - "referencedDeclaration": 698, - "src": "1146:10:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "visibility": "internal" - } - ], - "src": "1121:43:4" - }, - "src": "1098:67:4" - }, - { - "anonymous": false, - "eventSelector": "52476d55ecef5cf13caa64038f297fe6bbf865d9584a98b8722a15a6d5db128f", - "id": 767, - "name": "TaskAssigned", - "nameLocation": "1176:12:4", - "nodeType": "EventDefinition", - "parameters": { - "id": 766, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 763, - "indexed": true, - "mutability": "mutable", - "name": "taskId", - "nameLocation": "1205:6:4", - "nodeType": "VariableDeclaration", - "scope": 767, - "src": "1189:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 762, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1189:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 765, - "indexed": true, - "mutability": "mutable", - "name": "agent", - "nameLocation": "1229:5:4", - "nodeType": "VariableDeclaration", - "scope": 767, - "src": "1213:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 764, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1213:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1188:47:4" - }, - "src": "1170:66:4" - }, - { - "anonymous": false, - "eventSelector": "f70b6e01390661fcb31e942764450e3764313c0269bbb4427441a769dd618802", - "id": 774, - "name": "ProposalApproved", - "nameLocation": "1247:16:4", - "nodeType": "EventDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 769, - "indexed": true, - "mutability": "mutable", - "name": "taskId", - "nameLocation": "1280:6:4", - "nodeType": "VariableDeclaration", - "scope": 774, - "src": "1264:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 768, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1264:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "indexed": false, - "mutability": "mutable", - "name": "proposal", - "nameLocation": "1297:8:4", - "nodeType": "VariableDeclaration", - "scope": 774, - "src": "1288:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal" - }, - "typeName": { - "id": 771, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 770, - "name": "Proposal", - "nameLocations": [ - "1288:8:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1014, - "src": "1288:8:4" - }, - "referencedDeclaration": 1014, - "src": "1288:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_storage_ptr", - "typeString": "struct IProposalStruct.Proposal" - } - }, - "visibility": "internal" - } - ], - "src": "1263:43:4" - }, - "src": "1241:66:4" - }, - { - "anonymous": false, - "eventSelector": "7e6ffc29fe63759579d96a0457a8f2e08339aca345bd469f59dc2e61f82a5aeb", - "id": 780, - "name": "TaskCompleted", - "nameLocation": "1318:13:4", - "nodeType": "EventDefinition", - "parameters": { - "id": 779, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 776, - "indexed": true, - "mutability": "mutable", - "name": "taskId", - "nameLocation": "1348:6:4", - "nodeType": "VariableDeclaration", - "scope": 780, - "src": "1332:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 775, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1332:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 778, - "indexed": false, - "mutability": "mutable", - "name": "result", - "nameLocation": "1363:6:4", - "nodeType": "VariableDeclaration", - "scope": 780, - "src": "1356:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 777, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1356:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1331:39:4" - }, - "src": "1312:59:4" - }, - { - "body": { - "id": 878, - "nodeType": "Block", - "src": "1700:601:4", - "statements": [ - { - "assignments": [ - 793 - ], - "declarations": [ - { - "constant": false, - "id": 793, - "mutability": "mutable", - "name": "proposal", - "nameLocation": "1726:8:4", - "nodeType": "VariableDeclaration", - "scope": 878, - "src": "1710:24:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal" - }, - "typeName": { - "id": 792, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 791, - "name": "Proposal", - "nameLocations": [ - "1710:8:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1014, - "src": "1710:8:4" - }, - "referencedDeclaration": 1014, - "src": "1710:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_storage_ptr", - "typeString": "struct IProposalStruct.Proposal" - } - }, - "visibility": "internal" - } - ], - "id": 798, - "initialValue": { - "arguments": [ - { - "id": 796, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 785, - "src": "1763:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 794, - "name": "agentRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "1737:13:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", - "typeString": "contract AgentsRegistry" - } - }, - "id": 795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1751:11:4", - "memberName": "getProposal", - "nodeType": "MemberAccess", - "referencedDeclaration": 505, - "src": "1737:25:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Proposal_$1014_memory_ptr_$", - "typeString": "function (uint256) view external returns (struct IProposalStruct.Proposal memory)" - } - }, - "id": 797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1737:37:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1710:64:4" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 804, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 800, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 793, - "src": "1792:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - }, - "id": 801, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1801:5:4", - "memberName": "price", - "nodeType": "MemberAccess", - "referencedDeclaration": 1011, - "src": "1792:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 802, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1810:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1814:5:4", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "1810:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1792:27:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "496e76616c6964207072696365", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1821:15:4", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_eaa01effe6abd0543e9529d3961b0f5d26980f0661c156a79b89c39a093463f7", - "typeString": "literal_string \"Invalid price\"" - }, - "value": "Invalid price" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_eaa01effe6abd0543e9529d3961b0f5d26980f0661c156a79b89c39a093463f7", - "typeString": "literal_string \"Invalid price\"" - } - ], - "id": 799, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1784:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1784:53:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 807, - "nodeType": "ExpressionStatement", - "src": "1784:53:4" - }, - { - "expression": { - "id": 809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1848:12:4", - "subExpression": { - "id": 808, - "name": "nextTaskId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "1848:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 810, - "nodeType": "ExpressionStatement", - "src": "1848:12:4" - }, - { - "assignments": [ - 813 - ], - "declarations": [ - { - "constant": false, - "id": 813, - "mutability": "mutable", - "name": "task", - "nameLocation": "1887:4:4", - "nodeType": "VariableDeclaration", - "scope": 878, - "src": "1870:21:4", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData" - }, - "typeName": { - "id": 812, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 811, - "name": "TaskData", - "nameLocations": [ - "1870:8:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 712, - "src": "1870:8:4" - }, - "referencedDeclaration": 712, - "src": "1870:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData" - } - }, - "visibility": "internal" - } - ], - "id": 817, - "initialValue": { - "baseExpression": { - "id": 814, - "name": "tasks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "1894:5:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$712_storage_$", - "typeString": "mapping(uint256 => struct TaskRegistry.TaskData storage ref)" - } - }, - "id": 816, - "indexExpression": { - "id": 815, - "name": "nextTaskId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "1900:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1894:17:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage", - "typeString": "struct TaskRegistry.TaskData storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1870:41:4" - }, - { - "expression": { - "id": 822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 818, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "1921:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "id": 820, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "1926:2:4", - "memberName": "id", - "nodeType": "MemberAccess", - "referencedDeclaration": 700, - "src": "1921:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 821, - "name": "nextTaskId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "1931:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1921:20:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 823, - "nodeType": "ExpressionStatement", - "src": "1921:20:4" - }, - { - "expression": { - "id": 828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 824, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "1951:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "id": 826, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "1956:6:4", - "memberName": "prompt", - "nodeType": "MemberAccess", - "referencedDeclaration": 702, - "src": "1951:11:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 827, - "name": "prompt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 783, - "src": "1965:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1951:20:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 829, - "nodeType": "ExpressionStatement", - "src": "1951:20:4" - }, - { - "expression": { - "id": 835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 830, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "1981:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "id": 832, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "1986:6:4", - "memberName": "issuer", - "nodeType": "MemberAccess", - "referencedDeclaration": 704, - "src": "1981:11:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 833, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1995:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 834, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1999:6:4", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1995:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1981:24:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 836, - "nodeType": "ExpressionStatement", - "src": "1981:24:4" - }, - { - "expression": { - "id": 841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 837, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "2015:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "id": 839, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2020:10:4", - "memberName": "proposalId", - "nodeType": "MemberAccess", - "referencedDeclaration": 711, - "src": "2015:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 840, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 785, - "src": "2033:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2015:28:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 842, - "nodeType": "ExpressionStatement", - "src": "2015:28:4" - }, - { - "expression": { - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 843, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "2053:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "id": 845, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2058:8:4", - "memberName": "assignee", - "nodeType": "MemberAccess", - "referencedDeclaration": 709, - "src": "2053:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 846, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 793, - "src": "2069:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - }, - "id": 847, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2078:6:4", - "memberName": "issuer", - "nodeType": "MemberAccess", - "referencedDeclaration": 1007, - "src": "2069:15:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2053:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 849, - "nodeType": "ExpressionStatement", - "src": "2053:31:4" - }, - { - "expression": { - "arguments": [ - { - "id": 855, - "name": "nextTaskId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "2123:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "baseExpression": { - "id": 850, - "name": "issuerTasks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "2094:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 853, - "indexExpression": { - "expression": { - "id": 851, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2106:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 852, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2110:6:4", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2106:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2094:23:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2118:4:4", - "memberName": "push", - "nodeType": "MemberAccess", - "src": "2094:28:4", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$", - "typeString": "function (uint256[] storage pointer,uint256)" - } - }, - "id": 856, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2094:40:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 857, - "nodeType": "ExpressionStatement", - "src": "2094:40:4" - }, - { - "expression": { - "id": 863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 858, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "2144:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "id": 860, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2149:6:4", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 707, - "src": "2144:11:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 861, - "name": "TaskStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "2158:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TaskStatus_$698_$", - "typeString": "type(enum TaskRegistry.TaskStatus)" - } - }, - "id": 862, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "2169:8:4", - "memberName": "ASSIGNED", - "nodeType": "MemberAccess", - "referencedDeclaration": 695, - "src": "2158:19:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "src": "2144:33:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "id": 864, - "nodeType": "ExpressionStatement", - "src": "2144:33:4" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 866, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2204:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2208:6:4", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2204:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 868, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 793, - "src": "2216:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - }, - "id": 869, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2225:6:4", - "memberName": "issuer", - "nodeType": "MemberAccess", - "referencedDeclaration": 1007, - "src": "2216:15:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 870, - "name": "nextTaskId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "2233:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 871, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 793, - "src": "2245:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - }, - "id": 872, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2254:10:4", - "memberName": "proposalId", - "nodeType": "MemberAccess", - "referencedDeclaration": 1013, - "src": "2245:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 873, - "name": "prompt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 783, - "src": "2266:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 865, - "name": "TaskCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 754, - "src": "2192:11:4", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,uint256,uint256,string memory)" - } - }, - "id": 874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2192:81:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 875, - "nodeType": "EmitStatement", - "src": "2187:86:4" - }, - { - "expression": { - "id": 876, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "2290:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "functionReturnParameters": 790, - "id": 877, - "nodeType": "Return", - "src": "2283:11:4" - } - ] - }, - "documentation": { - "id": 781, - "nodeType": "StructuredDocumentation", - "src": "1377:191:4", - "text": " @dev Creates a new task with the given prompt and task type.\n @param prompt The description or prompt of the task.\n @return taskId The ID of the newly created task." - }, - "functionSelector": "04fe2b34", - "id": 879, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createTask", - "nameLocation": "1582:10:4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 786, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 783, - "mutability": "mutable", - "name": "prompt", - "nameLocation": "1616:6:4", - "nodeType": "VariableDeclaration", - "scope": 879, - "src": "1602:20:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 782, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1602:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 785, - "mutability": "mutable", - "name": "proposalId", - "nameLocation": "1640:10:4", - "nodeType": "VariableDeclaration", - "scope": 879, - "src": "1632:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 784, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1632:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1592:64:4" - }, - "returnParameters": { - "id": 790, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 789, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 879, - "src": "1683:15:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_memory_ptr", - "typeString": "struct TaskRegistry.TaskData" - }, - "typeName": { - "id": 788, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 787, - "name": "TaskData", - "nameLocations": [ - "1683:8:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 712, - "src": "1683:8:4" - }, - "referencedDeclaration": 712, - "src": "1683:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData" - } - }, - "visibility": "internal" - } - ], - "src": "1682:17:4" - }, - "scope": 1003, - "src": "1573:728:4", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 948, - "nodeType": "Block", - "src": "2546:498:4", - "statements": [ - { - "assignments": [ - 889 - ], - "declarations": [ - { - "constant": false, - "id": 889, - "mutability": "mutable", - "name": "task", - "nameLocation": "2573:4:4", - "nodeType": "VariableDeclaration", - "scope": 948, - "src": "2556:21:4", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData" - }, - "typeName": { - "id": 888, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 887, - "name": "TaskData", - "nameLocations": [ - "2556:8:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 712, - "src": "2556:8:4" - }, - "referencedDeclaration": 712, - "src": "2556:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData" - } - }, - "visibility": "internal" - } - ], - "id": 893, - "initialValue": { - "baseExpression": { - "id": 890, - "name": "tasks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "2580:5:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$712_storage_$", - "typeString": "mapping(uint256 => struct TaskRegistry.TaskData storage ref)" - } - }, - "id": 892, - "indexExpression": { - "id": 891, - "name": "taskId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "2586:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2580:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage", - "typeString": "struct TaskRegistry.TaskData storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2556:37:4" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 895, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2611:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2615:6:4", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2611:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 897, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 889, - "src": "2625:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "id": 898, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2630:8:4", - "memberName": "assignee", - "nodeType": "MemberAccess", - "referencedDeclaration": 709, - "src": "2625:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2611:27:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "4e6f7420617574686f72697a6564", - "id": 900, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2640:16:4", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36", - "typeString": "literal_string \"Not authorized\"" - }, - "value": "Not authorized" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36", - "typeString": "literal_string \"Not authorized\"" - } - ], - "id": 894, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2603:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2603:54:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 902, - "nodeType": "ExpressionStatement", - "src": "2603:54:4" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 904, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 889, - "src": "2675:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "id": 905, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2680:6:4", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 707, - "src": "2675:11:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 906, - "name": "TaskStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "2690:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TaskStatus_$698_$", - "typeString": "type(enum TaskRegistry.TaskStatus)" - } - }, - "id": 907, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "2701:8:4", - "memberName": "ASSIGNED", - "nodeType": "MemberAccess", - "referencedDeclaration": 695, - "src": "2690:19:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "src": "2675:34:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "496e76616c6964207461736b20737461747573", - "id": 909, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2711:21:4", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_35c761622bcc8ab75f9adfaf21a4872a39cd06f2745d5488272d29f1f753f270", - "typeString": "literal_string \"Invalid task status\"" - }, - "value": "Invalid task status" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_35c761622bcc8ab75f9adfaf21a4872a39cd06f2745d5488272d29f1f753f270", - "typeString": "literal_string \"Invalid task status\"" - } - ], - "id": 903, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2667:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2667:66:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 911, - "nodeType": "ExpressionStatement", - "src": "2667:66:4" - }, - { - "expression": { - "id": 917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 912, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 889, - "src": "2744:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "id": 914, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2749:6:4", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 707, - "src": "2744:11:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 915, - "name": "TaskStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "2758:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TaskStatus_$698_$", - "typeString": "type(enum TaskRegistry.TaskStatus)" - } - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "2769:9:4", - "memberName": "COMPLETED", - "nodeType": "MemberAccess", - "referencedDeclaration": 696, - "src": "2758:20:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "src": "2744:34:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "id": 918, - "nodeType": "ExpressionStatement", - "src": "2744:34:4" - }, - { - "assignments": [ - 921 - ], - "declarations": [ - { - "constant": false, - "id": 921, - "mutability": "mutable", - "name": "proposal", - "nameLocation": "2804:8:4", - "nodeType": "VariableDeclaration", - "scope": 948, - "src": "2788:24:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal" - }, - "typeName": { - "id": 920, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 919, - "name": "Proposal", - "nameLocations": [ - "2788:8:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1014, - "src": "2788:8:4" - }, - "referencedDeclaration": 1014, - "src": "2788:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_storage_ptr", - "typeString": "struct IProposalStruct.Proposal" - } - }, - "visibility": "internal" - } - ], - "id": 927, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 924, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 889, - "src": "2841:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "id": 925, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2846:10:4", - "memberName": "proposalId", - "nodeType": "MemberAccess", - "referencedDeclaration": 711, - "src": "2841:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 922, - "name": "agentRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "2815:13:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", - "typeString": "contract AgentsRegistry" - } - }, - "id": 923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2829:11:4", - "memberName": "getProposal", - "nodeType": "MemberAccess", - "referencedDeclaration": 505, - "src": "2815:25:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Proposal_$1014_memory_ptr_$", - "typeString": "function (uint256) view external returns (struct IProposalStruct.Proposal memory)" - } - }, - "id": 926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2815:42:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2788:69:4" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 931, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "2907:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - }, - "id": 932, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2916:6:4", - "memberName": "issuer", - "nodeType": "MemberAccess", - "referencedDeclaration": 1007, - "src": "2907:15:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 933, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "2924:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1014_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - }, - "id": 934, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2933:5:4", - "memberName": "price", - "nodeType": "MemberAccess", - "referencedDeclaration": 1011, - "src": "2924:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 928, - "name": "TransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1175, - "src": "2876:14:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$1175_$", - "typeString": "type(library TransferHelper)" - } - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2891:15:4", - "memberName": "safeTransferETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 1174, - "src": "2876:30:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2876:63:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 936, - "nodeType": "ExpressionStatement", - "src": "2876:63:4" - }, - { - "eventCall": { - "arguments": [ - { - "id": 938, - "name": "taskId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "2973:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 939, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 889, - "src": "2981:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "id": 940, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2986:6:4", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 707, - "src": "2981:11:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - ], - "id": 937, - "name": "TaskStatusChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 761, - "src": "2955:17:4", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_enum$_TaskStatus_$698_$returns$__$", - "typeString": "function (uint256,enum TaskRegistry.TaskStatus)" - } - }, - "id": 941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2955:38:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 942, - "nodeType": "EmitStatement", - "src": "2950:43:4" - }, - { - "eventCall": { - "arguments": [ - { - "id": 944, - "name": "taskId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "3022:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 945, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "3030:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 943, - "name": "TaskCompleted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 780, - "src": "3008:13:4", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint256,string memory)" - } - }, - "id": 946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3008:29:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 947, - "nodeType": "EmitStatement", - "src": "3003:34:4" - } - ] - }, - "documentation": { - "id": 880, - "nodeType": "StructuredDocumentation", - "src": "2307:165:4", - "text": " @dev Completes a task with the given result.\n @param taskId The ID of the task.\n @param result The result or output of the completed task." - }, - "functionSelector": "74aaa760", - "id": 949, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "completeTask", - "nameLocation": "2486:12:4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 885, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "mutability": "mutable", - "name": "taskId", - "nameLocation": "2507:6:4", - "nodeType": "VariableDeclaration", - "scope": 949, - "src": "2499:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 881, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2499:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "mutability": "mutable", - "name": "result", - "nameLocation": "2529:6:4", - "nodeType": "VariableDeclaration", - "scope": 949, - "src": "2515:20:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 883, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2515:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "2498:38:4" - }, - "returnParameters": { - "id": 886, - "nodeType": "ParameterList", - "parameters": [], - "src": "2546:0:4" - }, - "scope": 1003, - "src": "2477:567:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 961, - "nodeType": "Block", - "src": "3134:43:4", - "statements": [ - { - "expression": { - "baseExpression": { - "id": 957, - "name": "issuerTasks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "3151:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 959, - "indexExpression": { - "id": 958, - "name": "issuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 951, - "src": "3163:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3151:19:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 956, - "id": 960, - "nodeType": "Return", - "src": "3144:26:4" - } - ] - }, - "functionSelector": "639241ab", - "id": 962, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTasksByIssuer", - "nameLocation": "3060:16:4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 952, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 951, - "mutability": "mutable", - "name": "issuer", - "nameLocation": "3085:6:4", - "nodeType": "VariableDeclaration", - "scope": 962, - "src": "3077:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 950, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3077:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3076:16:4" - }, - "returnParameters": { - "id": 956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 955, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 962, - "src": "3116:16:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 953, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3116:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 954, - "nodeType": "ArrayTypeName", - "src": "3116:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "src": "3115:18:4" - }, - "scope": 1003, - "src": "3051:126:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 974, - "nodeType": "Block", - "src": "3256:37:4", - "statements": [ - { - "expression": { - "baseExpression": { - "id": 970, - "name": "tasks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "3273:5:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$712_storage_$", - "typeString": "mapping(uint256 => struct TaskRegistry.TaskData storage ref)" - } - }, - "id": 972, - "indexExpression": { - "id": 971, - "name": "taskId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "3279:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3273:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage", - "typeString": "struct TaskRegistry.TaskData storage ref" - } - }, - "functionReturnParameters": 969, - "id": 973, - "nodeType": "Return", - "src": "3266:20:4" - } - ] - }, - "functionSelector": "1d65e77e", - "id": 975, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTask", - "nameLocation": "3192:7:4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 964, - "mutability": "mutable", - "name": "taskId", - "nameLocation": "3208:6:4", - "nodeType": "VariableDeclaration", - "scope": 975, - "src": "3200:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 963, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3200:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3199:16:4" - }, - "returnParameters": { - "id": 969, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 968, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 975, - "src": "3239:15:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_memory_ptr", - "typeString": "struct TaskRegistry.TaskData" - }, - "typeName": { - "id": 967, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 966, - "name": "TaskData", - "nameLocations": [ - "3239:8:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 712, - "src": "3239:8:4" - }, - "referencedDeclaration": 712, - "src": "3239:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage_ptr", - "typeString": "struct TaskRegistry.TaskData" - } - }, - "visibility": "internal" - } - ], - "src": "3238:17:4" - }, - "scope": 1003, - "src": "3183:110:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 988, - "nodeType": "Block", - "src": "3369:44:4", - "statements": [ - { - "expression": { - "expression": { - "baseExpression": { - "id": 983, - "name": "tasks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "3386:5:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$712_storage_$", - "typeString": "mapping(uint256 => struct TaskRegistry.TaskData storage ref)" - } - }, - "id": 985, - "indexExpression": { - "id": 984, - "name": "taskId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 977, - "src": "3392:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3386:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage", - "typeString": "struct TaskRegistry.TaskData storage ref" - } - }, - "id": 986, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3400:6:4", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 707, - "src": "3386:20:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "functionReturnParameters": 982, - "id": 987, - "nodeType": "Return", - "src": "3379:27:4" - } - ] - }, - "functionSelector": "5c622a0e", - "id": 989, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getStatus", - "nameLocation": "3308:9:4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 978, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 977, - "mutability": "mutable", - "name": "taskId", - "nameLocation": "3326:6:4", - "nodeType": "VariableDeclaration", - "scope": 989, - "src": "3318:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 976, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3318:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3317:16:4" - }, - "returnParameters": { - "id": 982, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 981, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 989, - "src": "3357:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - }, - "typeName": { - "id": 980, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 979, - "name": "TaskStatus", - "nameLocations": [ - "3357:10:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 698, - "src": "3357:10:4" - }, - "referencedDeclaration": 698, - "src": "3357:10:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "visibility": "internal" - } - ], - "src": "3356:12:4" - }, - "scope": 1003, - "src": "3299:114:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 1001, - "nodeType": "Block", - "src": "3492:46:4", - "statements": [ - { - "expression": { - "expression": { - "baseExpression": { - "id": 996, - "name": "tasks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "3509:5:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$712_storage_$", - "typeString": "mapping(uint256 => struct TaskRegistry.TaskData storage ref)" - } - }, - "id": 998, - "indexExpression": { - "id": 997, - "name": "taskId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "3515:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3509:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$712_storage", - "typeString": "struct TaskRegistry.TaskData storage ref" - } - }, - "id": 999, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3523:8:4", - "memberName": "assignee", - "nodeType": "MemberAccess", - "referencedDeclaration": 709, - "src": "3509:22:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 995, - "id": 1000, - "nodeType": "Return", - "src": "3502:29:4" - } - ] - }, - "functionSelector": "07b31818", - "id": 1002, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAssignee", - "nameLocation": "3432:11:4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 992, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 991, - "mutability": "mutable", - "name": "taskId", - "nameLocation": "3452:6:4", - "nodeType": "VariableDeclaration", - "scope": 1002, - "src": "3444:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3444:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3443:16:4" - }, - "returnParameters": { - "id": 995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 994, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1002, - "src": "3483:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3483:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3482:9:4" - }, - "scope": 1003, - "src": "3423:115:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 1004, - "src": "380:3160:4", - "usedErrors": [ - 13, - 18 - ], - "usedEvents": [ - 24, - 754, - 761, - 767, - 774, - 780 - ] - } - ], - "src": "32:3509:4" - }, - "id": 4 - }, - "contracts/interfaces/IProposalStruct.sol": { - "ast": { - "absolutePath": "contracts/interfaces/IProposalStruct.sol", - "exportedSymbols": { - "IProposalStruct": [ - 1015 - ] - }, - "id": 1016, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1005, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "32:24:5" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IProposalStruct", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": true, - "id": 1015, - "linearizedBaseContracts": [ - 1015 - ], - "name": "IProposalStruct", - "nameLocation": "67:15:5", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "IProposalStruct.Proposal", - "id": 1014, - "members": [ - { - "constant": false, - "id": 1007, - "mutability": "mutable", - "name": "issuer", - "nameLocation": "119:6:5", - "nodeType": "VariableDeclaration", - "scope": 1014, - "src": "111:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1006, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "111:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1009, - "mutability": "mutable", - "name": "serviceName", - "nameLocation": "140:11:5", - "nodeType": "VariableDeclaration", - "scope": 1014, - "src": "133:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1008, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "133:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1011, - "mutability": "mutable", - "name": "price", - "nameLocation": "167:5:5", - "nodeType": "VariableDeclaration", - "scope": 1014, - "src": "159:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1010, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "159:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1013, - "mutability": "mutable", - "name": "proposalId", - "nameLocation": "188:10:5", - "nodeType": "VariableDeclaration", - "scope": 1014, - "src": "180:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1012, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "180:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "Proposal", - "nameLocation": "94:8:5", - "nodeType": "StructDefinition", - "scope": 1015, - "src": "87:116:5", - "visibility": "public" - } - ], - "scope": 1016, - "src": "57:148:5", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "32:173:5" - }, - "id": 5 - }, - "contracts/lib/TransferHelper.sol": { - "ast": { - "absolutePath": "contracts/lib/TransferHelper.sol", - "exportedSymbols": { - "TransferHelper": [ - 1175 - ] - }, - "id": 1176, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1017, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "31:24:6" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "TransferHelper", - "contractDependencies": [], - "contractKind": "library", - "fullyImplemented": true, - "id": 1175, - "linearizedBaseContracts": [ - 1175 - ], - "name": "TransferHelper", - "nameLocation": "176:14:6", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1059, - "nodeType": "Block", - "src": "299:332:6", - "statements": [ - { - "assignments": [ - 1027, - 1029 - ], - "declarations": [ - { - "constant": false, - "id": 1027, - "mutability": "mutable", - "name": "success", - "nameLocation": "380:7:6", - "nodeType": "VariableDeclaration", - "scope": 1059, - "src": "375:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1026, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "375:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1029, - "mutability": "mutable", - "name": "data", - "nameLocation": "402:4:6", - "nodeType": "VariableDeclaration", - "scope": 1059, - "src": "389:17:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1028, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "389:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 1039, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30783039356561376233", - "id": 1034, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "444:10:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_157198259_by_1", - "typeString": "int_const 157198259" - }, - "value": "0x095ea7b3" - }, - { - "id": 1035, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1021, - "src": "456:2:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1036, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "460:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_157198259_by_1", - "typeString": "int_const 157198259" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 1032, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "421:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1033, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "425:18:6", - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "src": "421:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 1037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "421:45:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 1030, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1019, - "src": "410:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "416:4:6", - "memberName": "call", - "nodeType": "MemberAccess", - "src": "410:10:6", - "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": 1038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "410:57:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "374:93:6" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1041, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "498:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1045, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 1042, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "510:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 1043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "515:6:6", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "510:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 1044, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "525:1:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "510:16:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "arguments": [ - { - "id": 1048, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "541:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "components": [ - { - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "548:4:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - }, - "typeName": { - "id": 1049, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "548:4:6", - "typeDescriptions": {} - } - } - ], - "id": 1051, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "547:6:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - ], - "expression": { - "id": 1046, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "530:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "534:6:6", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "530:10:6", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "530:24:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "510:44:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 1054, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "509:46:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "498:57:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "5472616e7366657248656c7065723a3a73616665417070726f76653a20617070726f7665206661696c6564", - "id": 1056, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "569:45:6", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b4dd1eb4be82119fd3a99acfb5dd4c57591eb0ea309359b1af3d65a4460c7123", - "typeString": "literal_string \"TransferHelper::safeApprove: approve failed\"" - }, - "value": "TransferHelper::safeApprove: approve failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b4dd1eb4be82119fd3a99acfb5dd4c57591eb0ea309359b1af3d65a4460c7123", - "typeString": "literal_string \"TransferHelper::safeApprove: approve failed\"" - } - ], - "id": 1040, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "477:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "477:147:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1058, - "nodeType": "ExpressionStatement", - "src": "477:147:6" - } - ] - }, - "id": 1060, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeApprove", - "nameLocation": "206:11:6", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1024, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1019, - "mutability": "mutable", - "name": "token", - "nameLocation": "235:5:6", - "nodeType": "VariableDeclaration", - "scope": 1060, - "src": "227:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1018, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "227:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1021, - "mutability": "mutable", - "name": "to", - "nameLocation": "258:2:6", - "nodeType": "VariableDeclaration", - "scope": 1060, - "src": "250:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1020, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "250:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1023, - "mutability": "mutable", - "name": "value", - "nameLocation": "278:5:6", - "nodeType": "VariableDeclaration", - "scope": 1060, - "src": "270:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1022, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "270:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "217:72:6" - }, - "returnParameters": { - "id": 1025, - "nodeType": "ParameterList", - "parameters": [], - "src": "299:0:6" - }, - "scope": 1175, - "src": "197:434:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1102, - "nodeType": "Block", - "src": "740:335:6", - "statements": [ - { - "assignments": [ - 1070, - 1072 - ], - "declarations": [ - { - "constant": false, - "id": 1070, - "mutability": "mutable", - "name": "success", - "nameLocation": "822:7:6", - "nodeType": "VariableDeclaration", - "scope": 1102, - "src": "817:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1069, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "817:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1072, - "mutability": "mutable", - "name": "data", - "nameLocation": "844:4:6", - "nodeType": "VariableDeclaration", - "scope": 1102, - "src": "831:17:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1071, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "831:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 1082, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30786139303539636262", - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "886:10:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_2835717307_by_1", - "typeString": "int_const 2835717307" - }, - "value": "0xa9059cbb" - }, - { - "id": 1078, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1064, - "src": "898:2:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1079, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1066, - "src": "902:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_2835717307_by_1", - "typeString": "int_const 2835717307" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 1075, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "863:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1076, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "867:18:6", - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "src": "863:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 1080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "863:45:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 1073, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1062, - "src": "852:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "858:4:6", - "memberName": "call", - "nodeType": "MemberAccess", - "src": "852:10:6", - "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": 1081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "852:57:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "816:93:6" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1084, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1070, - "src": "940:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 1085, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "952:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 1086, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "957:6:6", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "952:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 1087, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "967:1:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "952:16:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "arguments": [ - { - "id": 1091, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "983:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "components": [ - { - "id": 1093, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "990:4:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - }, - "typeName": { - "id": 1092, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "990:4:6", - "typeDescriptions": {} - } - } - ], - "id": 1094, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "989:6:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - ], - "expression": { - "id": 1089, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "972:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1090, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "976:6:6", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "972:10:6", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1095, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "972:24:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "952:44:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 1097, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "951:46:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "940:57:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "5472616e7366657248656c7065723a3a736166655472616e736665723a207472616e73666572206661696c6564", - "id": 1099, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1011:47:6", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_daea69421eeb1164e163c36f3d4349f0db3ec4e0d1381bd5bf4faf53496c2611", - "typeString": "literal_string \"TransferHelper::safeTransfer: transfer failed\"" - }, - "value": "TransferHelper::safeTransfer: transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_daea69421eeb1164e163c36f3d4349f0db3ec4e0d1381bd5bf4faf53496c2611", - "typeString": "literal_string \"TransferHelper::safeTransfer: transfer failed\"" - } - ], - "id": 1083, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "919:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "919:149:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1101, - "nodeType": "ExpressionStatement", - "src": "919:149:6" - } - ] - }, - "id": 1103, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransfer", - "nameLocation": "646:12:6", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1067, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1062, - "mutability": "mutable", - "name": "token", - "nameLocation": "676:5:6", - "nodeType": "VariableDeclaration", - "scope": 1103, - "src": "668:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1061, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "668:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1064, - "mutability": "mutable", - "name": "to", - "nameLocation": "699:2:6", - "nodeType": "VariableDeclaration", - "scope": 1103, - "src": "691:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1063, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "691:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1066, - "mutability": "mutable", - "name": "value", - "nameLocation": "719:5:6", - "nodeType": "VariableDeclaration", - "scope": 1103, - "src": "711:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1065, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "711:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "658:72:6" - }, - "returnParameters": { - "id": 1068, - "nodeType": "ParameterList", - "parameters": [], - "src": "740:0:6" - }, - "scope": 1175, - "src": "637:438:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1148, - "nodeType": "Block", - "src": "1210:357:6", - "statements": [ - { - "assignments": [ - 1115, - 1117 - ], - "declarations": [ - { - "constant": false, - "id": 1115, - "mutability": "mutable", - "name": "success", - "nameLocation": "1304:7:6", - "nodeType": "VariableDeclaration", - "scope": 1148, - "src": "1299:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1114, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1299:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1117, - "mutability": "mutable", - "name": "data", - "nameLocation": "1326:4:6", - "nodeType": "VariableDeclaration", - "scope": 1148, - "src": "1313:17:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1116, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1313:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 1128, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30783233623837326464", - "id": 1122, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1368:10:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_599290589_by_1", - "typeString": "int_const 599290589" - }, - "value": "0x23b872dd" - }, - { - "id": 1123, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1107, - "src": "1380:4:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1124, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1109, - "src": "1386:2:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1125, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "1390:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_599290589_by_1", - "typeString": "int_const 599290589" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 1120, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "1345:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "1349:18:6", - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "src": "1345:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1345:51:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 1118, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1105, - "src": "1334:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1340:4:6", - "memberName": "call", - "nodeType": "MemberAccess", - "src": "1334:10:6", - "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": 1127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1334:63:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1298:99:6" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1130, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1115, - "src": "1428:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 1131, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "1440:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1445:6:6", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1440:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 1133, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1455:1:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1440:16:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "arguments": [ - { - "id": 1137, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "1471:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "components": [ - { - "id": 1139, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1478:4:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - }, - "typeName": { - "id": 1138, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1478:4:6", - "typeDescriptions": {} - } - } - ], - "id": 1140, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1477:6:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - ], - "expression": { - "id": 1135, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "1460:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "1464:6:6", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "1460:10:6", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1460:24:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1440:44:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 1143, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1439:46:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1428:57:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472616e7366657246726f6d206661696c6564", - "id": 1145, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1499:51:6", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3f8faf98afe9344b6d4b0e75b0101259bf282914b3b5a9320c6918b6e27ede1c", - "typeString": "literal_string \"TransferHelper::transferFrom: transferFrom failed\"" - }, - "value": "TransferHelper::transferFrom: transferFrom failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3f8faf98afe9344b6d4b0e75b0101259bf282914b3b5a9320c6918b6e27ede1c", - "typeString": "literal_string \"TransferHelper::transferFrom: transferFrom failed\"" - } - ], - "id": 1129, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1407:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1407:153:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1147, - "nodeType": "ExpressionStatement", - "src": "1407:153:6" - } - ] - }, - "id": 1149, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nameLocation": "1090:16:6", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1105, - "mutability": "mutable", - "name": "token", - "nameLocation": "1124:5:6", - "nodeType": "VariableDeclaration", - "scope": 1149, - "src": "1116:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1116:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1107, - "mutability": "mutable", - "name": "from", - "nameLocation": "1147:4:6", - "nodeType": "VariableDeclaration", - "scope": 1149, - "src": "1139:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1139:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1109, - "mutability": "mutable", - "name": "to", - "nameLocation": "1169:2:6", - "nodeType": "VariableDeclaration", - "scope": 1149, - "src": "1161:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1108, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1161:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1111, - "mutability": "mutable", - "name": "value", - "nameLocation": "1189:5:6", - "nodeType": "VariableDeclaration", - "scope": 1149, - "src": "1181:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1110, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1181:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1106:94:6" - }, - "returnParameters": { - "id": 1113, - "nodeType": "ParameterList", - "parameters": [], - "src": "1210:0:6" - }, - "scope": 1175, - "src": "1081:486:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1173, - "nodeType": "Block", - "src": "1634:153:6", - "statements": [ - { - "assignments": [ - 1157, - null - ], - "declarations": [ - { - "constant": false, - "id": 1157, - "mutability": "mutable", - "name": "success", - "nameLocation": "1650:7:6", - "nodeType": "VariableDeclaration", - "scope": 1173, - "src": "1645:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1156, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1645:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - null - ], - "id": 1167, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30", - "id": 1164, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1695:1:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1163, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "1685:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 1162, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1689:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 1165, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1685:12:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 1158, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1151, - "src": "1663:2:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1666:4:6", - "memberName": "call", - "nodeType": "MemberAccess", - "src": "1663:7:6", - "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": 1161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "id": 1160, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "1678:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "1663:21:6", - "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": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1663:35:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1644:54:6" - }, - { - "expression": { - "arguments": [ - { - "id": 1169, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1157, - "src": "1716:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "5472616e7366657248656c7065723a3a736166655472616e736665724554483a20455448207472616e73666572206661696c6564", - "id": 1170, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1725:54:6", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_43d7bec223ecf9eb06ea147e7d564bc71c2448662d62a4ea86ce71fc4518b350", - "typeString": "literal_string \"TransferHelper::safeTransferETH: ETH transfer failed\"" - }, - "value": "TransferHelper::safeTransferETH: ETH transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_43d7bec223ecf9eb06ea147e7d564bc71c2448662d62a4ea86ce71fc4518b350", - "typeString": "literal_string \"TransferHelper::safeTransferETH: ETH transfer failed\"" - } - ], - "id": 1168, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1708:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1708:72:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1172, - "nodeType": "ExpressionStatement", - "src": "1708:72:6" - } - ] - }, - "id": 1174, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferETH", - "nameLocation": "1582:15:6", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1154, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1151, - "mutability": "mutable", - "name": "to", - "nameLocation": "1606:2:6", - "nodeType": "VariableDeclaration", - "scope": 1174, - "src": "1598:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1150, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1598:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1153, - "mutability": "mutable", - "name": "value", - "nameLocation": "1618:5:6", - "nodeType": "VariableDeclaration", - "scope": 1174, - "src": "1610:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1152, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1610:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1597:27:6" - }, - "returnParameters": { - "id": 1155, - "nodeType": "ParameterList", - "parameters": [], - "src": "1634:0:6" - }, - "scope": 1175, - "src": "1573:214:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 1176, - "src": "168:1621:6", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "31:1758:6" - }, - "id": 6 - } - }, - "contracts": { - "@openzeppelin/contracts/access/Ownable.sol": { - "Ownable": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "owner()": "8da5cb5b", - "renounceOwnership()": "715018a6", - "transferOwnership(address)": "f2fde38b" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"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.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" - } - }, - "@openzeppelin/contracts/utils/Context.sol": { - "Context": { - "abi": [], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" - } - }, - "contracts/AgentsRegistry.sol": { - "AgentsRegistry": { - "abi": [ - { - "inputs": [ - { - "internalType": "contract ServiceRegistry", - "name": "_serviceRegistry", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "agent", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "agentUri", - "type": "string" - } - ], - "name": "AgentRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "agent", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "price", - "type": "uint256" - } - ], - "name": "ProposalAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "agent", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newReputation", - "type": "uint256" - } - ], - "name": "ReputationUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "agent", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "name", - "type": "uint256" - } - ], - "name": "ServiceAdded", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "agents", - "outputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "agentUri", - "type": "string" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "agent", - "type": "address" - }, - { - "internalType": "uint256", - "name": "reputation", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "isRegistered", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_agent", - "type": "address" - } - ], - "name": "getAgentData", - "outputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "agentUri", - "type": "string" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "agent", - "type": "address" - }, - { - "internalType": "uint256", - "name": "reputation", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - } - ], - "name": "getProposal", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "issuer", - "type": "address" - }, - { - "internalType": "string", - "name": "serviceName", - "type": "string" - }, - { - "internalType": "uint256", - "name": "price", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - } - ], - "internalType": "struct IProposalStruct.Proposal", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "agent", - "type": "address" - } - ], - "name": "getReputation", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "agent", - "type": "address" - } - ], - "name": "isRegistered", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "nextProposalId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "proposals", - "outputs": [ - { - "internalType": "address", - "name": "issuer", - "type": "address" - }, - { - "internalType": "string", - "name": "serviceName", - "type": "string" - }, - { - "internalType": "uint256", - "name": "price", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "agentUri", - "type": "string" - }, - { - "internalType": "address", - "name": "agent", - "type": "address" - }, - { - "internalType": "string", - "name": "serviceName", - "type": "string" - }, - { - "internalType": "uint256", - "name": "servicePrice", - "type": "uint256" - } - ], - "name": "registerAgent", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "serviceRegistry", - "outputs": [ - { - "internalType": "contract ServiceRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "agent", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_reputation", - "type": "uint256" - } - ], - "name": "updateReputation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": { - "@_247": { - "entryPoint": null, - "id": 247, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_50": { - "entryPoint": null, - "id": 50, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_transferOwnership_146": { - "entryPoint": 132, - "id": 146, - "parameterSlots": 1, - "returnSlots": 0 - }, - "abi_decode_tuple_t_contract$_ServiceRegistry_$682_fromMemory": { - "entryPoint": 212, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - } - }, - "generatedSources": [ - { - "ast": { - "nodeType": "YulBlock", - "src": "0:537:7", - "statements": [ - { - "nodeType": "YulBlock", - "src": "6:3:7", - "statements": [] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "118:209:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "164:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "173:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "176:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "166:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "166:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "166:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "139:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "148:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "135:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "135:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "160:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "131:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "131:32:7" - }, - "nodeType": "YulIf", - "src": "128:52:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "189:29:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "208:9:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "202:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "202:16:7" - }, - "variables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "193:5:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "281:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "290:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "293:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "283:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "283:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "283:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "240:5:7" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "251:5:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "266:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "271:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "262:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "262:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "275:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "258:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "258:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "247:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "247:31:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "237:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "237:42:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "230:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "230:50:7" - }, - "nodeType": "YulIf", - "src": "227:70:7" - }, - { - "nodeType": "YulAssignment", - "src": "306:15:7", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "316:5:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "306:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_contract$_ServiceRegistry_$682_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "84:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "95:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "107:6:7", - "type": "" - } - ], - "src": "14:313:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "433:102:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "443:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "455:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "466:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "451:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "451:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "443:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "485:9:7" - }, - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "500:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "516:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "521:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "512:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "512:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "525:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "508:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "508:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "496:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "496:32:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "478:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "478:51:7" - }, - "nodeType": "YulExpressionStatement", - "src": "478:51:7" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "402:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "413:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "424:4:7", - "type": "" - } - ], - "src": "332:203:7" - } - ] - }, - "contents": "{\n { }\n function abi_decode_tuple_t_contract$_ServiceRegistry_$682_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n}", - "id": 7, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b5060405161132238038061132283398101604081905261002f916100d4565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e81610084565b50600180546001600160a01b0319166001600160a01b0392909216919091179055610104565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100e657600080fd5b81516001600160a01b03811681146100fd57600080fd5b9392505050565b61120f806101136000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063c3c5a5471161008c578063e194f2eb11610066578063e194f2eb146101ef578063f2fde38b14610202578063f5c91a0814610215578063fd66091e1461022857600080fd5b8063c3c5a5471461017d578063c7f758a8146101bc578063cbcf252a146101dc57600080fd5b8063013cf08b146100d45780632ab09d1414610100578063715018a6146101175780638da5cb5b146101215780639c89a0e214610146578063aac9f15a14610159575b600080fd5b6100e76100e2366004610c9d565b61024d565b6040516100f79493929190610cfc565b60405180910390f35b61010960045481565b6040519081526020016100f7565b61011f61031b565b005b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100f7565b610109610154366004610d4f565b61032f565b61016c610167366004610d4f565b6103bd565b6040516100f7959493929190610d71565b6101ac61018b366004610d4f565b6001600160a01b031660009081526002602052604090206005015460ff1690565b60405190151581526020016100f7565b6101cf6101ca366004610c9d565b61052e565b6040516100f79190610dbb565b60015461012e906001600160a01b031681565b6101ac6101fd366004610eac565b610652565b61011f610210366004610d4f565b6109c3565b61011f610223366004610f4d565b610a01565b61023b610236366004610d4f565b610aca565b6040516100f796959493929190610f77565b6003818154811061025d57600080fd5b6000918252602090912060049091020180546001820180546001600160a01b0390921693509061028c90610fcd565b80601f01602080910402602001604051908101604052809291908181526020018280546102b890610fcd565b80156103055780601f106102da57610100808354040283529160200191610305565b820191906000526020600020905b8154815290600101906020018083116102e857829003601f168201915b5050505050908060020154908060030154905084565b610323610c20565b61032d6000610c4d565b565b6001600160a01b038116600090815260026020526040812060050154829060ff166103985760405162461bcd60e51b81526020600482015260146024820152731059d95b9d081b9bdd081c9959da5cdd195c995960621b60448201526064015b60405180910390fd5b6001600160a01b03831660009081526002602052604090206004015491505b50919050565b6001600160a01b038082166000908152600260208190526040822090810154600382015460048301548354606096879695869586959194859460018601949283169390921691859061040e90610fcd565b80601f016020809104026020016040519081016040528092919081815260200182805461043a90610fcd565b80156104875780601f1061045c57610100808354040283529160200191610487565b820191906000526020600020905b81548152906001019060200180831161046a57829003601f168201915b5050505050945083805461049a90610fcd565b80601f01602080910402602001604051908101604052809291908181526020018280546104c690610fcd565b80156105135780601f106104e857610100808354040283529160200191610513565b820191906000526020600020905b8154815290600101906020018083116104f657829003601f168201915b50505050509350955095509550955095505091939590929450565b610562604051806080016040528060006001600160a01b031681526020016060815260200160008152602001600081525090565b6003828154811061057557610575611001565b6000918252602091829020604080516080810190915260049092020180546001600160a01b0316825260018101805492939192918401916105b590610fcd565b80601f01602080910402602001604051908101604052809291908181526020018280546105e190610fcd565b801561062e5780601f106106035761010080835404028352916020019161062e565b820191906000526020600020905b81548152906001019060200180831161061157829003601f168201915b50505050508152602001600282015481526020016003820154815250509050919050565b6001600160a01b03831660009081526002602052604081206005015460ff16156106be5760405162461bcd60e51b815260206004820152601860248201527f4167656e7420616c726561647920726567697374657265640000000000000000604482015260640161038f565b60015460405163b405166b60e01b81526001600160a01b039091169063b405166b906106ee908690600401611017565b602060405180830381865afa15801561070b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072f919061102a565b6107745760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b604482015260640161038f565b6001600160a01b038416600090815260026020526040902080610797888261109b565b50600181016107a6878261109b565b506002810180546001600160a01b031990811633179091556003820180546001600160a01b0388811691841682179092556000600480860182905560058601805460ff191660019081179091556040805160808101825294855260208086018c81529186018b905283546060870152600689018054808501825590865294208551949093029092018054939095169290951691909117835551909283929190820190610852908261109b565b5060408201516002820155606090910151600391820155805460018101825560009190915281517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b600490920291820180546001600160a01b0319166001600160a01b03909216919091178155602083015183927fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c01906108f3908261109b565b50604082015160028201556060909101516003909101556004805490600061091a8361115b565b9190505550336001600160a01b0316866001600160a01b03167f2a562efb52e7cec209321f57200606311256da6d2a1b19d44db7837a3209de288a8a604051610964929190611182565b60405180910390a3856001600160a01b03167fe194e0bc2279adb185c748ae57db10fe2ef1005a1b5646f96235a881c88ddb79826060015187876040516109ad939291906111b0565b60405180910390a2506001979650505050505050565b6109cb610c20565b6001600160a01b0381166109f557604051631e4fbdf760e01b81526000600482015260240161038f565b6109fe81610c4d565b50565b610a09610c20565b6001600160a01b038216600090815260026020526040902060050154829060ff16610a6d5760405162461bcd60e51b81526020600482015260146024820152731059d95b9d081b9bdd081c9959da5cdd195c995960621b604482015260640161038f565b6001600160a01b03831660008181526002602052604090819020600401849055517ffc577563f1b9a0461e24abef1e1fcc0d33d3d881f20b5df6dda59de4aae2c82190610abd9085815260200190565b60405180910390a2505050565b600260205260009081526040902080548190610ae590610fcd565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1190610fcd565b8015610b5e5780601f10610b3357610100808354040283529160200191610b5e565b820191906000526020600020905b815481529060010190602001808311610b4157829003601f168201915b505050505090806001018054610b7390610fcd565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9f90610fcd565b8015610bec5780601f10610bc157610100808354040283529160200191610bec565b820191906000526020600020905b815481529060010190602001808311610bcf57829003601f168201915b5050505060028301546003840154600485015460059095015493946001600160a01b03928316949290911692509060ff1686565b6000546001600160a01b0316331461032d5760405163118cdaa760e01b815233600482015260240161038f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610caf57600080fd5b5035919050565b6000815180845260005b81811015610cdc57602081850181015186830182015201610cc0565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0385168152608060208201819052600090610d2090830186610cb6565b6040830194909452506060015292915050565b80356001600160a01b0381168114610d4a57600080fd5b919050565b600060208284031215610d6157600080fd5b610d6a82610d33565b9392505050565b60a081526000610d8460a0830188610cb6565b8281036020840152610d968188610cb6565b6001600160a01b03968716604085015294909516606083015250608001529392505050565b602080825282516001600160a01b03168282015282015160806040830152600090610de960a0840182610cb6565b905060408401516060840152606084015160808401528091505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610e3057600080fd5b813567ffffffffffffffff80821115610e4b57610e4b610e09565b604051601f8301601f19908116603f01168101908282118183101715610e7357610e73610e09565b81604052838152866020858801011115610e8c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a08688031215610ec457600080fd5b853567ffffffffffffffff80821115610edc57600080fd5b610ee889838a01610e1f565b96506020880135915080821115610efe57600080fd5b610f0a89838a01610e1f565b9550610f1860408901610d33565b94506060880135915080821115610f2e57600080fd5b50610f3b88828901610e1f565b95989497509295608001359392505050565b60008060408385031215610f6057600080fd5b610f6983610d33565b946020939093013593505050565b60c081526000610f8a60c0830189610cb6565b8281036020840152610f9c8189610cb6565b6001600160a01b039788166040850152959096166060830152506080810192909252151560a0909101529392505050565b600181811c90821680610fe157607f821691505b6020821081036103b757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b602081526000610d6a6020830184610cb6565b60006020828403121561103c57600080fd5b81518015158114610d6a57600080fd5b601f82111561109657600081815260208120601f850160051c810160208610156110735750805b601f850160051c820191505b818110156110925782815560010161107f565b5050505b505050565b815167ffffffffffffffff8111156110b5576110b5610e09565b6110c9816110c38454610fcd565b8461104c565b602080601f8311600181146110fe57600084156110e65750858301515b600019600386901b1c1916600185901b178555611092565b600085815260208120601f198616915b8281101561112d5788860151825594840194600190910190840161110e565b508582101561114b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006001820161117b57634e487b7160e01b600052601160045260246000fd5b5060010190565b6040815260006111956040830185610cb6565b82810360208401526111a78185610cb6565b95945050505050565b8381526060602082015260006111c96060830185610cb6565b905082604083015294935050505056fea2646970667358221220b1e677802461bf6e3151652946c80d669e7091ab7358132ac1a9f7beef74718264736f6c63430008140033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1322 CODESIZE SUB DUP1 PUSH2 0x1322 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0xD4 JUMP JUMPDEST CALLER DUP1 PUSH2 0x55 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5E DUP2 PUSH2 0x84 JUMP JUMPDEST POP PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x104 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x120F DUP1 PUSH2 0x113 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC3C5A547 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xE194F2EB GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xE194F2EB EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0xF5C91A08 EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0xFD66091E EQ PUSH2 0x228 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC3C5A547 EQ PUSH2 0x17D JUMPI DUP1 PUSH4 0xC7F758A8 EQ PUSH2 0x1BC JUMPI DUP1 PUSH4 0xCBCF252A EQ PUSH2 0x1DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x2AB09D14 EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x121 JUMPI DUP1 PUSH4 0x9C89A0E2 EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0xAAC9F15A EQ PUSH2 0x159 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE7 PUSH2 0xE2 CALLDATASIZE PUSH1 0x4 PUSH2 0xC9D JUMP JUMPDEST PUSH2 0x24D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xCFC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x109 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF7 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x31B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF7 JUMP JUMPDEST PUSH2 0x109 PUSH2 0x154 CALLDATASIZE PUSH1 0x4 PUSH2 0xD4F JUMP JUMPDEST PUSH2 0x32F JUMP JUMPDEST PUSH2 0x16C PUSH2 0x167 CALLDATASIZE PUSH1 0x4 PUSH2 0xD4F JUMP JUMPDEST PUSH2 0x3BD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD71 JUMP JUMPDEST PUSH2 0x1AC PUSH2 0x18B CALLDATASIZE PUSH1 0x4 PUSH2 0xD4F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x5 ADD SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF7 JUMP JUMPDEST PUSH2 0x1CF PUSH2 0x1CA CALLDATASIZE PUSH1 0x4 PUSH2 0xC9D JUMP JUMPDEST PUSH2 0x52E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x12E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1AC PUSH2 0x1FD CALLDATASIZE PUSH1 0x4 PUSH2 0xEAC JUMP JUMPDEST PUSH2 0x652 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x210 CALLDATASIZE PUSH1 0x4 PUSH2 0xD4F JUMP JUMPDEST PUSH2 0x9C3 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x223 CALLDATASIZE PUSH1 0x4 PUSH2 0xF4D JUMP JUMPDEST PUSH2 0xA01 JUMP JUMPDEST PUSH2 0x23B PUSH2 0x236 CALLDATASIZE PUSH1 0x4 PUSH2 0xD4F JUMP JUMPDEST PUSH2 0xACA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF77 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x25D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x4 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP4 POP SWAP1 PUSH2 0x28C SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2B8 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x305 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2DA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x305 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2E8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 POP DUP5 JUMP JUMPDEST PUSH2 0x323 PUSH2 0xC20 JUMP JUMPDEST PUSH2 0x32D PUSH1 0x0 PUSH2 0xC4D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x5 ADD SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH2 0x398 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x1059D95B9D081B9BDD081C9959DA5CDD195C9959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD SWAP2 POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SWAP1 DUP2 ADD SLOAD PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x4 DUP4 ADD SLOAD DUP4 SLOAD PUSH1 0x60 SWAP7 DUP8 SWAP7 SWAP6 DUP7 SWAP6 DUP7 SWAP6 SWAP2 SWAP5 DUP6 SWAP5 PUSH1 0x1 DUP7 ADD SWAP5 SWAP3 DUP4 AND SWAP4 SWAP1 SWAP3 AND SWAP2 DUP6 SWAP1 PUSH2 0x40E SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x43A SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x487 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x45C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x487 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x46A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP5 POP DUP4 DUP1 SLOAD PUSH2 0x49A SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4C6 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x513 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4E8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x513 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x4F6 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP4 POP SWAP6 POP SWAP6 POP SWAP6 POP SWAP6 POP SWAP6 POP POP SWAP2 SWAP4 SWAP6 SWAP1 SWAP3 SWAP5 POP JUMP JUMPDEST PUSH2 0x562 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x575 JUMPI PUSH2 0x575 PUSH2 0x1001 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x4 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE PUSH1 0x1 DUP2 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x5B5 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x5E1 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x62E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x603 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x62E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x611 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x5 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x6BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4167656E7420616C726561647920726567697374657265640000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x38F JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0x6EE SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1017 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x70B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x72F SWAP2 SWAP1 PUSH2 0x102A JUMP JUMPDEST PUSH2 0x774 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x14D95C9D9A58D9481B9BDD081C9959DA5CDD195C9959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x38F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 PUSH2 0x797 DUP9 DUP3 PUSH2 0x109B JUMP JUMPDEST POP PUSH1 0x1 DUP2 ADD PUSH2 0x7A6 DUP8 DUP3 PUSH2 0x109B JUMP JUMPDEST POP PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND SWAP2 DUP5 AND DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 PUSH1 0x4 DUP1 DUP7 ADD DUP3 SWAP1 SSTORE PUSH1 0x5 DUP7 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE SWAP5 DUP6 MSTORE PUSH1 0x20 DUP1 DUP7 ADD DUP13 DUP2 MSTORE SWAP2 DUP7 ADD DUP12 SWAP1 MSTORE DUP4 SLOAD PUSH1 0x60 DUP8 ADD MSTORE PUSH1 0x6 DUP10 ADD DUP1 SLOAD DUP1 DUP6 ADD DUP3 SSTORE SWAP1 DUP7 MSTORE SWAP5 KECCAK256 DUP6 MLOAD SWAP5 SWAP1 SWAP4 MUL SWAP1 SWAP3 ADD DUP1 SLOAD SWAP4 SWAP1 SWAP6 AND SWAP3 SWAP1 SWAP6 AND SWAP2 SWAP1 SWAP2 OR DUP4 SSTORE MLOAD SWAP1 SWAP3 DUP4 SWAP3 SWAP2 SWAP1 DUP3 ADD SWAP1 PUSH2 0x852 SWAP1 DUP3 PUSH2 0x109B JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SSTORE PUSH1 0x60 SWAP1 SWAP2 ADD MLOAD PUSH1 0x3 SWAP2 DUP3 ADD SSTORE DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B PUSH1 0x4 SWAP1 SWAP3 MUL SWAP2 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x20 DUP4 ADD MLOAD DUP4 SWAP3 PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85C ADD SWAP1 PUSH2 0x8F3 SWAP1 DUP3 PUSH2 0x109B JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SSTORE PUSH1 0x60 SWAP1 SWAP2 ADD MLOAD PUSH1 0x3 SWAP1 SWAP2 ADD SSTORE PUSH1 0x4 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x91A DUP4 PUSH2 0x115B JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x2A562EFB52E7CEC209321F57200606311256DA6D2A1B19D44DB7837A3209DE28 DUP11 DUP11 PUSH1 0x40 MLOAD PUSH2 0x964 SWAP3 SWAP2 SWAP1 PUSH2 0x1182 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xE194E0BC2279ADB185C748AE57DB10FE2EF1005A1B5646F96235A881C88DDB79 DUP3 PUSH1 0x60 ADD MLOAD DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x9AD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP PUSH1 0x1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x9CB PUSH2 0xC20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x9F5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x38F JUMP JUMPDEST PUSH2 0x9FE DUP2 PUSH2 0xC4D JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xA09 PUSH2 0xC20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x5 ADD SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH2 0xA6D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x1059D95B9D081B9BDD081C9959DA5CDD195C9959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x38F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 PUSH1 0x4 ADD DUP5 SWAP1 SSTORE MLOAD PUSH32 0xFC577563F1B9A0461E24ABEF1E1FCC0D33D3D881F20B5DF6DDA59DE4AAE2C821 SWAP1 PUSH2 0xABD SWAP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP2 SWAP1 PUSH2 0xAE5 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xB11 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB5E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB33 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB5E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB41 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0xB73 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xB9F SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0xBEC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBC1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xBEC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xBCF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 DUP6 ADD SLOAD PUSH1 0x5 SWAP1 SWAP6 ADD SLOAD SWAP4 SWAP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP5 SWAP3 SWAP1 SWAP2 AND SWAP3 POP SWAP1 PUSH1 0xFF AND DUP7 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x32D JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x38F JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xCDC JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0xCC0 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xD20 SWAP1 DUP4 ADD DUP7 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x60 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD6A DUP3 PUSH2 0xD33 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP2 MSTORE PUSH1 0x0 PUSH2 0xD84 PUSH1 0xA0 DUP4 ADD DUP9 PUSH2 0xCB6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xD96 DUP2 DUP9 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP7 DUP8 AND PUSH1 0x40 DUP6 ADD MSTORE SWAP5 SWAP1 SWAP6 AND PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 DUP3 ADD MSTORE DUP3 ADD MLOAD PUSH1 0x80 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x0 SWAP1 PUSH2 0xDE9 PUSH1 0xA0 DUP5 ADD DUP3 PUSH2 0xCB6 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x80 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xE30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xE4B JUMPI PUSH2 0xE4B PUSH2 0xE09 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xE73 JUMPI PUSH2 0xE73 PUSH2 0xE09 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0xE8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xEC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xEDC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEE8 DUP10 DUP4 DUP11 ADD PUSH2 0xE1F JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xEFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF0A DUP10 DUP4 DUP11 ADD PUSH2 0xE1F JUMP JUMPDEST SWAP6 POP PUSH2 0xF18 PUSH1 0x40 DUP10 ADD PUSH2 0xD33 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xF2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF3B DUP9 DUP3 DUP10 ADD PUSH2 0xE1F JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP3 SWAP6 PUSH1 0x80 ADD CALLDATALOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF69 DUP4 PUSH2 0xD33 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0xC0 DUP2 MSTORE PUSH1 0x0 PUSH2 0xF8A PUSH1 0xC0 DUP4 ADD DUP10 PUSH2 0xCB6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xF9C DUP2 DUP10 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 DUP9 AND PUSH1 0x40 DUP6 ADD MSTORE SWAP6 SWAP1 SWAP7 AND PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE ISZERO ISZERO PUSH1 0xA0 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xFE1 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x3B7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xD6A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x103C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xD6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1096 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x1073 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1092 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x107F JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10B5 JUMPI PUSH2 0x10B5 PUSH2 0xE09 JUMP JUMPDEST PUSH2 0x10C9 DUP2 PUSH2 0x10C3 DUP5 SLOAD PUSH2 0xFCD JUMP JUMPDEST DUP5 PUSH2 0x104C JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x10FE JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x10E6 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x1092 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x112D JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x110E JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x114B JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x117B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1195 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0xCB6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x11A7 DUP2 DUP6 PUSH2 0xCB6 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x11C9 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0xCB6 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB1 0xE6 PUSH24 0x802461BF6E3151652946C80D669E7091AB7358132AC1A9F7 0xBE 0xEF PUSH21 0x718264736F6C634300081400330000000000000000 ", - "sourceMap": "362:4216:2:-:0;;;922:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;976:10;;1269:95:0;;1322:31;;-1:-1:-1;;;1322:31:0;;1350:1;1322:31;;;478:51:7;451:18;;1322:31:0;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;998:15:2::1;:34:::0;;-1:-1:-1;;;;;;998:34:2::1;-1:-1:-1::0;;;;;998:34:2;;;::::1;::::0;;;::::1;::::0;;362:4216;;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:313:7:-;107:6;160:2;148:9;139:7;135:23;131:32;128:52;;;176:1;173;166:12;128:52;202:16;;-1:-1:-1;;;;;247:31:7;;237:42;;227:70;;293:1;290;283:12;227:70;316:5;14:313;-1:-1:-1;;;14:313:7:o;332:203::-;362:4216:2;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@_checkOwner_84": { - "entryPoint": 3104, - "id": 84, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_msgSender_159": { - "entryPoint": null, - "id": 159, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_transferOwnership_146": { - "entryPoint": 3149, - "id": 146, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@agents_212": { - "entryPoint": 2762, - "id": 212, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@getAgentData_492": { - "entryPoint": 957, - "id": 492, - "parameterSlots": 1, - "returnSlots": 5 - }, - "@getProposal_505": { - "entryPoint": 1326, - "id": 505, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getReputation_443": { - "entryPoint": 815, - "id": 443, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@isRegistered_456": { - "entryPoint": null, - "id": 456, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@nextProposalId_218": { - "entryPoint": null, - "id": 218, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@owner_67": { - "entryPoint": null, - "id": 67, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@proposals_216": { - "entryPoint": 589, - "id": 216, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@registerAgent_402": { - "entryPoint": 1618, - "id": 402, - "parameterSlots": 5, - "returnSlots": 1 - }, - "@renounceOwnership_98": { - "entryPoint": 795, - "id": 98, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@serviceRegistry_207": { - "entryPoint": null, - "id": 207, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@transferOwnership_126": { - "entryPoint": 2499, - "id": 126, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@updateReputation_427": { - "entryPoint": 2561, - "id": 427, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_decode_address": { - "entryPoint": 3379, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_decode_string": { - "entryPoint": 3615, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_address": { - "entryPoint": 3407, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_addresst_uint256": { - "entryPoint": 3917, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_bool_fromMemory": { - "entryPoint": 4138, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_addresst_string_memory_ptrt_uint256": { - "entryPoint": 3756, - "id": null, - "parameterSlots": 2, - "returnSlots": 5 - }, - "abi_decode_tuple_t_uint256": { - "entryPoint": 3229, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_string": { - "entryPoint": 3254, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_string_memory_ptr_t_uint256_t_uint256__to_t_address_t_string_memory_ptr_t_uint256_t_uint256__fromStack_reversed": { - "entryPoint": 3324, - "id": null, - "parameterSlots": 5, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_contract$_ServiceRegistry_$682__to_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 4119, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 4482, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256__to_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256__fromStack_reversed": { - "entryPoint": 3441, - "id": null, - "parameterSlots": 6, - "returnSlots": 1 - }, - "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256_t_bool__to_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256_t_bool__fromStack_reversed": { - "entryPoint": 3959, - "id": null, - "parameterSlots": 7, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_3c17f52d7f382f39131bc893c7e27e69aa71bee31c68e2de3649b59b8bfebc2b__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_6b24a63f053c9f60b33a6142346432678adff778fb93a8ecec9013d5a898e395__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_struct$_Proposal_$1014_memory_ptr__to_t_struct$_Proposal_$1014_memory_ptr__fromStack_reversed": { - "entryPoint": 3515, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_string_memory_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_uint256__fromStack_reversed": { - "entryPoint": 4528, - "id": null, - "parameterSlots": 4, - "returnSlots": 1 - }, - "array_dataslot_string_storage": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "clean_up_bytearray_end_slots_string_storage": { - "entryPoint": 4172, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { - "entryPoint": 4251, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "extract_byte_array_length": { - "entryPoint": 4045, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "extract_used_part_and_set_length_of_short_byte_array": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "increment_t_uint256": { - "entryPoint": 4443, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "panic_error_0x32": { - "entryPoint": 4097, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x41": { - "entryPoint": 3593, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nodeType": "YulBlock", - "src": "0:11535:7", - "statements": [ - { - "nodeType": "YulBlock", - "src": "6:3:7", - "statements": [] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "84:110:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "130:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "139:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "142:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "132:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "132:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "132:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "105:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "114:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "101:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "101:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "126:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "97:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "97:32:7" - }, - "nodeType": "YulIf", - "src": "94:52:7" - }, - { - "nodeType": "YulAssignment", - "src": "155:33:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "178:9:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "165:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "165:23:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "155:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "50:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "61:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "73:6:7", - "type": "" - } - ], - "src": "14:180:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "249:373:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "259:26:7", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "279:5:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "273:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "273:12:7" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "263:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "301:3:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "306:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "294:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "294:19:7" - }, - "nodeType": "YulExpressionStatement", - "src": "294:19:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "322:10:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "331:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "326:1:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "393:110:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "407:14:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "417:4:7", - "type": "", - "value": "0x20" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "411:2:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "449:3:7" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "454:1:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "445:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "445:11:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "458:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "441:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "441:20:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "477:5:7" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "484:1:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "473:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "473:13:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "488:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "469:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "469:22:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "463:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "463:29:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "434:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "434:59:7" - }, - "nodeType": "YulExpressionStatement", - "src": "434:59:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "352:1:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "355:6:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "349:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "349:13:7" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "363:21:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "365:17:7", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "374:1:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "377:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "370:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "370:12:7" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "365:1:7" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "345:3:7", - "statements": [] - }, - "src": "341:162:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "527:3:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "532:6:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "523:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "523:16:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "541:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "519:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "519:27:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "548:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "512:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "512:38:7" - }, - "nodeType": "YulExpressionStatement", - "src": "512:38:7" - }, - { - "nodeType": "YulAssignment", - "src": "559:57:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "574:3:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "587:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "595:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "583:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "583:15:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "604:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "600:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "600:7:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "579:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "579:29:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "570:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "570:39:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "611:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "566:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "566:50:7" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "559:3:7" - } - ] - } - ] - }, - "name": "abi_encode_string", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "226:5:7", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "233:3:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "241:3:7", - "type": "" - } - ], - "src": "199:423:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "832:256:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "849:9:7" - }, - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "864:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "880:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "885:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "876:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "876:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "889:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "872:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "872:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "860:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "860:32:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "842:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "842:51:7" - }, - "nodeType": "YulExpressionStatement", - "src": "842:51:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "913:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "924:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "909:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "909:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "929:3:7", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "902:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "902:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "902:31:7" - }, - { - "nodeType": "YulAssignment", - "src": "942:54:7", - "value": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "968:6:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "980:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "991:3:7", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "976:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "976:19:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "950:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "950:46:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "942:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1016:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1027:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1012:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1012:18:7" - }, - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "1032:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1005:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1005:34:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1005:34:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1059:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1070:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1055:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1055:18:7" - }, - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "1075:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1048:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1048:34:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1048:34:7" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_string_memory_ptr_t_uint256_t_uint256__to_t_address_t_string_memory_ptr_t_uint256_t_uint256__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "777:9:7", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "788:6:7", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "796:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "804:6:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "812:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "823:4:7", - "type": "" - } - ], - "src": "627:461:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1194:76:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1204:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1216:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1227:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1212:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1212:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "1204:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1246:9:7" - }, - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1257:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1239:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1239:25:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1239:25:7" - } - ] - }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1163:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1174:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "1185:4:7", - "type": "" - } - ], - "src": "1093:177:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1376:102:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1386:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1398:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1409:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1394:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1394:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "1386:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1428:9:7" - }, - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1443:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1459:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1464:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "1455:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1455:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1468:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "1451:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1451:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "1439:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1439:32:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1421:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1421:51:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1421:51:7" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1345:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1356:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "1367:4:7", - "type": "" - } - ], - "src": "1275:203:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1532:124:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1542:29:7", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1564:6:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "1551:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "1551:20:7" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1542:5:7" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1634:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1643:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1646:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1636:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1636:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1636:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1593:5:7" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1604:5:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1619:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1624:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "1615:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1615:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1628:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "1611:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1611:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "1600:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1600:31:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "1590:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "1590:42:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "1583:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1583:50:7" - }, - "nodeType": "YulIf", - "src": "1580:70:7" - } - ] - }, - "name": "abi_decode_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1511:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1522:5:7", - "type": "" - } - ], - "src": "1483:173:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1731:116:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "1777:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1786:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1789:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1779:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1779:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1779:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1752:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1761:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "1748:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1748:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1773:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "1744:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1744:32:7" - }, - "nodeType": "YulIf", - "src": "1741:52:7" - }, - { - "nodeType": "YulAssignment", - "src": "1802:39:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1831:9:7" - } - ], - "functionName": { - "name": "abi_decode_address", - "nodeType": "YulIdentifier", - "src": "1812:18:7" - }, - "nodeType": "YulFunctionCall", - "src": "1812:29:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1802:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1697:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "1708:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1720:6:7", - "type": "" - } - ], - "src": "1661:186:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2105:402:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2122:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2133:3:7", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2115:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2115:22:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2115:22:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2146:60:7", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2178:6:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2190:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2201:3:7", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2186:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2186:19:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "2160:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "2160:46:7" - }, - "variables": [ - { - "name": "tail_1", - "nodeType": "YulTypedName", - "src": "2150:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2226:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2237:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2222:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2222:18:7" - }, - { - "arguments": [ - { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "2246:6:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2254:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "2242:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2242:22:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2215:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2215:50:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2215:50:7" - }, - { - "nodeType": "YulAssignment", - "src": "2274:41:7", - "value": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "2300:6:7" - }, - { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "2308:6:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "2282:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "2282:33:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "2274:4:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2324:29:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2342:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2347:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "2338:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2338:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2351:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "2334:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2334:19:7" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "2328:2:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2373:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2384:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2369:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2369:18:7" - }, - { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "2393:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "2401:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "2389:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2389:15:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2362:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2362:43:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2362:43:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2425:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2436:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2421:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2421:18:7" - }, - { - "arguments": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "2445:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "2453:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "2441:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2441:15:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2414:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2414:43:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2414:43:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2477:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2488:3:7", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2473:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2473:19:7" - }, - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "2494:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2466:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2466:35:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2466:35:7" - } - ] - }, - "name": "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256__to_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "2042:9:7", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "2053:6:7", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "2061:6:7", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "2069:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "2077:6:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "2085:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "2096:4:7", - "type": "" - } - ], - "src": "1852:655:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2607:92:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "2617:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2629:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2640:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2625:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2625:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "2617:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2659:9:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2684:6:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "2677:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2677:14:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "2670:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2670:22:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2652:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2652:41:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2652:41:7" - } - ] - }, - "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "2576:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "2587:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "2598:4:7", - "type": "" - } - ], - "src": "2512:187:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2857:423:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2874:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2885:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2867:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2867:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2867:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2908:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2919:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2904:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2904:18:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2934:6:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "2928:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "2928:13:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2951:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2956:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "2947:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2947:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2960:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "2943:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2943:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "2924:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2924:39:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2897:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2897:67:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2897:67:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2973:42:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3003:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3011:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2999:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2999:15:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "2993:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "2993:22:7" - }, - "variables": [ - { - "name": "memberValue0", - "nodeType": "YulTypedName", - "src": "2977:12:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3035:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3046:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3031:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3031:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3051:4:7", - "type": "", - "value": "0x80" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3024:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3024:32:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3024:32:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3065:66:7", - "value": { - "arguments": [ - { - "name": "memberValue0", - "nodeType": "YulIdentifier", - "src": "3097:12:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3115:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3126:3:7", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3111:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3111:19:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "3079:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "3079:52:7" - }, - "variables": [ - { - "name": "tail_1", - "nodeType": "YulTypedName", - "src": "3069:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3151:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3162:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3147:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3147:18:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3177:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3185:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3173:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3173:15:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "3167:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "3167:22:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3140:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3140:50:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3140:50:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3210:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3221:4:7", - "type": "", - "value": "0x80" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3206:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3206:20:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3238:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3246:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3234:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3234:15:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "3228:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "3228:22:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3199:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3199:52:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3199:52:7" - }, - { - "nodeType": "YulAssignment", - "src": "3260:14:7", - "value": { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "3268:6:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3260:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_struct$_Proposal_$1014_memory_ptr__to_t_struct$_Proposal_$1014_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "2826:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "2837:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "2848:4:7", - "type": "" - } - ], - "src": "2704:576:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3409:102:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "3419:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3431:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3442:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3427:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3427:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3419:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3461:9:7" - }, - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3476:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3492:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3497:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "3488:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3488:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3501:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "3484:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3484:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "3472:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3472:32:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3454:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3454:51:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3454:51:7" - } - ] - }, - "name": "abi_encode_tuple_t_contract$_ServiceRegistry_$682__to_t_address__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3378:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "3389:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "3400:4:7", - "type": "" - } - ], - "src": "3285:226:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3548:95:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3565:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3572:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3577:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "3568:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3568:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3558:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3558:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3558:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3605:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3608:4:7", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3598:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3598:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3598:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3629:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3632:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "3622:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3622:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3622:15:7" - } - ] - }, - "name": "panic_error_0x41", - "nodeType": "YulFunctionDefinition", - "src": "3516:127:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3701:666:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "3750:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3759:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3762:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "3752:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3752:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3752:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "3729:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3737:4:7", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3725:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3725:17:7" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "3744:3:7" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "3721:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3721:27:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "3714:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3714:35:7" - }, - "nodeType": "YulIf", - "src": "3711:55:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3775:30:7", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "3798:6:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "3785:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "3785:20:7" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "3779:2:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3814:28:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3824:18:7", - "type": "", - "value": "0xffffffffffffffff" - }, - "variables": [ - { - "name": "_2", - "nodeType": "YulTypedName", - "src": "3818:2:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3865:22:7", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "3867:16:7" - }, - "nodeType": "YulFunctionCall", - "src": "3867:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3867:18:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "3857:2:7" - }, - { - "name": "_2", - "nodeType": "YulIdentifier", - "src": "3861:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "3854:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "3854:10:7" - }, - "nodeType": "YulIf", - "src": "3851:36:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3896:17:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3910:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "3906:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3906:7:7" - }, - "variables": [ - { - "name": "_3", - "nodeType": "YulTypedName", - "src": "3900:2:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3922:23:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3942:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "3936:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "3936:9:7" - }, - "variables": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "3926:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3954:71:7", - "value": { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "3976:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "4000:2:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4004:4:7", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3996:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3996:13:7" - }, - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "4011:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "3992:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3992:22:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4016:2:7", - "type": "", - "value": "63" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3988:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3988:31:7" - }, - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "4021:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "3984:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3984:40:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3972:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3972:53:7" - }, - "variables": [ - { - "name": "newFreePtr", - "nodeType": "YulTypedName", - "src": "3958:10:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4084:22:7", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "4086:16:7" - }, - "nodeType": "YulFunctionCall", - "src": "4086:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4086:18:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "4043:10:7" - }, - { - "name": "_2", - "nodeType": "YulIdentifier", - "src": "4055:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "4040:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "4040:18:7" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "4063:10:7" - }, - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "4075:6:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "4060:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "4060:22:7" - } - ], - "functionName": { - "name": "or", - "nodeType": "YulIdentifier", - "src": "4037:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "4037:46:7" - }, - "nodeType": "YulIf", - "src": "4034:72:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4122:2:7", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "4126:10:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4115:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4115:22:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4115:22:7" - }, - { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "4153:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "4161:2:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4146:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4146:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4146:18:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4212:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4221:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4224:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "4214:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4214:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4214:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "4187:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "4195:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4183:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4183:15:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4200:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4179:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4179:26:7" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "4207:3:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "4176:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "4176:35:7" - }, - "nodeType": "YulIf", - "src": "4173:55:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "4254:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4262:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4250:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4250:17:7" - }, - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "4273:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4281:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4269:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4269:17:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "4288:2:7" - } - ], - "functionName": { - "name": "calldatacopy", - "nodeType": "YulIdentifier", - "src": "4237:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "4237:54:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4237:54:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "4315:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "4323:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4311:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4311:15:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4328:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4307:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4307:26:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4335:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4300:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4300:37:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4300:37:7" - }, - { - "nodeType": "YulAssignment", - "src": "4346:15:7", - "value": { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "4355:6:7" - }, - "variableNames": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "4346:5:7" - } - ] - } - ] - }, - "name": "abi_decode_string", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "3675:6:7", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "3683:3:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nodeType": "YulTypedName", - "src": "3691:5:7", - "type": "" - } - ], - "src": "3648:719:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4540:719:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "4587:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4596:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4599:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "4589:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4589:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4589:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "4561:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4570:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "4557:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4557:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4582:3:7", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "4553:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4553:33:7" - }, - "nodeType": "YulIf", - "src": "4550:53:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "4612:37:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4639:9:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "4626:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "4626:23:7" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "4616:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "4658:28:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4668:18:7", - "type": "", - "value": "0xffffffffffffffff" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "4662:2:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4713:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4722:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4725:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "4715:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4715:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4715:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "4701:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "4709:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "4698:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "4698:14:7" - }, - "nodeType": "YulIf", - "src": "4695:34:7" - }, - { - "nodeType": "YulAssignment", - "src": "4738:60:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4770:9:7" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "4781:6:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4766:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4766:22:7" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "4790:7:7" - } - ], - "functionName": { - "name": "abi_decode_string", - "nodeType": "YulIdentifier", - "src": "4748:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "4748:50:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4738:6:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "4807:48:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4840:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4851:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4836:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4836:18:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "4823:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "4823:32:7" - }, - "variables": [ - { - "name": "offset_1", - "nodeType": "YulTypedName", - "src": "4811:8:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4884:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4893:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4896:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "4886:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4886:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4886:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset_1", - "nodeType": "YulIdentifier", - "src": "4870:8:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "4880:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "4867:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "4867:16:7" - }, - "nodeType": "YulIf", - "src": "4864:36:7" - }, - { - "nodeType": "YulAssignment", - "src": "4909:62:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4941:9:7" - }, - { - "name": "offset_1", - "nodeType": "YulIdentifier", - "src": "4952:8:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4937:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4937:24:7" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "4963:7:7" - } - ], - "functionName": { - "name": "abi_decode_string", - "nodeType": "YulIdentifier", - "src": "4919:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "4919:52:7" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "4909:6:7" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "4980:48:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5013:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5024:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5009:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5009:18:7" - } - ], - "functionName": { - "name": "abi_decode_address", - "nodeType": "YulIdentifier", - "src": "4990:18:7" - }, - "nodeType": "YulFunctionCall", - "src": "4990:38:7" - }, - "variableNames": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "4980:6:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "5037:48:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5070:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5081:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5066:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5066:18:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "5053:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "5053:32:7" - }, - "variables": [ - { - "name": "offset_2", - "nodeType": "YulTypedName", - "src": "5041:8:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5114:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5123:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5126:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "5116:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5116:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5116:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset_2", - "nodeType": "YulIdentifier", - "src": "5100:8:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "5110:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "5097:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "5097:16:7" - }, - "nodeType": "YulIf", - "src": "5094:36:7" - }, - { - "nodeType": "YulAssignment", - "src": "5139:62:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5171:9:7" - }, - { - "name": "offset_2", - "nodeType": "YulIdentifier", - "src": "5182:8:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5167:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5167:24:7" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "5193:7:7" - } - ], - "functionName": { - "name": "abi_decode_string", - "nodeType": "YulIdentifier", - "src": "5149:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "5149:52:7" - }, - "variableNames": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "5139:6:7" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "5210:43:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5237:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5248:3:7", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5233:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5233:19:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "5220:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "5220:33:7" - }, - "variableNames": [ - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "5210:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_addresst_string_memory_ptrt_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "4474:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "4485:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "4497:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "4505:6:7", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "4513:6:7", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "4521:6:7", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "4529:6:7", - "type": "" - } - ], - "src": "4372:887:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5351:167:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "5397:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5406:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5409:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "5399:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5399:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5399:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "5372:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5381:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "5368:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5368:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5393:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "5364:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5364:32:7" - }, - "nodeType": "YulIf", - "src": "5361:52:7" - }, - { - "nodeType": "YulAssignment", - "src": "5422:39:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5451:9:7" - } - ], - "functionName": { - "name": "abi_decode_address", - "nodeType": "YulIdentifier", - "src": "5432:18:7" - }, - "nodeType": "YulFunctionCall", - "src": "5432:29:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5422:6:7" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "5470:42:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5497:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5508:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5493:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5493:18:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "5480:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "5480:32:7" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "5470:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "5309:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "5320:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5332:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "5340:6:7", - "type": "" - } - ], - "src": "5264:254:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5798:462:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5815:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5826:3:7", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "5808:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5808:22:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5808:22:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "5839:60:7", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5871:6:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5883:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5894:3:7", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5879:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5879:19:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "5853:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "5853:46:7" - }, - "variables": [ - { - "name": "tail_1", - "nodeType": "YulTypedName", - "src": "5843:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5919:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5930:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5915:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5915:18:7" - }, - { - "arguments": [ - { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "5939:6:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5947:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "5935:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5935:22:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "5908:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5908:50:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5908:50:7" - }, - { - "nodeType": "YulAssignment", - "src": "5967:41:7", - "value": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "5993:6:7" - }, - { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "6001:6:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "5975:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "5975:33:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "5967:4:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "6017:29:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6035:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6040:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "6031:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6031:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6044:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "6027:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6027:19:7" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "6021:2:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6066:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6077:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6062:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6062:18:7" - }, - { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "6086:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "6094:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "6082:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6082:15:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6055:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6055:43:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6055:43:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6118:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6129:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6114:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6114:18:7" - }, - { - "arguments": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "6138:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "6146:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "6134:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6134:15:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6107:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6107:43:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6107:43:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6170:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6181:3:7", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6166:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6166:19:7" - }, - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "6187:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6159:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6159:35:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6159:35:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6214:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6225:3:7", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6210:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6210:19:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value5", - "nodeType": "YulIdentifier", - "src": "6245:6:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "6238:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6238:14:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "6231:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6231:22:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6203:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6203:51:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6203:51:7" - } - ] - }, - "name": "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256_t_bool__to_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256_t_bool__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "5727:9:7", - "type": "" - }, - { - "name": "value5", - "nodeType": "YulTypedName", - "src": "5738:6:7", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "5746:6:7", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "5754:6:7", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "5762:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "5770:6:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5778:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "5789:4:7", - "type": "" - } - ], - "src": "5523:737:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6320:325:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "6330:22:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6344:1:7", - "type": "", - "value": "1" - }, - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "6347:4:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "6340:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6340:12:7" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6330:6:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "6361:38:7", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "6391:4:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6397:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "6387:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6387:12:7" - }, - "variables": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulTypedName", - "src": "6365:18:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6438:31:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "6440:27:7", - "value": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6454:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6462:4:7", - "type": "", - "value": "0x7f" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "6450:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6450:17:7" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6440:6:7" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulIdentifier", - "src": "6418:18:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "6411:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6411:26:7" - }, - "nodeType": "YulIf", - "src": "6408:61:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6528:111:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6549:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6556:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6561:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "6552:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6552:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6542:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6542:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6542:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6593:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6596:4:7", - "type": "", - "value": "0x22" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6586:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6586:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6586:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6621:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6624:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "6614:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6614:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6614:15:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulIdentifier", - "src": "6484:18:7" - }, - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6507:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6515:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "6504:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "6504:14:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "6481:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "6481:38:7" - }, - "nodeType": "YulIf", - "src": "6478:161:7" - } - ] - }, - "name": "extract_byte_array_length", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "6300:4:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "6309:6:7", - "type": "" - } - ], - "src": "6265:380:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6824:170:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6841:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6852:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6834:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6834:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6834:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6875:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6886:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6871:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6871:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6891:2:7", - "type": "", - "value": "20" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6864:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6864:30:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6864:30:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6914:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6925:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6910:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6910:18:7" - }, - { - "hexValue": "4167656e74206e6f742072656769737465726564", - "kind": "string", - "nodeType": "YulLiteral", - "src": "6930:22:7", - "type": "", - "value": "Agent not registered" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6903:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6903:50:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6903:50:7" - }, - { - "nodeType": "YulAssignment", - "src": "6962:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6974:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6985:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6970:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6970:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6962:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_6b24a63f053c9f60b33a6142346432678adff778fb93a8ecec9013d5a898e395__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "6801:9:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "6815:4:7", - "type": "" - } - ], - "src": "6650:344:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7031:95:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7048:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7055:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7060:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "7051:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7051:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "7041:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7041:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7041:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7088:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7091:4:7", - "type": "", - "value": "0x32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "7081:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7081:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7081:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7112:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7115:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7105:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7105:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7105:15:7" - } - ] - }, - "name": "panic_error_0x32", - "nodeType": "YulFunctionDefinition", - "src": "6999:127:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7305:174:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7322:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7333:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "7315:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7315:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7315:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7356:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7367:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7352:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7352:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7372:2:7", - "type": "", - "value": "24" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "7345:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7345:30:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7345:30:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7395:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7406:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7391:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7391:18:7" - }, - { - "hexValue": "4167656e7420616c72656164792072656769737465726564", - "kind": "string", - "nodeType": "YulLiteral", - "src": "7411:26:7", - "type": "", - "value": "Agent already registered" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "7384:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7384:54:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7384:54:7" - }, - { - "nodeType": "YulAssignment", - "src": "7447:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7459:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7470:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7455:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7455:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7447:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_3c17f52d7f382f39131bc893c7e27e69aa71bee31c68e2de3649b59b8bfebc2b__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "7282:9:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "7296:4:7", - "type": "" - } - ], - "src": "7131:348:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7605:99:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7622:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7633:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "7615:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7615:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7615:21:7" - }, - { - "nodeType": "YulAssignment", - "src": "7645:53:7", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "7671:6:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7683:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7694:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7679:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7679:18:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "7653:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "7653:45:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7645:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "7574:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "7585:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "7596:4:7", - "type": "" - } - ], - "src": "7484:220:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7787:199:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "7833:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7842:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7845:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7835:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7835:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7835:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "7808:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7817:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "7804:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7804:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7829:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "7800:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7800:32:7" - }, - "nodeType": "YulIf", - "src": "7797:52:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7858:29:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7877:9:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "7871:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "7871:16:7" - }, - "variables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "7862:5:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7940:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7949:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7952:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7942:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7942:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7942:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7909:5:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7930:5:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "7923:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7923:13:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "7916:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7916:21:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "7906:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "7906:32:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "7899:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7899:40:7" - }, - "nodeType": "YulIf", - "src": "7896:60:7" - }, - { - "nodeType": "YulAssignment", - "src": "7965:15:7", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7975:5:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "7965:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bool_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "7753:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "7764:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "7776:6:7", - "type": "" - } - ], - "src": "7709:277:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8165:172:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8182:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8193:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8175:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8175:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8175:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8216:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8227:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8212:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8212:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8232:2:7", - "type": "", - "value": "22" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8205:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8205:30:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8205:30:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8255:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8266:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8251:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8251:18:7" - }, - { - "hexValue": "53657276696365206e6f742072656769737465726564", - "kind": "string", - "nodeType": "YulLiteral", - "src": "8271:24:7", - "type": "", - "value": "Service not registered" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8244:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8244:52:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8244:52:7" - }, - { - "nodeType": "YulAssignment", - "src": "8305:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8317:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8328:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8313:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8313:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "8305:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "8142:9:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "8156:4:7", - "type": "" - } - ], - "src": "7991:346:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8398:65:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8415:1:7", - "type": "", - "value": "0" - }, - { - "name": "ptr", - "nodeType": "YulIdentifier", - "src": "8418:3:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8408:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8408:14:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8408:14:7" - }, - { - "nodeType": "YulAssignment", - "src": "8431:26:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8449:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8452:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "keccak256", - "nodeType": "YulIdentifier", - "src": "8439:9:7" - }, - "nodeType": "YulFunctionCall", - "src": "8439:18:7" - }, - "variableNames": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "8431:4:7" - } - ] - } - ] - }, - "name": "array_dataslot_string_storage", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "ptr", - "nodeType": "YulTypedName", - "src": "8381:3:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "8389:4:7", - "type": "" - } - ], - "src": "8342:121:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8549:464:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "8582:425:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "8596:11:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8606:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "8600:2:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "8627:2:7" - }, - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "8631:5:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8620:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8620:17:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8620:17:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "8650:31:7", - "value": { - "arguments": [ - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "8672:2:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8676:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "keccak256", - "nodeType": "YulIdentifier", - "src": "8662:9:7" - }, - "nodeType": "YulFunctionCall", - "src": "8662:19:7" - }, - "variables": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "8654:4:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "8694:57:7", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "8717:4:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8727:1:7", - "type": "", - "value": "5" - }, - { - "arguments": [ - { - "name": "startIndex", - "nodeType": "YulIdentifier", - "src": "8734:10:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8746:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8730:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8730:19:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "8723:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8723:27:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8713:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8713:38:7" - }, - "variables": [ - { - "name": "deleteStart", - "nodeType": "YulTypedName", - "src": "8698:11:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8788:23:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "8790:19:7", - "value": { - "name": "data", - "nodeType": "YulIdentifier", - "src": "8805:4:7" - }, - "variableNames": [ - { - "name": "deleteStart", - "nodeType": "YulIdentifier", - "src": "8790:11:7" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "startIndex", - "nodeType": "YulIdentifier", - "src": "8770:10:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8782:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "8767:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "8767:20:7" - }, - "nodeType": "YulIf", - "src": "8764:47:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "8824:41:7", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "8838:4:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8848:1:7", - "type": "", - "value": "5" - }, - { - "arguments": [ - { - "name": "len", - "nodeType": "YulIdentifier", - "src": "8855:3:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8860:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8851:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8851:12:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "8844:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8844:20:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8834:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8834:31:7" - }, - "variables": [ - { - "name": "_2", - "nodeType": "YulTypedName", - "src": "8828:2:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "8878:24:7", - "value": { - "name": "deleteStart", - "nodeType": "YulIdentifier", - "src": "8891:11:7" - }, - "variables": [ - { - "name": "start", - "nodeType": "YulTypedName", - "src": "8882:5:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8976:21:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "8985:5:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "8992:2:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "8978:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8978:17:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8978:17:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "8926:5:7" - }, - { - "name": "_2", - "nodeType": "YulIdentifier", - "src": "8933:2:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "8923:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "8923:13:7" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "8937:26:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "8939:22:7", - "value": { - "arguments": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "8952:5:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8959:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8948:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8948:13:7" - }, - "variableNames": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "8939:5:7" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "8919:3:7", - "statements": [] - }, - "src": "8915:82:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "len", - "nodeType": "YulIdentifier", - "src": "8565:3:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8570:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "8562:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "8562:11:7" - }, - "nodeType": "YulIf", - "src": "8559:448:7" - } - ] - }, - "name": "clean_up_bytearray_end_slots_string_storage", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "array", - "nodeType": "YulTypedName", - "src": "8521:5:7", - "type": "" - }, - { - "name": "len", - "nodeType": "YulTypedName", - "src": "8528:3:7", - "type": "" - }, - { - "name": "startIndex", - "nodeType": "YulTypedName", - "src": "8533:10:7", - "type": "" - } - ], - "src": "8468:545:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9103:81:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "9113:65:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "9128:4:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9146:1:7", - "type": "", - "value": "3" - }, - { - "name": "len", - "nodeType": "YulIdentifier", - "src": "9149:3:7" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "9142:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9142:11:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9159:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "9155:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9155:6:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "9138:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9138:24:7" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "9134:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9134:29:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "9124:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9124:40:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9170:1:7", - "type": "", - "value": "1" - }, - { - "name": "len", - "nodeType": "YulIdentifier", - "src": "9173:3:7" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "9166:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9166:11:7" - } - ], - "functionName": { - "name": "or", - "nodeType": "YulIdentifier", - "src": "9121:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "9121:57:7" - }, - "variableNames": [ - { - "name": "used", - "nodeType": "YulIdentifier", - "src": "9113:4:7" - } - ] - } - ] - }, - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "9080:4:7", - "type": "" - }, - { - "name": "len", - "nodeType": "YulTypedName", - "src": "9086:3:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "used", - "nodeType": "YulTypedName", - "src": "9094:4:7", - "type": "" - } - ], - "src": "9018:166:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9285:1256:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "9295:24:7", - "value": { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "9315:3:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "9309:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "9309:10:7" - }, - "variables": [ - { - "name": "newLen", - "nodeType": "YulTypedName", - "src": "9299:6:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9362:22:7", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "9364:16:7" - }, - "nodeType": "YulFunctionCall", - "src": "9364:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "9364:18:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "9334:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9342:18:7", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "9331:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "9331:30:7" - }, - "nodeType": "YulIf", - "src": "9328:56:7" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "9437:4:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "9475:4:7" - } - ], - "functionName": { - "name": "sload", - "nodeType": "YulIdentifier", - "src": "9469:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "9469:11:7" - } - ], - "functionName": { - "name": "extract_byte_array_length", - "nodeType": "YulIdentifier", - "src": "9443:25:7" - }, - "nodeType": "YulFunctionCall", - "src": "9443:38:7" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "9483:6:7" - } - ], - "functionName": { - "name": "clean_up_bytearray_end_slots_string_storage", - "nodeType": "YulIdentifier", - "src": "9393:43:7" - }, - "nodeType": "YulFunctionCall", - "src": "9393:97:7" - }, - "nodeType": "YulExpressionStatement", - "src": "9393:97:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "9499:18:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9516:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "srcOffset", - "nodeType": "YulTypedName", - "src": "9503:9:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "9526:23:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9545:4:7", - "type": "", - "value": "0x20" - }, - "variables": [ - { - "name": "srcOffset_1", - "nodeType": "YulTypedName", - "src": "9530:11:7", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "9558:24:7", - "value": { - "name": "srcOffset_1", - "nodeType": "YulIdentifier", - "src": "9571:11:7" - }, - "variableNames": [ - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "9558:9:7" - } - ] - }, - { - "cases": [ - { - "body": { - "nodeType": "YulBlock", - "src": "9628:656:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "9642:35:7", - "value": { - "arguments": [ - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "9661:6:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9673:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "9669:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9669:7:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "9657:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9657:20:7" - }, - "variables": [ - { - "name": "loopEnd", - "nodeType": "YulTypedName", - "src": "9646:7:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "9690:49:7", - "value": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "9734:4:7" - } - ], - "functionName": { - "name": "array_dataslot_string_storage", - "nodeType": "YulIdentifier", - "src": "9704:29:7" - }, - "nodeType": "YulFunctionCall", - "src": "9704:35:7" - }, - "variables": [ - { - "name": "dstPtr", - "nodeType": "YulTypedName", - "src": "9694:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "9752:10:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9761:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "9756:1:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9839:172:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "dstPtr", - "nodeType": "YulIdentifier", - "src": "9864:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "9882:3:7" - }, - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "9887:9:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9878:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9878:19:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "9872:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "9872:26:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "9857:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "9857:42:7" - }, - "nodeType": "YulExpressionStatement", - "src": "9857:42:7" - }, - { - "nodeType": "YulAssignment", - "src": "9916:24:7", - "value": { - "arguments": [ - { - "name": "dstPtr", - "nodeType": "YulIdentifier", - "src": "9930:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9938:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9926:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9926:14:7" - }, - "variableNames": [ - { - "name": "dstPtr", - "nodeType": "YulIdentifier", - "src": "9916:6:7" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "9957:40:7", - "value": { - "arguments": [ - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "9974:9:7" - }, - { - "name": "srcOffset_1", - "nodeType": "YulIdentifier", - "src": "9985:11:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9970:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9970:27:7" - }, - "variableNames": [ - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "9957:9:7" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "9786:1:7" - }, - { - "name": "loopEnd", - "nodeType": "YulIdentifier", - "src": "9789:7:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "9783:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "9783:14:7" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "9798:28:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "9800:24:7", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "9809:1:7" - }, - { - "name": "srcOffset_1", - "nodeType": "YulIdentifier", - "src": "9812:11:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9805:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9805:19:7" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "9800:1:7" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "9779:3:7", - "statements": [] - }, - "src": "9775:236:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10059:166:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "10077:43:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "10104:3:7" - }, - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "10109:9:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10100:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10100:19:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "10094:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "10094:26:7" - }, - "variables": [ - { - "name": "lastValue", - "nodeType": "YulTypedName", - "src": "10081:9:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "dstPtr", - "nodeType": "YulIdentifier", - "src": "10144:6:7" - }, - { - "arguments": [ - { - "name": "lastValue", - "nodeType": "YulIdentifier", - "src": "10156:9:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10183:1:7", - "type": "", - "value": "3" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "10186:6:7" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "10179:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10179:14:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10195:3:7", - "type": "", - "value": "248" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "10175:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10175:24:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10205:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "10201:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10201:6:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "10171:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10171:37:7" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "10167:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10167:42:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "10152:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10152:58:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "10137:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "10137:74:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10137:74:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "loopEnd", - "nodeType": "YulIdentifier", - "src": "10030:7:7" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "10039:6:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "10027:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "10027:19:7" - }, - "nodeType": "YulIf", - "src": "10024:201:7" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "10245:4:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10259:1:7", - "type": "", - "value": "1" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "10262:6:7" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "10255:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10255:14:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10271:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10251:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10251:22:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "10238:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "10238:36:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10238:36:7" - } - ] - }, - "nodeType": "YulCase", - "src": "9621:663:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9626:1:7", - "type": "", - "value": "1" - } - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10301:234:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "10315:14:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10328:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "10319:5:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10364:67:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "10382:35:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "10401:3:7" - }, - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "10406:9:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10397:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10397:19:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "10391:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "10391:26:7" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "10382:5:7" - } - ] - } - ] - }, - "condition": { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "10345:6:7" - }, - "nodeType": "YulIf", - "src": "10342:89:7" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "10451:4:7" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "10510:5:7" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "10517:6:7" - } - ], - "functionName": { - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nodeType": "YulIdentifier", - "src": "10457:52:7" - }, - "nodeType": "YulFunctionCall", - "src": "10457:67:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "10444:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "10444:81:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10444:81:7" - } - ] - }, - "nodeType": "YulCase", - "src": "10293:242:7", - "value": "default" - } - ], - "expression": { - "arguments": [ - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "9601:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9609:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "9598:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "9598:14:7" - }, - "nodeType": "YulSwitch", - "src": "9591:944:7" - } - ] - }, - "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "slot", - "nodeType": "YulTypedName", - "src": "9270:4:7", - "type": "" - }, - { - "name": "src", - "nodeType": "YulTypedName", - "src": "9276:3:7", - "type": "" - } - ], - "src": "9189:1352:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10593:185:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "10632:111:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10653:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10660:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10665:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "10656:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10656:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "10646:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "10646:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10646:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10697:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10700:4:7", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "10690:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "10690:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10690:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10725:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10728:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "10718:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "10718:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10718:15:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "10609:5:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10620:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "10616:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10616:6:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "10606:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "10606:17:7" - }, - "nodeType": "YulIf", - "src": "10603:140:7" - }, - { - "nodeType": "YulAssignment", - "src": "10752:20:7", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "10763:5:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10770:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10759:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10759:13:7" - }, - "variableNames": [ - { - "name": "ret", - "nodeType": "YulIdentifier", - "src": "10752:3:7" - } - ] - } - ] - }, - "name": "increment_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "10575:5:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nodeType": "YulTypedName", - "src": "10585:3:7", - "type": "" - } - ], - "src": "10546:232:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10952:214:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "10969:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10980:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "10962:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "10962:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10962:21:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "10992:59:7", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "11024:6:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11036:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11047:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11032:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11032:18:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "11006:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "11006:45:7" - }, - "variables": [ - { - "name": "tail_1", - "nodeType": "YulTypedName", - "src": "10996:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11071:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11082:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11067:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11067:18:7" - }, - { - "arguments": [ - { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "11091:6:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11099:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "11087:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11087:22:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11060:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11060:50:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11060:50:7" - }, - { - "nodeType": "YulAssignment", - "src": "11119:41:7", - "value": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "11145:6:7" - }, - { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "11153:6:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "11127:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "11127:33:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "11119:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "10913:9:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "10924:6:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "10932:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "10943:4:7", - "type": "" - } - ], - "src": "10783:383:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11348:185:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11365:9:7" - }, - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "11376:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11358:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11358:25:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11358:25:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11403:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11414:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11399:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11399:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11419:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11392:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11392:30:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11392:30:7" - }, - { - "nodeType": "YulAssignment", - "src": "11431:53:7", - "value": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "11457:6:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11469:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11480:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11465:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11465:18:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "11439:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "11439:45:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "11431:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11504:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11515:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11500:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11500:18:7" - }, - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "11520:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11493:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11493:34:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11493:34:7" - } - ] - }, - "name": "abi_encode_tuple_t_uint256_t_string_memory_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_uint256__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "11301:9:7", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "11312:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "11320:6:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "11328:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "11339:4:7", - "type": "" - } - ], - "src": "11171:362:7" - } - ] - }, - "contents": "{\n { }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n let _1 := 0x20\n mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n }\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_address_t_string_memory_ptr_t_uint256_t_uint256__to_t_address_t_string_memory_ptr_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), 128)\n tail := abi_encode_string(value1, add(headStart, 128))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256__to_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, 160)\n let tail_1 := abi_encode_string(value0, add(headStart, 160))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n tail := abi_encode_string(value1, tail_1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_struct$_Proposal_$1014_memory_ptr__to_t_struct$_Proposal_$1014_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), and(mload(value0), sub(shl(160, 1), 1)))\n let memberValue0 := mload(add(value0, 32))\n mstore(add(headStart, 64), 0x80)\n let tail_1 := abi_encode_string(memberValue0, add(headStart, 160))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n mstore(add(headStart, 0x80), mload(add(value0, 96)))\n tail := tail_1\n }\n function abi_encode_tuple_t_contract$_ServiceRegistry_$682__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_string(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0xffffffffffffffff\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(memPtr, 0x20), add(offset, 0x20), _1)\n mstore(add(add(memPtr, _1), 0x20), 0)\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_addresst_string_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n let offset_1 := calldataload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string(add(headStart, offset_1), dataEnd)\n value2 := abi_decode_address(add(headStart, 64))\n let offset_2 := calldataload(add(headStart, 96))\n if gt(offset_2, _1) { revert(0, 0) }\n value3 := abi_decode_string(add(headStart, offset_2), dataEnd)\n value4 := calldataload(add(headStart, 128))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256_t_bool__to_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256_t_bool__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, 192)\n let tail_1 := abi_encode_string(value0, add(headStart, 192))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n tail := abi_encode_string(value1, tail_1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), iszero(iszero(value5)))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_stringliteral_6b24a63f053c9f60b33a6142346432678adff778fb93a8ecec9013d5a898e395__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"Agent not registered\")\n tail := add(headStart, 96)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_stringliteral_3c17f52d7f382f39131bc893c7e27e69aa71bee31c68e2de3649b59b8bfebc2b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Agent already registered\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Service not registered\")\n tail := add(headStart, 96)\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n ret := add(value, 1)\n }\n function abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, 64)\n let tail_1 := abi_encode_string(value0, add(headStart, 64))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n tail := abi_encode_string(value1, tail_1)\n }\n function abi_encode_tuple_t_uint256_t_string_memory_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), 96)\n tail := abi_encode_string(value1, add(headStart, 96))\n mstore(add(headStart, 64), value2)\n }\n}", - "id": 7, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": {}, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063c3c5a5471161008c578063e194f2eb11610066578063e194f2eb146101ef578063f2fde38b14610202578063f5c91a0814610215578063fd66091e1461022857600080fd5b8063c3c5a5471461017d578063c7f758a8146101bc578063cbcf252a146101dc57600080fd5b8063013cf08b146100d45780632ab09d1414610100578063715018a6146101175780638da5cb5b146101215780639c89a0e214610146578063aac9f15a14610159575b600080fd5b6100e76100e2366004610c9d565b61024d565b6040516100f79493929190610cfc565b60405180910390f35b61010960045481565b6040519081526020016100f7565b61011f61031b565b005b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100f7565b610109610154366004610d4f565b61032f565b61016c610167366004610d4f565b6103bd565b6040516100f7959493929190610d71565b6101ac61018b366004610d4f565b6001600160a01b031660009081526002602052604090206005015460ff1690565b60405190151581526020016100f7565b6101cf6101ca366004610c9d565b61052e565b6040516100f79190610dbb565b60015461012e906001600160a01b031681565b6101ac6101fd366004610eac565b610652565b61011f610210366004610d4f565b6109c3565b61011f610223366004610f4d565b610a01565b61023b610236366004610d4f565b610aca565b6040516100f796959493929190610f77565b6003818154811061025d57600080fd5b6000918252602090912060049091020180546001820180546001600160a01b0390921693509061028c90610fcd565b80601f01602080910402602001604051908101604052809291908181526020018280546102b890610fcd565b80156103055780601f106102da57610100808354040283529160200191610305565b820191906000526020600020905b8154815290600101906020018083116102e857829003601f168201915b5050505050908060020154908060030154905084565b610323610c20565b61032d6000610c4d565b565b6001600160a01b038116600090815260026020526040812060050154829060ff166103985760405162461bcd60e51b81526020600482015260146024820152731059d95b9d081b9bdd081c9959da5cdd195c995960621b60448201526064015b60405180910390fd5b6001600160a01b03831660009081526002602052604090206004015491505b50919050565b6001600160a01b038082166000908152600260208190526040822090810154600382015460048301548354606096879695869586959194859460018601949283169390921691859061040e90610fcd565b80601f016020809104026020016040519081016040528092919081815260200182805461043a90610fcd565b80156104875780601f1061045c57610100808354040283529160200191610487565b820191906000526020600020905b81548152906001019060200180831161046a57829003601f168201915b5050505050945083805461049a90610fcd565b80601f01602080910402602001604051908101604052809291908181526020018280546104c690610fcd565b80156105135780601f106104e857610100808354040283529160200191610513565b820191906000526020600020905b8154815290600101906020018083116104f657829003601f168201915b50505050509350955095509550955095505091939590929450565b610562604051806080016040528060006001600160a01b031681526020016060815260200160008152602001600081525090565b6003828154811061057557610575611001565b6000918252602091829020604080516080810190915260049092020180546001600160a01b0316825260018101805492939192918401916105b590610fcd565b80601f01602080910402602001604051908101604052809291908181526020018280546105e190610fcd565b801561062e5780601f106106035761010080835404028352916020019161062e565b820191906000526020600020905b81548152906001019060200180831161061157829003601f168201915b50505050508152602001600282015481526020016003820154815250509050919050565b6001600160a01b03831660009081526002602052604081206005015460ff16156106be5760405162461bcd60e51b815260206004820152601860248201527f4167656e7420616c726561647920726567697374657265640000000000000000604482015260640161038f565b60015460405163b405166b60e01b81526001600160a01b039091169063b405166b906106ee908690600401611017565b602060405180830381865afa15801561070b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072f919061102a565b6107745760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b604482015260640161038f565b6001600160a01b038416600090815260026020526040902080610797888261109b565b50600181016107a6878261109b565b506002810180546001600160a01b031990811633179091556003820180546001600160a01b0388811691841682179092556000600480860182905560058601805460ff191660019081179091556040805160808101825294855260208086018c81529186018b905283546060870152600689018054808501825590865294208551949093029092018054939095169290951691909117835551909283929190820190610852908261109b565b5060408201516002820155606090910151600391820155805460018101825560009190915281517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b600490920291820180546001600160a01b0319166001600160a01b03909216919091178155602083015183927fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c01906108f3908261109b565b50604082015160028201556060909101516003909101556004805490600061091a8361115b565b9190505550336001600160a01b0316866001600160a01b03167f2a562efb52e7cec209321f57200606311256da6d2a1b19d44db7837a3209de288a8a604051610964929190611182565b60405180910390a3856001600160a01b03167fe194e0bc2279adb185c748ae57db10fe2ef1005a1b5646f96235a881c88ddb79826060015187876040516109ad939291906111b0565b60405180910390a2506001979650505050505050565b6109cb610c20565b6001600160a01b0381166109f557604051631e4fbdf760e01b81526000600482015260240161038f565b6109fe81610c4d565b50565b610a09610c20565b6001600160a01b038216600090815260026020526040902060050154829060ff16610a6d5760405162461bcd60e51b81526020600482015260146024820152731059d95b9d081b9bdd081c9959da5cdd195c995960621b604482015260640161038f565b6001600160a01b03831660008181526002602052604090819020600401849055517ffc577563f1b9a0461e24abef1e1fcc0d33d3d881f20b5df6dda59de4aae2c82190610abd9085815260200190565b60405180910390a2505050565b600260205260009081526040902080548190610ae590610fcd565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1190610fcd565b8015610b5e5780601f10610b3357610100808354040283529160200191610b5e565b820191906000526020600020905b815481529060010190602001808311610b4157829003601f168201915b505050505090806001018054610b7390610fcd565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9f90610fcd565b8015610bec5780601f10610bc157610100808354040283529160200191610bec565b820191906000526020600020905b815481529060010190602001808311610bcf57829003601f168201915b5050505060028301546003840154600485015460059095015493946001600160a01b03928316949290911692509060ff1686565b6000546001600160a01b0316331461032d5760405163118cdaa760e01b815233600482015260240161038f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610caf57600080fd5b5035919050565b6000815180845260005b81811015610cdc57602081850181015186830182015201610cc0565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0385168152608060208201819052600090610d2090830186610cb6565b6040830194909452506060015292915050565b80356001600160a01b0381168114610d4a57600080fd5b919050565b600060208284031215610d6157600080fd5b610d6a82610d33565b9392505050565b60a081526000610d8460a0830188610cb6565b8281036020840152610d968188610cb6565b6001600160a01b03968716604085015294909516606083015250608001529392505050565b602080825282516001600160a01b03168282015282015160806040830152600090610de960a0840182610cb6565b905060408401516060840152606084015160808401528091505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610e3057600080fd5b813567ffffffffffffffff80821115610e4b57610e4b610e09565b604051601f8301601f19908116603f01168101908282118183101715610e7357610e73610e09565b81604052838152866020858801011115610e8c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a08688031215610ec457600080fd5b853567ffffffffffffffff80821115610edc57600080fd5b610ee889838a01610e1f565b96506020880135915080821115610efe57600080fd5b610f0a89838a01610e1f565b9550610f1860408901610d33565b94506060880135915080821115610f2e57600080fd5b50610f3b88828901610e1f565b95989497509295608001359392505050565b60008060408385031215610f6057600080fd5b610f6983610d33565b946020939093013593505050565b60c081526000610f8a60c0830189610cb6565b8281036020840152610f9c8189610cb6565b6001600160a01b039788166040850152959096166060830152506080810192909252151560a0909101529392505050565b600181811c90821680610fe157607f821691505b6020821081036103b757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b602081526000610d6a6020830184610cb6565b60006020828403121561103c57600080fd5b81518015158114610d6a57600080fd5b601f82111561109657600081815260208120601f850160051c810160208610156110735750805b601f850160051c820191505b818110156110925782815560010161107f565b5050505b505050565b815167ffffffffffffffff8111156110b5576110b5610e09565b6110c9816110c38454610fcd565b8461104c565b602080601f8311600181146110fe57600084156110e65750858301515b600019600386901b1c1916600185901b178555611092565b600085815260208120601f198616915b8281101561112d5788860151825594840194600190910190840161110e565b508582101561114b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006001820161117b57634e487b7160e01b600052601160045260246000fd5b5060010190565b6040815260006111956040830185610cb6565b82810360208401526111a78185610cb6565b95945050505050565b8381526060602082015260006111c96060830185610cb6565b905082604083015294935050505056fea2646970667358221220b1e677802461bf6e3151652946c80d669e7091ab7358132ac1a9f7beef74718264736f6c63430008140033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC3C5A547 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xE194F2EB GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xE194F2EB EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0xF5C91A08 EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0xFD66091E EQ PUSH2 0x228 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC3C5A547 EQ PUSH2 0x17D JUMPI DUP1 PUSH4 0xC7F758A8 EQ PUSH2 0x1BC JUMPI DUP1 PUSH4 0xCBCF252A EQ PUSH2 0x1DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x2AB09D14 EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x121 JUMPI DUP1 PUSH4 0x9C89A0E2 EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0xAAC9F15A EQ PUSH2 0x159 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE7 PUSH2 0xE2 CALLDATASIZE PUSH1 0x4 PUSH2 0xC9D JUMP JUMPDEST PUSH2 0x24D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xCFC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x109 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF7 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x31B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF7 JUMP JUMPDEST PUSH2 0x109 PUSH2 0x154 CALLDATASIZE PUSH1 0x4 PUSH2 0xD4F JUMP JUMPDEST PUSH2 0x32F JUMP JUMPDEST PUSH2 0x16C PUSH2 0x167 CALLDATASIZE PUSH1 0x4 PUSH2 0xD4F JUMP JUMPDEST PUSH2 0x3BD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD71 JUMP JUMPDEST PUSH2 0x1AC PUSH2 0x18B CALLDATASIZE PUSH1 0x4 PUSH2 0xD4F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x5 ADD SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF7 JUMP JUMPDEST PUSH2 0x1CF PUSH2 0x1CA CALLDATASIZE PUSH1 0x4 PUSH2 0xC9D JUMP JUMPDEST PUSH2 0x52E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x12E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1AC PUSH2 0x1FD CALLDATASIZE PUSH1 0x4 PUSH2 0xEAC JUMP JUMPDEST PUSH2 0x652 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x210 CALLDATASIZE PUSH1 0x4 PUSH2 0xD4F JUMP JUMPDEST PUSH2 0x9C3 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x223 CALLDATASIZE PUSH1 0x4 PUSH2 0xF4D JUMP JUMPDEST PUSH2 0xA01 JUMP JUMPDEST PUSH2 0x23B PUSH2 0x236 CALLDATASIZE PUSH1 0x4 PUSH2 0xD4F JUMP JUMPDEST PUSH2 0xACA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF77 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x25D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x4 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP4 POP SWAP1 PUSH2 0x28C SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2B8 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x305 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2DA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x305 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2E8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 POP DUP5 JUMP JUMPDEST PUSH2 0x323 PUSH2 0xC20 JUMP JUMPDEST PUSH2 0x32D PUSH1 0x0 PUSH2 0xC4D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x5 ADD SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH2 0x398 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x1059D95B9D081B9BDD081C9959DA5CDD195C9959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD SWAP2 POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SWAP1 DUP2 ADD SLOAD PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x4 DUP4 ADD SLOAD DUP4 SLOAD PUSH1 0x60 SWAP7 DUP8 SWAP7 SWAP6 DUP7 SWAP6 DUP7 SWAP6 SWAP2 SWAP5 DUP6 SWAP5 PUSH1 0x1 DUP7 ADD SWAP5 SWAP3 DUP4 AND SWAP4 SWAP1 SWAP3 AND SWAP2 DUP6 SWAP1 PUSH2 0x40E SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x43A SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x487 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x45C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x487 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x46A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP5 POP DUP4 DUP1 SLOAD PUSH2 0x49A SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4C6 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x513 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4E8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x513 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x4F6 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP4 POP SWAP6 POP SWAP6 POP SWAP6 POP SWAP6 POP SWAP6 POP POP SWAP2 SWAP4 SWAP6 SWAP1 SWAP3 SWAP5 POP JUMP JUMPDEST PUSH2 0x562 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x575 JUMPI PUSH2 0x575 PUSH2 0x1001 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x4 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE PUSH1 0x1 DUP2 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x5B5 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x5E1 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x62E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x603 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x62E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x611 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x5 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x6BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4167656E7420616C726561647920726567697374657265640000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x38F JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0x6EE SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1017 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x70B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x72F SWAP2 SWAP1 PUSH2 0x102A JUMP JUMPDEST PUSH2 0x774 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x14D95C9D9A58D9481B9BDD081C9959DA5CDD195C9959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x38F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 PUSH2 0x797 DUP9 DUP3 PUSH2 0x109B JUMP JUMPDEST POP PUSH1 0x1 DUP2 ADD PUSH2 0x7A6 DUP8 DUP3 PUSH2 0x109B JUMP JUMPDEST POP PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND SWAP2 DUP5 AND DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 PUSH1 0x4 DUP1 DUP7 ADD DUP3 SWAP1 SSTORE PUSH1 0x5 DUP7 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE SWAP5 DUP6 MSTORE PUSH1 0x20 DUP1 DUP7 ADD DUP13 DUP2 MSTORE SWAP2 DUP7 ADD DUP12 SWAP1 MSTORE DUP4 SLOAD PUSH1 0x60 DUP8 ADD MSTORE PUSH1 0x6 DUP10 ADD DUP1 SLOAD DUP1 DUP6 ADD DUP3 SSTORE SWAP1 DUP7 MSTORE SWAP5 KECCAK256 DUP6 MLOAD SWAP5 SWAP1 SWAP4 MUL SWAP1 SWAP3 ADD DUP1 SLOAD SWAP4 SWAP1 SWAP6 AND SWAP3 SWAP1 SWAP6 AND SWAP2 SWAP1 SWAP2 OR DUP4 SSTORE MLOAD SWAP1 SWAP3 DUP4 SWAP3 SWAP2 SWAP1 DUP3 ADD SWAP1 PUSH2 0x852 SWAP1 DUP3 PUSH2 0x109B JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SSTORE PUSH1 0x60 SWAP1 SWAP2 ADD MLOAD PUSH1 0x3 SWAP2 DUP3 ADD SSTORE DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B PUSH1 0x4 SWAP1 SWAP3 MUL SWAP2 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x20 DUP4 ADD MLOAD DUP4 SWAP3 PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85C ADD SWAP1 PUSH2 0x8F3 SWAP1 DUP3 PUSH2 0x109B JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SSTORE PUSH1 0x60 SWAP1 SWAP2 ADD MLOAD PUSH1 0x3 SWAP1 SWAP2 ADD SSTORE PUSH1 0x4 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x91A DUP4 PUSH2 0x115B JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x2A562EFB52E7CEC209321F57200606311256DA6D2A1B19D44DB7837A3209DE28 DUP11 DUP11 PUSH1 0x40 MLOAD PUSH2 0x964 SWAP3 SWAP2 SWAP1 PUSH2 0x1182 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xE194E0BC2279ADB185C748AE57DB10FE2EF1005A1B5646F96235A881C88DDB79 DUP3 PUSH1 0x60 ADD MLOAD DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x9AD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP PUSH1 0x1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x9CB PUSH2 0xC20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x9F5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x38F JUMP JUMPDEST PUSH2 0x9FE DUP2 PUSH2 0xC4D JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xA09 PUSH2 0xC20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x5 ADD SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH2 0xA6D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x1059D95B9D081B9BDD081C9959DA5CDD195C9959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x38F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 PUSH1 0x4 ADD DUP5 SWAP1 SSTORE MLOAD PUSH32 0xFC577563F1B9A0461E24ABEF1E1FCC0D33D3D881F20B5DF6DDA59DE4AAE2C821 SWAP1 PUSH2 0xABD SWAP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP2 SWAP1 PUSH2 0xAE5 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xB11 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB5E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB33 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB5E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB41 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0xB73 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xB9F SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0xBEC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBC1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xBEC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xBCF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 DUP6 ADD SLOAD PUSH1 0x5 SWAP1 SWAP6 ADD SLOAD SWAP4 SWAP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP5 SWAP3 SWAP1 SWAP2 AND SWAP3 POP SWAP1 PUSH1 0xFF AND DUP7 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x32D JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x38F JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xCDC JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0xCC0 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xD20 SWAP1 DUP4 ADD DUP7 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x60 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD6A DUP3 PUSH2 0xD33 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP2 MSTORE PUSH1 0x0 PUSH2 0xD84 PUSH1 0xA0 DUP4 ADD DUP9 PUSH2 0xCB6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xD96 DUP2 DUP9 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP7 DUP8 AND PUSH1 0x40 DUP6 ADD MSTORE SWAP5 SWAP1 SWAP6 AND PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 DUP3 ADD MSTORE DUP3 ADD MLOAD PUSH1 0x80 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x0 SWAP1 PUSH2 0xDE9 PUSH1 0xA0 DUP5 ADD DUP3 PUSH2 0xCB6 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x80 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xE30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xE4B JUMPI PUSH2 0xE4B PUSH2 0xE09 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xE73 JUMPI PUSH2 0xE73 PUSH2 0xE09 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0xE8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xEC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xEDC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEE8 DUP10 DUP4 DUP11 ADD PUSH2 0xE1F JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xEFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF0A DUP10 DUP4 DUP11 ADD PUSH2 0xE1F JUMP JUMPDEST SWAP6 POP PUSH2 0xF18 PUSH1 0x40 DUP10 ADD PUSH2 0xD33 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xF2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF3B DUP9 DUP3 DUP10 ADD PUSH2 0xE1F JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP3 SWAP6 PUSH1 0x80 ADD CALLDATALOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF69 DUP4 PUSH2 0xD33 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0xC0 DUP2 MSTORE PUSH1 0x0 PUSH2 0xF8A PUSH1 0xC0 DUP4 ADD DUP10 PUSH2 0xCB6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xF9C DUP2 DUP10 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 DUP9 AND PUSH1 0x40 DUP6 ADD MSTORE SWAP6 SWAP1 SWAP7 AND PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE ISZERO ISZERO PUSH1 0xA0 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xFE1 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x3B7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xD6A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x103C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xD6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1096 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x1073 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1092 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x107F JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10B5 JUMPI PUSH2 0x10B5 PUSH2 0xE09 JUMP JUMPDEST PUSH2 0x10C9 DUP2 PUSH2 0x10C3 DUP5 SLOAD PUSH2 0xFCD JUMP JUMPDEST DUP5 PUSH2 0x104C JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x10FE JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x10E6 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x1092 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x112D JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x110E JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x114B JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x117B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1195 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0xCB6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x11A7 DUP2 DUP6 PUSH2 0xCB6 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x11C9 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0xCB6 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB1 0xE6 PUSH24 0x802461BF6E3151652946C80D669E7091AB7358132AC1A9F7 0xBE 0xEF PUSH21 0x718264736F6C634300081400330000000000000000 ", - "sourceMap": "362:4216:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;721:27;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;754:29;;;;;;;;;1239:25:7;;;1227:2;1212:18;754:29:2;1093:177:7;2293:101:0;;;:::i;:::-;;1638:85;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;1638:85;;;-1:-1:-1;;;;;1439:32:7;;;1421:51;;1409:2;1394:18;1638:85:0;1275:203:7;3478:140:2;;;;;;:::i;:::-;;:::i;4102:341::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;3624:116::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3707:13:2;3684:4;3707:13;;;:6;:13;;;;;:26;;;;;;3624:116;;;;2677:14:7;;2670:22;2652:41;;2640:2;2625:18;3624:116:2;2512:187:7;4450:126:2;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;628:38::-;;;;;-1:-1:-1;;;;;628:38:2;;;1988:1268;;;;;;:::i;:::-;;:::i;2543:215:0:-;;;;;;:::i;:::-;;:::i;3262:210:2:-;;;;;;:::i;:::-;;:::i;672:43::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;721:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;721:27:2;;;;-1:-1:-1;721:27:2;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;3478:140:2:-;-1:-1:-1;;;;;847:13:2;;3561:7;847:13;;;:6;:13;;;;;:26;;;3545:5;;847:26;;839:59;;;;-1:-1:-1;;;839:59:2;;6852:2:7;839:59:2;;;6834:21:7;6891:2;6871:18;;;6864:30;-1:-1:-1;;;6910:18:7;;;6903:50;6970:18;;839:59:2;;;;;;;;;-1:-1:-1;;;;;3587:13:2;::::1;;::::0;;;:6:::1;:13;::::0;;;;:24:::1;;::::0;;-1:-1:-1;908:1:2::1;3478:140:::0;;;;:::o;4102:341::-;-1:-1:-1;;;;;4338:14:2;;;4232:13;4338:14;;;:6;:14;;;;;;;4396:10;;;;4408;;;;4420:15;;;;4362:74;;4172:18;;;;4232:13;;;;;4338:14;;;;4381:13;;;;4396:10;;;;4408;;;;4338:14;;4362:74;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4102:341;;;;;;;:::o;4450:126::-;4514:15;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4514:15:2;4548:9;4558:10;4548:21;;;;;;;;:::i;:::-;;;;;;;;;;4541:28;;;;;;;;;4548:21;;;;;4541:28;;-1:-1:-1;;;;;4541:28:2;;;;;;;;;;4548:21;;4541:28;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4450:126;;;:::o;1988:1268::-;-1:-1:-1;;;;;2208:13:2;;2183:4;2208:13;;;:6;:13;;;;;:26;;;;;2207:27;2199:64;;;;-1:-1:-1;;;2199:64:2;;7333:2:7;2199:64:2;;;7315:21:7;7372:2;7352:18;;;7345:30;7411:26;7391:18;;;7384:54;7455:18;;2199:64:2;7131:348:7;2199:64:2;2281:15;;:48;;-1:-1:-1;;;2281:48:2;;-1:-1:-1;;;;;2281:15:2;;;;:35;;:48;;2317:11;;2281:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2273:83;;;;-1:-1:-1;;;2273:83:2;;8193:2:7;2273:83:2;;;8175:21:7;8232:2;8212:18;;;8205:30;-1:-1:-1;;;8251:18:7;;;8244:52;8313:18;;2273:83:2;7991:346:7;2273:83:2;-1:-1:-1;;;;;2405:13:2;;2375:27;2405:13;;;:6;:13;;;;;;2428:21;2445:4;2405:13;2428:21;:::i;:::-;-1:-1:-1;2459:18:2;;;:29;2480:8;2459:18;:29;:::i;:::-;-1:-1:-1;2498:15:2;;;:28;;-1:-1:-1;;;;;;2498:28:2;;;2516:10;2498:28;;;;2536:15;;;:23;;-1:-1:-1;;;;;2536:23:2;;;;;;;;;;;2498:15;2569:20;;;;:24;;;2603:22;;;:29;;-1:-1:-1;;2603:29:2;2498:28;2603:29;;;;;;2669:58;;;;;;;;;;;;;;;;;;;;;;;;2712:14;;2669:58;;;;2737:19;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2669:58;;;;2737:34;;;;;;;;;:::i;:::-;-1:-1:-1;2737:34:2;;;;;;;;;;;;;;;;;;2781:24;;;;;;;-1:-1:-1;2781:24:2;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2781:24:2;-1:-1:-1;;;;;2781:24:2;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2781:24:2;;;;;;;;;;;;;;;;;;3063:14;:16;;;-1:-1:-1;3063:16:2;;;:::i;:::-;;;;;;3117:10;-1:-1:-1;;;;;3094:50:2;3110:5;-1:-1:-1;;;;;3094:50:2;;3129:4;3135:8;3094:50;;;;;;;:::i;:::-;;;;;;;;3173:5;-1:-1:-1;;;;;3159:68:2;;3180:8;:19;;;3201:11;3214:12;3159:68;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;3245:4:2;;1988:1268;-1:-1:-1;;;;;;;1988:1268:2:o;2543:215:0:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:0;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:0;;2700:1:::1;2672:31;::::0;::::1;1421:51:7::0;1394:18;;2672:31:0::1;1275:203:7::0;2623:91:0::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;3262:210:2:-;1531:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;847:13:2;::::1;;::::0;;;:6:::1;:13;::::0;;;;:26:::1;;::::0;3358:5;;847:26:::1;;839:59;;;::::0;-1:-1:-1;;;839:59:2;;6852:2:7;839:59:2::1;::::0;::::1;6834:21:7::0;6891:2;6871:18;;;6864:30;-1:-1:-1;;;6910:18:7;;;6903:50;6970:18;;839:59:2::1;6650:344:7::0;839:59:2::1;-1:-1:-1::0;;;;;3375:13:2;::::2;;::::0;;;:6:::2;:13;::::0;;;;;;:24:::2;;:38:::0;;;3428:37;::::2;::::0;::::2;::::0;3402:11;1239:25:7;;1227:2;1212:18;;1093:177;3428:37:2::2;;;;;;;;1554:1:0::1;3262:210:2::0;;:::o;672:43::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;672:43:2;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;672:43:2;;;;;;;;;-1:-1:-1;672:43:2;;;;:::o;1796:162:0:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;735:10:1;1855:23:0;1851:101;;1901:40;;-1:-1:-1;;;1901:40:0;;735:10:1;1901:40:0;;;1421:51:7;1394:18;;1901:40:0;1275:203:7;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:180:7:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:7;;14:180;-1:-1:-1;14:180:7:o;199:423::-;241:3;279:5;273:12;306:6;301:3;294:19;331:1;341:162;355:6;352:1;349:13;341:162;;;417:4;473:13;;;469:22;;463:29;445:11;;;441:20;;434:59;370:12;341:162;;;345:3;548:1;541:4;532:6;527:3;523:16;519:27;512:38;611:4;604:2;600:7;595:2;587:6;583:15;579:29;574:3;570:39;566:50;559:57;;;199:423;;;;:::o;627:461::-;-1:-1:-1;;;;;860:32:7;;842:51;;929:3;924:2;909:18;;902:31;;;-1:-1:-1;;950:46:7;;976:19;;968:6;950:46;:::i;:::-;1027:2;1012:18;;1005:34;;;;-1:-1:-1;1070:2:7;1055:18;1048:34;942:54;627:461;-1:-1:-1;;627:461:7:o;1483:173::-;1551:20;;-1:-1:-1;;;;;1600:31:7;;1590:42;;1580:70;;1646:1;1643;1636:12;1580:70;1483:173;;;:::o;1661:186::-;1720:6;1773:2;1761:9;1752:7;1748:23;1744:32;1741:52;;;1789:1;1786;1779:12;1741:52;1812:29;1831:9;1812:29;:::i;:::-;1802:39;1661:186;-1:-1:-1;;;1661:186:7:o;1852:655::-;2133:3;2122:9;2115:22;2096:4;2160:46;2201:3;2190:9;2186:19;2178:6;2160:46;:::i;:::-;2254:9;2246:6;2242:22;2237:2;2226:9;2222:18;2215:50;2282:33;2308:6;2300;2282:33;:::i;:::-;-1:-1:-1;;;;;2389:15:7;;;2384:2;2369:18;;2362:43;2441:15;;;;2436:2;2421:18;;2414:43;-1:-1:-1;2488:3:7;2473:19;2466:35;2274:41;1852:655;-1:-1:-1;;;1852:655:7:o;2704:576::-;2885:2;2867:21;;;2928:13;;-1:-1:-1;;;;;2924:39:7;2904:18;;;2897:67;2999:15;;2993:22;3051:4;3046:2;3031:18;;3024:32;-1:-1:-1;;3079:52:7;2951:3;3111:19;;2993:22;3079:52;:::i;:::-;3065:66;;3185:2;3177:6;3173:15;3167:22;3162:2;3151:9;3147:18;3140:50;3246:2;3238:6;3234:15;3228:22;3221:4;3210:9;3206:20;3199:52;3268:6;3260:14;;;2704:576;;;;:::o;3516:127::-;3577:10;3572:3;3568:20;3565:1;3558:31;3608:4;3605:1;3598:15;3632:4;3629:1;3622:15;3648:719;3691:5;3744:3;3737:4;3729:6;3725:17;3721:27;3711:55;;3762:1;3759;3752:12;3711:55;3798:6;3785:20;3824:18;3861:2;3857;3854:10;3851:36;;;3867:18;;:::i;:::-;3942:2;3936:9;3910:2;3996:13;;-1:-1:-1;;3992:22:7;;;4016:2;3988:31;3984:40;3972:53;;;4040:18;;;4060:22;;;4037:46;4034:72;;;4086:18;;:::i;:::-;4126:10;4122:2;4115:22;4161:2;4153:6;4146:18;4207:3;4200:4;4195:2;4187:6;4183:15;4179:26;4176:35;4173:55;;;4224:1;4221;4214:12;4173:55;4288:2;4281:4;4273:6;4269:17;4262:4;4254:6;4250:17;4237:54;4335:1;4328:4;4323:2;4315:6;4311:15;4307:26;4300:37;4355:6;4346:15;;;;;;3648:719;;;;:::o;4372:887::-;4497:6;4505;4513;4521;4529;4582:3;4570:9;4561:7;4557:23;4553:33;4550:53;;;4599:1;4596;4589:12;4550:53;4639:9;4626:23;4668:18;4709:2;4701:6;4698:14;4695:34;;;4725:1;4722;4715:12;4695:34;4748:50;4790:7;4781:6;4770:9;4766:22;4748:50;:::i;:::-;4738:60;;4851:2;4840:9;4836:18;4823:32;4807:48;;4880:2;4870:8;4867:16;4864:36;;;4896:1;4893;4886:12;4864:36;4919:52;4963:7;4952:8;4941:9;4937:24;4919:52;:::i;:::-;4909:62;;4990:38;5024:2;5013:9;5009:18;4990:38;:::i;:::-;4980:48;;5081:2;5070:9;5066:18;5053:32;5037:48;;5110:2;5100:8;5097:16;5094:36;;;5126:1;5123;5116:12;5094:36;;5149:52;5193:7;5182:8;5171:9;5167:24;5149:52;:::i;:::-;4372:887;;;;-1:-1:-1;4372:887:7;;5248:3;5233:19;5220:33;;4372:887;-1:-1:-1;;;4372:887:7:o;5264:254::-;5332:6;5340;5393:2;5381:9;5372:7;5368:23;5364:32;5361:52;;;5409:1;5406;5399:12;5361:52;5432:29;5451:9;5432:29;:::i;:::-;5422:39;5508:2;5493:18;;;;5480:32;;-1:-1:-1;;;5264:254:7:o;5523:737::-;5826:3;5815:9;5808:22;5789:4;5853:46;5894:3;5883:9;5879:19;5871:6;5853:46;:::i;:::-;5947:9;5939:6;5935:22;5930:2;5919:9;5915:18;5908:50;5975:33;6001:6;5993;5975:33;:::i;:::-;-1:-1:-1;;;;;6082:15:7;;;6077:2;6062:18;;6055:43;6134:15;;;;6129:2;6114:18;;6107:43;-1:-1:-1;6181:3:7;6166:19;;6159:35;;;;6238:14;6231:22;6035:3;6210:19;;;6203:51;6134:15;5967:41;-1:-1:-1;;;5523:737:7:o;6265:380::-;6344:1;6340:12;;;;6387;;;6408:61;;6462:4;6454:6;6450:17;6440:27;;6408:61;6515:2;6507:6;6504:14;6484:18;6481:38;6478:161;;6561:10;6556:3;6552:20;6549:1;6542:31;6596:4;6593:1;6586:15;6624:4;6621:1;6614:15;6999:127;7060:10;7055:3;7051:20;7048:1;7041:31;7091:4;7088:1;7081:15;7115:4;7112:1;7105:15;7484:220;7633:2;7622:9;7615:21;7596:4;7653:45;7694:2;7683:9;7679:18;7671:6;7653:45;:::i;7709:277::-;7776:6;7829:2;7817:9;7808:7;7804:23;7800:32;7797:52;;;7845:1;7842;7835:12;7797:52;7877:9;7871:16;7930:5;7923:13;7916:21;7909:5;7906:32;7896:60;;7952:1;7949;7942:12;8468:545;8570:2;8565:3;8562:11;8559:448;;;8606:1;8631:5;8627:2;8620:17;8676:4;8672:2;8662:19;8746:2;8734:10;8730:19;8727:1;8723:27;8717:4;8713:38;8782:4;8770:10;8767:20;8764:47;;;-1:-1:-1;8805:4:7;8764:47;8860:2;8855:3;8851:12;8848:1;8844:20;8838:4;8834:31;8824:41;;8915:82;8933:2;8926:5;8923:13;8915:82;;;8978:17;;;8959:1;8948:13;8915:82;;;8919:3;;;8559:448;8468:545;;;:::o;9189:1352::-;9315:3;9309:10;9342:18;9334:6;9331:30;9328:56;;;9364:18;;:::i;:::-;9393:97;9483:6;9443:38;9475:4;9469:11;9443:38;:::i;:::-;9437:4;9393:97;:::i;:::-;9545:4;;9609:2;9598:14;;9626:1;9621:663;;;;10328:1;10345:6;10342:89;;;-1:-1:-1;10397:19:7;;;10391:26;10342:89;-1:-1:-1;;9146:1:7;9142:11;;;9138:24;9134:29;9124:40;9170:1;9166:11;;;9121:57;10444:81;;9591:944;;9621:663;8415:1;8408:14;;;8452:4;8439:18;;-1:-1:-1;;9657:20:7;;;9775:236;9789:7;9786:1;9783:14;9775:236;;;9878:19;;;9872:26;9857:42;;9970:27;;;;9938:1;9926:14;;;;9805:19;;9775:236;;;9779:3;10039:6;10030:7;10027:19;10024:201;;;10100:19;;;10094:26;-1:-1:-1;;10183:1:7;10179:14;;;10195:3;10175:24;10171:37;10167:42;10152:58;10137:74;;10024:201;-1:-1:-1;;;;;10271:1:7;10255:14;;;10251:22;10238:36;;-1:-1:-1;9189:1352:7:o;10546:232::-;10585:3;10606:17;;;10603:140;;10665:10;10660:3;10656:20;10653:1;10646:31;10700:4;10697:1;10690:15;10728:4;10725:1;10718:15;10603:140;-1:-1:-1;10770:1:7;10759:13;;10546:232::o;10783:383::-;10980:2;10969:9;10962:21;10943:4;11006:45;11047:2;11036:9;11032:18;11024:6;11006:45;:::i;:::-;11099:9;11091:6;11087:22;11082:2;11071:9;11067:18;11060:50;11127:33;11153:6;11145;11127:33;:::i;:::-;11119:41;10783:383;-1:-1:-1;;;;;10783:383:7:o;11171:362::-;11376:6;11365:9;11358:25;11419:2;11414;11403:9;11399:18;11392:30;11339:4;11439:45;11480:2;11469:9;11465:18;11457:6;11439:45;:::i;:::-;11431:53;;11520:6;11515:2;11504:9;11500:18;11493:34;11171:362;;;;;;:::o" - }, - "methodIdentifiers": { - "agents(address)": "fd66091e", - "getAgentData(address)": "aac9f15a", - "getProposal(uint256)": "c7f758a8", - "getReputation(address)": "9c89a0e2", - "isRegistered(address)": "c3c5a547", - "nextProposalId()": "2ab09d14", - "owner()": "8da5cb5b", - "proposals(uint256)": "013cf08b", - "registerAgent(string,string,address,string,uint256)": "e194f2eb", - "renounceOwnership()": "715018a6", - "serviceRegistry()": "cbcf252a", - "transferOwnership(address)": "f2fde38b", - "updateReputation(address,uint256)": "f5c91a08" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ServiceRegistry\",\"name\":\"_serviceRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"agentUri\",\"type\":\"string\"}],\"name\":\"AgentRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"ProposalAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newReputation\",\"type\":\"uint256\"}],\"name\":\"ReputationUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"name\",\"type\":\"uint256\"}],\"name\":\"ServiceAdded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"agents\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"agentUri\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reputation\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isRegistered\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"getAgentData\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"agentUri\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reputation\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"getProposal\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"serviceName\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"internalType\":\"struct IProposalStruct.Proposal\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"}],\"name\":\"getReputation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"}],\"name\":\"isRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextProposalId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"serviceName\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"agentUri\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"serviceName\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"servicePrice\",\"type\":\"uint256\"}],\"name\":\"registerAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"serviceRegistry\",\"outputs\":[{\"internalType\":\"contract ServiceRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_reputation\",\"type\":\"uint256\"}],\"name\":\"updateReputation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"leonprou\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"getAgentData(address)\":{\"details\":\"get agent data\",\"params\":{\"_agent\":\"The address of the agent\"},\"returns\":{\"agent\":\"The agent contract address\",\"agentUri\":\"The URI pointing to the agent's metadata\",\"name\":\"The name of the agent\",\"owner\":\"The owner address of the agent\",\"reputation\":\"The reputation score of the agent\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"registerAgent(string,string,address,string,uint256)\":{\"details\":\"Registers a new agent with the given details.\",\"params\":{\"agent\":\"The address of the agent.\",\"agentUri\":\"The URI pointing to the agent's metadata.\",\"name\":\"The name of the agent.\",\"serviceName\":\"The name of the service.\",\"servicePrice\":\"The price of the service.\"},\"returns\":{\"_0\":\"true if the agent was registered successfully, false otherwise. Requirements: - The agent must not already be registered. - The caller will be set as the owner of the agent. Emits an {AgentRegistered} event.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"AgentsRegistry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A smart contract that stores information about the agents, and the services proposals provided by the agents.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/AgentsRegistry.sol\":\"AgentsRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/AgentsRegistry.sol\":{\"keccak256\":\"0xc17a9c7b8fca86a970db6bbe6da542011bd2d98e720fe2368b16cb85be76c699\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c56ff006218ba1ab0d29cedd32a4e788abfe22265aef430d65308a6a540957da\",\"dweb:/ipfs/QmcyAk98Fi3LtMm7WYBcaWy1J1sPwWyHieLwnqCyRQgqB8\"]},\"contracts/ServiceRegistry.sol\":{\"keccak256\":\"0xa86b05303aaeee4c1437e7857fb03fe70473bed68f68c50dbabc261bfa6cdca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://069be2bed01b0f80d688a4b5da526051507245c340745a58f2bd78fbf3700373\",\"dweb:/ipfs/QmWU9yZSLZNJvZaXNRPem7AySUL94aTaCAR1TGTdcnPmmA\"]},\"contracts/interfaces/IProposalStruct.sol\":{\"keccak256\":\"0x9d05f54eb20cbe5f8e11fb0b8229714378d8b9956771d308ca8550d27728fd10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://665b3367f5eabd0a4e09ec1f77c992391617be5410b02755811ebb278a457320\",\"dweb:/ipfs/QmNWdoe8B2y92uKvCZECJNPobKL8ieEww2H3AkHEddoojf\"]}},\"version\":1}" - } - }, - "contracts/ServiceRegistry.sol": { - "ServiceRegistry": { - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "category", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "description", - "type": "string" - } - ], - "name": "ServiceRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "category", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "description", - "type": "string" - } - ], - "name": "ServiceUpdated", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - } - ], - "name": "getService", - "outputs": [ - { - "components": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "category", - "type": "string" - }, - { - "internalType": "string", - "name": "description", - "type": "string" - } - ], - "internalType": "struct ServiceRegistry.Service", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - } - ], - "name": "isServiceRegistered", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "category", - "type": "string" - }, - { - "internalType": "string", - "name": "description", - "type": "string" - } - ], - "name": "registerService", - "outputs": [ - { - "components": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "category", - "type": "string" - }, - { - "internalType": "string", - "name": "description", - "type": "string" - } - ], - "internalType": "struct ServiceRegistry.Service", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "serviceCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "name": "services", - "outputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "category", - "type": "string" - }, - { - "internalType": "string", - "name": "description", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "category", - "type": "string" - }, - { - "internalType": "string", - "name": "description", - "type": "string" - } - ], - "name": "updateService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": { - "@_50": { - "entryPoint": null, - "id": 50, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_550": { - "entryPoint": null, - "id": 550, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_transferOwnership_146": { - "entryPoint": 70, - "id": 146, - "parameterSlots": 1, - "returnSlots": 0 - }, - "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - } - }, - "generatedSources": [ - { - "ast": { - "nodeType": "YulBlock", - "src": "0:219:7", - "statements": [ - { - "nodeType": "YulBlock", - "src": "6:3:7", - "statements": [] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "115:102:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "125:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "137:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "148:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "133:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "133:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "125:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "167:9:7" - }, - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "182:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "198:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "203:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "194:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "194:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "207:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "190:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "190:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "178:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "178:32:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "160:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "160:51:7" - }, - "nodeType": "YulExpressionStatement", - "src": "160:51:7" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "84:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "95:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "106:4:7", - "type": "" - } - ], - "src": "14:203:7" - } - ] - }, - "contents": "{\n { }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n}", - "id": 7, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610e34806100a56000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80637f3ed719116100665780637f3ed719146101005780638da5cb5b14610113578063b405166b1461012e578063ef57d88414610151578063f2fde38b1461016457600080fd5b806306237526146100985780633017ba09146100b4578063715018a6146100d6578063794758be146100e0575b600080fd5b6100a160025481565b6040519081526020015b60405180910390f35b6100c76100c2366004610a54565b610177565b6040516100ab93929190610ae1565b6100de61033c565b005b6100f36100ee366004610a54565b610350565b6040516100ab9190610b24565b6100de61010e366004610b85565b61055a565b6000546040516001600160a01b0390911681526020016100ab565b61014161013c366004610a54565b6106c6565b60405190151581526020016100ab565b6100f361015f366004610b85565b610745565b6100de610172366004610c0d565b6108f6565b805160208183018101805160018252928201919093012091528054819061019d90610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546101c990610c3d565b80156102165780601f106101eb57610100808354040283529160200191610216565b820191906000526020600020905b8154815290600101906020018083116101f957829003601f168201915b50505050509080600101805461022b90610c3d565b80601f016020809104026020016040519081016040528092919081815260200182805461025790610c3d565b80156102a45780601f10610279576101008083540402835291602001916102a4565b820191906000526020600020905b81548152906001019060200180831161028757829003601f168201915b5050505050908060020180546102b990610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546102e590610c3d565b80156103325780601f1061030757610100808354040283529160200191610332565b820191906000526020600020905b81548152906001019060200180831161031557829003601f168201915b5050505050905083565b610344610934565b61034e6000610961565b565b61037460405180606001604052806060815260200160608152602001606081525090565b6001826040516103849190610c77565b90815260200160405180910390206040518060600160405290816000820180546103ad90610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990610c3d565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050815260200160018201805461043f90610c3d565b80601f016020809104026020016040519081016040528092919081815260200182805461046b90610c3d565b80156104b85780601f1061048d576101008083540402835291602001916104b8565b820191906000526020600020905b81548152906001019060200180831161049b57829003601f168201915b505050505081526020016002820180546104d190610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546104fd90610c3d565b801561054a5780601f1061051f5761010080835404028352916020019161054a565b820191906000526020600020905b81548152906001019060200180831161052d57829003601f168201915b5050505050815250509050919050565b610562610934565b60405163b405166b60e01b8152309063b405166b90610585908690600401610c93565b602060405180830381865afa1580156105a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c69190610ca6565b6106105760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b60448201526064015b60405180910390fd5b60405180606001604052808481526020018381526020018281525060018460405161063b9190610c77565b908152604051908190036020019020815181906106589082610d17565b506020820151600182019061066d9082610d17565b50604082015160028201906106829082610d17565b509050507f4cd09e35844ccdf25aac9862af453cedf05d8a8b765f2763be8373b55215df8d8383836040516106b993929190610ae1565b60405180910390a1505050565b60008082511161070f5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073657276696365206e616d6560601b6044820152606401610607565b60006001836040516107219190610c77565b908152604051908190036020019020805461073b90610c3d565b9050119050919050565b61076960405180606001604052806060815260200160608152602001606081525090565b610771610934565b60405163b405166b60e01b8152309063b405166b90610794908790600401610c93565b602060405180830381865afa1580156107b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d59190610ca6565b156108225760405162461bcd60e51b815260206004820152601a60248201527f5365727669636520616c726561647920726567697374657265640000000000006044820152606401610607565b60006040518060600160405280868152602001858152602001848152509050806001866040516108529190610c77565b9081526040519081900360200190208151819061086f9082610d17565b50602082015160018201906108849082610d17565b50604082015160028201906108999082610d17565b509050507fc182fe36565be4905be53a8ed353f07898b528f1625e778edf77c136748064868585856040516108d093929190610ae1565b60405180910390a1600280549060006108e883610dd7565b909155509095945050505050565b6108fe610934565b6001600160a01b03811661092857604051631e4fbdf760e01b815260006004820152602401610607565b61093181610961565b50565b6000546001600160a01b0316331461034e5760405163118cdaa760e01b8152336004820152602401610607565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126109d857600080fd5b813567ffffffffffffffff808211156109f3576109f36109b1565b604051601f8301601f19908116603f01168101908282118183101715610a1b57610a1b6109b1565b81604052838152866020858801011115610a3457600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215610a6657600080fd5b813567ffffffffffffffff811115610a7d57600080fd5b610a89848285016109c7565b949350505050565b60005b83811015610aac578181015183820152602001610a94565b50506000910152565b60008151808452610acd816020860160208601610a91565b601f01601f19169290920160200192915050565b606081526000610af46060830186610ab5565b8281036020840152610b068186610ab5565b90508281036040840152610b1a8185610ab5565b9695505050505050565b602081526000825160606020840152610b406080840182610ab5565b90506020840151601f1980858403016040860152610b5e8383610ab5565b9250604086015191508085840301606086015250610b7c8282610ab5565b95945050505050565b600080600060608486031215610b9a57600080fd5b833567ffffffffffffffff80821115610bb257600080fd5b610bbe878388016109c7565b94506020860135915080821115610bd457600080fd5b610be0878388016109c7565b93506040860135915080821115610bf657600080fd5b50610c03868287016109c7565b9150509250925092565b600060208284031215610c1f57600080fd5b81356001600160a01b0381168114610c3657600080fd5b9392505050565b600181811c90821680610c5157607f821691505b602082108103610c7157634e487b7160e01b600052602260045260246000fd5b50919050565b60008251610c89818460208701610a91565b9190910192915050565b602081526000610c366020830184610ab5565b600060208284031215610cb857600080fd5b81518015158114610c3657600080fd5b601f821115610d1257600081815260208120601f850160051c81016020861015610cef5750805b601f850160051c820191505b81811015610d0e57828155600101610cfb565b5050505b505050565b815167ffffffffffffffff811115610d3157610d316109b1565b610d4581610d3f8454610c3d565b84610cc8565b602080601f831160018114610d7a5760008415610d625750858301515b600019600386901b1c1916600185901b178555610d0e565b600085815260208120601f198616915b82811015610da957888601518255948401946001909101908401610d8a565b5085821015610dc75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060018201610df757634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220d9d13b31a10bf6dfe0cb147d4236389d36ab889b339ea5d17d968e4d3ba1034564736f6c63430008140033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER DUP1 PUSH2 0x37 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x40 DUP2 PUSH2 0x46 JUMP JUMPDEST POP PUSH2 0x96 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xE34 DUP1 PUSH2 0xA5 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x93 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F3ED719 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x7F3ED719 EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x113 JUMPI DUP1 PUSH4 0xB405166B EQ PUSH2 0x12E JUMPI DUP1 PUSH4 0xEF57D884 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x164 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6237526 EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x3017BA09 EQ PUSH2 0xB4 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xD6 JUMPI DUP1 PUSH4 0x794758BE EQ PUSH2 0xE0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA1 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC7 PUSH2 0xC2 CALLDATASIZE PUSH1 0x4 PUSH2 0xA54 JUMP JUMPDEST PUSH2 0x177 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x33C JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF3 PUSH2 0xEE CALLDATASIZE PUSH1 0x4 PUSH2 0xA54 JUMP JUMPDEST PUSH2 0x350 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAB SWAP2 SWAP1 PUSH2 0xB24 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x10E CALLDATASIZE PUSH1 0x4 PUSH2 0xB85 JUMP JUMPDEST PUSH2 0x55A JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAB JUMP JUMPDEST PUSH2 0x141 PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0xA54 JUMP JUMPDEST PUSH2 0x6C6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAB JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0xB85 JUMP JUMPDEST PUSH2 0x745 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0xC0D JUMP JUMPDEST PUSH2 0x8F6 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP2 DUP4 ADD DUP2 ADD DUP1 MLOAD PUSH1 0x1 DUP3 MSTORE SWAP3 DUP3 ADD SWAP2 SWAP1 SWAP4 ADD KECCAK256 SWAP2 MSTORE DUP1 SLOAD DUP2 SWAP1 PUSH2 0x19D SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1C9 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x216 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1EB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x216 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1F9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x22B SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x257 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2A4 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x279 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2A4 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x287 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0x2B9 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2E5 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x332 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x307 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x332 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x315 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH2 0x344 PUSH2 0x934 JUMP JUMPDEST PUSH2 0x34E PUSH1 0x0 PUSH2 0x961 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x374 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x40 MLOAD PUSH2 0x384 SWAP2 SWAP1 PUSH2 0xC77 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x3AD SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3D9 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x426 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3FB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x426 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x409 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH2 0x43F SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x46B SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x48D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4B8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x49B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD DUP1 SLOAD PUSH2 0x4D1 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4FD SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x54A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x51F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x54A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x52D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x562 PUSH2 0x934 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0x585 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xC93 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5C6 SWAP2 SWAP1 PUSH2 0xCA6 JUMP JUMPDEST PUSH2 0x610 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x14D95C9D9A58D9481B9BDD081C9959DA5CDD195C9959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE POP PUSH1 0x1 DUP5 PUSH1 0x40 MLOAD PUSH2 0x63B SWAP2 SWAP1 PUSH2 0xC77 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP2 MLOAD DUP2 SWAP1 PUSH2 0x658 SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x66D SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SWAP1 PUSH2 0x682 SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP SWAP1 POP POP PUSH32 0x4CD09E35844CCDF25AAC9862AF453CEDF05D8A8B765F2763BE8373B55215DF8D DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x6B9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT PUSH2 0x70F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x496E76616C69642073657276696365206E616D65 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x607 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP4 PUSH1 0x40 MLOAD PUSH2 0x721 SWAP2 SWAP1 PUSH2 0xC77 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x73B SWAP1 PUSH2 0xC3D JUMP JUMPDEST SWAP1 POP GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x769 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x771 PUSH2 0x934 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0x794 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0xC93 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7D5 SWAP2 SWAP1 PUSH2 0xCA6 JUMP JUMPDEST ISZERO PUSH2 0x822 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5365727669636520616C72656164792072656769737465726564000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x607 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x1 DUP7 PUSH1 0x40 MLOAD PUSH2 0x852 SWAP2 SWAP1 PUSH2 0xC77 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP2 MLOAD DUP2 SWAP1 PUSH2 0x86F SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x884 SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SWAP1 PUSH2 0x899 SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP SWAP1 POP POP PUSH32 0xC182FE36565BE4905BE53A8ED353F07898B528F1625E778EDF77C13674806486 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x8D0 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x8E8 DUP4 PUSH2 0xDD7 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8FE PUSH2 0x934 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x928 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x607 JUMP JUMPDEST PUSH2 0x931 DUP2 PUSH2 0x961 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x34E JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x607 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x9D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x9F3 JUMPI PUSH2 0x9F3 PUSH2 0x9B1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xA1B JUMPI PUSH2 0xA1B PUSH2 0x9B1 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0xA34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA89 DUP5 DUP3 DUP6 ADD PUSH2 0x9C7 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xAAC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xA94 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xACD DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xA91 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH2 0xAF4 PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0xAB5 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xB06 DUP2 DUP7 PUSH2 0xAB5 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0xB1A DUP2 DUP6 PUSH2 0xAB5 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH1 0x60 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xB40 PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0xAB5 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP1 DUP6 DUP5 SUB ADD PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0xB5E DUP4 DUP4 PUSH2 0xAB5 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP7 ADD MLOAD SWAP2 POP DUP1 DUP6 DUP5 SUB ADD PUSH1 0x60 DUP7 ADD MSTORE POP PUSH2 0xB7C DUP3 DUP3 PUSH2 0xAB5 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xBB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBBE DUP8 DUP4 DUP9 ADD PUSH2 0x9C7 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xBD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBE0 DUP8 DUP4 DUP9 ADD PUSH2 0x9C7 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xBF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC03 DUP7 DUP3 DUP8 ADD PUSH2 0x9C7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xC36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xC51 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xC71 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0xC89 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xA91 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xC36 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xAB5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xC36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xD12 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0xCEF JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xD0E JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xCFB JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD31 JUMPI PUSH2 0xD31 PUSH2 0x9B1 JUMP JUMPDEST PUSH2 0xD45 DUP2 PUSH2 0xD3F DUP5 SLOAD PUSH2 0xC3D JUMP JUMPDEST DUP5 PUSH2 0xCC8 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0xD7A JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0xD62 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0xD0E JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xDA9 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0xD8A JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0xDC7 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0xDF7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD9 0xD1 EXTCODESIZE BALANCE LOG1 SIGNEXTEND 0xF6 0xDF 0xE0 0xCB EQ PUSH30 0x4236389D36AB889B339EA5D17D968E4D3BA1034564736F6C634300081400 CALLER ", - "sourceMap": "256:2022:3:-:0;;;638:36;;;;;;;;;-1:-1:-1;660:10:3;;1269:95:0;;1322:31;;-1:-1:-1;;;1322:31:0;;1350:1;1322:31;;;160:51:7;133:18;;1322:31:0;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;256:2022:3;;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:203:7:-;256:2022:3;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@_checkOwner_84": { - "entryPoint": 2356, - "id": 84, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_msgSender_159": { - "entryPoint": null, - "id": 159, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_transferOwnership_146": { - "entryPoint": 2401, - "id": 146, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@getService_615": { - "entryPoint": 848, - "id": 615, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@isServiceRegistered_645": { - "entryPoint": 1734, - "id": 645, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@owner_67": { - "entryPoint": null, - "id": 67, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@registerService_601": { - "entryPoint": 1861, - "id": 601, - "parameterSlots": 3, - "returnSlots": 1 - }, - "@renounceOwnership_98": { - "entryPoint": 828, - "id": 98, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@serviceCount_526": { - "entryPoint": null, - "id": 526, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@services_524": { - "entryPoint": 375, - "id": 524, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@transferOwnership_126": { - "entryPoint": 2294, - "id": 126, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@updateService_681": { - "entryPoint": 1370, - "id": 681, - "parameterSlots": 3, - "returnSlots": 0 - }, - "abi_decode_string": { - "entryPoint": 2503, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_address": { - "entryPoint": 3085, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_bool_fromMemory": { - "entryPoint": 3238, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_string_memory_ptr": { - "entryPoint": 2644, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr": { - "entryPoint": 2949, - "id": null, - "parameterSlots": 2, - "returnSlots": 3 - }, - "abi_encode_string": { - "entryPoint": 2741, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { - "entryPoint": 3191, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 3219, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 2785, - "id": null, - "parameterSlots": 4, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_ac2c61739514b5f463c314c2780e64fc7747cb6b4d2c3e9147a35ee5c42aeefa__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_b193a272406cc908bf089bbfd62bbee3e6f0f99dfc3103f9a3b8b4618c96abfe__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_struct$_Service_$519_memory_ptr__to_t_struct$_Service_$519_memory_ptr__fromStack_reversed": { - "entryPoint": 2852, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "array_dataslot_string_storage": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "clean_up_bytearray_end_slots_string_storage": { - "entryPoint": 3272, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { - "entryPoint": 3351, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "copy_memory_to_memory_with_cleanup": { - "entryPoint": 2705, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "extract_byte_array_length": { - "entryPoint": 3133, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "extract_used_part_and_set_length_of_short_byte_array": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "increment_t_uint256": { - "entryPoint": 3543, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "panic_error_0x41": { - "entryPoint": 2481, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nodeType": "YulBlock", - "src": "0:9320:7", - "statements": [ - { - "nodeType": "YulBlock", - "src": "6:3:7", - "statements": [] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "115:76:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "125:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "137:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "148:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "133:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "133:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "125:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "167:9:7" - }, - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "178:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "160:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "160:25:7" - }, - "nodeType": "YulExpressionStatement", - "src": "160:25:7" - } - ] - }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "84:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "95:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "106:4:7", - "type": "" - } - ], - "src": "14:177:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "228:95:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "245:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "252:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "257:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "248:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "248:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "238:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "238:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "238:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "285:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "288:4:7", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "278:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "278:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "278:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "309:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "312:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "302:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "302:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "302:15:7" - } - ] - }, - "name": "panic_error_0x41", - "nodeType": "YulFunctionDefinition", - "src": "196:127:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "381:666:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "430:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "439:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "442:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "432:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "432:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "432:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "409:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "417:4:7", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "405:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "405:17:7" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "424:3:7" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "401:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "401:27:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "394:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "394:35:7" - }, - "nodeType": "YulIf", - "src": "391:55:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "455:30:7", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "478:6:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "465:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "465:20:7" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "459:2:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "494:28:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "504:18:7", - "type": "", - "value": "0xffffffffffffffff" - }, - "variables": [ - { - "name": "_2", - "nodeType": "YulTypedName", - "src": "498:2:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "545:22:7", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "547:16:7" - }, - "nodeType": "YulFunctionCall", - "src": "547:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "547:18:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "537:2:7" - }, - { - "name": "_2", - "nodeType": "YulIdentifier", - "src": "541:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "534:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "534:10:7" - }, - "nodeType": "YulIf", - "src": "531:36:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "576:17:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "590:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "586:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "586:7:7" - }, - "variables": [ - { - "name": "_3", - "nodeType": "YulTypedName", - "src": "580:2:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "602:23:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "622:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "616:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "616:9:7" - }, - "variables": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "606:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "634:71:7", - "value": { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "656:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "680:2:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "684:4:7", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "676:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "676:13:7" - }, - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "691:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "672:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "672:22:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "696:2:7", - "type": "", - "value": "63" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "668:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "668:31:7" - }, - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "701:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "664:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "664:40:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "652:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "652:53:7" - }, - "variables": [ - { - "name": "newFreePtr", - "nodeType": "YulTypedName", - "src": "638:10:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "764:22:7", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "766:16:7" - }, - "nodeType": "YulFunctionCall", - "src": "766:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "766:18:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "723:10:7" - }, - { - "name": "_2", - "nodeType": "YulIdentifier", - "src": "735:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "720:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "720:18:7" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "743:10:7" - }, - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "755:6:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "740:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "740:22:7" - } - ], - "functionName": { - "name": "or", - "nodeType": "YulIdentifier", - "src": "717:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "717:46:7" - }, - "nodeType": "YulIf", - "src": "714:72:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "802:2:7", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "806:10:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "795:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "795:22:7" - }, - "nodeType": "YulExpressionStatement", - "src": "795:22:7" - }, - { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "833:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "841:2:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "826:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "826:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "826:18:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "892:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "901:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "904:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "894:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "894:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "894:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "867:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "875:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "863:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "863:15:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "880:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "859:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "859:26:7" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "887:3:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "856:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "856:35:7" - }, - "nodeType": "YulIf", - "src": "853:55:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "934:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "942:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "930:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "930:17:7" - }, - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "953:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "961:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "949:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "949:17:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "968:2:7" - } - ], - "functionName": { - "name": "calldatacopy", - "nodeType": "YulIdentifier", - "src": "917:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "917:54:7" - }, - "nodeType": "YulExpressionStatement", - "src": "917:54:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "995:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "1003:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "991:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "991:15:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1008:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "987:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "987:26:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1015:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "980:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "980:37:7" - }, - "nodeType": "YulExpressionStatement", - "src": "980:37:7" - }, - { - "nodeType": "YulAssignment", - "src": "1026:15:7", - "value": { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "1035:6:7" - }, - "variableNames": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "1026:5:7" - } - ] - } - ] - }, - "name": "abi_decode_string", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "355:6:7", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "363:3:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nodeType": "YulTypedName", - "src": "371:5:7", - "type": "" - } - ], - "src": "328:719:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1132:242:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "1178:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1187:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1190:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1180:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1180:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1180:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1153:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1162:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "1149:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1149:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1174:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "1145:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1145:32:7" - }, - "nodeType": "YulIf", - "src": "1142:52:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "1203:37:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1230:9:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "1217:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "1217:23:7" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1207:6:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1283:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1292:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1295:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1285:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1285:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1285:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1255:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1263:18:7", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "1252:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "1252:30:7" - }, - "nodeType": "YulIf", - "src": "1249:50:7" - }, - { - "nodeType": "YulAssignment", - "src": "1308:60:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1340:9:7" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1351:6:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1336:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1336:22:7" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1360:7:7" - } - ], - "functionName": { - "name": "abi_decode_string", - "nodeType": "YulIdentifier", - "src": "1318:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "1318:50:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1308:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1098:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "1109:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1121:6:7", - "type": "" - } - ], - "src": "1052:322:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1445:184:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1455:10:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1464:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "1459:1:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1524:63:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "1549:3:7" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "1554:1:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1545:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1545:11:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "1568:3:7" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "1573:1:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1564:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1564:11:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "1558:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "1558:18:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1538:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1538:39:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1538:39:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "1485:1:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1488:6:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "1482:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "1482:13:7" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "1496:19:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1498:15:7", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "1507:1:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1510:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1503:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1503:10:7" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "1498:1:7" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "1478:3:7", - "statements": [] - }, - "src": "1474:113:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "1607:3:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1612:6:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1603:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1603:16:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1621:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1596:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1596:27:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1596:27:7" - } - ] - }, - "name": "copy_memory_to_memory_with_cleanup", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nodeType": "YulTypedName", - "src": "1423:3:7", - "type": "" - }, - { - "name": "dst", - "nodeType": "YulTypedName", - "src": "1428:3:7", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "1433:6:7", - "type": "" - } - ], - "src": "1379:250:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1684:221:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1694:26:7", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1714:5:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "1708:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "1708:12:7" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "1698:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1736:3:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1741:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1729:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1729:19:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1729:19:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1796:5:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1803:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1792:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1792:16:7" - }, - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1814:3:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1819:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1810:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1810:14:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1826:6:7" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nodeType": "YulIdentifier", - "src": "1757:34:7" - }, - "nodeType": "YulFunctionCall", - "src": "1757:76:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1757:76:7" - }, - { - "nodeType": "YulAssignment", - "src": "1842:57:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1857:3:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1870:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1878:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1866:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1866:15:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1887:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "1883:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1883:7:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "1862:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1862:29:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1853:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1853:39:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1894:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1849:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1849:50:7" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "1842:3:7" - } - ] - } - ] - }, - "name": "abi_encode_string", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1661:5:7", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "1668:3:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "1676:3:7", - "type": "" - } - ], - "src": "1634:271:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2127:329:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2144:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2155:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2137:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2137:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2137:21:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2167:59:7", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2199:6:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2211:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2222:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2207:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2207:18:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "2181:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "2181:45:7" - }, - "variables": [ - { - "name": "tail_1", - "nodeType": "YulTypedName", - "src": "2171:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2246:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2257:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2242:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2242:18:7" - }, - { - "arguments": [ - { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "2266:6:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2274:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "2262:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2262:22:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2235:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2235:50:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2235:50:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2294:47:7", - "value": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "2326:6:7" - }, - { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "2334:6:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "2308:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "2308:33:7" - }, - "variables": [ - { - "name": "tail_2", - "nodeType": "YulTypedName", - "src": "2298:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2361:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2372:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2357:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2357:18:7" - }, - { - "arguments": [ - { - "name": "tail_2", - "nodeType": "YulIdentifier", - "src": "2381:6:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2389:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "2377:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2377:22:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2350:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2350:50:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2350:50:7" - }, - { - "nodeType": "YulAssignment", - "src": "2409:41:7", - "value": { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "2435:6:7" - }, - { - "name": "tail_2", - "nodeType": "YulIdentifier", - "src": "2443:6:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "2417:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "2417:33:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "2409:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "2080:9:7", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "2091:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "2099:6:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "2107:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "2118:4:7", - "type": "" - } - ], - "src": "1910:546:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2610:587:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2627:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2638:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2620:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2620:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2620:21:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2650:33:7", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2676:6:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "2670:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "2670:13:7" - }, - "variables": [ - { - "name": "memberValue0", - "nodeType": "YulTypedName", - "src": "2654:12:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2703:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2714:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2699:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2699:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2719:4:7", - "type": "", - "value": "0x60" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2692:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2692:32:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2692:32:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2733:66:7", - "value": { - "arguments": [ - { - "name": "memberValue0", - "nodeType": "YulIdentifier", - "src": "2765:12:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2783:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2794:3:7", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2779:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2779:19:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "2747:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "2747:52:7" - }, - "variables": [ - { - "name": "tail_1", - "nodeType": "YulTypedName", - "src": "2737:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2808:44:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2840:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2848:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2836:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2836:15:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "2830:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "2830:22:7" - }, - "variables": [ - { - "name": "memberValue0_1", - "nodeType": "YulTypedName", - "src": "2812:14:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2861:17:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2875:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "2871:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2871:7:7" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "2865:2:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2898:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2909:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2894:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2894:18:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "2922:6:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2930:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "2918:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2918:22:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "2942:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2914:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2914:31:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2887:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2887:59:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2887:59:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2955:55:7", - "value": { - "arguments": [ - { - "name": "memberValue0_1", - "nodeType": "YulIdentifier", - "src": "2987:14:7" - }, - { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "3003:6:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "2969:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "2969:41:7" - }, - "variables": [ - { - "name": "tail_2", - "nodeType": "YulTypedName", - "src": "2959:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3019:44:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3051:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3059:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3047:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3047:15:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "3041:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "3041:22:7" - }, - "variables": [ - { - "name": "memberValue0_2", - "nodeType": "YulTypedName", - "src": "3023:14:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3083:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3094:4:7", - "type": "", - "value": "0x60" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3079:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3079:20:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "tail_2", - "nodeType": "YulIdentifier", - "src": "3109:6:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3117:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "3105:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3105:22:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "3129:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3101:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3101:31:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3072:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3072:61:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3072:61:7" - }, - { - "nodeType": "YulAssignment", - "src": "3142:49:7", - "value": { - "arguments": [ - { - "name": "memberValue0_2", - "nodeType": "YulIdentifier", - "src": "3168:14:7" - }, - { - "name": "tail_2", - "nodeType": "YulIdentifier", - "src": "3184:6:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "3150:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "3150:41:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3142:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_struct$_Service_$519_memory_ptr__to_t_struct$_Service_$519_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "2579:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "2590:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "2601:4:7", - "type": "" - } - ], - "src": "2461:736:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3336:609:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "3382:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3391:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3394:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "3384:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3384:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3384:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3357:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3366:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "3353:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3353:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3378:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "3349:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3349:32:7" - }, - "nodeType": "YulIf", - "src": "3346:52:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3407:37:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3434:9:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "3421:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "3421:23:7" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "3411:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3453:28:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3463:18:7", - "type": "", - "value": "0xffffffffffffffff" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "3457:2:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3508:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3517:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3520:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "3510:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3510:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3510:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "3496:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "3504:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "3493:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "3493:14:7" - }, - "nodeType": "YulIf", - "src": "3490:34:7" - }, - { - "nodeType": "YulAssignment", - "src": "3533:60:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3565:9:7" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "3576:6:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3561:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3561:22:7" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3585:7:7" - } - ], - "functionName": { - "name": "abi_decode_string", - "nodeType": "YulIdentifier", - "src": "3543:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "3543:50:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3533:6:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3602:48:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3635:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3646:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3631:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3631:18:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "3618:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "3618:32:7" - }, - "variables": [ - { - "name": "offset_1", - "nodeType": "YulTypedName", - "src": "3606:8:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3679:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3688:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3691:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "3681:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3681:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3681:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset_1", - "nodeType": "YulIdentifier", - "src": "3665:8:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "3675:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "3662:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "3662:16:7" - }, - "nodeType": "YulIf", - "src": "3659:36:7" - }, - { - "nodeType": "YulAssignment", - "src": "3704:62:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3736:9:7" - }, - { - "name": "offset_1", - "nodeType": "YulIdentifier", - "src": "3747:8:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3732:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3732:24:7" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3758:7:7" - } - ], - "functionName": { - "name": "abi_decode_string", - "nodeType": "YulIdentifier", - "src": "3714:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "3714:52:7" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "3704:6:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3775:48:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3808:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3819:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3804:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3804:18:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "3791:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "3791:32:7" - }, - "variables": [ - { - "name": "offset_2", - "nodeType": "YulTypedName", - "src": "3779:8:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3852:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3861:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3864:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "3854:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3854:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3854:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset_2", - "nodeType": "YulIdentifier", - "src": "3838:8:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "3848:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "3835:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "3835:16:7" - }, - "nodeType": "YulIf", - "src": "3832:36:7" - }, - { - "nodeType": "YulAssignment", - "src": "3877:62:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3909:9:7" - }, - { - "name": "offset_2", - "nodeType": "YulIdentifier", - "src": "3920:8:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3905:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3905:24:7" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3931:7:7" - } - ], - "functionName": { - "name": "abi_decode_string", - "nodeType": "YulIdentifier", - "src": "3887:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "3887:52:7" - }, - "variableNames": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "3877:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3286:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "3297:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "3309:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "3317:6:7", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "3325:6:7", - "type": "" - } - ], - "src": "3202:743:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4051:102:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "4061:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4073:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4084:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4069:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4069:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "4061:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4103:9:7" - }, - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4118:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4134:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4139:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "4130:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4130:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4143:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "4126:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4126:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "4114:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4114:32:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4096:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4096:51:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4096:51:7" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "4020:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "4031:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "4042:4:7", - "type": "" - } - ], - "src": "3950:203:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4253:92:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "4263:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4275:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4286:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4271:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4271:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "4263:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4305:9:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4330:6:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "4323:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4323:14:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "4316:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4316:22:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4298:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4298:41:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4298:41:7" - } - ] - }, - "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "4222:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "4233:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "4244:4:7", - "type": "" - } - ], - "src": "4158:187:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4420:216:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "4466:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4475:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4478:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "4468:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4468:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4468:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "4441:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4450:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "4437:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4437:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4462:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "4433:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4433:32:7" - }, - "nodeType": "YulIf", - "src": "4430:52:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "4491:36:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4517:9:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "4504:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "4504:23:7" - }, - "variables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "4495:5:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4590:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4599:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4602:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "4592:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4592:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4592:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "4549:5:7" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "4560:5:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4575:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4580:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "4571:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4571:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4584:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "4567:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4567:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "4556:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4556:31:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "4546:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "4546:42:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "4539:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4539:50:7" - }, - "nodeType": "YulIf", - "src": "4536:70:7" - }, - { - "nodeType": "YulAssignment", - "src": "4615:15:7", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "4625:5:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4615:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "4386:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "4397:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "4409:6:7", - "type": "" - } - ], - "src": "4350:286:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4696:325:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "4706:22:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4720:1:7", - "type": "", - "value": "1" - }, - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "4723:4:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "4716:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4716:12:7" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "4706:6:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "4737:38:7", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "4767:4:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4773:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "4763:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4763:12:7" - }, - "variables": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulTypedName", - "src": "4741:18:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4814:31:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "4816:27:7", - "value": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "4830:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4838:4:7", - "type": "", - "value": "0x7f" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "4826:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4826:17:7" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "4816:6:7" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulIdentifier", - "src": "4794:18:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "4787:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4787:26:7" - }, - "nodeType": "YulIf", - "src": "4784:61:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4904:111:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4925:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4932:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4937:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "4928:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4928:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4918:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4918:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4918:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4969:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4972:4:7", - "type": "", - "value": "0x22" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4962:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4962:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4962:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4997:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5000:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "4990:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4990:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4990:15:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulIdentifier", - "src": "4860:18:7" - }, - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "4883:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4891:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "4880:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "4880:14:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "4857:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "4857:38:7" - }, - "nodeType": "YulIf", - "src": "4854:161:7" - } - ] - }, - "name": "extract_byte_array_length", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "4676:4:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "4685:6:7", - "type": "" - } - ], - "src": "4641:380:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5165:150:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "5175:27:7", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5195:6:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "5189:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "5189:13:7" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "5179:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5250:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5258:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5246:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5246:17:7" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5265:3:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "5270:6:7" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nodeType": "YulIdentifier", - "src": "5211:34:7" - }, - "nodeType": "YulFunctionCall", - "src": "5211:66:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5211:66:7" - }, - { - "nodeType": "YulAssignment", - "src": "5286:23:7", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5297:3:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "5302:6:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5293:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5293:16:7" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "5286:3:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "5141:3:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5146:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "5157:3:7", - "type": "" - } - ], - "src": "5026:289:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5441:99:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5458:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5469:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "5451:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5451:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5451:21:7" - }, - { - "nodeType": "YulAssignment", - "src": "5481:53:7", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5507:6:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5519:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5530:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5515:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5515:18:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "5489:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "5489:45:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "5481:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "5410:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5421:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "5432:4:7", - "type": "" - } - ], - "src": "5320:220:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5623:199:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "5669:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5678:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5681:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "5671:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5671:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5671:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "5644:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5653:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "5640:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5640:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5665:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "5636:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5636:32:7" - }, - "nodeType": "YulIf", - "src": "5633:52:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "5694:29:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5713:9:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "5707:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "5707:16:7" - }, - "variables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "5698:5:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5776:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5785:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5788:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "5778:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5778:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5778:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "5745:5:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "5766:5:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "5759:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5759:13:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "5752:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5752:21:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "5742:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "5742:32:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "5735:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5735:40:7" - }, - "nodeType": "YulIf", - "src": "5732:60:7" - }, - { - "nodeType": "YulAssignment", - "src": "5801:15:7", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "5811:5:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5801:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bool_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "5589:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "5600:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5612:6:7", - "type": "" - } - ], - "src": "5545:277:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6001:172:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6018:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6029:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6011:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6011:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6011:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6052:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6063:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6048:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6048:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6068:2:7", - "type": "", - "value": "22" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6041:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6041:30:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6041:30:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6091:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6102:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6087:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6087:18:7" - }, - { - "hexValue": "53657276696365206e6f742072656769737465726564", - "kind": "string", - "nodeType": "YulLiteral", - "src": "6107:24:7", - "type": "", - "value": "Service not registered" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6080:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6080:52:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6080:52:7" - }, - { - "nodeType": "YulAssignment", - "src": "6141:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6153:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6164:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6149:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6149:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6141:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "5978:9:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "5992:4:7", - "type": "" - } - ], - "src": "5827:346:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6234:65:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6251:1:7", - "type": "", - "value": "0" - }, - { - "name": "ptr", - "nodeType": "YulIdentifier", - "src": "6254:3:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6244:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6244:14:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6244:14:7" - }, - { - "nodeType": "YulAssignment", - "src": "6267:26:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6285:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6288:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "keccak256", - "nodeType": "YulIdentifier", - "src": "6275:9:7" - }, - "nodeType": "YulFunctionCall", - "src": "6275:18:7" - }, - "variableNames": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "6267:4:7" - } - ] - } - ] - }, - "name": "array_dataslot_string_storage", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "ptr", - "nodeType": "YulTypedName", - "src": "6217:3:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "6225:4:7", - "type": "" - } - ], - "src": "6178:121:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6385:464:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "6418:425:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "6432:11:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6442:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "6436:2:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "6463:2:7" - }, - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "6467:5:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6456:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6456:17:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6456:17:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "6486:31:7", - "value": { - "arguments": [ - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "6508:2:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6512:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "keccak256", - "nodeType": "YulIdentifier", - "src": "6498:9:7" - }, - "nodeType": "YulFunctionCall", - "src": "6498:19:7" - }, - "variables": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "6490:4:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "6530:57:7", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "6553:4:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6563:1:7", - "type": "", - "value": "5" - }, - { - "arguments": [ - { - "name": "startIndex", - "nodeType": "YulIdentifier", - "src": "6570:10:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6582:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6566:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6566:19:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "6559:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6559:27:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6549:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6549:38:7" - }, - "variables": [ - { - "name": "deleteStart", - "nodeType": "YulTypedName", - "src": "6534:11:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6624:23:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "6626:19:7", - "value": { - "name": "data", - "nodeType": "YulIdentifier", - "src": "6641:4:7" - }, - "variableNames": [ - { - "name": "deleteStart", - "nodeType": "YulIdentifier", - "src": "6626:11:7" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "startIndex", - "nodeType": "YulIdentifier", - "src": "6606:10:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6618:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "6603:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "6603:20:7" - }, - "nodeType": "YulIf", - "src": "6600:47:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "6660:41:7", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "6674:4:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6684:1:7", - "type": "", - "value": "5" - }, - { - "arguments": [ - { - "name": "len", - "nodeType": "YulIdentifier", - "src": "6691:3:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6696:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6687:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6687:12:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "6680:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6680:20:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6670:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6670:31:7" - }, - "variables": [ - { - "name": "_2", - "nodeType": "YulTypedName", - "src": "6664:2:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "6714:24:7", - "value": { - "name": "deleteStart", - "nodeType": "YulIdentifier", - "src": "6727:11:7" - }, - "variables": [ - { - "name": "start", - "nodeType": "YulTypedName", - "src": "6718:5:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6812:21:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "6821:5:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "6828:2:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "6814:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6814:17:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6814:17:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "6762:5:7" - }, - { - "name": "_2", - "nodeType": "YulIdentifier", - "src": "6769:2:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "6759:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "6759:13:7" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "6773:26:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "6775:22:7", - "value": { - "arguments": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "6788:5:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6795:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6784:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6784:13:7" - }, - "variableNames": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "6775:5:7" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "6755:3:7", - "statements": [] - }, - "src": "6751:82:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "len", - "nodeType": "YulIdentifier", - "src": "6401:3:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6406:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "6398:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "6398:11:7" - }, - "nodeType": "YulIf", - "src": "6395:448:7" - } - ] - }, - "name": "clean_up_bytearray_end_slots_string_storage", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "array", - "nodeType": "YulTypedName", - "src": "6357:5:7", - "type": "" - }, - { - "name": "len", - "nodeType": "YulTypedName", - "src": "6364:3:7", - "type": "" - }, - { - "name": "startIndex", - "nodeType": "YulTypedName", - "src": "6369:10:7", - "type": "" - } - ], - "src": "6304:545:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6939:81:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "6949:65:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "6964:4:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6982:1:7", - "type": "", - "value": "3" - }, - { - "name": "len", - "nodeType": "YulIdentifier", - "src": "6985:3:7" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "6978:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6978:11:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6995:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "6991:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6991:6:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "6974:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6974:24:7" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "6970:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6970:29:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "6960:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6960:40:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7006:1:7", - "type": "", - "value": "1" - }, - { - "name": "len", - "nodeType": "YulIdentifier", - "src": "7009:3:7" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "7002:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7002:11:7" - } - ], - "functionName": { - "name": "or", - "nodeType": "YulIdentifier", - "src": "6957:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "6957:57:7" - }, - "variableNames": [ - { - "name": "used", - "nodeType": "YulIdentifier", - "src": "6949:4:7" - } - ] - } - ] - }, - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "6916:4:7", - "type": "" - }, - { - "name": "len", - "nodeType": "YulTypedName", - "src": "6922:3:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "used", - "nodeType": "YulTypedName", - "src": "6930:4:7", - "type": "" - } - ], - "src": "6854:166:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7121:1256:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "7131:24:7", - "value": { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "7151:3:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "7145:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "7145:10:7" - }, - "variables": [ - { - "name": "newLen", - "nodeType": "YulTypedName", - "src": "7135:6:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7198:22:7", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "7200:16:7" - }, - "nodeType": "YulFunctionCall", - "src": "7200:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7200:18:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "7170:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7178:18:7", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "7167:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "7167:30:7" - }, - "nodeType": "YulIf", - "src": "7164:56:7" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "7273:4:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "7311:4:7" - } - ], - "functionName": { - "name": "sload", - "nodeType": "YulIdentifier", - "src": "7305:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "7305:11:7" - } - ], - "functionName": { - "name": "extract_byte_array_length", - "nodeType": "YulIdentifier", - "src": "7279:25:7" - }, - "nodeType": "YulFunctionCall", - "src": "7279:38:7" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "7319:6:7" - } - ], - "functionName": { - "name": "clean_up_bytearray_end_slots_string_storage", - "nodeType": "YulIdentifier", - "src": "7229:43:7" - }, - "nodeType": "YulFunctionCall", - "src": "7229:97:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7229:97:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7335:18:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7352:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "srcOffset", - "nodeType": "YulTypedName", - "src": "7339:9:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7362:23:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7381:4:7", - "type": "", - "value": "0x20" - }, - "variables": [ - { - "name": "srcOffset_1", - "nodeType": "YulTypedName", - "src": "7366:11:7", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "7394:24:7", - "value": { - "name": "srcOffset_1", - "nodeType": "YulIdentifier", - "src": "7407:11:7" - }, - "variableNames": [ - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "7394:9:7" - } - ] - }, - { - "cases": [ - { - "body": { - "nodeType": "YulBlock", - "src": "7464:656:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "7478:35:7", - "value": { - "arguments": [ - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "7497:6:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7509:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "7505:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7505:7:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "7493:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7493:20:7" - }, - "variables": [ - { - "name": "loopEnd", - "nodeType": "YulTypedName", - "src": "7482:7:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7526:49:7", - "value": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "7570:4:7" - } - ], - "functionName": { - "name": "array_dataslot_string_storage", - "nodeType": "YulIdentifier", - "src": "7540:29:7" - }, - "nodeType": "YulFunctionCall", - "src": "7540:35:7" - }, - "variables": [ - { - "name": "dstPtr", - "nodeType": "YulTypedName", - "src": "7530:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7588:10:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7597:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "7592:1:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7675:172:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "dstPtr", - "nodeType": "YulIdentifier", - "src": "7700:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "7718:3:7" - }, - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "7723:9:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7714:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7714:19:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "7708:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "7708:26:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "7693:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7693:42:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7693:42:7" - }, - { - "nodeType": "YulAssignment", - "src": "7752:24:7", - "value": { - "arguments": [ - { - "name": "dstPtr", - "nodeType": "YulIdentifier", - "src": "7766:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7774:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7762:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7762:14:7" - }, - "variableNames": [ - { - "name": "dstPtr", - "nodeType": "YulIdentifier", - "src": "7752:6:7" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "7793:40:7", - "value": { - "arguments": [ - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "7810:9:7" - }, - { - "name": "srcOffset_1", - "nodeType": "YulIdentifier", - "src": "7821:11:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7806:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7806:27:7" - }, - "variableNames": [ - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "7793:9:7" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "7622:1:7" - }, - { - "name": "loopEnd", - "nodeType": "YulIdentifier", - "src": "7625:7:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "7619:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "7619:14:7" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "7634:28:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "7636:24:7", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "7645:1:7" - }, - { - "name": "srcOffset_1", - "nodeType": "YulIdentifier", - "src": "7648:11:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7641:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7641:19:7" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "7636:1:7" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "7615:3:7", - "statements": [] - }, - "src": "7611:236:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7895:166:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "7913:43:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "7940:3:7" - }, - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "7945:9:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7936:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7936:19:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "7930:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "7930:26:7" - }, - "variables": [ - { - "name": "lastValue", - "nodeType": "YulTypedName", - "src": "7917:9:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "dstPtr", - "nodeType": "YulIdentifier", - "src": "7980:6:7" - }, - { - "arguments": [ - { - "name": "lastValue", - "nodeType": "YulIdentifier", - "src": "7992:9:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8019:1:7", - "type": "", - "value": "3" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "8022:6:7" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "8015:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8015:14:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8031:3:7", - "type": "", - "value": "248" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "8011:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8011:24:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8041:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "8037:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8037:6:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "8007:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8007:37:7" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "8003:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8003:42:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "7988:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7988:58:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "7973:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7973:74:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7973:74:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "loopEnd", - "nodeType": "YulIdentifier", - "src": "7866:7:7" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "7875:6:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "7863:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "7863:19:7" - }, - "nodeType": "YulIf", - "src": "7860:201:7" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "8081:4:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8095:1:7", - "type": "", - "value": "1" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "8098:6:7" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "8091:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8091:14:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8107:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8087:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8087:22:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "8074:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8074:36:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8074:36:7" - } - ] - }, - "nodeType": "YulCase", - "src": "7457:663:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7462:1:7", - "type": "", - "value": "1" - } - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8137:234:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "8151:14:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8164:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "8155:5:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8200:67:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "8218:35:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "8237:3:7" - }, - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "8242:9:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8233:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8233:19:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "8227:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "8227:26:7" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "8218:5:7" - } - ] - } - ] - }, - "condition": { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "8181:6:7" - }, - "nodeType": "YulIf", - "src": "8178:89:7" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "8287:4:7" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "8346:5:7" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "8353:6:7" - } - ], - "functionName": { - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nodeType": "YulIdentifier", - "src": "8293:52:7" - }, - "nodeType": "YulFunctionCall", - "src": "8293:67:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "8280:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8280:81:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8280:81:7" - } - ] - }, - "nodeType": "YulCase", - "src": "8129:242:7", - "value": "default" - } - ], - "expression": { - "arguments": [ - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "7437:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7445:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "7434:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "7434:14:7" - }, - "nodeType": "YulSwitch", - "src": "7427:944:7" - } - ] - }, - "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "slot", - "nodeType": "YulTypedName", - "src": "7106:4:7", - "type": "" - }, - { - "name": "src", - "nodeType": "YulTypedName", - "src": "7112:3:7", - "type": "" - } - ], - "src": "7025:1352:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8556:170:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8573:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8584:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8566:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8566:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8566:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8607:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8618:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8603:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8603:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8623:2:7", - "type": "", - "value": "20" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8596:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8596:30:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8596:30:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8646:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8657:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8642:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8642:18:7" - }, - { - "hexValue": "496e76616c69642073657276696365206e616d65", - "kind": "string", - "nodeType": "YulLiteral", - "src": "8662:22:7", - "type": "", - "value": "Invalid service name" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8635:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8635:50:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8635:50:7" - }, - { - "nodeType": "YulAssignment", - "src": "8694:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8706:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8717:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8702:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8702:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "8694:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_b193a272406cc908bf089bbfd62bbee3e6f0f99dfc3103f9a3b8b4618c96abfe__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "8533:9:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "8547:4:7", - "type": "" - } - ], - "src": "8382:344:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8905:176:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8922:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8933:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8915:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8915:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8915:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8956:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8967:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8952:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8952:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8972:2:7", - "type": "", - "value": "26" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8945:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8945:30:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8945:30:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8995:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9006:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8991:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8991:18:7" - }, - { - "hexValue": "5365727669636520616c72656164792072656769737465726564", - "kind": "string", - "nodeType": "YulLiteral", - "src": "9011:28:7", - "type": "", - "value": "Service already registered" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8984:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8984:56:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8984:56:7" - }, - { - "nodeType": "YulAssignment", - "src": "9049:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "9061:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9072:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9057:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9057:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "9049:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_ac2c61739514b5f463c314c2780e64fc7747cb6b4d2c3e9147a35ee5c42aeefa__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "8882:9:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "8896:4:7", - "type": "" - } - ], - "src": "8731:350:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9133:185:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "9172:111:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9193:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9200:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9205:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "9196:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9196:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "9186:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "9186:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "9186:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9237:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9240:4:7", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "9230:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "9230:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "9230:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9265:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9268:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "9258:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "9258:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "9258:15:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "9149:5:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9160:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "9156:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9156:6:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "9146:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "9146:17:7" - }, - "nodeType": "YulIf", - "src": "9143:140:7" - }, - { - "nodeType": "YulAssignment", - "src": "9292:20:7", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "9303:5:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9310:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9299:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9299:13:7" - }, - "variableNames": [ - { - "name": "ret", - "nodeType": "YulIdentifier", - "src": "9292:3:7" - } - ] - } - ] - }, - "name": "increment_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "9115:5:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nodeType": "YulTypedName", - "src": "9125:3:7", - "type": "" - } - ], - "src": "9086:232:7" - } - ] - }, - "contents": "{\n { }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_string(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0xffffffffffffffff\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(memPtr, 0x20), add(offset, 0x20), _1)\n mstore(add(add(memPtr, _1), 0x20), 0)\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, 96)\n let tail_1 := abi_encode_string(value0, add(headStart, 96))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n let tail_2 := abi_encode_string(value1, tail_1)\n mstore(add(headStart, 64), sub(tail_2, headStart))\n tail := abi_encode_string(value2, tail_2)\n }\n function abi_encode_tuple_t_struct$_Service_$519_memory_ptr__to_t_struct$_Service_$519_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let memberValue0 := mload(value0)\n mstore(add(headStart, 32), 0x60)\n let tail_1 := abi_encode_string(memberValue0, add(headStart, 128))\n let memberValue0_1 := mload(add(value0, 32))\n let _1 := not(31)\n mstore(add(headStart, 64), add(sub(tail_1, headStart), _1))\n let tail_2 := abi_encode_string(memberValue0_1, tail_1)\n let memberValue0_2 := mload(add(value0, 64))\n mstore(add(headStart, 0x60), add(sub(tail_2, headStart), _1))\n tail := abi_encode_string(memberValue0_2, tail_2)\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n let offset_1 := calldataload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string(add(headStart, offset_1), dataEnd)\n let offset_2 := calldataload(add(headStart, 64))\n if gt(offset_2, _1) { revert(0, 0) }\n value2 := abi_decode_string(add(headStart, offset_2), dataEnd)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Service not registered\")\n tail := add(headStart, 96)\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_stringliteral_b193a272406cc908bf089bbfd62bbee3e6f0f99dfc3103f9a3b8b4618c96abfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"Invalid service name\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_ac2c61739514b5f463c314c2780e64fc7747cb6b4d2c3e9147a35ee5c42aeefa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"Service already registered\")\n tail := add(headStart, 96)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n ret := add(value, 1)\n }\n}", - "id": 7, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": {}, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100935760003560e01c80637f3ed719116100665780637f3ed719146101005780638da5cb5b14610113578063b405166b1461012e578063ef57d88414610151578063f2fde38b1461016457600080fd5b806306237526146100985780633017ba09146100b4578063715018a6146100d6578063794758be146100e0575b600080fd5b6100a160025481565b6040519081526020015b60405180910390f35b6100c76100c2366004610a54565b610177565b6040516100ab93929190610ae1565b6100de61033c565b005b6100f36100ee366004610a54565b610350565b6040516100ab9190610b24565b6100de61010e366004610b85565b61055a565b6000546040516001600160a01b0390911681526020016100ab565b61014161013c366004610a54565b6106c6565b60405190151581526020016100ab565b6100f361015f366004610b85565b610745565b6100de610172366004610c0d565b6108f6565b805160208183018101805160018252928201919093012091528054819061019d90610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546101c990610c3d565b80156102165780601f106101eb57610100808354040283529160200191610216565b820191906000526020600020905b8154815290600101906020018083116101f957829003601f168201915b50505050509080600101805461022b90610c3d565b80601f016020809104026020016040519081016040528092919081815260200182805461025790610c3d565b80156102a45780601f10610279576101008083540402835291602001916102a4565b820191906000526020600020905b81548152906001019060200180831161028757829003601f168201915b5050505050908060020180546102b990610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546102e590610c3d565b80156103325780601f1061030757610100808354040283529160200191610332565b820191906000526020600020905b81548152906001019060200180831161031557829003601f168201915b5050505050905083565b610344610934565b61034e6000610961565b565b61037460405180606001604052806060815260200160608152602001606081525090565b6001826040516103849190610c77565b90815260200160405180910390206040518060600160405290816000820180546103ad90610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990610c3d565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050815260200160018201805461043f90610c3d565b80601f016020809104026020016040519081016040528092919081815260200182805461046b90610c3d565b80156104b85780601f1061048d576101008083540402835291602001916104b8565b820191906000526020600020905b81548152906001019060200180831161049b57829003601f168201915b505050505081526020016002820180546104d190610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546104fd90610c3d565b801561054a5780601f1061051f5761010080835404028352916020019161054a565b820191906000526020600020905b81548152906001019060200180831161052d57829003601f168201915b5050505050815250509050919050565b610562610934565b60405163b405166b60e01b8152309063b405166b90610585908690600401610c93565b602060405180830381865afa1580156105a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c69190610ca6565b6106105760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b60448201526064015b60405180910390fd5b60405180606001604052808481526020018381526020018281525060018460405161063b9190610c77565b908152604051908190036020019020815181906106589082610d17565b506020820151600182019061066d9082610d17565b50604082015160028201906106829082610d17565b509050507f4cd09e35844ccdf25aac9862af453cedf05d8a8b765f2763be8373b55215df8d8383836040516106b993929190610ae1565b60405180910390a1505050565b60008082511161070f5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073657276696365206e616d6560601b6044820152606401610607565b60006001836040516107219190610c77565b908152604051908190036020019020805461073b90610c3d565b9050119050919050565b61076960405180606001604052806060815260200160608152602001606081525090565b610771610934565b60405163b405166b60e01b8152309063b405166b90610794908790600401610c93565b602060405180830381865afa1580156107b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d59190610ca6565b156108225760405162461bcd60e51b815260206004820152601a60248201527f5365727669636520616c726561647920726567697374657265640000000000006044820152606401610607565b60006040518060600160405280868152602001858152602001848152509050806001866040516108529190610c77565b9081526040519081900360200190208151819061086f9082610d17565b50602082015160018201906108849082610d17565b50604082015160028201906108999082610d17565b509050507fc182fe36565be4905be53a8ed353f07898b528f1625e778edf77c136748064868585856040516108d093929190610ae1565b60405180910390a1600280549060006108e883610dd7565b909155509095945050505050565b6108fe610934565b6001600160a01b03811661092857604051631e4fbdf760e01b815260006004820152602401610607565b61093181610961565b50565b6000546001600160a01b0316331461034e5760405163118cdaa760e01b8152336004820152602401610607565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126109d857600080fd5b813567ffffffffffffffff808211156109f3576109f36109b1565b604051601f8301601f19908116603f01168101908282118183101715610a1b57610a1b6109b1565b81604052838152866020858801011115610a3457600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215610a6657600080fd5b813567ffffffffffffffff811115610a7d57600080fd5b610a89848285016109c7565b949350505050565b60005b83811015610aac578181015183820152602001610a94565b50506000910152565b60008151808452610acd816020860160208601610a91565b601f01601f19169290920160200192915050565b606081526000610af46060830186610ab5565b8281036020840152610b068186610ab5565b90508281036040840152610b1a8185610ab5565b9695505050505050565b602081526000825160606020840152610b406080840182610ab5565b90506020840151601f1980858403016040860152610b5e8383610ab5565b9250604086015191508085840301606086015250610b7c8282610ab5565b95945050505050565b600080600060608486031215610b9a57600080fd5b833567ffffffffffffffff80821115610bb257600080fd5b610bbe878388016109c7565b94506020860135915080821115610bd457600080fd5b610be0878388016109c7565b93506040860135915080821115610bf657600080fd5b50610c03868287016109c7565b9150509250925092565b600060208284031215610c1f57600080fd5b81356001600160a01b0381168114610c3657600080fd5b9392505050565b600181811c90821680610c5157607f821691505b602082108103610c7157634e487b7160e01b600052602260045260246000fd5b50919050565b60008251610c89818460208701610a91565b9190910192915050565b602081526000610c366020830184610ab5565b600060208284031215610cb857600080fd5b81518015158114610c3657600080fd5b601f821115610d1257600081815260208120601f850160051c81016020861015610cef5750805b601f850160051c820191505b81811015610d0e57828155600101610cfb565b5050505b505050565b815167ffffffffffffffff811115610d3157610d316109b1565b610d4581610d3f8454610c3d565b84610cc8565b602080601f831160018114610d7a5760008415610d625750858301515b600019600386901b1c1916600185901b178555610d0e565b600085815260208120601f198616915b82811015610da957888601518255948401946001909101908401610d8a565b5085821015610dc75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060018201610df757634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220d9d13b31a10bf6dfe0cb147d4236389d36ab889b339ea5d17d968e4d3ba1034564736f6c63430008140033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x93 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F3ED719 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x7F3ED719 EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x113 JUMPI DUP1 PUSH4 0xB405166B EQ PUSH2 0x12E JUMPI DUP1 PUSH4 0xEF57D884 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x164 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6237526 EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x3017BA09 EQ PUSH2 0xB4 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xD6 JUMPI DUP1 PUSH4 0x794758BE EQ PUSH2 0xE0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA1 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC7 PUSH2 0xC2 CALLDATASIZE PUSH1 0x4 PUSH2 0xA54 JUMP JUMPDEST PUSH2 0x177 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x33C JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF3 PUSH2 0xEE CALLDATASIZE PUSH1 0x4 PUSH2 0xA54 JUMP JUMPDEST PUSH2 0x350 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAB SWAP2 SWAP1 PUSH2 0xB24 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x10E CALLDATASIZE PUSH1 0x4 PUSH2 0xB85 JUMP JUMPDEST PUSH2 0x55A JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAB JUMP JUMPDEST PUSH2 0x141 PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0xA54 JUMP JUMPDEST PUSH2 0x6C6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAB JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0xB85 JUMP JUMPDEST PUSH2 0x745 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0xC0D JUMP JUMPDEST PUSH2 0x8F6 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP2 DUP4 ADD DUP2 ADD DUP1 MLOAD PUSH1 0x1 DUP3 MSTORE SWAP3 DUP3 ADD SWAP2 SWAP1 SWAP4 ADD KECCAK256 SWAP2 MSTORE DUP1 SLOAD DUP2 SWAP1 PUSH2 0x19D SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1C9 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x216 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1EB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x216 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1F9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x22B SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x257 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2A4 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x279 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2A4 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x287 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0x2B9 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2E5 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x332 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x307 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x332 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x315 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH2 0x344 PUSH2 0x934 JUMP JUMPDEST PUSH2 0x34E PUSH1 0x0 PUSH2 0x961 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x374 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x40 MLOAD PUSH2 0x384 SWAP2 SWAP1 PUSH2 0xC77 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x3AD SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3D9 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x426 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3FB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x426 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x409 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH2 0x43F SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x46B SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x48D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4B8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x49B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD DUP1 SLOAD PUSH2 0x4D1 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4FD SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x54A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x51F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x54A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x52D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x562 PUSH2 0x934 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0x585 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xC93 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5C6 SWAP2 SWAP1 PUSH2 0xCA6 JUMP JUMPDEST PUSH2 0x610 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x14D95C9D9A58D9481B9BDD081C9959DA5CDD195C9959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE POP PUSH1 0x1 DUP5 PUSH1 0x40 MLOAD PUSH2 0x63B SWAP2 SWAP1 PUSH2 0xC77 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP2 MLOAD DUP2 SWAP1 PUSH2 0x658 SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x66D SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SWAP1 PUSH2 0x682 SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP SWAP1 POP POP PUSH32 0x4CD09E35844CCDF25AAC9862AF453CEDF05D8A8B765F2763BE8373B55215DF8D DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x6B9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT PUSH2 0x70F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x496E76616C69642073657276696365206E616D65 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x607 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP4 PUSH1 0x40 MLOAD PUSH2 0x721 SWAP2 SWAP1 PUSH2 0xC77 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x73B SWAP1 PUSH2 0xC3D JUMP JUMPDEST SWAP1 POP GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x769 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x771 PUSH2 0x934 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0x794 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0xC93 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7D5 SWAP2 SWAP1 PUSH2 0xCA6 JUMP JUMPDEST ISZERO PUSH2 0x822 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5365727669636520616C72656164792072656769737465726564000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x607 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x1 DUP7 PUSH1 0x40 MLOAD PUSH2 0x852 SWAP2 SWAP1 PUSH2 0xC77 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP2 MLOAD DUP2 SWAP1 PUSH2 0x86F SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x884 SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SWAP1 PUSH2 0x899 SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP SWAP1 POP POP PUSH32 0xC182FE36565BE4905BE53A8ED353F07898B528F1625E778EDF77C13674806486 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x8D0 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x8E8 DUP4 PUSH2 0xDD7 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8FE PUSH2 0x934 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x928 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x607 JUMP JUMPDEST PUSH2 0x931 DUP2 PUSH2 0x961 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x34E JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x607 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x9D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x9F3 JUMPI PUSH2 0x9F3 PUSH2 0x9B1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xA1B JUMPI PUSH2 0xA1B PUSH2 0x9B1 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0xA34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA89 DUP5 DUP3 DUP6 ADD PUSH2 0x9C7 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xAAC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xA94 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xACD DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xA91 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH2 0xAF4 PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0xAB5 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xB06 DUP2 DUP7 PUSH2 0xAB5 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0xB1A DUP2 DUP6 PUSH2 0xAB5 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH1 0x60 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xB40 PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0xAB5 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP1 DUP6 DUP5 SUB ADD PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0xB5E DUP4 DUP4 PUSH2 0xAB5 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP7 ADD MLOAD SWAP2 POP DUP1 DUP6 DUP5 SUB ADD PUSH1 0x60 DUP7 ADD MSTORE POP PUSH2 0xB7C DUP3 DUP3 PUSH2 0xAB5 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xBB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBBE DUP8 DUP4 DUP9 ADD PUSH2 0x9C7 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xBD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBE0 DUP8 DUP4 DUP9 ADD PUSH2 0x9C7 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xBF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC03 DUP7 DUP3 DUP8 ADD PUSH2 0x9C7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xC36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xC51 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xC71 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0xC89 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xA91 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xC36 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xAB5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xC36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xD12 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0xCEF JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xD0E JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xCFB JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD31 JUMPI PUSH2 0xD31 PUSH2 0x9B1 JUMP JUMPDEST PUSH2 0xD45 DUP2 PUSH2 0xD3F DUP5 SLOAD PUSH2 0xC3D JUMP JUMPDEST DUP5 PUSH2 0xCC8 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0xD7A JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0xD62 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0xD0E JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xDA9 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0xD8A JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0xDC7 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0xDF7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD9 0xD1 EXTCODESIZE BALANCE LOG1 SIGNEXTEND 0xF6 0xDF 0xE0 0xCB EQ PUSH30 0x4236389D36AB889B339EA5D17D968E4D3BA1034564736F6C634300081400 CALLER ", - "sourceMap": "256:2022:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;448:27;;;;;;;;;160:25:7;;;148:2;133:18;448:27:3;;;;;;;;400:42;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;2293:101:0:-;;;:::i;:::-;;1547:117:3;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1881:395::-;;;;;;:::i;:::-;;:::i;1638:85:0:-;1684:7;1710:6;1638:85;;-1:-1:-1;;;;;1710:6:0;;;4096:51:7;;4084:2;4069:18;1638:85:0;3950:203:7;1670:205:3;;;;;;:::i;:::-;;:::i;:::-;;;4323:14:7;;4316:22;4298:41;;4286:2;4271:18;1670:205:3;4158:187:7;856:522:3;;;;;;:::i;:::-;;:::i;2543:215:0:-;;;;;;:::i;:::-;;:::i;400:42:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1547:117:3:-;1610:14;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;1610:14:3;1643:8;1652:4;1643:14;;;;;;:::i;:::-;;;;;;;;;;;;;1636:21;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1547:117;;;:::o;1881:395::-;1531:13:0;:11;:13::i;:::-;2012:30:3::1;::::0;-1:-1:-1;;;2012:30:3;;:4:::1;::::0;:24:::1;::::0;:30:::1;::::0;2037:4;;2012:30:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2004:65;;;::::0;-1:-1:-1;;;2004:65:3;;6029:2:7;2004:65:3::1;::::0;::::1;6011:21:7::0;6068:2;6048:18;;;6041:30;-1:-1:-1;;;6087:18:7;;;6080:52;6149:18;;2004:65:3::1;;;;;;;;;2097:113;;;;;;;;2125:4;2097:113;;;;2153:8;2097:113;;;;2188:11;2097:113;;::::0;2080:8:::1;2089:4;2080:14;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:130;;:14;;:130:::1;::::0;:14;:130:::1;:::i;:::-;-1:-1:-1::0;2080:130:3::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;2080:130:3::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;;;;;2226:43;2241:4;2247:8;2257:11;2226:43;;;;;;;;:::i;:::-;;;;;;;;1881:395:::0;;;:::o;1670:205::-;1742:4;1787:1;1772:4;1766:18;:22;1758:55;;;;-1:-1:-1;;;1758:55:3;;8584:2:7;1758:55:3;;;8566:21:7;8623:2;8603:18;;;8596:30;-1:-1:-1;;;8642:18:7;;;8635:50;8702:18;;1758:55:3;8382:344:7;1758:55:3;1867:1;1837:8;1846:4;1837:14;;;;;;:::i;:::-;;;;;;;;;;;;;;1831:33;;;;;:::i;:::-;;;:37;1824:44;;1670:205;;;:::o;856:522::-;980:14;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;980:14:3;1531:13:0;:11;:13::i;:::-;1015:30:3::1;::::0;-1:-1:-1;;;1015:30:3;;:4:::1;::::0;:24:::1;::::0;:30:::1;::::0;1040:4;;1015:30:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1014:31;1006:70;;;::::0;-1:-1:-1;;;1006:70:3;;8933:2:7;1006:70:3::1;::::0;::::1;8915:21:7::0;8972:2;8952:18;;;8945:30;9011:28;8991:18;;;8984:56;9057:18;;1006:70:3::1;8731:350:7::0;1006:70:3::1;1087:22;1112:113;;;;;;;;1140:4;1112:113;;;;1168:8;1112:113;;;;1203:11;1112:113;;::::0;1087:138:::1;;1253:7;1236:8;1245:4;1236:14;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:24;;:14;;:24:::1;::::0;:14;:24:::1;:::i;:::-;-1:-1:-1::0;1236:24:3::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;1236:24:3::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;;;;;1276:46;1294:4;1300:8;1310:11;1276:46;;;;;;;;:::i;:::-;;;;;;;;1333:12;:14:::0;;;:12:::1;:14;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;1364:7:3;;856:522;-1:-1:-1;;;;;856:522:3:o;2543:215:0:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:0;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:0;;2700:1:::1;2672:31;::::0;::::1;4096:51:7::0;4069:18;;2672:31:0::1;3950:203:7::0;2623:91:0::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;735:10:1;1855:23:0;1851:101;;1901:40;;-1:-1:-1;;;1901:40:0;;735:10:1;1901:40:0;;;4096:51:7;4069:18;;1901:40:0;3950:203:7;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;196:127:7:-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:719;371:5;424:3;417:4;409:6;405:17;401:27;391:55;;442:1;439;432:12;391:55;478:6;465:20;504:18;541:2;537;534:10;531:36;;;547:18;;:::i;:::-;622:2;616:9;590:2;676:13;;-1:-1:-1;;672:22:7;;;696:2;668:31;664:40;652:53;;;720:18;;;740:22;;;717:46;714:72;;;766:18;;:::i;:::-;806:10;802:2;795:22;841:2;833:6;826:18;887:3;880:4;875:2;867:6;863:15;859:26;856:35;853:55;;;904:1;901;894:12;853:55;968:2;961:4;953:6;949:17;942:4;934:6;930:17;917:54;1015:1;1008:4;1003:2;995:6;991:15;987:26;980:37;1035:6;1026:15;;;;;;328:719;;;;:::o;1052:322::-;1121:6;1174:2;1162:9;1153:7;1149:23;1145:32;1142:52;;;1190:1;1187;1180:12;1142:52;1230:9;1217:23;1263:18;1255:6;1252:30;1249:50;;;1295:1;1292;1285:12;1249:50;1318;1360:7;1351:6;1340:9;1336:22;1318:50;:::i;:::-;1308:60;1052:322;-1:-1:-1;;;;1052:322:7:o;1379:250::-;1464:1;1474:113;1488:6;1485:1;1482:13;1474:113;;;1564:11;;;1558:18;1545:11;;;1538:39;1510:2;1503:10;1474:113;;;-1:-1:-1;;1621:1:7;1603:16;;1596:27;1379:250::o;1634:271::-;1676:3;1714:5;1708:12;1741:6;1736:3;1729:19;1757:76;1826:6;1819:4;1814:3;1810:14;1803:4;1796:5;1792:16;1757:76;:::i;:::-;1887:2;1866:15;-1:-1:-1;;1862:29:7;1853:39;;;;1894:4;1849:50;;1634:271;-1:-1:-1;;1634:271:7:o;1910:546::-;2155:2;2144:9;2137:21;2118:4;2181:45;2222:2;2211:9;2207:18;2199:6;2181:45;:::i;:::-;2274:9;2266:6;2262:22;2257:2;2246:9;2242:18;2235:50;2308:33;2334:6;2326;2308:33;:::i;:::-;2294:47;;2389:9;2381:6;2377:22;2372:2;2361:9;2357:18;2350:50;2417:33;2443:6;2435;2417:33;:::i;:::-;2409:41;1910:546;-1:-1:-1;;;;;;1910:546:7:o;2461:736::-;2638:2;2627:9;2620:21;2601:4;2676:6;2670:13;2719:4;2714:2;2703:9;2699:18;2692:32;2747:52;2794:3;2783:9;2779:19;2765:12;2747:52;:::i;:::-;2733:66;;2848:2;2840:6;2836:15;2830:22;2875:2;2871:7;2942:2;2930:9;2922:6;2918:22;2914:31;2909:2;2898:9;2894:18;2887:59;2969:41;3003:6;2987:14;2969:41;:::i;:::-;2955:55;;3059:2;3051:6;3047:15;3041:22;3019:44;;3129:2;3117:9;3109:6;3105:22;3101:31;3094:4;3083:9;3079:20;3072:61;;3150:41;3184:6;3168:14;3150:41;:::i;:::-;3142:49;2461:736;-1:-1:-1;;;;;2461:736:7:o;3202:743::-;3309:6;3317;3325;3378:2;3366:9;3357:7;3353:23;3349:32;3346:52;;;3394:1;3391;3384:12;3346:52;3434:9;3421:23;3463:18;3504:2;3496:6;3493:14;3490:34;;;3520:1;3517;3510:12;3490:34;3543:50;3585:7;3576:6;3565:9;3561:22;3543:50;:::i;:::-;3533:60;;3646:2;3635:9;3631:18;3618:32;3602:48;;3675:2;3665:8;3662:16;3659:36;;;3691:1;3688;3681:12;3659:36;3714:52;3758:7;3747:8;3736:9;3732:24;3714:52;:::i;:::-;3704:62;;3819:2;3808:9;3804:18;3791:32;3775:48;;3848:2;3838:8;3835:16;3832:36;;;3864:1;3861;3854:12;3832:36;;3887:52;3931:7;3920:8;3909:9;3905:24;3887:52;:::i;:::-;3877:62;;;3202:743;;;;;:::o;4350:286::-;4409:6;4462:2;4450:9;4441:7;4437:23;4433:32;4430:52;;;4478:1;4475;4468:12;4430:52;4504:23;;-1:-1:-1;;;;;4556:31:7;;4546:42;;4536:70;;4602:1;4599;4592:12;4536:70;4625:5;4350:286;-1:-1:-1;;;4350:286:7:o;4641:380::-;4720:1;4716:12;;;;4763;;;4784:61;;4838:4;4830:6;4826:17;4816:27;;4784:61;4891:2;4883:6;4880:14;4860:18;4857:38;4854:161;;4937:10;4932:3;4928:20;4925:1;4918:31;4972:4;4969:1;4962:15;5000:4;4997:1;4990:15;4854:161;;4641:380;;;:::o;5026:289::-;5157:3;5195:6;5189:13;5211:66;5270:6;5265:3;5258:4;5250:6;5246:17;5211:66;:::i;:::-;5293:16;;;;;5026:289;-1:-1:-1;;5026:289:7:o;5320:220::-;5469:2;5458:9;5451:21;5432:4;5489:45;5530:2;5519:9;5515:18;5507:6;5489:45;:::i;5545:277::-;5612:6;5665:2;5653:9;5644:7;5640:23;5636:32;5633:52;;;5681:1;5678;5671:12;5633:52;5713:9;5707:16;5766:5;5759:13;5752:21;5745:5;5742:32;5732:60;;5788:1;5785;5778:12;6304:545;6406:2;6401:3;6398:11;6395:448;;;6442:1;6467:5;6463:2;6456:17;6512:4;6508:2;6498:19;6582:2;6570:10;6566:19;6563:1;6559:27;6553:4;6549:38;6618:4;6606:10;6603:20;6600:47;;;-1:-1:-1;6641:4:7;6600:47;6696:2;6691:3;6687:12;6684:1;6680:20;6674:4;6670:31;6660:41;;6751:82;6769:2;6762:5;6759:13;6751:82;;;6814:17;;;6795:1;6784:13;6751:82;;;6755:3;;;6395:448;6304:545;;;:::o;7025:1352::-;7151:3;7145:10;7178:18;7170:6;7167:30;7164:56;;;7200:18;;:::i;:::-;7229:97;7319:6;7279:38;7311:4;7305:11;7279:38;:::i;:::-;7273:4;7229:97;:::i;:::-;7381:4;;7445:2;7434:14;;7462:1;7457:663;;;;8164:1;8181:6;8178:89;;;-1:-1:-1;8233:19:7;;;8227:26;8178:89;-1:-1:-1;;6982:1:7;6978:11;;;6974:24;6970:29;6960:40;7006:1;7002:11;;;6957:57;8280:81;;7427:944;;7457:663;6251:1;6244:14;;;6288:4;6275:18;;-1:-1:-1;;7493:20:7;;;7611:236;7625:7;7622:1;7619:14;7611:236;;;7714:19;;;7708:26;7693:42;;7806:27;;;;7774:1;7762:14;;;;7641:19;;7611:236;;;7615:3;7875:6;7866:7;7863:19;7860:201;;;7936:19;;;7930:26;-1:-1:-1;;8019:1:7;8015:14;;;8031:3;8011:24;8007:37;8003:42;7988:58;7973:74;;7860:201;-1:-1:-1;;;;;8107:1:7;8091:14;;;8087:22;8074:36;;-1:-1:-1;7025:1352:7:o;9086:232::-;9125:3;9146:17;;;9143:140;;9205:10;9200:3;9196:20;9193:1;9186:31;9240:4;9237:1;9230:15;9268:4;9265:1;9258:15;9143:140;-1:-1:-1;9310:1:7;9299:13;;9086:232::o" - }, - "methodIdentifiers": { - "getService(string)": "794758be", - "isServiceRegistered(string)": "b405166b", - "owner()": "8da5cb5b", - "registerService(string,string,string)": "ef57d884", - "renounceOwnership()": "715018a6", - "serviceCount()": "06237526", - "services(string)": "3017ba09", - "transferOwnership(address)": "f2fde38b", - "updateService(string,string,string)": "7f3ed719" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ServiceRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ServiceUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"getService\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"internalType\":\"struct ServiceRegistry.Service\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"isServiceRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"registerService\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"internalType\":\"struct ServiceRegistry.Service\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"serviceCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"services\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"updateService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"leonprou\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"getService(string)\":{\"details\":\"Retrieves the details of a service.\",\"params\":{\"name\":\"The name of the service to retrieve.\"},\"returns\":{\"_0\":\"The details of the service.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"registerService(string,string,string)\":{\"details\":\"Registers a new service with the given name and price.\",\"params\":{\"name\":\"The name of the service.\"},\"returns\":{\"_0\":\"The ID of the registered service.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"ServiceRegistry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A smart contract that stores information about the services provided by agents.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ServiceRegistry.sol\":\"ServiceRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/ServiceRegistry.sol\":{\"keccak256\":\"0xa86b05303aaeee4c1437e7857fb03fe70473bed68f68c50dbabc261bfa6cdca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://069be2bed01b0f80d688a4b5da526051507245c340745a58f2bd78fbf3700373\",\"dweb:/ipfs/QmWU9yZSLZNJvZaXNRPem7AySUL94aTaCAR1TGTdcnPmmA\"]}},\"version\":1}" - } - }, - "contracts/TaskRegistry.sol": { - "TaskRegistry": { - "abi": [ - { - "inputs": [ - { - "internalType": "contract AgentsRegistry", - "name": "_agentRegistry", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "taskId", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "issuer", - "type": "address" - }, - { - "internalType": "string", - "name": "serviceName", - "type": "string" - }, - { - "internalType": "uint256", - "name": "price", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - } - ], - "indexed": false, - "internalType": "struct IProposalStruct.Proposal", - "name": "proposal", - "type": "tuple" - } - ], - "name": "ProposalApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "taskId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "agent", - "type": "address" - } - ], - "name": "TaskAssigned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "taskId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "result", - "type": "string" - } - ], - "name": "TaskCompleted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "issuer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "assignee", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "taskId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "prompt", - "type": "string" - } - ], - "name": "TaskCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "taskId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "enum TaskRegistry.TaskStatus", - "name": "status", - "type": "uint8" - } - ], - "name": "TaskStatusChanged", - "type": "event" - }, - { - "inputs": [], - "name": "agentRegistry", - "outputs": [ - { - "internalType": "contract AgentsRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "taskId", - "type": "uint256" - }, - { - "internalType": "string", - "name": "result", - "type": "string" - } - ], - "name": "completeTask", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "prompt", - "type": "string" - }, - { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - } - ], - "name": "createTask", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "string", - "name": "prompt", - "type": "string" - }, - { - "internalType": "address", - "name": "issuer", - "type": "address" - }, - { - "internalType": "enum TaskRegistry.TaskStatus", - "name": "status", - "type": "uint8" - }, - { - "internalType": "address", - "name": "assignee", - "type": "address" - }, - { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - } - ], - "internalType": "struct TaskRegistry.TaskData", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "taskId", - "type": "uint256" - } - ], - "name": "getAssignee", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "taskId", - "type": "uint256" - } - ], - "name": "getStatus", - "outputs": [ - { - "internalType": "enum TaskRegistry.TaskStatus", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "taskId", - "type": "uint256" - } - ], - "name": "getTask", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "string", - "name": "prompt", - "type": "string" - }, - { - "internalType": "address", - "name": "issuer", - "type": "address" - }, - { - "internalType": "enum TaskRegistry.TaskStatus", - "name": "status", - "type": "uint8" - }, - { - "internalType": "address", - "name": "assignee", - "type": "address" - }, - { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - } - ], - "internalType": "struct TaskRegistry.TaskData", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "issuer", - "type": "address" - } - ], - "name": "getTasksByIssuer", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "issuerTasks", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "tasks", - "outputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "string", - "name": "prompt", - "type": "string" - }, - { - "internalType": "address", - "name": "issuer", - "type": "address" - }, - { - "internalType": "enum TaskRegistry.TaskStatus", - "name": "status", - "type": "uint8" - }, - { - "internalType": "address", - "name": "assignee", - "type": "address" - }, - { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": { - "@_50": { - "entryPoint": null, - "id": 50, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_742": { - "entryPoint": null, - "id": 742, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_transferOwnership_146": { - "entryPoint": 132, - "id": 146, - "parameterSlots": 1, - "returnSlots": 0 - }, - "abi_decode_tuple_t_contract$_AgentsRegistry_$506_fromMemory": { - "entryPoint": 212, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - } - }, - "generatedSources": [ - { - "ast": { - "nodeType": "YulBlock", - "src": "0:536:7", - "statements": [ - { - "nodeType": "YulBlock", - "src": "6:3:7", - "statements": [] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "117:209:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "163:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "172:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "175:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "165:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "165:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "165:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "138:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "147:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "134:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "134:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "159:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "130:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "130:32:7" - }, - "nodeType": "YulIf", - "src": "127:52:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "188:29:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "207:9:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "201:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "201:16:7" - }, - "variables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "192:5:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "280:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "289:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "292:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "282:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "282:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "282:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "239:5:7" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "250:5:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "265:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "270:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "261:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "261:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "274:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "257:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "257:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "246:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "246:31:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "236:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "236:42:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "229:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "229:50:7" - }, - "nodeType": "YulIf", - "src": "226:70:7" - }, - { - "nodeType": "YulAssignment", - "src": "305:15:7", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "315:5:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "305:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_contract$_AgentsRegistry_$506_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "83:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "94:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "106:6:7", - "type": "" - } - ], - "src": "14:312:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "432:102:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "442:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "454:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "465:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "450:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "450:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "442:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "484:9:7" - }, - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "499:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "515:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "520:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "511:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "511:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "524:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "507:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "507:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "495:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "495:32:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "477:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "477:51:7" - }, - "nodeType": "YulExpressionStatement", - "src": "477:51:7" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "401:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "412:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "423:4:7", - "type": "" - } - ], - "src": "331:203:7" - } - ] - }, - "contents": "{\n { }\n function abi_decode_tuple_t_contract$_AgentsRegistry_$506_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n}", - "id": 7, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b5060405161137a38038061137a83398101604081905261002f916100d4565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e81610084565b50600480546001600160a01b0319166001600160a01b0392909216919091179055610104565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100e657600080fd5b81516001600160a01b03811681146100fd57600080fd5b9392505050565b611267806101136000396000f3fe6080604052600436106100a75760003560e01c8063639241ab11610064578063639241ab146101db578063715018a61461020857806374aaa7601461021f5780638d9776721461023f5780638da5cb5b14610271578063f2fde38b1461028f57600080fd5b806304fe2b34146100ac57806307b31818146100d55780630d1cfcae146101265780631d65e77e146101465780632a2b3a9d146101665780635c622a0e14610194575b600080fd5b6100bf6100ba366004610cf4565b6102af565b6040516100cc9190610dc1565b60405180910390f35b3480156100e157600080fd5b5061010e6100f0366004610e35565b6000908152600160205260409020600301546001600160a01b031690565b6040516001600160a01b0390911681526020016100cc565b34801561013257600080fd5b5060045461010e906001600160a01b031681565b34801561015257600080fd5b506100bf610161366004610e35565b61058f565b34801561017257600080fd5b50610186610181366004610e63565b6106b6565b6040519081526020016100cc565b3480156101a057600080fd5b506101ce6101af366004610e35565b600090815260016020526040902060020154600160a01b900460ff1690565b6040516100cc9190610e8f565b3480156101e757600080fd5b506101fb6101f6366004610e9d565b6106e7565b6040516100cc9190610ec1565b34801561021457600080fd5b5061021d610753565b005b34801561022b57600080fd5b5061021d61023a366004610f05565b610767565b34801561024b57600080fd5b5061025f61025a366004610e35565b61094e565b6040516100cc96959493929190610f4c565b34801561027d57600080fd5b506000546001600160a01b031661010e565b34801561029b57600080fd5b5061021d6102aa366004610e9d565b610a1c565b6102b7610bb6565b600480546040516318feeb1560e31b81529182018490526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610303573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261032b9190810190610f9a565b9050348160400151146103755760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420707269636560981b60448201526064015b60405180910390fd5b600380549060006103858361106b565b9091555050600354600081815260016020819052604090912091825581016103ad868261111a565b5060028181018054336001600160a01b031991821681178355600485018890558551600380870180549094166001600160a01b0390921691909117909255600090815260209384526040812091548254600181810185559383529490912090930192909255805460ff60a01b1916600160a01b830217905550815160035460608401516040516001600160a01b039093169233927f5c005bbbb9da508c37935b1a9f270836e0be1fd11d4d47119f925a3ff33820e99261046e928b906111da565b60405180910390a3806040518060c00160405290816000820154815260200160018201805461049c90611092565b80601f01602080910402602001604051908101604052809291908181526020018280546104c890611092565b80156105155780601f106104ea57610100808354040283529160200191610515565b820191906000526020600020905b8154815290600101906020018083116104f857829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff16600381111561055257610552610d89565b600381111561056357610563610d89565b815260038201546001600160a01b03166020820152600490910154604090910152925050505b92915050565b610597610bb6565b600082815260016020818152604092839020835160c08101909452805484529182018054918401916105c890611092565b80601f01602080910402602001604051908101604052809291908181526020018280546105f490611092565b80156106415780601f1061061657610100808354040283529160200191610641565b820191906000526020600020905b81548152906001019060200180831161062457829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff16600381111561067e5761067e610d89565b600381111561068f5761068f610d89565b815260038201546001600160a01b0316602082015260049091015460409091015292915050565b600260205281600052604060002081815481106106d257600080fd5b90600052602060002001600091509150505481565b6001600160a01b03811660009081526002602090815260409182902080548351818402810184019094528084526060939283018282801561074757602002820191906000526020600020905b815481526020019060010190808311610733575b50505050509050919050565b61075b610a5a565b6107656000610a87565b565b600082815260016020526040902060038101546001600160a01b031633146107c25760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b604482015260640161036c565b60016002820154600160a01b900460ff1660038111156107e4576107e4610d89565b146108275760405162461bcd60e51b8152602060048201526013602482015272496e76616c6964207461736b2073746174757360681b604482015260640161036c565b600281018054600160a11b60ff60a01b1990911617905560048054818301546040516318feeb1560e31b8152928301526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa15801561088c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108b49190810190610f9a565b90506108c881600001518260400151610ad7565b600282015460405185917fd76ef80cfb1ce0c70d0cbc0ab1b9f2f298a78f9fca5c841be963ae9a5d721bb49161090891600160a01b900460ff1690610e8f565b60405180910390a2837f7e6ffc29fe63759579d96a0457a8f2e08339aca345bd469f59dc2e61f82a5aeb846040516109409190611202565b60405180910390a250505050565b60016020819052600091825260409091208054918101805461096f90611092565b80601f016020809104026020016040519081016040528092919081815260200182805461099b90611092565b80156109e85780601f106109bd576101008083540402835291602001916109e8565b820191906000526020600020905b8154815290600101906020018083116109cb57829003601f168201915b505050506002830154600384015460049094015492936001600160a01b0380831694600160a01b90930460ff169350169086565b610a24610a5a565b6001600160a01b038116610a4e57604051631e4fbdf760e01b81526000600482015260240161036c565b610a5781610a87565b50565b6000546001600160a01b031633146107655760405163118cdaa760e01b815233600482015260240161036c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516000808252602082019092526001600160a01b038416908390604051610b019190611215565b60006040518083038185875af1925050503d8060008114610b3e576040519150601f19603f3d011682016040523d82523d6000602084013e610b43565b606091505b5050905080610bb15760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b606482015260840161036c565b505050565b6040518060c00160405280600081526020016060815260200160006001600160a01b0316815260200160006003811115610bf257610bf2610d89565b815260006020820181905260409091015290565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715610c3f57610c3f610c06565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610c6e57610c6e610c06565b604052919050565b600067ffffffffffffffff821115610c9057610c90610c06565b50601f01601f191660200190565b600082601f830112610caf57600080fd5b8135610cc2610cbd82610c76565b610c45565b818152846020838601011115610cd757600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215610d0757600080fd5b823567ffffffffffffffff811115610d1e57600080fd5b610d2a85828601610c9e565b95602094909401359450505050565b60005b83811015610d54578181015183820152602001610d3c565b50506000910152565b60008151808452610d75816020860160208601610d39565b601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b60048110610dbd57634e487b7160e01b600052602160045260246000fd5b9052565b60208152815160208201526000602083015160c06040840152610de760e0840182610d5d565b60408501516001600160a01b03908116606086810191909152860151919250610e136080860183610d9f565b8060808701511660a0860152505060a084015160c08401528091505092915050565b600060208284031215610e4757600080fd5b5035919050565b6001600160a01b0381168114610a5757600080fd5b60008060408385031215610e7657600080fd5b8235610e8181610e4e565b946020939093013593505050565b602081016105898284610d9f565b600060208284031215610eaf57600080fd5b8135610eba81610e4e565b9392505050565b6020808252825182820181905260009190848201906040850190845b81811015610ef957835183529284019291840191600101610edd565b50909695505050505050565b60008060408385031215610f1857600080fd5b82359150602083013567ffffffffffffffff811115610f3657600080fd5b610f4285828601610c9e565b9150509250929050565b86815260c060208201526000610f6560c0830188610d5d565b6001600160a01b038781166040850152909150610f856060840187610d9f565b93909316608082015260a00152949350505050565b60006020808385031215610fad57600080fd5b825167ffffffffffffffff80821115610fc557600080fd5b9084019060808287031215610fd957600080fd5b610fe1610c1c565b8251610fec81610e4e565b81528284015182811115610fff57600080fd5b83019150601f8201871361101257600080fd5b8151611020610cbd82610c76565b818152888683860101111561103457600080fd5b61104382878301888701610d39565b8086840152505060408301516040820152606083015160608201528094505050505092915050565b60006001820161108b57634e487b7160e01b600052601160045260246000fd5b5060010190565b600181811c908216806110a657607f821691505b6020821081036110c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610bb157600081815260208120601f850160051c810160208610156110f35750805b601f850160051c820191505b81811015611112578281556001016110ff565b505050505050565b815167ffffffffffffffff81111561113457611134610c06565b611148816111428454611092565b846110cc565b602080601f83116001811461117d57600084156111655750858301515b600019600386901b1c1916600185901b178555611112565b600085815260208120601f198616915b828110156111ac5788860151825594840194600190910190840161118d565b50858210156111ca5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8381528260208201526060604082015260006111f96060830184610d5d565b95945050505050565b602081526000610eba6020830184610d5d565b60008251611227818460208701610d39565b919091019291505056fea26469706673582212204fd13c9156b06d84f2b8726fb1be8875eca46918301e04056773e09b6bb9159964736f6c63430008140033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x137A CODESIZE SUB DUP1 PUSH2 0x137A DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0xD4 JUMP JUMPDEST CALLER DUP1 PUSH2 0x55 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5E DUP2 PUSH2 0x84 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x104 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1267 DUP1 PUSH2 0x113 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA7 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x639241AB GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x639241AB EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x208 JUMPI DUP1 PUSH4 0x74AAA760 EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x8D977672 EQ PUSH2 0x23F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x271 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x28F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4FE2B34 EQ PUSH2 0xAC JUMPI DUP1 PUSH4 0x7B31818 EQ PUSH2 0xD5 JUMPI DUP1 PUSH4 0xD1CFCAE EQ PUSH2 0x126 JUMPI DUP1 PUSH4 0x1D65E77E EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x2A2B3A9D EQ PUSH2 0x166 JUMPI DUP1 PUSH4 0x5C622A0E EQ PUSH2 0x194 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBF PUSH2 0xBA CALLDATASIZE PUSH1 0x4 PUSH2 0xCF4 JUMP JUMPDEST PUSH2 0x2AF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP2 SWAP1 PUSH2 0xDC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10E PUSH2 0xF0 CALLDATASIZE PUSH1 0x4 PUSH2 0xE35 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x132 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x10E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBF PUSH2 0x161 CALLDATASIZE PUSH1 0x4 PUSH2 0xE35 JUMP JUMPDEST PUSH2 0x58F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x172 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x186 PUSH2 0x181 CALLDATASIZE PUSH1 0x4 PUSH2 0xE63 JUMP JUMPDEST PUSH2 0x6B6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CE PUSH2 0x1AF CALLDATASIZE PUSH1 0x4 PUSH2 0xE35 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP2 SWAP1 PUSH2 0xE8F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FB PUSH2 0x1F6 CALLDATASIZE PUSH1 0x4 PUSH2 0xE9D JUMP JUMPDEST PUSH2 0x6E7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP2 SWAP1 PUSH2 0xEC1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x214 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21D PUSH2 0x753 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21D PUSH2 0x23A CALLDATASIZE PUSH1 0x4 PUSH2 0xF05 JUMP JUMPDEST PUSH2 0x767 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25F PUSH2 0x25A CALLDATASIZE PUSH1 0x4 PUSH2 0xE35 JUMP JUMPDEST PUSH2 0x94E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x10E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21D PUSH2 0x2AA CALLDATASIZE PUSH1 0x4 PUSH2 0xE9D JUMP JUMPDEST PUSH2 0xA1C JUMP JUMPDEST PUSH2 0x2B7 PUSH2 0xBB6 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18FEEB15 PUSH1 0xE3 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC7F758A8 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x303 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x32B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0xF9A JUMP JUMPDEST SWAP1 POP CALLVALUE DUP2 PUSH1 0x40 ADD MLOAD EQ PUSH2 0x375 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x496E76616C6964207072696365 PUSH1 0x98 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x385 DUP4 PUSH2 0x106B JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x3 SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP2 DUP3 SSTORE DUP2 ADD PUSH2 0x3AD DUP7 DUP3 PUSH2 0x111A JUMP JUMPDEST POP PUSH1 0x2 DUP2 DUP2 ADD DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND DUP2 OR DUP4 SSTORE PUSH1 0x4 DUP6 ADD DUP9 SWAP1 SSTORE DUP6 MLOAD PUSH1 0x3 DUP1 DUP8 ADD DUP1 SLOAD SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SLOAD DUP3 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP6 SSTORE SWAP4 DUP4 MSTORE SWAP5 SWAP1 SWAP2 KECCAK256 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP3 SSTORE DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL DUP4 MUL OR SWAP1 SSTORE POP DUP2 MLOAD PUSH1 0x3 SLOAD PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 CALLER SWAP3 PUSH32 0x5C005BBBB9DA508C37935B1A9F270836E0BE1FD11D4D47119F925A3FF33820E9 SWAP3 PUSH2 0x46E SWAP3 DUP12 SWAP1 PUSH2 0x11DA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH2 0x49C SWAP1 PUSH2 0x1092 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4C8 SWAP1 PUSH2 0x1092 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x515 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4EA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x515 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x4F8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x552 JUMPI PUSH2 0x552 PUSH2 0xD89 JUMP JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x563 JUMPI PUSH2 0x563 PUSH2 0xD89 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP3 POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x597 PUSH2 0xBB6 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP5 MSTORE DUP1 SLOAD DUP5 MSTORE SWAP2 DUP3 ADD DUP1 SLOAD SWAP2 DUP5 ADD SWAP2 PUSH2 0x5C8 SWAP1 PUSH2 0x1092 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x5F4 SWAP1 PUSH2 0x1092 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x641 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x616 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x641 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x624 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x67E JUMPI PUSH2 0x67E PUSH2 0xD89 JUMP JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x68F JUMPI PUSH2 0x68F PUSH2 0xD89 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x6D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD DUP2 DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x747 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x733 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x75B PUSH2 0xA5A JUMP JUMPDEST PUSH2 0x765 PUSH1 0x0 PUSH2 0xA87 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x7C2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x139BDD08185D5D1A1BDC9A5E9959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x36C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x7E4 JUMPI PUSH2 0x7E4 PUSH2 0xD89 JUMP JUMPDEST EQ PUSH2 0x827 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x496E76616C6964207461736B20737461747573 PUSH1 0x68 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x36C JUMP JUMPDEST PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA1 SHL PUSH1 0xFF PUSH1 0xA0 SHL NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x4 DUP1 SLOAD DUP2 DUP4 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x18FEEB15 PUSH1 0xE3 SHL DUP2 MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC7F758A8 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x88C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x8B4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0xF9A JUMP JUMPDEST SWAP1 POP PUSH2 0x8C8 DUP2 PUSH1 0x0 ADD MLOAD DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0xAD7 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x40 MLOAD DUP6 SWAP2 PUSH32 0xD76EF80CFB1CE0C70D0CBC0AB1B9F2F298A78F9FCA5C841BE963AE9A5D721BB4 SWAP2 PUSH2 0x908 SWAP2 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 PUSH2 0xE8F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP4 PUSH32 0x7E6FFC29FE63759579D96A0457A8F2E08339ACA345BD469F59DC2E61F82A5AEB DUP5 PUSH1 0x40 MLOAD PUSH2 0x940 SWAP2 SWAP1 PUSH2 0x1202 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD SWAP2 DUP2 ADD DUP1 SLOAD PUSH2 0x96F SWAP1 PUSH2 0x1092 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x99B SWAP1 PUSH2 0x1092 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x9E8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9BD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x9E8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x9CB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 SWAP1 SWAP5 ADD SLOAD SWAP3 SWAP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND SWAP5 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP4 DIV PUSH1 0xFF AND SWAP4 POP AND SWAP1 DUP7 JUMP JUMPDEST PUSH2 0xA24 PUSH2 0xA5A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xA4E JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x36C JUMP JUMPDEST PUSH2 0xA57 DUP2 PUSH2 0xA87 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x765 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x36C JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP4 SWAP1 PUSH1 0x40 MLOAD PUSH2 0xB01 SWAP2 SWAP1 PUSH2 0x1215 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xB3E JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xB43 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xBB1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x34 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A3A736166655472616E736665724554483A PUSH1 0x44 DUP3 ADD MSTORE PUSH20 0x8115512081D1C985B9CD9995C8819985A5B1959 PUSH1 0x62 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x36C JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xBF2 JUMPI PUSH2 0xBF2 PUSH2 0xD89 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xC3F JUMPI PUSH2 0xC3F PUSH2 0xC06 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xC6E JUMPI PUSH2 0xC6E PUSH2 0xC06 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xC90 JUMPI PUSH2 0xC90 PUSH2 0xC06 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xCAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xCC2 PUSH2 0xCBD DUP3 PUSH2 0xC76 JUMP JUMPDEST PUSH2 0xC45 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0xCD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD2A DUP6 DUP3 DUP7 ADD PUSH2 0xC9E JUMP JUMPDEST SWAP6 PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD54 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xD3C JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xD75 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xD39 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0xDBD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0xDE7 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0xD5D JUMP JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x60 DUP7 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP7 ADD MLOAD SWAP2 SWAP3 POP PUSH2 0xE13 PUSH1 0x80 DUP7 ADD DUP4 PUSH2 0xD9F JUMP JUMPDEST DUP1 PUSH1 0x80 DUP8 ADD MLOAD AND PUSH1 0xA0 DUP7 ADD MSTORE POP POP PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0xC0 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0xE81 DUP2 PUSH2 0xE4E JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x589 DUP3 DUP5 PUSH2 0xD9F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xEBA DUP2 PUSH2 0xE4E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xEF9 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0xEDD JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF42 DUP6 DUP3 DUP7 ADD PUSH2 0xC9E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP7 DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0xF65 PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0xD5D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0xF85 PUSH1 0x60 DUP5 ADD DUP8 PUSH2 0xD9F JUMP JUMPDEST SWAP4 SWAP1 SWAP4 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xFAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xFC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP5 ADD SWAP1 PUSH1 0x80 DUP3 DUP8 SUB SLT ISZERO PUSH2 0xFD9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xFE1 PUSH2 0xC1C JUMP JUMPDEST DUP3 MLOAD PUSH2 0xFEC DUP2 PUSH2 0xE4E JUMP JUMPDEST DUP2 MSTORE DUP3 DUP5 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0xFFF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD SWAP2 POP PUSH1 0x1F DUP3 ADD DUP8 SGT PUSH2 0x1012 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1020 PUSH2 0xCBD DUP3 PUSH2 0xC76 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP9 DUP7 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x1034 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1043 DUP3 DUP8 DUP4 ADD DUP9 DUP8 ADD PUSH2 0xD39 JUMP JUMPDEST DUP1 DUP7 DUP5 ADD MSTORE POP POP PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x108B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x10A6 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x10C6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xBB1 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x10F3 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1112 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x10FF JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1134 JUMPI PUSH2 0x1134 PUSH2 0xC06 JUMP JUMPDEST PUSH2 0x1148 DUP2 PUSH2 0x1142 DUP5 SLOAD PUSH2 0x1092 JUMP JUMPDEST DUP5 PUSH2 0x10CC JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x117D JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1165 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x1112 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x11AC JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x118D JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x11CA JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP4 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x11F9 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xD5D JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xEBA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xD5D JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1227 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xD39 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F 0xD1 EXTCODECOPY SWAP2 JUMP 0xB0 PUSH14 0x84F2B8726FB1BE8875ECA4691830 0x1E DIV SDIV PUSH8 0x73E09B6BB9159964 PUSH20 0x6F6C634300081400330000000000000000000000 ", - "sourceMap": "380:3160:4:-:0;;;854:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;905:10;;1269:95:0;;1322:31;;-1:-1:-1;;;1322:31:0;;1350:1;1322:31;;;477:51:7;450:18;;1322:31:0;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;927:13:4::1;:30:::0;;-1:-1:-1;;;;;;927:30:4::1;-1:-1:-1::0;;;;;927:30:4;;;::::1;::::0;;;::::1;::::0;;380:3160;;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:312:7:-;106:6;159:2;147:9;138:7;134:23;130:32;127:52;;;175:1;172;165:12;127:52;201:16;;-1:-1:-1;;;;;246:31:7;;236:42;;226:70;;292:1;289;282:12;226:70;315:5;14:312;-1:-1:-1;;;14:312:7:o;331:203::-;380:3160:4;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@_checkOwner_84": { - "entryPoint": 2650, - "id": 84, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_msgSender_159": { - "entryPoint": null, - "id": 159, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_transferOwnership_146": { - "entryPoint": 2695, - "id": 146, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@agentRegistry_727": { - "entryPoint": null, - "id": 727, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@completeTask_949": { - "entryPoint": 1895, - "id": 949, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@createTask_879": { - "entryPoint": 687, - "id": 879, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@getAssignee_1002": { - "entryPoint": null, - "id": 1002, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getStatus_989": { - "entryPoint": null, - "id": 989, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getTask_975": { - "entryPoint": 1423, - "id": 975, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getTasksByIssuer_962": { - "entryPoint": 1767, - "id": 962, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@issuerTasks_722": { - "entryPoint": 1718, - "id": 722, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@owner_67": { - "entryPoint": null, - "id": 67, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@renounceOwnership_98": { - "entryPoint": 1875, - "id": 98, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@safeTransferETH_1174": { - "entryPoint": 2775, - "id": 1174, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@tasks_717": { - "entryPoint": 2382, - "id": 717, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@transferOwnership_126": { - "entryPoint": 2588, - "id": 126, - "parameterSlots": 1, - "returnSlots": 0 - }, - "abi_decode_string": { - "entryPoint": 3230, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_address": { - "entryPoint": 3741, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_addresst_uint256": { - "entryPoint": 3683, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_string_memory_ptrt_uint256": { - "entryPoint": 3316, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_struct$_Proposal_$1014_memory_ptr_fromMemory": { - "entryPoint": 3994, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint256": { - "entryPoint": 3637, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint256t_string_memory_ptr": { - "entryPoint": 3845, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_encode_enum_TaskStatus": { - "entryPoint": 3487, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_string": { - "entryPoint": 3421, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { - "entryPoint": 4629, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { - "entryPoint": 3777, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_contract$_AgentsRegistry_$506__to_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_enum$_TaskStatus_$698__to_t_uint8__fromStack_reversed": { - "entryPoint": 3727, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 4610, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_35c761622bcc8ab75f9adfaf21a4872a39cd06f2745d5488272d29f1f753f270__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_43d7bec223ecf9eb06ea147e7d564bc71c2448662d62a4ea86ce71fc4518b350__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_eaa01effe6abd0543e9529d3961b0f5d26980f0661c156a79b89c39a093463f7__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_struct$_TaskData_$712_memory_ptr__to_t_struct$_TaskData_$712_memory_ptr__fromStack_reversed": { - "entryPoint": 3521, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_string_memory_ptr_t_address_t_enum$_TaskStatus_$698_t_address_t_uint256__to_t_uint256_t_string_memory_ptr_t_address_t_uint8_t_address_t_uint256__fromStack_reversed": { - "entryPoint": 3916, - "id": null, - "parameterSlots": 7, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_uint256_t_string_memory_ptr__to_t_uint256_t_uint256_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 4570, - "id": null, - "parameterSlots": 4, - "returnSlots": 1 - }, - "allocate_memory": { - "entryPoint": 3141, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "allocate_memory_1882": { - "entryPoint": 3100, - "id": null, - "parameterSlots": 0, - "returnSlots": 1 - }, - "array_allocation_size_string": { - "entryPoint": 3190, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_dataslot_string_storage": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "clean_up_bytearray_end_slots_string_storage": { - "entryPoint": 4300, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { - "entryPoint": 4378, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "copy_memory_to_memory_with_cleanup": { - "entryPoint": 3385, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "extract_byte_array_length": { - "entryPoint": 4242, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "extract_used_part_and_set_length_of_short_byte_array": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "increment_t_uint256": { - "entryPoint": 4203, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "panic_error_0x21": { - "entryPoint": 3465, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x41": { - "entryPoint": 3078, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "validator_revert_address": { - "entryPoint": 3662, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nodeType": "YulBlock", - "src": "0:13261:7", - "statements": [ - { - "nodeType": "YulBlock", - "src": "6:3:7", - "statements": [] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "46:95:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "63:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "70:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "75:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "66:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "66:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "56:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "56:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "56:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "103:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "106:4:7", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "96:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "96:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "96:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "127:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "130:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "120:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "120:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "120:15:7" - } - ] - }, - "name": "panic_error_0x41", - "nodeType": "YulFunctionDefinition", - "src": "14:127:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "192:207:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "202:19:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "218:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "212:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "212:9:7" - }, - "variableNames": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "202:6:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "230:35:7", - "value": { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "252:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "260:4:7", - "type": "", - "value": "0x80" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "248:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "248:17:7" - }, - "variables": [ - { - "name": "newFreePtr", - "nodeType": "YulTypedName", - "src": "234:10:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "340:22:7", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "342:16:7" - }, - "nodeType": "YulFunctionCall", - "src": "342:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "342:18:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "283:10:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "295:18:7", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "280:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "280:34:7" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "319:10:7" - }, - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "331:6:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "316:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "316:22:7" - } - ], - "functionName": { - "name": "or", - "nodeType": "YulIdentifier", - "src": "277:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "277:62:7" - }, - "nodeType": "YulIf", - "src": "274:88:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "378:2:7", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "382:10:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "371:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "371:22:7" - }, - "nodeType": "YulExpressionStatement", - "src": "371:22:7" - } - ] - }, - "name": "allocate_memory_1882", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "181:6:7", - "type": "" - } - ], - "src": "146:253:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "449:230:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "459:19:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "475:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "469:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "469:9:7" - }, - "variableNames": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "459:6:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "487:58:7", - "value": { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "509:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "525:4:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "531:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "521:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "521:13:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "540:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "536:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "536:7:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "517:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "517:27:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "505:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "505:40:7" - }, - "variables": [ - { - "name": "newFreePtr", - "nodeType": "YulTypedName", - "src": "491:10:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "620:22:7", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "622:16:7" - }, - "nodeType": "YulFunctionCall", - "src": "622:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "622:18:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "563:10:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "575:18:7", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "560:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "560:34:7" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "599:10:7" - }, - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "611:6:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "596:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "596:22:7" - } - ], - "functionName": { - "name": "or", - "nodeType": "YulIdentifier", - "src": "557:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "557:62:7" - }, - "nodeType": "YulIf", - "src": "554:88:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "658:2:7", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "662:10:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "651:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "651:22:7" - }, - "nodeType": "YulExpressionStatement", - "src": "651:22:7" - } - ] - }, - "name": "allocate_memory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "size", - "nodeType": "YulTypedName", - "src": "429:4:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "438:6:7", - "type": "" - } - ], - "src": "404:275:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "742:129:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "786:22:7", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "788:16:7" - }, - "nodeType": "YulFunctionCall", - "src": "788:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "788:18:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "758:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "766:18:7", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "755:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "755:30:7" - }, - "nodeType": "YulIf", - "src": "752:56:7" - }, - { - "nodeType": "YulAssignment", - "src": "817:48:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "837:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "845:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "833:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "833:15:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "854:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "850:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "850:7:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "829:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "829:29:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "860:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "825:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "825:40:7" - }, - "variableNames": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "817:4:7" - } - ] - } - ] - }, - "name": "array_allocation_size_string", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "722:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "size", - "nodeType": "YulTypedName", - "src": "733:4:7", - "type": "" - } - ], - "src": "684:187:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "929:411:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "978:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "987:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "990:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "980:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "980:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "980:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "957:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "965:4:7", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "953:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "953:17:7" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "972:3:7" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "949:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "949:27:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "942:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "942:35:7" - }, - "nodeType": "YulIf", - "src": "939:55:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "1003:30:7", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1026:6:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "1013:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "1013:20:7" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "1007:2:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "1042:64:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "1102:2:7" - } - ], - "functionName": { - "name": "array_allocation_size_string", - "nodeType": "YulIdentifier", - "src": "1073:28:7" - }, - "nodeType": "YulFunctionCall", - "src": "1073:32:7" - } - ], - "functionName": { - "name": "allocate_memory", - "nodeType": "YulIdentifier", - "src": "1057:15:7" - }, - "nodeType": "YulFunctionCall", - "src": "1057:49:7" - }, - "variables": [ - { - "name": "array_1", - "nodeType": "YulTypedName", - "src": "1046:7:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "array_1", - "nodeType": "YulIdentifier", - "src": "1122:7:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "1131:2:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1115:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1115:19:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1115:19:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1182:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1191:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1194:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1184:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1184:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1184:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1157:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "1165:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1153:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1153:15:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1170:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1149:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1149:26:7" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "1177:3:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "1146:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "1146:35:7" - }, - "nodeType": "YulIf", - "src": "1143:55:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "array_1", - "nodeType": "YulIdentifier", - "src": "1224:7:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1233:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1220:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1220:18:7" - }, - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1244:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1252:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1240:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1240:17:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "1259:2:7" - } - ], - "functionName": { - "name": "calldatacopy", - "nodeType": "YulIdentifier", - "src": "1207:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "1207:55:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1207:55:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "array_1", - "nodeType": "YulIdentifier", - "src": "1286:7:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "1295:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1282:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1282:16:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1300:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1278:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1278:27:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1307:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1271:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1271:38:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1271:38:7" - }, - { - "nodeType": "YulAssignment", - "src": "1318:16:7", - "value": { - "name": "array_1", - "nodeType": "YulIdentifier", - "src": "1327:7:7" - }, - "variableNames": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "1318:5:7" - } - ] - } - ] - }, - "name": "abi_decode_string", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "903:6:7", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "911:3:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nodeType": "YulTypedName", - "src": "919:5:7", - "type": "" - } - ], - "src": "876:464:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1442:293:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "1488:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1497:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1500:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1490:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1490:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1490:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1463:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1472:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "1459:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1459:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1484:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "1455:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1455:32:7" - }, - "nodeType": "YulIf", - "src": "1452:52:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "1513:37:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1540:9:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "1527:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "1527:23:7" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1517:6:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1593:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1602:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1605:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1595:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1595:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1595:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1565:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1573:18:7", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "1562:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "1562:30:7" - }, - "nodeType": "YulIf", - "src": "1559:50:7" - }, - { - "nodeType": "YulAssignment", - "src": "1618:60:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1650:9:7" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1661:6:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1646:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1646:22:7" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1670:7:7" - } - ], - "functionName": { - "name": "abi_decode_string", - "nodeType": "YulIdentifier", - "src": "1628:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "1628:50:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1618:6:7" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "1687:42:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1714:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1725:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1710:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1710:18:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "1697:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "1697:32:7" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "1687:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_string_memory_ptrt_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1400:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "1411:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1423:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "1431:6:7", - "type": "" - } - ], - "src": "1345:390:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1806:184:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1816:10:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1825:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "1820:1:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1885:63:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "1910:3:7" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "1915:1:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1906:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1906:11:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "1929:3:7" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "1934:1:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1925:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1925:11:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "1919:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "1919:18:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1899:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1899:39:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1899:39:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "1846:1:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1849:6:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "1843:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "1843:13:7" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "1857:19:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1859:15:7", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "1868:1:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1871:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1864:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1864:10:7" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "1859:1:7" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "1839:3:7", - "statements": [] - }, - "src": "1835:113:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "1968:3:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1973:6:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1964:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1964:16:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1982:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1957:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1957:27:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1957:27:7" - } - ] - }, - "name": "copy_memory_to_memory_with_cleanup", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nodeType": "YulTypedName", - "src": "1784:3:7", - "type": "" - }, - { - "name": "dst", - "nodeType": "YulTypedName", - "src": "1789:3:7", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "1794:6:7", - "type": "" - } - ], - "src": "1740:250:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2045:221:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "2055:26:7", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2075:5:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "2069:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "2069:12:7" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "2059:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2097:3:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2102:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2090:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2090:19:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2090:19:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2157:5:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2164:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2153:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2153:16:7" - }, - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2175:3:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2180:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2171:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2171:14:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2187:6:7" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nodeType": "YulIdentifier", - "src": "2118:34:7" - }, - "nodeType": "YulFunctionCall", - "src": "2118:76:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2118:76:7" - }, - { - "nodeType": "YulAssignment", - "src": "2203:57:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2218:3:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2231:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2239:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2227:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2227:15:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2248:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "2244:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2244:7:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "2223:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2223:29:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2214:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2214:39:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2255:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2210:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2210:50:7" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "2203:3:7" - } - ] - } - ] - }, - "name": "abi_encode_string", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2022:5:7", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "2029:3:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "2037:3:7", - "type": "" - } - ], - "src": "1995:271:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2303:95:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2320:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2327:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2332:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "2323:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2323:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2313:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2313:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2313:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2360:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2363:4:7", - "type": "", - "value": "0x21" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2353:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2353:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2353:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2384:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2387:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "2377:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2377:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2377:15:7" - } - ] - }, - "name": "panic_error_0x21", - "nodeType": "YulFunctionDefinition", - "src": "2271:127:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2455:186:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "2497:111:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2518:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2525:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2530:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "2521:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2521:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2511:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2511:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2511:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2562:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2565:4:7", - "type": "", - "value": "0x21" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2555:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2555:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2555:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2590:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2593:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "2583:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2583:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2583:15:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2478:5:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2485:1:7", - "type": "", - "value": "4" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "2475:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "2475:12:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "2468:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2468:20:7" - }, - "nodeType": "YulIf", - "src": "2465:143:7" - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2624:3:7" - }, - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2629:5:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2617:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2617:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2617:18:7" - } - ] - }, - "name": "abi_encode_enum_TaskStatus", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2439:5:7", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "2446:3:7", - "type": "" - } - ], - "src": "2403:238:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2797:685:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2814:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2825:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2807:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2807:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2807:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2848:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2859:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2844:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2844:18:7" - }, - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2870:6:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "2864:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "2864:13:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2837:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2837:41:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2837:41:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2887:42:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2917:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2925:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2913:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2913:15:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "2907:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "2907:22:7" - }, - "variables": [ - { - "name": "memberValue0", - "nodeType": "YulTypedName", - "src": "2891:12:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2949:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2960:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2945:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2945:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2965:4:7", - "type": "", - "value": "0xc0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2938:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2938:32:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2938:32:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2979:66:7", - "value": { - "arguments": [ - { - "name": "memberValue0", - "nodeType": "YulIdentifier", - "src": "3011:12:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3029:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3040:3:7", - "type": "", - "value": "224" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3025:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3025:19:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "2993:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "2993:52:7" - }, - "variables": [ - { - "name": "tail_1", - "nodeType": "YulTypedName", - "src": "2983:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3054:44:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3086:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3094:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3082:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3082:15:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "3076:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "3076:22:7" - }, - "variables": [ - { - "name": "memberValue0_1", - "nodeType": "YulTypedName", - "src": "3058:14:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3107:29:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3125:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3130:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "3121:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3121:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3134:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "3117:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3117:19:7" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "3111:2:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3156:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3167:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3152:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3152:18:7" - }, - { - "arguments": [ - { - "name": "memberValue0_1", - "nodeType": "YulIdentifier", - "src": "3176:14:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "3192:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "3172:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3172:23:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3145:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3145:51:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3145:51:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3205:44:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3237:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3245:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3233:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3233:15:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "3227:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "3227:22:7" - }, - "variables": [ - { - "name": "memberValue0_2", - "nodeType": "YulTypedName", - "src": "3209:14:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "memberValue0_2", - "nodeType": "YulIdentifier", - "src": "3285:14:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3305:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3316:3:7", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3301:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3301:19:7" - } - ], - "functionName": { - "name": "abi_encode_enum_TaskStatus", - "nodeType": "YulIdentifier", - "src": "3258:26:7" - }, - "nodeType": "YulFunctionCall", - "src": "3258:63:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3258:63:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3341:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3352:3:7", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3337:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3337:19:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3372:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3380:3:7", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3368:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3368:16:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "3362:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "3362:23:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "3387:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "3358:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3358:32:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3330:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3330:61:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3330:61:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3411:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3422:4:7", - "type": "", - "value": "0xc0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3407:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3407:20:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3439:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3447:3:7", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3435:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3435:16:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "3429:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "3429:23:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3400:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3400:53:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3400:53:7" - }, - { - "nodeType": "YulAssignment", - "src": "3462:14:7", - "value": { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "3470:6:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3462:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_struct$_TaskData_$712_memory_ptr__to_t_struct$_TaskData_$712_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "2766:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "2777:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "2788:4:7", - "type": "" - } - ], - "src": "2646:836:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3557:110:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "3603:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3612:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3615:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "3605:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3605:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3605:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3578:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3587:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "3574:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3574:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3599:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "3570:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3570:32:7" - }, - "nodeType": "YulIf", - "src": "3567:52:7" - }, - { - "nodeType": "YulAssignment", - "src": "3628:33:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3651:9:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "3638:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "3638:23:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3628:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3523:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "3534:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "3546:6:7", - "type": "" - } - ], - "src": "3487:180:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3773:102:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "3783:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3795:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3806:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3791:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3791:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3783:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3825:9:7" - }, - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3840:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3856:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3861:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "3852:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3852:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3865:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "3848:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3848:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "3836:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3836:32:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3818:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "3818:51:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3818:51:7" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3742:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "3753:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "3764:4:7", - "type": "" - } - ], - "src": "3672:203:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4003:102:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "4013:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4025:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4036:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4021:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4021:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "4013:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4055:9:7" - }, - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4070:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4086:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4091:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "4082:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4082:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4095:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "4078:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4078:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "4066:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4066:32:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4048:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4048:51:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4048:51:7" - } - ] - }, - "name": "abi_encode_tuple_t_contract$_AgentsRegistry_$506__to_t_address__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3972:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "3983:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "3994:4:7", - "type": "" - } - ], - "src": "3880:225:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4155:86:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "4219:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4228:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4231:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "4221:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4221:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4221:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "4178:5:7" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "4189:5:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4204:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4209:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "4200:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4200:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4213:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "4196:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4196:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "4185:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4185:31:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "4175:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "4175:42:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "4168:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4168:50:7" - }, - "nodeType": "YulIf", - "src": "4165:70:7" - } - ] - }, - "name": "validator_revert_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "4144:5:7", - "type": "" - } - ], - "src": "4110:131:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4333:228:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "4379:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4388:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4391:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "4381:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4381:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4381:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "4354:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4363:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "4350:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4350:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4375:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "4346:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4346:32:7" - }, - "nodeType": "YulIf", - "src": "4343:52:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "4404:36:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4430:9:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "4417:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "4417:23:7" - }, - "variables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "4408:5:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "4474:5:7" - } - ], - "functionName": { - "name": "validator_revert_address", - "nodeType": "YulIdentifier", - "src": "4449:24:7" - }, - "nodeType": "YulFunctionCall", - "src": "4449:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4449:31:7" - }, - { - "nodeType": "YulAssignment", - "src": "4489:15:7", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "4499:5:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4489:6:7" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "4513:42:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4540:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4551:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4536:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4536:18:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "4523:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "4523:32:7" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "4513:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "4291:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "4302:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "4314:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "4322:6:7", - "type": "" - } - ], - "src": "4246:315:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4667:76:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "4677:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4689:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4700:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4685:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4685:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "4677:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4719:9:7" - }, - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4730:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4712:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4712:25:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4712:25:7" - } - ] - }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "4636:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "4647:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "4658:4:7", - "type": "" - } - ], - "src": "4566:177:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4861:96:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "4871:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4883:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4894:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4879:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4879:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "4871:4:7" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4933:6:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4941:9:7" - } - ], - "functionName": { - "name": "abi_encode_enum_TaskStatus", - "nodeType": "YulIdentifier", - "src": "4906:26:7" - }, - "nodeType": "YulFunctionCall", - "src": "4906:45:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4906:45:7" - } - ] - }, - "name": "abi_encode_tuple_t_enum$_TaskStatus_$698__to_t_uint8__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "4830:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "4841:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "4852:4:7", - "type": "" - } - ], - "src": "4748:209:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5032:177:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "5078:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5087:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5090:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "5080:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5080:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5080:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "5053:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5062:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "5049:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5049:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5074:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "5045:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5045:32:7" - }, - "nodeType": "YulIf", - "src": "5042:52:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "5103:36:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5129:9:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "5116:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "5116:23:7" - }, - "variables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "5107:5:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "5173:5:7" - } - ], - "functionName": { - "name": "validator_revert_address", - "nodeType": "YulIdentifier", - "src": "5148:24:7" - }, - "nodeType": "YulFunctionCall", - "src": "5148:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5148:31:7" - }, - { - "nodeType": "YulAssignment", - "src": "5188:15:7", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "5198:5:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5188:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "4998:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "5009:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5021:6:7", - "type": "" - } - ], - "src": "4962:247:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5365:481:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "5375:12:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5385:2:7", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "5379:2:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "5396:32:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5414:9:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "5425:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5410:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5410:18:7" - }, - "variables": [ - { - "name": "tail_1", - "nodeType": "YulTypedName", - "src": "5400:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5444:9:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "5455:2:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "5437:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5437:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5437:21:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "5467:17:7", - "value": { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "5478:6:7" - }, - "variables": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "5471:3:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "5493:27:7", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5513:6:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "5507:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "5507:13:7" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "5497:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "5536:6:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "5544:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "5529:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5529:22:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5529:22:7" - }, - { - "nodeType": "YulAssignment", - "src": "5560:25:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5571:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5582:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5567:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5567:18:7" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5560:3:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "5594:29:7", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5612:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "5620:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5608:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5608:15:7" - }, - "variables": [ - { - "name": "srcPtr", - "nodeType": "YulTypedName", - "src": "5598:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "5632:10:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5641:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "5636:1:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5700:120:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5721:3:7" - }, - { - "arguments": [ - { - "name": "srcPtr", - "nodeType": "YulIdentifier", - "src": "5732:6:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "5726:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "5726:13:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "5714:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5714:26:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5714:26:7" - }, - { - "nodeType": "YulAssignment", - "src": "5753:19:7", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5764:3:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "5769:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5760:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5760:12:7" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5753:3:7" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "5785:25:7", - "value": { - "arguments": [ - { - "name": "srcPtr", - "nodeType": "YulIdentifier", - "src": "5799:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "5807:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5795:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5795:15:7" - }, - "variableNames": [ - { - "name": "srcPtr", - "nodeType": "YulIdentifier", - "src": "5785:6:7" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "5662:1:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "5665:6:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "5659:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "5659:13:7" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "5673:18:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "5675:14:7", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "5684:1:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5687:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5680:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5680:9:7" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "5675:1:7" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "5655:3:7", - "statements": [] - }, - "src": "5651:169:7" - }, - { - "nodeType": "YulAssignment", - "src": "5829:11:7", - "value": { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5837:3:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "5829:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "5334:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5345:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "5356:4:7", - "type": "" - } - ], - "src": "5214:632:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5948:293:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "5994:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6003:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6006:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "5996:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "5996:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "5996:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "5969:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5978:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "5965:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5965:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5990:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "5961:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5961:32:7" - }, - "nodeType": "YulIf", - "src": "5958:52:7" - }, - { - "nodeType": "YulAssignment", - "src": "6019:33:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6042:9:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "6029:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "6029:23:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "6019:6:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "6061:46:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6092:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6103:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6088:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6088:18:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "6075:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "6075:32:7" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "6065:6:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6150:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6159:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6162:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "6152:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6152:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6152:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "6122:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6130:18:7", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "6119:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "6119:30:7" - }, - "nodeType": "YulIf", - "src": "6116:50:7" - }, - { - "nodeType": "YulAssignment", - "src": "6175:60:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6207:9:7" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "6218:6:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6203:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6203:22:7" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "6227:7:7" - } - ], - "functionName": { - "name": "abi_decode_string", - "nodeType": "YulIdentifier", - "src": "6185:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "6185:50:7" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "6175:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "5906:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "5917:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5929:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "5937:6:7", - "type": "" - } - ], - "src": "5851:390:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6519:394:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6536:9:7" - }, - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "6547:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6529:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6529:25:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6529:25:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6574:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6585:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6570:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6570:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6590:3:7", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6563:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6563:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6563:31:7" - }, - { - "nodeType": "YulAssignment", - "src": "6603:54:7", - "value": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "6629:6:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6641:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6652:3:7", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6637:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6637:19:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "6611:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "6611:46:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6603:4:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "6666:29:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6684:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6689:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "6680:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6680:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6693:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "6676:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6676:19:7" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "6670:2:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6715:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6726:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6711:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6711:18:7" - }, - { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "6735:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "6743:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "6731:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6731:15:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6704:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6704:43:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6704:43:7" - }, - { - "expression": { - "arguments": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "6783:6:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6795:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6806:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6791:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6791:18:7" - } - ], - "functionName": { - "name": "abi_encode_enum_TaskStatus", - "nodeType": "YulIdentifier", - "src": "6756:26:7" - }, - "nodeType": "YulFunctionCall", - "src": "6756:54:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6756:54:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6830:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6841:3:7", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6826:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6826:19:7" - }, - { - "arguments": [ - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "6851:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "6859:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "6847:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6847:15:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6819:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6819:44:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6819:44:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6883:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6894:3:7", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6879:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6879:19:7" - }, - { - "name": "value5", - "nodeType": "YulIdentifier", - "src": "6900:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6872:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6872:35:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6872:35:7" - } - ] - }, - "name": "abi_encode_tuple_t_uint256_t_string_memory_ptr_t_address_t_enum$_TaskStatus_$698_t_address_t_uint256__to_t_uint256_t_string_memory_ptr_t_address_t_uint8_t_address_t_uint256__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "6448:9:7", - "type": "" - }, - { - "name": "value5", - "nodeType": "YulTypedName", - "src": "6459:6:7", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "6467:6:7", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "6475:6:7", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "6483:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "6491:6:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "6499:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "6510:4:7", - "type": "" - } - ], - "src": "6246:667:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7025:1070:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "7035:12:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7045:2:7", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "7039:2:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7092:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7101:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7104:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7094:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7094:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7094:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "7067:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7076:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "7063:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7063:23:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "7088:2:7" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "7059:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7059:32:7" - }, - "nodeType": "YulIf", - "src": "7056:52:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7117:30:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7137:9:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "7131:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "7131:16:7" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "7121:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7156:28:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7166:18:7", - "type": "", - "value": "0xffffffffffffffff" - }, - "variables": [ - { - "name": "_2", - "nodeType": "YulTypedName", - "src": "7160:2:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7211:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7220:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7223:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7213:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7213:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7213:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "7199:6:7" - }, - { - "name": "_2", - "nodeType": "YulIdentifier", - "src": "7207:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "7196:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "7196:14:7" - }, - "nodeType": "YulIf", - "src": "7193:34:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7236:32:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7250:9:7" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "7261:6:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7246:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7246:22:7" - }, - "variables": [ - { - "name": "_3", - "nodeType": "YulTypedName", - "src": "7240:2:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7308:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7317:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7320:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7310:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7310:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7310:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "7288:7:7" - }, - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "7297:2:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "7284:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7284:16:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7302:4:7", - "type": "", - "value": "0x80" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "7280:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7280:27:7" - }, - "nodeType": "YulIf", - "src": "7277:47:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7333:35:7", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_memory_1882", - "nodeType": "YulIdentifier", - "src": "7346:20:7" - }, - "nodeType": "YulFunctionCall", - "src": "7346:22:7" - }, - "variables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "7337:5:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7377:24:7", - "value": { - "arguments": [ - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "7398:2:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "7392:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "7392:9:7" - }, - "variables": [ - { - "name": "value_1", - "nodeType": "YulTypedName", - "src": "7381:7:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value_1", - "nodeType": "YulIdentifier", - "src": "7435:7:7" - } - ], - "functionName": { - "name": "validator_revert_address", - "nodeType": "YulIdentifier", - "src": "7410:24:7" - }, - "nodeType": "YulFunctionCall", - "src": "7410:33:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7410:33:7" - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7459:5:7" - }, - { - "name": "value_1", - "nodeType": "YulIdentifier", - "src": "7466:7:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "7452:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7452:22:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7452:22:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7483:34:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "7509:2:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "7513:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7505:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7505:11:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "7499:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "7499:18:7" - }, - "variables": [ - { - "name": "offset_1", - "nodeType": "YulTypedName", - "src": "7487:8:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7546:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7555:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7558:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7548:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7548:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7548:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset_1", - "nodeType": "YulIdentifier", - "src": "7532:8:7" - }, - { - "name": "_2", - "nodeType": "YulIdentifier", - "src": "7542:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "7529:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "7529:16:7" - }, - "nodeType": "YulIf", - "src": "7526:36:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7571:27:7", - "value": { - "arguments": [ - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "7585:2:7" - }, - { - "name": "offset_1", - "nodeType": "YulIdentifier", - "src": "7589:8:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7581:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7581:17:7" - }, - "variables": [ - { - "name": "_4", - "nodeType": "YulTypedName", - "src": "7575:2:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7646:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7655:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7658:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7648:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7648:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7648:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "_4", - "nodeType": "YulIdentifier", - "src": "7625:2:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7629:4:7", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7621:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7621:13:7" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "7636:7:7" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "7617:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7617:27:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "7610:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7610:35:7" - }, - "nodeType": "YulIf", - "src": "7607:55:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7671:19:7", - "value": { - "arguments": [ - { - "name": "_4", - "nodeType": "YulIdentifier", - "src": "7687:2:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "7681:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "7681:9:7" - }, - "variables": [ - { - "name": "_5", - "nodeType": "YulTypedName", - "src": "7675:2:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "7699:62:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "_5", - "nodeType": "YulIdentifier", - "src": "7757:2:7" - } - ], - "functionName": { - "name": "array_allocation_size_string", - "nodeType": "YulIdentifier", - "src": "7728:28:7" - }, - "nodeType": "YulFunctionCall", - "src": "7728:32:7" - } - ], - "functionName": { - "name": "allocate_memory", - "nodeType": "YulIdentifier", - "src": "7712:15:7" - }, - "nodeType": "YulFunctionCall", - "src": "7712:49:7" - }, - "variables": [ - { - "name": "array", - "nodeType": "YulTypedName", - "src": "7703:5:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "7777:5:7" - }, - { - "name": "_5", - "nodeType": "YulIdentifier", - "src": "7784:2:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "7770:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7770:17:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7770:17:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7833:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7842:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7845:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7835:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7835:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7835:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "_4", - "nodeType": "YulIdentifier", - "src": "7810:2:7" - }, - { - "name": "_5", - "nodeType": "YulIdentifier", - "src": "7814:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7806:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7806:11:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "7819:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7802:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7802:20:7" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "7824:7:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "7799:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "7799:33:7" - }, - "nodeType": "YulIf", - "src": "7796:53:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "_4", - "nodeType": "YulIdentifier", - "src": "7897:2:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "7901:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7893:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7893:11:7" - }, - { - "arguments": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "7910:5:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "7917:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7906:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7906:14:7" - }, - { - "name": "_5", - "nodeType": "YulIdentifier", - "src": "7922:2:7" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nodeType": "YulIdentifier", - "src": "7858:34:7" - }, - "nodeType": "YulFunctionCall", - "src": "7858:67:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7858:67:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7945:5:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "7952:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7941:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7941:14:7" - }, - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "7957:5:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "7934:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7934:29:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7934:29:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7983:5:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7990:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7979:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "7979:14:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "8005:2:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8009:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8001:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8001:11:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "7995:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "7995:18:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "7972:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "7972:42:7" - }, - "nodeType": "YulExpressionStatement", - "src": "7972:42:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "8034:5:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8041:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8030:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8030:14:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "8056:2:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8060:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8052:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8052:11:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "8046:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "8046:18:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8023:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8023:42:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8023:42:7" - }, - { - "nodeType": "YulAssignment", - "src": "8074:15:7", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "8084:5:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "8074:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_struct$_Proposal_$1014_memory_ptr_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "6991:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "7002:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "7014:6:7", - "type": "" - } - ], - "src": "6918:1177:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8274:163:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8291:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8302:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8284:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8284:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8284:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8325:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8336:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8321:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8321:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8341:2:7", - "type": "", - "value": "13" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8314:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8314:30:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8314:30:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8364:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8375:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8360:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8360:18:7" - }, - { - "hexValue": "496e76616c6964207072696365", - "kind": "string", - "nodeType": "YulLiteral", - "src": "8380:15:7", - "type": "", - "value": "Invalid price" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8353:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8353:43:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8353:43:7" - }, - { - "nodeType": "YulAssignment", - "src": "8405:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8417:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8428:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8413:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8413:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "8405:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_eaa01effe6abd0543e9529d3961b0f5d26980f0661c156a79b89c39a093463f7__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "8251:9:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "8265:4:7", - "type": "" - } - ], - "src": "8100:337:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8489:185:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "8528:111:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8549:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8556:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8561:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "8552:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8552:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8542:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8542:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8542:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8593:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8596:4:7", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8586:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8586:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8586:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8621:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8624:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "8614:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8614:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8614:15:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "8505:5:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8516:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "8512:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8512:6:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "8502:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "8502:17:7" - }, - "nodeType": "YulIf", - "src": "8499:140:7" - }, - { - "nodeType": "YulAssignment", - "src": "8648:20:7", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "8659:5:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8666:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8655:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8655:13:7" - }, - "variableNames": [ - { - "name": "ret", - "nodeType": "YulIdentifier", - "src": "8648:3:7" - } - ] - } - ] - }, - "name": "increment_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "8471:5:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nodeType": "YulTypedName", - "src": "8481:3:7", - "type": "" - } - ], - "src": "8442:232:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8734:325:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "8744:22:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8758:1:7", - "type": "", - "value": "1" - }, - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "8761:4:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "8754:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8754:12:7" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "8744:6:7" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "8775:38:7", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "8805:4:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8811:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "8801:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8801:12:7" - }, - "variables": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulTypedName", - "src": "8779:18:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8852:31:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "8854:27:7", - "value": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "8868:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8876:4:7", - "type": "", - "value": "0x7f" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "8864:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8864:17:7" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "8854:6:7" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulIdentifier", - "src": "8832:18:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "8825:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8825:26:7" - }, - "nodeType": "YulIf", - "src": "8822:61:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8942:111:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8963:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8970:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8975:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "8966:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "8966:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8956:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "8956:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "8956:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9007:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9010:4:7", - "type": "", - "value": "0x22" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "9000:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "9000:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "9000:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9035:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9038:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "9028:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "9028:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "9028:15:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulIdentifier", - "src": "8898:18:7" - }, - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "8921:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8929:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "8918:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "8918:14:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "8895:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "8895:38:7" - }, - "nodeType": "YulIf", - "src": "8892:161:7" - } - ] - }, - "name": "extract_byte_array_length", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "8714:4:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "8723:6:7", - "type": "" - } - ], - "src": "8679:380:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9120:65:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9137:1:7", - "type": "", - "value": "0" - }, - { - "name": "ptr", - "nodeType": "YulIdentifier", - "src": "9140:3:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "9130:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "9130:14:7" - }, - "nodeType": "YulExpressionStatement", - "src": "9130:14:7" - }, - { - "nodeType": "YulAssignment", - "src": "9153:26:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9171:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9174:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "keccak256", - "nodeType": "YulIdentifier", - "src": "9161:9:7" - }, - "nodeType": "YulFunctionCall", - "src": "9161:18:7" - }, - "variableNames": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "9153:4:7" - } - ] - } - ] - }, - "name": "array_dataslot_string_storage", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "ptr", - "nodeType": "YulTypedName", - "src": "9103:3:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "9111:4:7", - "type": "" - } - ], - "src": "9064:121:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9271:464:7", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "9304:425:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "9318:11:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9328:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "9322:2:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "9349:2:7" - }, - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "9353:5:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "9342:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "9342:17:7" - }, - "nodeType": "YulExpressionStatement", - "src": "9342:17:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "9372:31:7", - "value": { - "arguments": [ - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "9394:2:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9398:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "keccak256", - "nodeType": "YulIdentifier", - "src": "9384:9:7" - }, - "nodeType": "YulFunctionCall", - "src": "9384:19:7" - }, - "variables": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "9376:4:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "9416:57:7", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "9439:4:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9449:1:7", - "type": "", - "value": "5" - }, - { - "arguments": [ - { - "name": "startIndex", - "nodeType": "YulIdentifier", - "src": "9456:10:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9468:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9452:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9452:19:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "9445:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9445:27:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9435:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9435:38:7" - }, - "variables": [ - { - "name": "deleteStart", - "nodeType": "YulTypedName", - "src": "9420:11:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9510:23:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "9512:19:7", - "value": { - "name": "data", - "nodeType": "YulIdentifier", - "src": "9527:4:7" - }, - "variableNames": [ - { - "name": "deleteStart", - "nodeType": "YulIdentifier", - "src": "9512:11:7" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "startIndex", - "nodeType": "YulIdentifier", - "src": "9492:10:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9504:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "9489:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "9489:20:7" - }, - "nodeType": "YulIf", - "src": "9486:47:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "9546:41:7", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "9560:4:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9570:1:7", - "type": "", - "value": "5" - }, - { - "arguments": [ - { - "name": "len", - "nodeType": "YulIdentifier", - "src": "9577:3:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9582:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9573:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9573:12:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "9566:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9566:20:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9556:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9556:31:7" - }, - "variables": [ - { - "name": "_2", - "nodeType": "YulTypedName", - "src": "9550:2:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "9600:24:7", - "value": { - "name": "deleteStart", - "nodeType": "YulIdentifier", - "src": "9613:11:7" - }, - "variables": [ - { - "name": "start", - "nodeType": "YulTypedName", - "src": "9604:5:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9698:21:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "9707:5:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "9714:2:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "9700:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "9700:17:7" - }, - "nodeType": "YulExpressionStatement", - "src": "9700:17:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "9648:5:7" - }, - { - "name": "_2", - "nodeType": "YulIdentifier", - "src": "9655:2:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "9645:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "9645:13:7" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "9659:26:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "9661:22:7", - "value": { - "arguments": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "9674:5:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9681:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9670:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9670:13:7" - }, - "variableNames": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "9661:5:7" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "9641:3:7", - "statements": [] - }, - "src": "9637:82:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "len", - "nodeType": "YulIdentifier", - "src": "9287:3:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9292:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "9284:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "9284:11:7" - }, - "nodeType": "YulIf", - "src": "9281:448:7" - } - ] - }, - "name": "clean_up_bytearray_end_slots_string_storage", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "array", - "nodeType": "YulTypedName", - "src": "9243:5:7", - "type": "" - }, - { - "name": "len", - "nodeType": "YulTypedName", - "src": "9250:3:7", - "type": "" - }, - { - "name": "startIndex", - "nodeType": "YulTypedName", - "src": "9255:10:7", - "type": "" - } - ], - "src": "9190:545:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9825:81:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "9835:65:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "9850:4:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9868:1:7", - "type": "", - "value": "3" - }, - { - "name": "len", - "nodeType": "YulIdentifier", - "src": "9871:3:7" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "9864:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9864:11:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9881:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "9877:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9877:6:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "9860:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9860:24:7" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "9856:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9856:29:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "9846:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9846:40:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9892:1:7", - "type": "", - "value": "1" - }, - { - "name": "len", - "nodeType": "YulIdentifier", - "src": "9895:3:7" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "9888:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "9888:11:7" - } - ], - "functionName": { - "name": "or", - "nodeType": "YulIdentifier", - "src": "9843:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "9843:57:7" - }, - "variableNames": [ - { - "name": "used", - "nodeType": "YulIdentifier", - "src": "9835:4:7" - } - ] - } - ] - }, - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "9802:4:7", - "type": "" - }, - { - "name": "len", - "nodeType": "YulTypedName", - "src": "9808:3:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "used", - "nodeType": "YulTypedName", - "src": "9816:4:7", - "type": "" - } - ], - "src": "9740:166:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10007:1256:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "10017:24:7", - "value": { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "10037:3:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "10031:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "10031:10:7" - }, - "variables": [ - { - "name": "newLen", - "nodeType": "YulTypedName", - "src": "10021:6:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10084:22:7", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "10086:16:7" - }, - "nodeType": "YulFunctionCall", - "src": "10086:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10086:18:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "10056:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10064:18:7", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "10053:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "10053:30:7" - }, - "nodeType": "YulIf", - "src": "10050:56:7" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "10159:4:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "10197:4:7" - } - ], - "functionName": { - "name": "sload", - "nodeType": "YulIdentifier", - "src": "10191:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "10191:11:7" - } - ], - "functionName": { - "name": "extract_byte_array_length", - "nodeType": "YulIdentifier", - "src": "10165:25:7" - }, - "nodeType": "YulFunctionCall", - "src": "10165:38:7" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "10205:6:7" - } - ], - "functionName": { - "name": "clean_up_bytearray_end_slots_string_storage", - "nodeType": "YulIdentifier", - "src": "10115:43:7" - }, - "nodeType": "YulFunctionCall", - "src": "10115:97:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10115:97:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "10221:18:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10238:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "srcOffset", - "nodeType": "YulTypedName", - "src": "10225:9:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "10248:23:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10267:4:7", - "type": "", - "value": "0x20" - }, - "variables": [ - { - "name": "srcOffset_1", - "nodeType": "YulTypedName", - "src": "10252:11:7", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "10280:24:7", - "value": { - "name": "srcOffset_1", - "nodeType": "YulIdentifier", - "src": "10293:11:7" - }, - "variableNames": [ - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "10280:9:7" - } - ] - }, - { - "cases": [ - { - "body": { - "nodeType": "YulBlock", - "src": "10350:656:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "10364:35:7", - "value": { - "arguments": [ - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "10383:6:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10395:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "10391:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10391:7:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "10379:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10379:20:7" - }, - "variables": [ - { - "name": "loopEnd", - "nodeType": "YulTypedName", - "src": "10368:7:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "10412:49:7", - "value": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "10456:4:7" - } - ], - "functionName": { - "name": "array_dataslot_string_storage", - "nodeType": "YulIdentifier", - "src": "10426:29:7" - }, - "nodeType": "YulFunctionCall", - "src": "10426:35:7" - }, - "variables": [ - { - "name": "dstPtr", - "nodeType": "YulTypedName", - "src": "10416:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "10474:10:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10483:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "10478:1:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10561:172:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "dstPtr", - "nodeType": "YulIdentifier", - "src": "10586:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "10604:3:7" - }, - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "10609:9:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10600:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10600:19:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "10594:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "10594:26:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "10579:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "10579:42:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10579:42:7" - }, - { - "nodeType": "YulAssignment", - "src": "10638:24:7", - "value": { - "arguments": [ - { - "name": "dstPtr", - "nodeType": "YulIdentifier", - "src": "10652:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10660:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10648:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10648:14:7" - }, - "variableNames": [ - { - "name": "dstPtr", - "nodeType": "YulIdentifier", - "src": "10638:6:7" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "10679:40:7", - "value": { - "arguments": [ - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "10696:9:7" - }, - { - "name": "srcOffset_1", - "nodeType": "YulIdentifier", - "src": "10707:11:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10692:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10692:27:7" - }, - "variableNames": [ - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "10679:9:7" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "10508:1:7" - }, - { - "name": "loopEnd", - "nodeType": "YulIdentifier", - "src": "10511:7:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "10505:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "10505:14:7" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "10520:28:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "10522:24:7", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "10531:1:7" - }, - { - "name": "srcOffset_1", - "nodeType": "YulIdentifier", - "src": "10534:11:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10527:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10527:19:7" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "10522:1:7" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "10501:3:7", - "statements": [] - }, - "src": "10497:236:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10781:166:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "10799:43:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "10826:3:7" - }, - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "10831:9:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10822:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10822:19:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "10816:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "10816:26:7" - }, - "variables": [ - { - "name": "lastValue", - "nodeType": "YulTypedName", - "src": "10803:9:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "dstPtr", - "nodeType": "YulIdentifier", - "src": "10866:6:7" - }, - { - "arguments": [ - { - "name": "lastValue", - "nodeType": "YulIdentifier", - "src": "10878:9:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10905:1:7", - "type": "", - "value": "3" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "10908:6:7" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "10901:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10901:14:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10917:3:7", - "type": "", - "value": "248" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "10897:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10897:24:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10927:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "10923:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10923:6:7" - } - ], - "functionName": { - "name": "shr", - "nodeType": "YulIdentifier", - "src": "10893:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10893:37:7" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "10889:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10889:42:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "10874:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10874:58:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "10859:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "10859:74:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10859:74:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "loopEnd", - "nodeType": "YulIdentifier", - "src": "10752:7:7" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "10761:6:7" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "10749:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "10749:19:7" - }, - "nodeType": "YulIf", - "src": "10746:201:7" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "10967:4:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10981:1:7", - "type": "", - "value": "1" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "10984:6:7" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "10977:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10977:14:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10993:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10973:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10973:22:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "10960:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "10960:36:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10960:36:7" - } - ] - }, - "nodeType": "YulCase", - "src": "10343:663:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10348:1:7", - "type": "", - "value": "1" - } - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11023:234:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "11037:14:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11050:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "11041:5:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11086:67:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "11104:35:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "11123:3:7" - }, - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "11128:9:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11119:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11119:19:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "11113:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "11113:26:7" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "11104:5:7" - } - ] - } - ] - }, - "condition": { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "11067:6:7" - }, - "nodeType": "YulIf", - "src": "11064:89:7" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "11173:4:7" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "11232:5:7" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "11239:6:7" - } - ], - "functionName": { - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nodeType": "YulIdentifier", - "src": "11179:52:7" - }, - "nodeType": "YulFunctionCall", - "src": "11179:67:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "11166:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11166:81:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11166:81:7" - } - ] - }, - "nodeType": "YulCase", - "src": "11015:242:7", - "value": "default" - } - ], - "expression": { - "arguments": [ - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "10323:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10331:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "10320:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "10320:14:7" - }, - "nodeType": "YulSwitch", - "src": "10313:944:7" - } - ] - }, - "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "slot", - "nodeType": "YulTypedName", - "src": "9992:4:7", - "type": "" - }, - { - "name": "src", - "nodeType": "YulTypedName", - "src": "9998:3:7", - "type": "" - } - ], - "src": "9911:1352:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11445:185:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11462:9:7" - }, - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "11473:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11455:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11455:25:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11455:25:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11500:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11511:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11496:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11496:18:7" - }, - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "11516:6:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11489:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11489:34:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11489:34:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11543:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11554:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11539:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11539:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11559:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11532:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11532:30:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11532:30:7" - }, - { - "nodeType": "YulAssignment", - "src": "11571:53:7", - "value": { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "11597:6:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11609:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11620:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11605:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11605:18:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "11579:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "11579:45:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "11571:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_uint256_t_uint256_t_string_memory_ptr__to_t_uint256_t_uint256_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "11398:9:7", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "11409:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "11417:6:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "11425:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "11436:4:7", - "type": "" - } - ], - "src": "11268:362:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11809:164:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11826:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11837:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11819:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11819:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11819:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11860:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11871:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11856:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11856:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11876:2:7", - "type": "", - "value": "14" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11849:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11849:30:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11849:30:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11899:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11910:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11895:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11895:18:7" - }, - { - "hexValue": "4e6f7420617574686f72697a6564", - "kind": "string", - "nodeType": "YulLiteral", - "src": "11915:16:7", - "type": "", - "value": "Not authorized" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11888:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11888:44:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11888:44:7" - }, - { - "nodeType": "YulAssignment", - "src": "11941:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11953:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11964:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11949:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11949:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "11941:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "11786:9:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "11800:4:7", - "type": "" - } - ], - "src": "11635:338:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "12152:169:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12169:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12180:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "12162:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "12162:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "12162:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12203:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12214:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12199:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "12199:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12219:2:7", - "type": "", - "value": "19" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "12192:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "12192:30:7" - }, - "nodeType": "YulExpressionStatement", - "src": "12192:30:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12242:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12253:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12238:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "12238:18:7" - }, - { - "hexValue": "496e76616c6964207461736b20737461747573", - "kind": "string", - "nodeType": "YulLiteral", - "src": "12258:21:7", - "type": "", - "value": "Invalid task status" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "12231:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "12231:49:7" - }, - "nodeType": "YulExpressionStatement", - "src": "12231:49:7" - }, - { - "nodeType": "YulAssignment", - "src": "12289:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12301:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12312:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12297:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "12297:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "12289:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_35c761622bcc8ab75f9adfaf21a4872a39cd06f2745d5488272d29f1f753f270__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "12129:9:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "12143:4:7", - "type": "" - } - ], - "src": "11978:343:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "12447:99:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12464:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12475:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "12457:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "12457:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "12457:21:7" - }, - { - "nodeType": "YulAssignment", - "src": "12487:53:7", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "12513:6:7" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12525:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12536:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12521:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "12521:18:7" - } - ], - "functionName": { - "name": "abi_encode_string", - "nodeType": "YulIdentifier", - "src": "12495:17:7" - }, - "nodeType": "YulFunctionCall", - "src": "12495:45:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "12487:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "12416:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "12427:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "12438:4:7", - "type": "" - } - ], - "src": "12326:220:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "12688:150:7", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "12698:27:7", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "12718:6:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "12712:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "12712:13:7" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "12702:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "12773:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12781:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12769:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "12769:17:7" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "12788:3:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "12793:6:7" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nodeType": "YulIdentifier", - "src": "12734:34:7" - }, - "nodeType": "YulFunctionCall", - "src": "12734:66:7" - }, - "nodeType": "YulExpressionStatement", - "src": "12734:66:7" - }, - { - "nodeType": "YulAssignment", - "src": "12809:23:7", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "12820:3:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "12825:6:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12816:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "12816:16:7" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "12809:3:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "12664:3:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "12669:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "12680:3:7", - "type": "" - } - ], - "src": "12551:287:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "13017:242:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13034:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13045:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "13027:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "13027:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "13027:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13068:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13079:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13064:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "13064:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13084:2:7", - "type": "", - "value": "52" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "13057:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "13057:30:7" - }, - "nodeType": "YulExpressionStatement", - "src": "13057:30:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13107:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13118:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13103:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "13103:18:7" - }, - { - "hexValue": "5472616e7366657248656c7065723a3a736166655472616e736665724554483a", - "kind": "string", - "nodeType": "YulLiteral", - "src": "13123:34:7", - "type": "", - "value": "TransferHelper::safeTransferETH:" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "13096:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "13096:62:7" - }, - "nodeType": "YulExpressionStatement", - "src": "13096:62:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13178:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13189:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13174:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "13174:18:7" - }, - { - "hexValue": "20455448207472616e73666572206661696c6564", - "kind": "string", - "nodeType": "YulLiteral", - "src": "13194:22:7", - "type": "", - "value": " ETH transfer failed" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "13167:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "13167:50:7" - }, - "nodeType": "YulExpressionStatement", - "src": "13167:50:7" - }, - { - "nodeType": "YulAssignment", - "src": "13226:27:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13238:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13249:3:7", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13234:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "13234:19:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "13226:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_43d7bec223ecf9eb06ea147e7d564bc71c2448662d62a4ea86ce71fc4518b350__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "12994:9:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "13008:4:7", - "type": "" - } - ], - "src": "12843:416:7" - } - ] - }, - "contents": "{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory_1882() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 0x80)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_string(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function abi_decode_string(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let array_1 := allocate_memory(array_allocation_size_string(_1))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n mstore(add(add(array_1, _1), 0x20), 0)\n array := array_1\n }\n function abi_decode_tuple_t_string_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n value1 := calldataload(add(headStart, 32))\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function abi_encode_enum_TaskStatus(value, pos)\n {\n if iszero(lt(value, 4))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(pos, value)\n }\n function abi_encode_tuple_t_struct$_TaskData_$712_memory_ptr__to_t_struct$_TaskData_$712_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), mload(value0))\n let memberValue0 := mload(add(value0, 32))\n mstore(add(headStart, 64), 0xc0)\n let tail_1 := abi_encode_string(memberValue0, add(headStart, 224))\n let memberValue0_1 := mload(add(value0, 64))\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 96), and(memberValue0_1, _1))\n let memberValue0_2 := mload(add(value0, 96))\n abi_encode_enum_TaskStatus(memberValue0_2, add(headStart, 128))\n mstore(add(headStart, 160), and(mload(add(value0, 128)), _1))\n mstore(add(headStart, 0xc0), mload(add(value0, 160)))\n tail := tail_1\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_AgentsRegistry_$506__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_enum$_TaskStatus_$698__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n abi_encode_enum_TaskStatus(value0, headStart)\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 64)\n let srcPtr := add(value0, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function abi_decode_tuple_t_uint256t_string_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_string(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_uint256_t_string_memory_ptr_t_address_t_enum$_TaskStatus_$698_t_address_t_uint256__to_t_uint256_t_string_memory_ptr_t_address_t_uint8_t_address_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), 192)\n tail := abi_encode_string(value1, add(headStart, 192))\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n abi_encode_enum_TaskStatus(value3, add(headStart, 96))\n mstore(add(headStart, 128), and(value4, _1))\n mstore(add(headStart, 160), value5)\n }\n function abi_decode_tuple_t_struct$_Proposal_$1014_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 32\n if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }\n let offset := mload(headStart)\n let _2 := 0xffffffffffffffff\n if gt(offset, _2) { revert(0, 0) }\n let _3 := add(headStart, offset)\n if slt(sub(dataEnd, _3), 0x80) { revert(0, 0) }\n let value := allocate_memory_1882()\n let value_1 := mload(_3)\n validator_revert_address(value_1)\n mstore(value, value_1)\n let offset_1 := mload(add(_3, _1))\n if gt(offset_1, _2) { revert(0, 0) }\n let _4 := add(_3, offset_1)\n if iszero(slt(add(_4, 0x1f), dataEnd)) { revert(0, 0) }\n let _5 := mload(_4)\n let array := allocate_memory(array_allocation_size_string(_5))\n mstore(array, _5)\n if gt(add(add(_4, _5), _1), dataEnd) { revert(0, 0) }\n copy_memory_to_memory_with_cleanup(add(_4, _1), add(array, _1), _5)\n mstore(add(value, _1), array)\n mstore(add(value, 64), mload(add(_3, 64)))\n mstore(add(value, 96), mload(add(_3, 96)))\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_eaa01effe6abd0543e9529d3961b0f5d26980f0661c156a79b89c39a093463f7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 13)\n mstore(add(headStart, 64), \"Invalid price\")\n tail := add(headStart, 96)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n ret := add(value, 1)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_string_memory_ptr__to_t_uint256_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_string(value2, add(headStart, 96))\n }\n function abi_encode_tuple_t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 14)\n mstore(add(headStart, 64), \"Not authorized\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_35c761622bcc8ab75f9adfaf21a4872a39cd06f2745d5488272d29f1f753f270__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 19)\n mstore(add(headStart, 64), \"Invalid task status\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_stringliteral_43d7bec223ecf9eb06ea147e7d564bc71c2448662d62a4ea86ce71fc4518b350__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 52)\n mstore(add(headStart, 64), \"TransferHelper::safeTransferETH:\")\n mstore(add(headStart, 96), \" ETH transfer failed\")\n tail := add(headStart, 128)\n }\n}", - "id": 7, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": {}, - "linkReferences": {}, - "object": "6080604052600436106100a75760003560e01c8063639241ab11610064578063639241ab146101db578063715018a61461020857806374aaa7601461021f5780638d9776721461023f5780638da5cb5b14610271578063f2fde38b1461028f57600080fd5b806304fe2b34146100ac57806307b31818146100d55780630d1cfcae146101265780631d65e77e146101465780632a2b3a9d146101665780635c622a0e14610194575b600080fd5b6100bf6100ba366004610cf4565b6102af565b6040516100cc9190610dc1565b60405180910390f35b3480156100e157600080fd5b5061010e6100f0366004610e35565b6000908152600160205260409020600301546001600160a01b031690565b6040516001600160a01b0390911681526020016100cc565b34801561013257600080fd5b5060045461010e906001600160a01b031681565b34801561015257600080fd5b506100bf610161366004610e35565b61058f565b34801561017257600080fd5b50610186610181366004610e63565b6106b6565b6040519081526020016100cc565b3480156101a057600080fd5b506101ce6101af366004610e35565b600090815260016020526040902060020154600160a01b900460ff1690565b6040516100cc9190610e8f565b3480156101e757600080fd5b506101fb6101f6366004610e9d565b6106e7565b6040516100cc9190610ec1565b34801561021457600080fd5b5061021d610753565b005b34801561022b57600080fd5b5061021d61023a366004610f05565b610767565b34801561024b57600080fd5b5061025f61025a366004610e35565b61094e565b6040516100cc96959493929190610f4c565b34801561027d57600080fd5b506000546001600160a01b031661010e565b34801561029b57600080fd5b5061021d6102aa366004610e9d565b610a1c565b6102b7610bb6565b600480546040516318feeb1560e31b81529182018490526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610303573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261032b9190810190610f9a565b9050348160400151146103755760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420707269636560981b60448201526064015b60405180910390fd5b600380549060006103858361106b565b9091555050600354600081815260016020819052604090912091825581016103ad868261111a565b5060028181018054336001600160a01b031991821681178355600485018890558551600380870180549094166001600160a01b0390921691909117909255600090815260209384526040812091548254600181810185559383529490912090930192909255805460ff60a01b1916600160a01b830217905550815160035460608401516040516001600160a01b039093169233927f5c005bbbb9da508c37935b1a9f270836e0be1fd11d4d47119f925a3ff33820e99261046e928b906111da565b60405180910390a3806040518060c00160405290816000820154815260200160018201805461049c90611092565b80601f01602080910402602001604051908101604052809291908181526020018280546104c890611092565b80156105155780601f106104ea57610100808354040283529160200191610515565b820191906000526020600020905b8154815290600101906020018083116104f857829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff16600381111561055257610552610d89565b600381111561056357610563610d89565b815260038201546001600160a01b03166020820152600490910154604090910152925050505b92915050565b610597610bb6565b600082815260016020818152604092839020835160c08101909452805484529182018054918401916105c890611092565b80601f01602080910402602001604051908101604052809291908181526020018280546105f490611092565b80156106415780601f1061061657610100808354040283529160200191610641565b820191906000526020600020905b81548152906001019060200180831161062457829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff16600381111561067e5761067e610d89565b600381111561068f5761068f610d89565b815260038201546001600160a01b0316602082015260049091015460409091015292915050565b600260205281600052604060002081815481106106d257600080fd5b90600052602060002001600091509150505481565b6001600160a01b03811660009081526002602090815260409182902080548351818402810184019094528084526060939283018282801561074757602002820191906000526020600020905b815481526020019060010190808311610733575b50505050509050919050565b61075b610a5a565b6107656000610a87565b565b600082815260016020526040902060038101546001600160a01b031633146107c25760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b604482015260640161036c565b60016002820154600160a01b900460ff1660038111156107e4576107e4610d89565b146108275760405162461bcd60e51b8152602060048201526013602482015272496e76616c6964207461736b2073746174757360681b604482015260640161036c565b600281018054600160a11b60ff60a01b1990911617905560048054818301546040516318feeb1560e31b8152928301526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa15801561088c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108b49190810190610f9a565b90506108c881600001518260400151610ad7565b600282015460405185917fd76ef80cfb1ce0c70d0cbc0ab1b9f2f298a78f9fca5c841be963ae9a5d721bb49161090891600160a01b900460ff1690610e8f565b60405180910390a2837f7e6ffc29fe63759579d96a0457a8f2e08339aca345bd469f59dc2e61f82a5aeb846040516109409190611202565b60405180910390a250505050565b60016020819052600091825260409091208054918101805461096f90611092565b80601f016020809104026020016040519081016040528092919081815260200182805461099b90611092565b80156109e85780601f106109bd576101008083540402835291602001916109e8565b820191906000526020600020905b8154815290600101906020018083116109cb57829003601f168201915b505050506002830154600384015460049094015492936001600160a01b0380831694600160a01b90930460ff169350169086565b610a24610a5a565b6001600160a01b038116610a4e57604051631e4fbdf760e01b81526000600482015260240161036c565b610a5781610a87565b50565b6000546001600160a01b031633146107655760405163118cdaa760e01b815233600482015260240161036c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516000808252602082019092526001600160a01b038416908390604051610b019190611215565b60006040518083038185875af1925050503d8060008114610b3e576040519150601f19603f3d011682016040523d82523d6000602084013e610b43565b606091505b5050905080610bb15760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b606482015260840161036c565b505050565b6040518060c00160405280600081526020016060815260200160006001600160a01b0316815260200160006003811115610bf257610bf2610d89565b815260006020820181905260409091015290565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715610c3f57610c3f610c06565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610c6e57610c6e610c06565b604052919050565b600067ffffffffffffffff821115610c9057610c90610c06565b50601f01601f191660200190565b600082601f830112610caf57600080fd5b8135610cc2610cbd82610c76565b610c45565b818152846020838601011115610cd757600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215610d0757600080fd5b823567ffffffffffffffff811115610d1e57600080fd5b610d2a85828601610c9e565b95602094909401359450505050565b60005b83811015610d54578181015183820152602001610d3c565b50506000910152565b60008151808452610d75816020860160208601610d39565b601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b60048110610dbd57634e487b7160e01b600052602160045260246000fd5b9052565b60208152815160208201526000602083015160c06040840152610de760e0840182610d5d565b60408501516001600160a01b03908116606086810191909152860151919250610e136080860183610d9f565b8060808701511660a0860152505060a084015160c08401528091505092915050565b600060208284031215610e4757600080fd5b5035919050565b6001600160a01b0381168114610a5757600080fd5b60008060408385031215610e7657600080fd5b8235610e8181610e4e565b946020939093013593505050565b602081016105898284610d9f565b600060208284031215610eaf57600080fd5b8135610eba81610e4e565b9392505050565b6020808252825182820181905260009190848201906040850190845b81811015610ef957835183529284019291840191600101610edd565b50909695505050505050565b60008060408385031215610f1857600080fd5b82359150602083013567ffffffffffffffff811115610f3657600080fd5b610f4285828601610c9e565b9150509250929050565b86815260c060208201526000610f6560c0830188610d5d565b6001600160a01b038781166040850152909150610f856060840187610d9f565b93909316608082015260a00152949350505050565b60006020808385031215610fad57600080fd5b825167ffffffffffffffff80821115610fc557600080fd5b9084019060808287031215610fd957600080fd5b610fe1610c1c565b8251610fec81610e4e565b81528284015182811115610fff57600080fd5b83019150601f8201871361101257600080fd5b8151611020610cbd82610c76565b818152888683860101111561103457600080fd5b61104382878301888701610d39565b8086840152505060408301516040820152606083015160608201528094505050505092915050565b60006001820161108b57634e487b7160e01b600052601160045260246000fd5b5060010190565b600181811c908216806110a657607f821691505b6020821081036110c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610bb157600081815260208120601f850160051c810160208610156110f35750805b601f850160051c820191505b81811015611112578281556001016110ff565b505050505050565b815167ffffffffffffffff81111561113457611134610c06565b611148816111428454611092565b846110cc565b602080601f83116001811461117d57600084156111655750858301515b600019600386901b1c1916600185901b178555611112565b600085815260208120601f198616915b828110156111ac5788860151825594840194600190910190840161118d565b50858210156111ca5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8381528260208201526060604082015260006111f96060830184610d5d565b95945050505050565b602081526000610eba6020830184610d5d565b60008251611227818460208701610d39565b919091019291505056fea26469706673582212204fd13c9156b06d84f2b8726fb1be8875eca46918301e04056773e09b6bb9159964736f6c63430008140033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA7 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x639241AB GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x639241AB EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x208 JUMPI DUP1 PUSH4 0x74AAA760 EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x8D977672 EQ PUSH2 0x23F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x271 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x28F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4FE2B34 EQ PUSH2 0xAC JUMPI DUP1 PUSH4 0x7B31818 EQ PUSH2 0xD5 JUMPI DUP1 PUSH4 0xD1CFCAE EQ PUSH2 0x126 JUMPI DUP1 PUSH4 0x1D65E77E EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x2A2B3A9D EQ PUSH2 0x166 JUMPI DUP1 PUSH4 0x5C622A0E EQ PUSH2 0x194 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBF PUSH2 0xBA CALLDATASIZE PUSH1 0x4 PUSH2 0xCF4 JUMP JUMPDEST PUSH2 0x2AF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP2 SWAP1 PUSH2 0xDC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10E PUSH2 0xF0 CALLDATASIZE PUSH1 0x4 PUSH2 0xE35 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x132 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x10E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBF PUSH2 0x161 CALLDATASIZE PUSH1 0x4 PUSH2 0xE35 JUMP JUMPDEST PUSH2 0x58F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x172 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x186 PUSH2 0x181 CALLDATASIZE PUSH1 0x4 PUSH2 0xE63 JUMP JUMPDEST PUSH2 0x6B6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CE PUSH2 0x1AF CALLDATASIZE PUSH1 0x4 PUSH2 0xE35 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP2 SWAP1 PUSH2 0xE8F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FB PUSH2 0x1F6 CALLDATASIZE PUSH1 0x4 PUSH2 0xE9D JUMP JUMPDEST PUSH2 0x6E7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP2 SWAP1 PUSH2 0xEC1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x214 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21D PUSH2 0x753 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21D PUSH2 0x23A CALLDATASIZE PUSH1 0x4 PUSH2 0xF05 JUMP JUMPDEST PUSH2 0x767 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25F PUSH2 0x25A CALLDATASIZE PUSH1 0x4 PUSH2 0xE35 JUMP JUMPDEST PUSH2 0x94E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x10E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21D PUSH2 0x2AA CALLDATASIZE PUSH1 0x4 PUSH2 0xE9D JUMP JUMPDEST PUSH2 0xA1C JUMP JUMPDEST PUSH2 0x2B7 PUSH2 0xBB6 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18FEEB15 PUSH1 0xE3 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC7F758A8 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x303 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x32B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0xF9A JUMP JUMPDEST SWAP1 POP CALLVALUE DUP2 PUSH1 0x40 ADD MLOAD EQ PUSH2 0x375 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x496E76616C6964207072696365 PUSH1 0x98 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x385 DUP4 PUSH2 0x106B JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x3 SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP2 DUP3 SSTORE DUP2 ADD PUSH2 0x3AD DUP7 DUP3 PUSH2 0x111A JUMP JUMPDEST POP PUSH1 0x2 DUP2 DUP2 ADD DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND DUP2 OR DUP4 SSTORE PUSH1 0x4 DUP6 ADD DUP9 SWAP1 SSTORE DUP6 MLOAD PUSH1 0x3 DUP1 DUP8 ADD DUP1 SLOAD SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SLOAD DUP3 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP6 SSTORE SWAP4 DUP4 MSTORE SWAP5 SWAP1 SWAP2 KECCAK256 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP3 SSTORE DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL DUP4 MUL OR SWAP1 SSTORE POP DUP2 MLOAD PUSH1 0x3 SLOAD PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 CALLER SWAP3 PUSH32 0x5C005BBBB9DA508C37935B1A9F270836E0BE1FD11D4D47119F925A3FF33820E9 SWAP3 PUSH2 0x46E SWAP3 DUP12 SWAP1 PUSH2 0x11DA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH2 0x49C SWAP1 PUSH2 0x1092 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4C8 SWAP1 PUSH2 0x1092 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x515 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4EA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x515 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x4F8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x552 JUMPI PUSH2 0x552 PUSH2 0xD89 JUMP JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x563 JUMPI PUSH2 0x563 PUSH2 0xD89 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP3 POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x597 PUSH2 0xBB6 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP5 MSTORE DUP1 SLOAD DUP5 MSTORE SWAP2 DUP3 ADD DUP1 SLOAD SWAP2 DUP5 ADD SWAP2 PUSH2 0x5C8 SWAP1 PUSH2 0x1092 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x5F4 SWAP1 PUSH2 0x1092 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x641 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x616 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x641 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x624 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x67E JUMPI PUSH2 0x67E PUSH2 0xD89 JUMP JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x68F JUMPI PUSH2 0x68F PUSH2 0xD89 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x6D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD DUP2 DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x747 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x733 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x75B PUSH2 0xA5A JUMP JUMPDEST PUSH2 0x765 PUSH1 0x0 PUSH2 0xA87 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x7C2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x139BDD08185D5D1A1BDC9A5E9959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x36C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x7E4 JUMPI PUSH2 0x7E4 PUSH2 0xD89 JUMP JUMPDEST EQ PUSH2 0x827 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x496E76616C6964207461736B20737461747573 PUSH1 0x68 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x36C JUMP JUMPDEST PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA1 SHL PUSH1 0xFF PUSH1 0xA0 SHL NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x4 DUP1 SLOAD DUP2 DUP4 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x18FEEB15 PUSH1 0xE3 SHL DUP2 MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC7F758A8 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x88C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x8B4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0xF9A JUMP JUMPDEST SWAP1 POP PUSH2 0x8C8 DUP2 PUSH1 0x0 ADD MLOAD DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0xAD7 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x40 MLOAD DUP6 SWAP2 PUSH32 0xD76EF80CFB1CE0C70D0CBC0AB1B9F2F298A78F9FCA5C841BE963AE9A5D721BB4 SWAP2 PUSH2 0x908 SWAP2 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 PUSH2 0xE8F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP4 PUSH32 0x7E6FFC29FE63759579D96A0457A8F2E08339ACA345BD469F59DC2E61F82A5AEB DUP5 PUSH1 0x40 MLOAD PUSH2 0x940 SWAP2 SWAP1 PUSH2 0x1202 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD SWAP2 DUP2 ADD DUP1 SLOAD PUSH2 0x96F SWAP1 PUSH2 0x1092 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x99B SWAP1 PUSH2 0x1092 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x9E8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9BD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x9E8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x9CB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 SWAP1 SWAP5 ADD SLOAD SWAP3 SWAP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND SWAP5 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP4 DIV PUSH1 0xFF AND SWAP4 POP AND SWAP1 DUP7 JUMP JUMPDEST PUSH2 0xA24 PUSH2 0xA5A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xA4E JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x36C JUMP JUMPDEST PUSH2 0xA57 DUP2 PUSH2 0xA87 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x765 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x36C JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP4 SWAP1 PUSH1 0x40 MLOAD PUSH2 0xB01 SWAP2 SWAP1 PUSH2 0x1215 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xB3E JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xB43 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xBB1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x34 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A3A736166655472616E736665724554483A PUSH1 0x44 DUP3 ADD MSTORE PUSH20 0x8115512081D1C985B9CD9995C8819985A5B1959 PUSH1 0x62 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x36C JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xBF2 JUMPI PUSH2 0xBF2 PUSH2 0xD89 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xC3F JUMPI PUSH2 0xC3F PUSH2 0xC06 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xC6E JUMPI PUSH2 0xC6E PUSH2 0xC06 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xC90 JUMPI PUSH2 0xC90 PUSH2 0xC06 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xCAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xCC2 PUSH2 0xCBD DUP3 PUSH2 0xC76 JUMP JUMPDEST PUSH2 0xC45 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0xCD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD2A DUP6 DUP3 DUP7 ADD PUSH2 0xC9E JUMP JUMPDEST SWAP6 PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD54 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xD3C JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xD75 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xD39 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0xDBD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0xDE7 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0xD5D JUMP JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x60 DUP7 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP7 ADD MLOAD SWAP2 SWAP3 POP PUSH2 0xE13 PUSH1 0x80 DUP7 ADD DUP4 PUSH2 0xD9F JUMP JUMPDEST DUP1 PUSH1 0x80 DUP8 ADD MLOAD AND PUSH1 0xA0 DUP7 ADD MSTORE POP POP PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0xC0 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0xE81 DUP2 PUSH2 0xE4E JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x589 DUP3 DUP5 PUSH2 0xD9F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xEBA DUP2 PUSH2 0xE4E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xEF9 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0xEDD JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF42 DUP6 DUP3 DUP7 ADD PUSH2 0xC9E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP7 DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0xF65 PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0xD5D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0xF85 PUSH1 0x60 DUP5 ADD DUP8 PUSH2 0xD9F JUMP JUMPDEST SWAP4 SWAP1 SWAP4 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xFAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xFC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP5 ADD SWAP1 PUSH1 0x80 DUP3 DUP8 SUB SLT ISZERO PUSH2 0xFD9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xFE1 PUSH2 0xC1C JUMP JUMPDEST DUP3 MLOAD PUSH2 0xFEC DUP2 PUSH2 0xE4E JUMP JUMPDEST DUP2 MSTORE DUP3 DUP5 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0xFFF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD SWAP2 POP PUSH1 0x1F DUP3 ADD DUP8 SGT PUSH2 0x1012 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1020 PUSH2 0xCBD DUP3 PUSH2 0xC76 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP9 DUP7 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x1034 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1043 DUP3 DUP8 DUP4 ADD DUP9 DUP8 ADD PUSH2 0xD39 JUMP JUMPDEST DUP1 DUP7 DUP5 ADD MSTORE POP POP PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x108B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x10A6 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x10C6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xBB1 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x10F3 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1112 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x10FF JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1134 JUMPI PUSH2 0x1134 PUSH2 0xC06 JUMP JUMPDEST PUSH2 0x1148 DUP2 PUSH2 0x1142 DUP5 SLOAD PUSH2 0x1092 JUMP JUMPDEST DUP5 PUSH2 0x10CC JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x117D JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1165 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x1112 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x11AC JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x118D JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x11CA JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP4 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x11F9 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xD5D JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xEBA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xD5D JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1227 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xD39 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F 0xD1 EXTCODECOPY SWAP2 JUMP 0xB0 PUSH14 0x84F2B8726FB1BE8875ECA4691830 0x1E DIV SDIV PUSH8 0x73E09B6BB9159964 PUSH20 0x6F6C634300081400330000000000000000000000 ", - "sourceMap": "380:3160:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1573:728;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3423:115;;;;;;;;;;-1:-1:-1;3423:115:4;;;;;:::i;:::-;3483:7;3509:13;;;:5;:13;;;;;:22;;;-1:-1:-1;;;;;3509:22:4;;3423:115;;;;-1:-1:-1;;;;;3836:32:7;;;3818:51;;3806:2;3791:18;3423:115:4;3672:203:7;813:35:4;;;;;;;;;;-1:-1:-1;813:35:4;;;;-1:-1:-1;;;;;813:35:4;;;3183:110;;;;;;;;;;-1:-1:-1;3183:110:4;;;;;:::i;:::-;;:::i;727:48::-;;;;;;;;;;-1:-1:-1;727:48:4;;;;;:::i;:::-;;:::i;:::-;;;4712:25:7;;;4700:2;4685:18;727:48:4;4566:177:7;3299:114:4;;;;;;;;;;-1:-1:-1;3299:114:4;;;;;:::i;:::-;3357:10;3386:13;;;:5;:13;;;;;:20;;;-1:-1:-1;;;3386:20:4;;;;;3299:114;;;;;;;;:::i;3051:126::-;;;;;;;;;;-1:-1:-1;3051:126:4;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2293:101:0:-;;;;;;;;;;;;;:::i;:::-;;2477:567:4;;;;;;;;;;-1:-1:-1;2477:567:4;;;;;:::i;:::-;;:::i;680:41::-;;;;;;;;;;-1:-1:-1;680:41:4;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;1638:85:0:-;;;;;;;;;;-1:-1:-1;1684:7:0;1710:6;-1:-1:-1;;;;;1710:6:0;1638:85;;2543:215;;;;;;;;;;-1:-1:-1;2543:215:0;;;;;:::i;:::-;;:::i;1573:728:4:-;1683:15;;:::i;:::-;1737:13;;;:37;;-1:-1:-1;;;1737:37:4;;;;;4712:25:7;;;1710:24:4;;-1:-1:-1;;;;;1737:13:4;;;;:25;;4685:18:7;;1737:37:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1737:37:4;;;;;;;;;;;;:::i;:::-;1710:64;;1810:9;1792:8;:14;;;:27;1784:53;;;;-1:-1:-1;;;1784:53:4;;8302:2:7;1784:53:4;;;8284:21:7;8341:2;8321:18;;;8314:30;-1:-1:-1;;;8360:18:7;;;8353:43;8413:18;;1784:53:4;;;;;;;;;1848:10;:12;;;:10;:12;;;:::i;:::-;;;;-1:-1:-1;;1900:10:4;;1870:21;1894:17;;;:5;:17;;;;;;;;1921:20;;;1951:11;;:20;1965:6;1951:11;:20;:::i;:::-;-1:-1:-1;1981:11:4;;;;:24;;1995:10;-1:-1:-1;;;;;;1981:24:4;;;;;;;2015:15;;;:28;;;2069:15;;2053:13;;;;:31;;;;;-1:-1:-1;;;;;2053:31:4;;;;;;;;;;-1:-1:-1;2094:23:4;;;;;;;;;;2123:10;;2094:40;;-1:-1:-1;2094:40:4;;;;;;;;;;;;;;;;;;;2144:33;;-1:-1:-1;;;;2144:33:4;-1:-1:-1;;;;2144:33:4;;;;-1:-1:-1;2216:15:4;;2233:10;;2245:19;;;;2192:81;;-1:-1:-1;;;;;2192:81:4;;;;2204:10;;2192:81;;;;2266:6;;2192:81;:::i;:::-;;;;;;;;2290:4;2283:11;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2283:11:4;;;-1:-1:-1;;2283:11:4;;;;-1:-1:-1;;;;;2283:11:4;;;;;;;;;;;-1:-1:-1;;;2283:11:4;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2283:11:4;;;;;;;;;;;;;;;;-1:-1:-1;;;1573:728:4;;;;;:::o;3183:110::-;3239:15;;:::i;:::-;3273:13;;;;:5;:13;;;;;;;;;3266:20;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3266:20:4;;;-1:-1:-1;;3266:20:4;;;;-1:-1:-1;;;;;3266:20:4;;;;;;;;;;;-1:-1:-1;;;3266:20:4;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3266:20:4;;;;;;;;;;;;;;;;3183:110;-1:-1:-1;;3183:110:4:o;727:48::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3051:126::-;-1:-1:-1;;;;;3151:19:4;;;;;;:11;:19;;;;;;;;;3144:26;;;;;;;;;;;;;;;;;3116:16;;3144:26;;;3151:19;3144:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3051:126;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;2477:567:4:-;2556:21;2580:13;;;:5;:13;;;;;2625;;;;-1:-1:-1;;;;;2625:13:4;2611:10;:27;2603:54;;;;-1:-1:-1;;;2603:54:4;;11837:2:7;2603:54:4;;;11819:21:7;11876:2;11856:18;;;11849:30;-1:-1:-1;;;11895:18:7;;;11888:44;11949:18;;2603:54:4;11635:338:7;2603:54:4;2690:19;2675:11;;;;-1:-1:-1;;;2675:11:4;;;;:34;;;;;;;;:::i;:::-;;2667:66;;;;-1:-1:-1;;;2667:66:4;;12180:2:7;2667:66:4;;;12162:21:7;12219:2;12199:18;;;12192:30;-1:-1:-1;;;12238:18:7;;;12231:49;12297:18;;2667:66:4;11978:343:7;2667:66:4;2758:20;2744:11;;:34;;-1:-1:-1;;;;;;;2744:34:4;;;;;;2815:13;;;2841:15;;;;2815:42;;-1:-1:-1;;;2815:42:4;;;;;4712:25:7;-1:-1:-1;;;;;;;2815:13:4;;;;:25;;4685:18:7;;2815:42:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2815:42:4;;;;;;;;;;;;:::i;:::-;2788:69;;2876:63;2907:8;:15;;;2924:8;:14;;;2876:30;:63::i;:::-;2981:11;;;;2955:38;;2973:6;;2955:38;;;;-1:-1:-1;;;2981:11:4;;;;;2955:38;:::i;:::-;;;;;;;;3022:6;3008:29;3030:6;3008:29;;;;;;:::i;:::-;;;;;;;;2546:498;;2477:567;;:::o;680:41::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;680:41:4;;;;;;;;;;;;;;;-1:-1:-1;;;;;680:41:4;;;;-1:-1:-1;;;680:41:4;;;;;;-1:-1:-1;680:41:4;;;:::o;2543:215:0:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:0;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:0;;2700:1:::1;2672:31;::::0;::::1;3818:51:7::0;3791:18;;2672:31:0::1;3672:203:7::0;2623:91:0::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;735:10:1;1855:23:0;1851:101;;1901:40;;-1:-1:-1;;;1901:40:0;;735:10:1;1901:40:0;;;3818:51:7;3791:18;;1901:40:0;3672:203:7;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;1573:214:6:-;1685:12;;;1645;1685;;;;;;;;;-1:-1:-1;;;;;1663:7:6;;;1678:5;;1663:35;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1644:54;;;1716:7;1708:72;;;;-1:-1:-1;;;1708:72:6;;13045:2:7;1708:72:6;;;13027:21:7;13084:2;13064:18;;;13057:30;13123:34;13103:18;;;13096:62;-1:-1:-1;;;13174:18:7;;;13167:50;13234:19;;1708:72:6;12843:416:7;1708:72:6;1634:153;1573:214;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;14:127:7:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:253;218:2;212:9;260:4;248:17;;295:18;280:34;;316:22;;;277:62;274:88;;;342:18;;:::i;:::-;378:2;371:22;146:253;:::o;404:275::-;475:2;469:9;540:2;521:13;;-1:-1:-1;;517:27:7;505:40;;575:18;560:34;;596:22;;;557:62;554:88;;;622:18;;:::i;:::-;658:2;651:22;404:275;;-1:-1:-1;404:275:7:o;684:187::-;733:4;766:18;758:6;755:30;752:56;;;788:18;;:::i;:::-;-1:-1:-1;854:2:7;833:15;-1:-1:-1;;829:29:7;860:4;825:40;;684:187::o;876:464::-;919:5;972:3;965:4;957:6;953:17;949:27;939:55;;990:1;987;980:12;939:55;1026:6;1013:20;1057:49;1073:32;1102:2;1073:32;:::i;:::-;1057:49;:::i;:::-;1131:2;1122:7;1115:19;1177:3;1170:4;1165:2;1157:6;1153:15;1149:26;1146:35;1143:55;;;1194:1;1191;1184:12;1143:55;1259:2;1252:4;1244:6;1240:17;1233:4;1224:7;1220:18;1207:55;1307:1;1282:16;;;1300:4;1278:27;1271:38;;;;1286:7;876:464;-1:-1:-1;;;876:464:7:o;1345:390::-;1423:6;1431;1484:2;1472:9;1463:7;1459:23;1455:32;1452:52;;;1500:1;1497;1490:12;1452:52;1540:9;1527:23;1573:18;1565:6;1562:30;1559:50;;;1605:1;1602;1595:12;1559:50;1628;1670:7;1661:6;1650:9;1646:22;1628:50;:::i;:::-;1618:60;1725:2;1710:18;;;;1697:32;;-1:-1:-1;;;;1345:390:7:o;1740:250::-;1825:1;1835:113;1849:6;1846:1;1843:13;1835:113;;;1925:11;;;1919:18;1906:11;;;1899:39;1871:2;1864:10;1835:113;;;-1:-1:-1;;1982:1:7;1964:16;;1957:27;1740:250::o;1995:271::-;2037:3;2075:5;2069:12;2102:6;2097:3;2090:19;2118:76;2187:6;2180:4;2175:3;2171:14;2164:4;2157:5;2153:16;2118:76;:::i;:::-;2248:2;2227:15;-1:-1:-1;;2223:29:7;2214:39;;;;2255:4;2210:50;;1995:271;-1:-1:-1;;1995:271:7:o;2271:127::-;2332:10;2327:3;2323:20;2320:1;2313:31;2363:4;2360:1;2353:15;2387:4;2384:1;2377:15;2403:238;2485:1;2478:5;2475:12;2465:143;;2530:10;2525:3;2521:20;2518:1;2511:31;2565:4;2562:1;2555:15;2593:4;2590:1;2583:15;2465:143;2617:18;;2403:238::o;2646:836::-;2825:2;2814:9;2807:21;2870:6;2864:13;2859:2;2848:9;2844:18;2837:41;2788:4;2925:2;2917:6;2913:15;2907:22;2965:4;2960:2;2949:9;2945:18;2938:32;2993:52;3040:3;3029:9;3025:19;3011:12;2993:52;:::i;:::-;3094:2;3082:15;;3076:22;-1:-1:-1;;;;;3172:23:7;;;3167:2;3152:18;;;3145:51;;;;3233:15;;3227:22;2979:66;;-1:-1:-1;3258:63:7;3316:3;3301:19;;3227:22;3258:63;:::i;:::-;3387:2;3380:3;3372:6;3368:16;3362:23;3358:32;3352:3;3341:9;3337:19;3330:61;;;3447:3;3439:6;3435:16;3429:23;3422:4;3411:9;3407:20;3400:53;3470:6;3462:14;;;2646:836;;;;:::o;3487:180::-;3546:6;3599:2;3587:9;3578:7;3574:23;3570:32;3567:52;;;3615:1;3612;3605:12;3567:52;-1:-1:-1;3638:23:7;;3487:180;-1:-1:-1;3487:180:7:o;4110:131::-;-1:-1:-1;;;;;4185:31:7;;4175:42;;4165:70;;4231:1;4228;4221:12;4246:315;4314:6;4322;4375:2;4363:9;4354:7;4350:23;4346:32;4343:52;;;4391:1;4388;4381:12;4343:52;4430:9;4417:23;4449:31;4474:5;4449:31;:::i;:::-;4499:5;4551:2;4536:18;;;;4523:32;;-1:-1:-1;;;4246:315:7:o;4748:209::-;4894:2;4879:18;;4906:45;4883:9;4933:6;4906:45;:::i;4962:247::-;5021:6;5074:2;5062:9;5053:7;5049:23;5045:32;5042:52;;;5090:1;5087;5080:12;5042:52;5129:9;5116:23;5148:31;5173:5;5148:31;:::i;:::-;5198:5;4962:247;-1:-1:-1;;;4962:247:7:o;5214:632::-;5385:2;5437:21;;;5507:13;;5410:18;;;5529:22;;;5356:4;;5385:2;5608:15;;;;5582:2;5567:18;;;5356:4;5651:169;5665:6;5662:1;5659:13;5651:169;;;5726:13;;5714:26;;5795:15;;;;5760:12;;;;5687:1;5680:9;5651:169;;;-1:-1:-1;5837:3:7;;5214:632;-1:-1:-1;;;;;;5214:632:7:o;5851:390::-;5929:6;5937;5990:2;5978:9;5969:7;5965:23;5961:32;5958:52;;;6006:1;6003;5996:12;5958:52;6042:9;6029:23;6019:33;;6103:2;6092:9;6088:18;6075:32;6130:18;6122:6;6119:30;6116:50;;;6162:1;6159;6152:12;6116:50;6185;6227:7;6218:6;6207:9;6203:22;6185:50;:::i;:::-;6175:60;;;5851:390;;;;;:::o;6246:667::-;6547:6;6536:9;6529:25;6590:3;6585:2;6574:9;6570:18;6563:31;6510:4;6611:46;6652:3;6641:9;6637:19;6629:6;6611:46;:::i;:::-;-1:-1:-1;;;;;6731:15:7;;;6726:2;6711:18;;6704:43;6603:54;;-1:-1:-1;6756:54:7;6806:2;6791:18;;6783:6;6756:54;:::i;:::-;6847:15;;;;6841:3;6826:19;;6819:44;6894:3;6879:19;6872:35;6246:667;;-1:-1:-1;;;;6246:667:7:o;6918:1177::-;7014:6;7045:2;7088;7076:9;7067:7;7063:23;7059:32;7056:52;;;7104:1;7101;7094:12;7056:52;7137:9;7131:16;7166:18;7207:2;7199:6;7196:14;7193:34;;;7223:1;7220;7213:12;7193:34;7246:22;;;;7302:4;7284:16;;;7280:27;7277:47;;;7320:1;7317;7310:12;7277:47;7346:22;;:::i;:::-;7398:2;7392:9;7410:33;7435:7;7410:33;:::i;:::-;7452:22;;7505:11;;;7499:18;7529:16;;;7526:36;;;7558:1;7555;7548:12;7526:36;7581:17;;;-1:-1:-1;7629:4:7;7621:13;;7617:27;-1:-1:-1;7607:55:7;;7658:1;7655;7648:12;7607:55;7687:2;7681:9;7712:49;7728:32;7757:2;7728:32;:::i;7712:49::-;7784:2;7777:5;7770:17;7824:7;7819:2;7814;7810;7806:11;7802:20;7799:33;7796:53;;;7845:1;7842;7835:12;7796:53;7858:67;7922:2;7917;7910:5;7906:14;7901:2;7897;7893:11;7858:67;:::i;:::-;7957:5;7952:2;7945:5;7941:14;7934:29;;;8009:2;8005;8001:11;7995:18;7990:2;7983:5;7979:14;7972:42;8060:2;8056;8052:11;8046:18;8041:2;8034:5;8030:14;8023:42;8084:5;8074:15;;;;;;6918:1177;;;;:::o;8442:232::-;8481:3;8502:17;;;8499:140;;8561:10;8556:3;8552:20;8549:1;8542:31;8596:4;8593:1;8586:15;8624:4;8621:1;8614:15;8499:140;-1:-1:-1;8666:1:7;8655:13;;8442:232::o;8679:380::-;8758:1;8754:12;;;;8801;;;8822:61;;8876:4;8868:6;8864:17;8854:27;;8822:61;8929:2;8921:6;8918:14;8898:18;8895:38;8892:161;;8975:10;8970:3;8966:20;8963:1;8956:31;9010:4;9007:1;9000:15;9038:4;9035:1;9028:15;8892:161;;8679:380;;;:::o;9190:545::-;9292:2;9287:3;9284:11;9281:448;;;9328:1;9353:5;9349:2;9342:17;9398:4;9394:2;9384:19;9468:2;9456:10;9452:19;9449:1;9445:27;9439:4;9435:38;9504:4;9492:10;9489:20;9486:47;;;-1:-1:-1;9527:4:7;9486:47;9582:2;9577:3;9573:12;9570:1;9566:20;9560:4;9556:31;9546:41;;9637:82;9655:2;9648:5;9645:13;9637:82;;;9700:17;;;9681:1;9670:13;9637:82;;;9641:3;;;9190:545;;;:::o;9911:1352::-;10037:3;10031:10;10064:18;10056:6;10053:30;10050:56;;;10086:18;;:::i;:::-;10115:97;10205:6;10165:38;10197:4;10191:11;10165:38;:::i;:::-;10159:4;10115:97;:::i;:::-;10267:4;;10331:2;10320:14;;10348:1;10343:663;;;;11050:1;11067:6;11064:89;;;-1:-1:-1;11119:19:7;;;11113:26;11064:89;-1:-1:-1;;9868:1:7;9864:11;;;9860:24;9856:29;9846:40;9892:1;9888:11;;;9843:57;11166:81;;10313:944;;10343:663;9137:1;9130:14;;;9174:4;9161:18;;-1:-1:-1;;10379:20:7;;;10497:236;10511:7;10508:1;10505:14;10497:236;;;10600:19;;;10594:26;10579:42;;10692:27;;;;10660:1;10648:14;;;;10527:19;;10497:236;;;10501:3;10761:6;10752:7;10749:19;10746:201;;;10822:19;;;10816:26;-1:-1:-1;;10905:1:7;10901:14;;;10917:3;10897:24;10893:37;10889:42;10874:58;10859:74;;10746:201;-1:-1:-1;;;;;10993:1:7;10977:14;;;10973:22;10960:36;;-1:-1:-1;9911:1352:7:o;11268:362::-;11473:6;11462:9;11455:25;11516:6;11511:2;11500:9;11496:18;11489:34;11559:2;11554;11543:9;11539:18;11532:30;11436:4;11579:45;11620:2;11609:9;11605:18;11597:6;11579:45;:::i;:::-;11571:53;11268:362;-1:-1:-1;;;;;11268:362:7:o;12326:220::-;12475:2;12464:9;12457:21;12438:4;12495:45;12536:2;12525:9;12521:18;12513:6;12495:45;:::i;12551:287::-;12680:3;12718:6;12712:13;12734:66;12793:6;12788:3;12781:4;12773:6;12769:17;12734:66;:::i;:::-;12816:16;;;;;12551:287;-1:-1:-1;;12551:287:7:o" - }, - "methodIdentifiers": { - "agentRegistry()": "0d1cfcae", - "completeTask(uint256,string)": "74aaa760", - "createTask(string,uint256)": "04fe2b34", - "getAssignee(uint256)": "07b31818", - "getStatus(uint256)": "5c622a0e", - "getTask(uint256)": "1d65e77e", - "getTasksByIssuer(address)": "639241ab", - "issuerTasks(address,uint256)": "2a2b3a9d", - "owner()": "8da5cb5b", - "renounceOwnership()": "715018a6", - "tasks(uint256)": "8d977672", - "transferOwnership(address)": "f2fde38b" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract AgentsRegistry\",\"name\":\"_agentRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"serviceName\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IProposalStruct.Proposal\",\"name\":\"proposal\",\"type\":\"tuple\"}],\"name\":\"ProposalApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"}],\"name\":\"TaskAssigned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"result\",\"type\":\"string\"}],\"name\":\"TaskCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"assignee\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"prompt\",\"type\":\"string\"}],\"name\":\"TaskCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum TaskRegistry.TaskStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"TaskStatusChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"agentRegistry\",\"outputs\":[{\"internalType\":\"contract AgentsRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"result\",\"type\":\"string\"}],\"name\":\"completeTask\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"prompt\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"createTask\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"prompt\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"enum TaskRegistry.TaskStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"assignee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"internalType\":\"struct TaskRegistry.TaskData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"getAssignee\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"getStatus\",\"outputs\":[{\"internalType\":\"enum TaskRegistry.TaskStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"getTask\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"prompt\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"enum TaskRegistry.TaskStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"assignee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"internalType\":\"struct TaskRegistry.TaskData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"}],\"name\":\"getTasksByIssuer\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"issuerTasks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tasks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"prompt\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"enum TaskRegistry.TaskStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"assignee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"leonprou\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"completeTask(uint256,string)\":{\"details\":\"Completes a task with the given result.\",\"params\":{\"result\":\"The result or output of the completed task.\",\"taskId\":\"The ID of the task.\"}},\"createTask(string,uint256)\":{\"details\":\"Creates a new task with the given prompt and task type.\",\"params\":{\"prompt\":\"The description or prompt of the task.\"},\"returns\":{\"_0\":\"taskId The ID of the newly created task.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"TaskRegistry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A smart contract that stores information about the tasks issued for the agent service providers.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/TaskRegistry.sol\":\"TaskRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/AgentsRegistry.sol\":{\"keccak256\":\"0xc17a9c7b8fca86a970db6bbe6da542011bd2d98e720fe2368b16cb85be76c699\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c56ff006218ba1ab0d29cedd32a4e788abfe22265aef430d65308a6a540957da\",\"dweb:/ipfs/QmcyAk98Fi3LtMm7WYBcaWy1J1sPwWyHieLwnqCyRQgqB8\"]},\"contracts/ServiceRegistry.sol\":{\"keccak256\":\"0xa86b05303aaeee4c1437e7857fb03fe70473bed68f68c50dbabc261bfa6cdca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://069be2bed01b0f80d688a4b5da526051507245c340745a58f2bd78fbf3700373\",\"dweb:/ipfs/QmWU9yZSLZNJvZaXNRPem7AySUL94aTaCAR1TGTdcnPmmA\"]},\"contracts/TaskRegistry.sol\":{\"keccak256\":\"0xef57d28ba886553cdeb98da1eb00ba98fa35e7f5772f035fc076355c957bff61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7e4b777d4b802e701b39dbefbe3d77cb3145f0e105d04ec90ccafbebb55eff6\",\"dweb:/ipfs/QmTTi5keCc4joETGREotFT7NK6mPqatLwPbzf9FgR4xSGK\"]},\"contracts/interfaces/IProposalStruct.sol\":{\"keccak256\":\"0x9d05f54eb20cbe5f8e11fb0b8229714378d8b9956771d308ca8550d27728fd10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://665b3367f5eabd0a4e09ec1f77c992391617be5410b02755811ebb278a457320\",\"dweb:/ipfs/QmNWdoe8B2y92uKvCZECJNPobKL8ieEww2H3AkHEddoojf\"]},\"contracts/lib/TransferHelper.sol\":{\"keccak256\":\"0x65e08c88e7925dc1d5c0f7e774896f11af45bca8067ceeaa35ff4c93128c62c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd6919f03addec5eb18403934c51848d7e4f71f44359d429755cc82155d3e072\",\"dweb:/ipfs/QmeNazpowCEm8Q54cSoHPtvF5wofLnrAwVh4g71G4oVZ1w\"]}},\"version\":1}" - } - }, - "contracts/interfaces/IProposalStruct.sol": { - "IProposalStruct": { - "abi": [], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IProposalStruct.sol\":\"IProposalStruct\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IProposalStruct.sol\":{\"keccak256\":\"0x9d05f54eb20cbe5f8e11fb0b8229714378d8b9956771d308ca8550d27728fd10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://665b3367f5eabd0a4e09ec1f77c992391617be5410b02755811ebb278a457320\",\"dweb:/ipfs/QmNWdoe8B2y92uKvCZECJNPobKL8ieEww2H3AkHEddoojf\"]}},\"version\":1}" - } - }, - "contracts/lib/TransferHelper.sol": { - "TransferHelper": { - "abi": [], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122085b80507e318490f89aacc84ba4fec48af437f0af4c9f4a27df42a6238c1dec064736f6c63430008140033", - "opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP6 0xB8 SDIV SMOD 0xE3 XOR 0x49 0xF DUP10 0xAA 0xCC DUP5 0xBA 0x4F 0xEC BASEFEE 0xAF NUMBER PUSH32 0xAF4C9F4A27DF42A6238C1DEC064736F6C634300081400330000000000000000 ", - "sourceMap": "168:1621:6:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;168:1621:6;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122085b80507e318490f89aacc84ba4fec48af437f0af4c9f4a27df42a6238c1dec064736f6c63430008140033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP6 0xB8 SDIV SMOD 0xE3 XOR 0x49 0xF DUP10 0xAA 0xCC DUP5 0xBA 0x4F 0xEC BASEFEE 0xAF NUMBER PUSH32 0xAF4C9F4A27DF42A6238C1DEC064736F6C634300081400330000000000000000 ", - "sourceMap": "168:1621:6:-:0;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/lib/TransferHelper.sol\":\"TransferHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/lib/TransferHelper.sol\":{\"keccak256\":\"0x65e08c88e7925dc1d5c0f7e774896f11af45bca8067ceeaa35ff4c93128c62c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd6919f03addec5eb18403934c51848d7e4f71f44359d429755cc82155d3e072\",\"dweb:/ipfs/QmeNazpowCEm8Q54cSoHPtvF5wofLnrAwVh4g71G4oVZ1w\"]}},\"version\":1}" - } - } - } - } -} \ No newline at end of file diff --git a/packages/contracts/ignition/deployments/chain-84532/build-info/a8a079823142cc20b456706f7df53fc3.json b/packages/contracts/ignition/deployments/chain-84532/build-info/c531b525831bad0f98bf93a9d045f697.json similarity index 62% rename from packages/contracts/ignition/deployments/chain-84532/build-info/a8a079823142cc20b456706f7df53fc3.json rename to packages/contracts/ignition/deployments/chain-84532/build-info/c531b525831bad0f98bf93a9d045f697.json index 74cf38f..b589492 100644 --- a/packages/contracts/ignition/deployments/chain-84532/build-info/a8a079823142cc20b456706f7df53fc3.json +++ b/packages/contracts/ignition/deployments/chain-84532/build-info/c531b525831bad0f98bf93a9d045f697.json @@ -1,5 +1,5 @@ { - "id": "a8a079823142cc20b456706f7df53fc3", + "id": "c531b525831bad0f98bf93a9d045f697", "_format": "hh-sol-build-info-1", "solcVersion": "0.8.20", "solcLongVersion": "0.8.20+commit.a1b79de6", @@ -13,19 +13,25 @@ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n" }, "contracts/AgentsRegistry.sol": { - "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport \"./ServiceRegistry.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"./interfaces/IProposalStruct.sol\";\n\n\n/**\n * @title AgentsRegistry\n * @author leonprou\n * @notice A smart contract that stores information about the agents, and the services proposals provided by the agents.\n */\ncontract AgentsRegistry is Ownable, IProposalStruct {\n\n struct AgentData {\n string name;\n string agentUri;\n address owner;\n address agent;\n uint256 reputation;\n bool isRegistered;\n Proposal[] proposals;\n }\n\n ServiceRegistry public serviceRegistry;\n mapping(address => AgentData) public agents;\n Proposal[] public proposals;\n uint256 public nextProposalId;\n\n modifier onlyRegistered(address agent) {\n require(agents[agent].isRegistered, \"Agent not registered\");\n _;\n }\n\n constructor(ServiceRegistry _serviceRegistry) Ownable(msg.sender) {\n serviceRegistry = _serviceRegistry;\n }\n\n event AgentRegistered(address indexed agent, address indexed owner, string name, string agentUri);\n event ReputationUpdated(address indexed agent, uint256 newReputation);\n event ServiceAdded(address indexed agent, uint256 name);\n event ProposalAdded(address indexed agent, uint256 proposalId, string name, uint256 price);\n \n /**\n * @dev Registers a new agent with the given details.\n * @param name The name of the agent.\n * @param agentUri The URI pointing to the agent's metadata.\n * @param agent The address of the agent.\n * @param serviceName The name of the service.\n * @param servicePrice The price of the service.\n * @return true if the agent was registered successfully, false otherwise.\n *\n * Requirements:\n *\n * - The agent must not already be registered.\n * - The caller will be set as the owner of the agent.\n *\n * Emits an {AgentRegistered} event.\n */\n function registerAgent(\n address agent,\n string memory name,\n string memory agentUri,\n string memory serviceName,\n uint256 servicePrice\n ) external returns (bool) {\n require(!agents[agent].isRegistered, \"Agent already registered\");\n require(serviceRegistry.isServiceRegistered(serviceName), \"Service not registered\");\n \n AgentData storage agentData = agents[agent];\n agentData.name = name;\n agentData.agentUri = agentUri;\n agentData.owner = msg.sender;\n agentData.agent = agent;\n agentData.reputation = 0;\n agentData.isRegistered = true;\n Proposal memory proposal = Proposal(agent, serviceName, servicePrice, nextProposalId);\n agentData.proposals.push(proposal);\n proposals.push(proposal);\n\n nextProposalId++;\n emit AgentRegistered(agent, msg.sender, name, agentUri);\n emit ProposalAdded(agent, proposal.proposalId, serviceName, servicePrice);\n\n return true;\n }\n\n function updateReputation(address agent, uint256 _reputation) external onlyOwner onlyRegistered(agent) {\n agents[agent].reputation = _reputation;\n emit ReputationUpdated(agent, _reputation);\n }\n\n function getReputation(address agent) external view onlyRegistered(agent) returns (uint256) {\n return agents[agent].reputation;\n }\n\n function isRegistered(address agent) external view returns (bool) {\n return agents[agent].isRegistered;\n }\n\n /**\n * @dev get agent data\n * @param _agent The address of the agent\n * @return name The name of the agent\n * @return agentUri The URI pointing to the agent's metadata\n * @return owner The owner address of the agent\n * @return agent The agent contract address\n * @return reputation The reputation score of the agent\n */\n function getAgentData(address _agent) external view returns (\n string memory name,\n string memory agentUri,\n address owner,\n address agent,\n uint256 reputation\n ) {\n AgentData storage data = agents[_agent];\n return (data.name, data.agentUri, data.owner, data.agent, data.reputation);\n }\n\n\n function getProposal(uint256 proposalId) external view returns (Proposal memory) {\n return proposals[proposalId];\n }\n}\n" + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport \"./ServiceRegistry.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"./interfaces/IProposalStruct.sol\";\n\n\n/**\n * @title AgentsRegistry\n * @author leonprou\n * @notice A smart contract that stores information about the agents, and the services proposals provided by the agents.\n */\ncontract AgentsRegistry is Ownable, IProposalStruct {\n\n struct AgentData {\n string name;\n string agentUri;\n address owner;\n address agent;\n uint256 reputation;\n uint256 totalRatings;\n }\n\n ServiceRegistry public serviceRegistry;\n address public taskRegistry;\n\n mapping(address => AgentData) public agents;\n mapping(uint256 => ServiceProposal) public proposals;\n uint256 public nextProposalId;\n\n modifier onlyAgentOwner(address agent) {\n require(agents[agent].owner == msg.sender, \"Not the owner of the agent\");\n _;\n }\n\n constructor(ServiceRegistry _serviceRegistry) Ownable(msg.sender) {\n serviceRegistry = _serviceRegistry;\n nextProposalId = 1;\n }\n\n event AgentRegistered(address indexed agent, address indexed owner, string name, string agentUri);\n event ReputationUpdated(address indexed agent, uint256 newReputation);\n\n event ProposalAdded(address indexed agent, uint256 proposalId, string name, uint256 price);\n event ProposalRemoved(address indexed agent, uint256 proposalId);\n event ProposalUpdated(address indexed agent, uint256 proposalId, uint256 price);\n \n /**\n * @dev Sets the address of the TaskRegistry contract.\n * @param _taskRegistry The address of the TaskRegistry contract.\n */\n function setTaskRegistry(address _taskRegistry) external onlyOwner {\n require(_taskRegistry != address(0), \"Invalid address\");\n taskRegistry = _taskRegistry;\n }\n\n /**\n * @dev Sets the address of the ServiceRegistry contract.\n * @param _serviceRegistry The address of the ServiceRegistry contract.\n */\n function setServiceRegistry(address _serviceRegistry) external onlyOwner {\n require(_serviceRegistry != address(0), \"Invalid address\");\n serviceRegistry = ServiceRegistry(_serviceRegistry);\n }\n \n /**\n * @dev Registers a new agent with the given details.\n * @param name The name of the agent.\n * @param agentUri The URI pointing to the agent's metadata.\n * @param agent The address of the agent.\n * @param serviceName The name of the service.\n * @param servicePrice The price of the service.\n * @return true if the agent was registered successfully, false otherwise.\n *\n * Requirements:\n *\n * - The agent must not already be registered.\n * - The caller will be set as the owner of the agent.\n *\n * Emits an {AgentRegistered} event.\n */\n function registerAgent(\n address agent,\n string memory name,\n string memory agentUri,\n string memory serviceName,\n uint256 servicePrice\n ) external returns (uint256) {\n require(agents[agent].agent == address(0), \"Agent already registered\");\n require(serviceRegistry.isServiceRegistered(serviceName), \"Service not registered\");\n \n AgentData storage agentData = agents[agent];\n agentData.name = name;\n agentData.agentUri = agentUri;\n agentData.owner = msg.sender;\n agentData.agent = agent;\n agentData.reputation = 0;\n\n ServiceProposal memory proposal = ServiceProposal(agent, serviceName, servicePrice, nextProposalId, false);\n proposals[nextProposalId] = proposal;\n\n nextProposalId++;\n emit AgentRegistered(agent, msg.sender, name, agentUri);\n emit ProposalAdded(agent, proposal.proposalId, serviceName, servicePrice);\n\n return nextProposalId - 1;\n }\n\n\n /**\n * @dev Adds a new proposal for an agent.\n * @param agent The address of the agent.\n * @param serviceName The name of the service.\n * @param servicePrice The price of the service.\n * @return true if the proposal was added successfully, false otherwise.\n *\n * Requirements:\n *\n * - The caller must be the owner of the agent.\n * - The agent must be registered.\n * - The service must be registered.\n *\n * Emits a {ProposalAdded} event.\n */\n function addProposal(address agent, string memory serviceName, uint256 servicePrice) external onlyAgentOwner(agent) returns (uint256) {\n require(serviceRegistry.isServiceRegistered(serviceName), \"Service not registered\");\n\n ServiceProposal memory proposal = ServiceProposal(agent, serviceName, servicePrice, nextProposalId, true);\n proposals[nextProposalId] = proposal;\n\n nextProposalId++;\n emit ProposalAdded(agent, proposal.proposalId, serviceName, servicePrice);\n\n return nextProposalId - 1;\n }\n\n /**\n * @dev Removes a proposal for an agent.\n * @param agent The address of the agent.\n * @param proposalId The ID of the proposal to remove.\n * @return true if the proposal was removed successfully, false otherwise.\n *\n * Requirements:\n *\n * - The caller must be the owner of the agent.\n * - The agent must be registered.\n * - The proposal must exist.\n *\n * Emits a {ProposalRemoved} event.\n */\n function removeProposal(address agent, uint256 proposalId) external onlyAgentOwner(agent) returns (bool) {\n require(proposals[proposalId].issuer == agent, \"ServiceProposal not found\");\n\n delete proposals[proposalId];\n emit ProposalRemoved(agent, proposalId);\n\n return true;\n }\n\n function addRating(address agent, uint256 _rating) public returns (uint256) {\n require(msg.sender == taskRegistry, \"Not the TaskRegistry contract\");\n require(_rating >= 0 && _rating <= 100, \"Rating must be between 0 and 100\");\n agents[agent].totalRatings += 1;\n agents[agent].reputation = (agents[agent].reputation * (agents[agent].totalRatings - 1) + _rating) / agents[agent].totalRatings;\n emit ReputationUpdated(agent, agents[agent].reputation);\n\n return agents[agent].reputation;\n }\n\n function getReputation(address agent) external view returns (uint256) {\n return agents[agent].reputation;\n }\n\n /**\n * @dev Returns the data of an agent.\n * @param _agent The address of the agent.\n * @return AgentData The data of the agent.\n */\n function getAgentData(address _agent) external view returns (AgentData memory\n ) {\n AgentData storage data = agents[_agent];\n return data;\n }\n\n\n function getProposal(uint256 proposalId) external view returns (ServiceProposal memory) {\n return proposals[proposalId];\n }\n}\n" + }, + "contracts/interfaces/IAgent.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\ninterface IAgent {\n struct Skill {\n string name;\n uint256 level;\n }\n\n event ReputationUpdated(address indexed agent, uint256 newReputation);\n \n function updateReputation(uint256 _reputation) external;\n function getSkills() external view returns (Skill[] memory);\n function getReputation() external view returns (uint256);\n}\n" }, "contracts/interfaces/IProposalStruct.sol": { - "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\ninterface IProposalStruct {\n struct Proposal {\n address issuer;\n string serviceName;\n uint256 price;\n uint256 proposalId;\n }\n}" + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\ninterface IProposalStruct {\n struct ServiceProposal {\n address issuer;\n string serviceName;\n uint256 price;\n uint256 proposalId;\n bool isActive;\n }\n}" + }, + "contracts/interfaces/ITask.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\ninterface ITask {\n enum TaskType { SIMPLE, COMPLEX, COMPOSITE }\n enum TaskStatus { CREATED, ASSIGNED, COMPLETED, FAILED }\n\n event TaskExecuted(uint256 indexed taskId, bool success);\n event TaskStatusChanged(uint256 indexed taskId, TaskStatus status);\n event TaskAssigned(uint256 indexed taskId, address assignee);\n \n function execute(bytes calldata data, address target, uint256 value) external returns (bool);\n function getStatus() external view returns (TaskStatus);\n function getAssignee() external view returns (address);\n}\n" }, "contracts/lib/TransferHelper.sol": { "content": "//SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\n// helper methods for interacting with ERC20 tokens and sending ETH that do not consistently return true/false\nlibrary TransferHelper {\n function safeApprove(\n address token,\n address to,\n uint256 value\n ) internal {\n // bytes4(keccak256(bytes('approve(address,uint256)')));\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));\n require(\n success && (data.length == 0 || abi.decode(data, (bool))),\n 'TransferHelper::safeApprove: approve failed'\n );\n }\n\n function safeTransfer(\n address token,\n address to,\n uint256 value\n ) internal {\n // bytes4(keccak256(bytes('transfer(address,uint256)')));\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));\n require(\n success && (data.length == 0 || abi.decode(data, (bool))),\n 'TransferHelper::safeTransfer: transfer failed'\n );\n }\n\n function safeTransferFrom(\n address token,\n address from,\n address to,\n uint256 value\n ) internal {\n // bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));\n require(\n success && (data.length == 0 || abi.decode(data, (bool))),\n 'TransferHelper::transferFrom: transferFrom failed'\n );\n }\n\n function safeTransferETH(address to, uint256 value) internal {\n (bool success, ) = to.call{value: value}(new bytes(0));\n require(success, 'TransferHelper::safeTransferETH: ETH transfer failed');\n }\n}" }, "contracts/ServiceRegistry.sol": { - "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n/**\n * @title ServiceRegistry\n * @author leonprou\n * @notice A smart contract that stores information about the services provided by agents.\n */\ncontract ServiceRegistry is Ownable {\n struct Service {\n string name;\n string category;\n string description;\n }\n\n mapping(string => Service) public services;\n uint256 public serviceCount;\n\n event ServiceRegistered(string name, string category, string description);\n event ServiceUpdated(string name, string category, string description);\n\n constructor() Ownable(msg.sender) {}\n\n /**\n * @dev Registers a new service with the given name and price.\n * @param name The name of the service.\n * @return The ID of the registered service.\n */\n function registerService(string memory name, string memory category, string memory description) external onlyOwner returns (Service memory) {\n require(!this.isServiceRegistered(name), \"Service already registered\");\n\n Service memory service = Service({\n name: name,\n category: category,\n description: description\n });\n\n services[name] = service;\n\n emit ServiceRegistered(name, category, description);\n\n serviceCount++;\n return service;\n }\n\n /**\n * @dev Retrieves the details of a service.\n * @param name The name of the service to retrieve.\n * @return The details of the service.\n */\n function getService(string memory name) external view returns (Service memory) {\n return services[name];\n }\n\n function isServiceRegistered(string memory name) external view returns (bool) {\n require(bytes(name).length > 0, \"Invalid service name\");\n\n return bytes(services[name].name).length > 0;\n }\n\n function updateService(string memory name, string memory category, string memory description) external onlyOwner {\n require(this.isServiceRegistered(name), \"Service not registered\");\n\n services[name] = Service({\n name: name,\n category: category,\n description: description\n });\n\n emit ServiceUpdated(name, category, description);\n }\n}\n" + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n/**\n * @title ServiceRegistry\n * @author leonprou\n * @notice A smart contract that stores information about the services provided by agents.\n */\ncontract ServiceRegistry is Ownable {\n struct Service {\n string name;\n string category;\n string description;\n }\n\n mapping(string => Service) public services;\n uint256 public serviceCount;\n\n event ServiceRegistered(string name, string category, string description);\n event ServiceUpdated(string name, string category, string description);\n\n constructor() Ownable(msg.sender) {}\n\n /**\n * @dev Registers a new service with the given name and price.\n * @param name The name of the service.\n * @return The ID of the registered service.\n */\n function registerService(string memory name, string memory category, string memory description) external returns (Service memory) {\n require(!this.isServiceRegistered(name), \"Service already registered\");\n\n Service memory service = Service({\n name: name,\n category: category,\n description: description\n });\n\n services[name] = service;\n\n emit ServiceRegistered(name, category, description);\n\n serviceCount++;\n return service;\n }\n\n /**\n * @dev Retrieves the details of a service.\n * @param name The name of the service to retrieve.\n * @return The details of the service.\n */\n function getService(string memory name) external view returns (Service memory) {\n return services[name];\n }\n\n function isServiceRegistered(string memory name) external view returns (bool) {\n require(bytes(name).length > 0, \"Invalid service name\");\n\n return bytes(services[name].name).length > 0;\n }\n\n function updateService(string memory name, string memory category, string memory description) external onlyOwner {\n require(this.isServiceRegistered(name), \"Service not registered\");\n\n services[name] = Service({\n name: name,\n category: category,\n description: description\n });\n\n emit ServiceUpdated(name, category, description);\n }\n}\n" }, "contracts/TaskRegistry.sol": { - "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"./interfaces/IProposalStruct.sol\";\nimport \"./AgentsRegistry.sol\";\nimport \"./lib/TransferHelper.sol\";\n\n/**\n * @title TaskRegistry\n * @author leonprou\n * @notice A smart contract that stores information about the tasks issued for the agent service providers.\n */\ncontract TaskRegistry is Ownable, IProposalStruct {\n\n enum TaskStatus { CREATED, ASSIGNED, COMPLETED, FAILED }\n\n struct TaskData {\n uint256 id;\n string prompt;\n address issuer;\n TaskStatus status;\n address assignee;\n uint256 proposalId;\n string result;\n }\n \n mapping(uint256 => TaskData) public tasks;\n mapping(address => uint256[]) public issuerTasks;\n uint256 private nextTaskId;\n AgentsRegistry public agentRegistry;\n constructor(AgentsRegistry _agentRegistry) Ownable(msg.sender) {\n agentRegistry = _agentRegistry;\n }\n \n event TaskCreated(address indexed issuer, address indexed assignee, uint256 taskId, uint256 proposalId, string prompt);\n event TaskStatusChanged(uint256 indexed taskId, TaskStatus status);\n event TaskAssigned(uint256 indexed taskId, address indexed agent);\n event ProposalApproved(uint256 indexed taskId, Proposal proposal);\n event TaskCompleted(uint256 indexed taskId, string result);\n\n /**\n * @dev Creates a new task with the given prompt and task type.\n * @param prompt The description or prompt of the task.\n * @return taskId The ID of the newly created task.\n */\n function createTask(\n string memory prompt,\n uint256 proposalId\n ) external payable returns (TaskData memory) {\n Proposal memory proposal = agentRegistry.getProposal(proposalId);\n require(proposal.issuer != address(0), \"Proposal not found\");\n require(proposal.price == msg.value, \"Invalid price\");\n\n TaskData storage task = tasks[nextTaskId];\n task.id = nextTaskId;\n task.prompt = prompt;\n task.issuer = msg.sender;\n task.proposalId = proposalId;\n task.assignee = proposal.issuer;\n issuerTasks[msg.sender].push(nextTaskId);\n task.status = TaskStatus.ASSIGNED;\n emit TaskCreated(msg.sender, proposal.issuer, nextTaskId, proposal.proposalId, prompt);\n\n nextTaskId++;\n return task;\n }\n\n /**\n * @dev Completes a task with the given result.\n * @param taskId The ID of the task.\n * @param result The result or output of the completed task.\n */\n function completeTask(uint256 taskId, string memory result) external {\n TaskData storage task = tasks[taskId];\n require(msg.sender == task.assignee || msg.sender == owner(), \"Not authorized\");\n require(task.status == TaskStatus.ASSIGNED, \"Invalid task status\");\n\n task.status = TaskStatus.COMPLETED;\n task.result = result;\n Proposal memory proposal = agentRegistry.getProposal(task.proposalId);\n \n TransferHelper.safeTransferETH(proposal.issuer, proposal.price);\n\n emit TaskStatusChanged(taskId, task.status);\n emit TaskCompleted(taskId, result);\n }\n\n\n function getTasksByIssuer(address issuer) external view returns (uint256[] memory) {\n return issuerTasks[issuer];\n }\n\n function getTask(uint256 taskId) external view returns (TaskData memory) {\n return tasks[taskId];\n }\n\n function getStatus(uint256 taskId) external view returns (TaskStatus) {\n return tasks[taskId].status;\n }\n \n function getAssignee(uint256 taskId) external view returns (address) {\n return tasks[taskId].assignee;\n }\n}\n" + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"./interfaces/IProposalStruct.sol\";\nimport \"./AgentsRegistry.sol\";\nimport \"./lib/TransferHelper.sol\";\n\n/**\n * @title TaskRegistry\n * @author leonprou\n * @notice A smart contract that stores information about the tasks issued for the agent service providers.\n */\ncontract TaskRegistry is Ownable, IProposalStruct {\n\n enum TaskStatus { CREATED, ASSIGNED, COMPLETED, CANCELED }\n\n struct TaskData {\n uint256 id;\n string prompt;\n address issuer;\n TaskStatus status;\n address assignee;\n uint256 proposalId;\n string result;\n uint8 rating;\n }\n \n mapping(uint256 => TaskData) public tasks;\n mapping(address => uint256[]) public issuerTasks;\n uint256 private nextTaskId;\n AgentsRegistry public agentRegistry;\n\n modifier onlyTaskIssuer(uint256 taskId) {\n require(msg.sender == tasks[taskId].issuer, \"Not the issuer of the task\");\n _;\n }\n constructor(AgentsRegistry _agentRegistry) Ownable(msg.sender) {\n agentRegistry = _agentRegistry;\n nextTaskId = 1;\n }\n \n event TaskCreated(address indexed issuer, address indexed assignee, uint256 taskId, uint256 proposalId, string prompt);\n event TaskStatusChanged(uint256 indexed taskId, TaskStatus status);\n event TaskAssigned(uint256 indexed taskId, address indexed agent);\n event TaskCanceled(uint256 indexed taskId);\n event ProposalApproved(uint256 indexed taskId, ServiceProposal proposal);\n event TaskCompleted(uint256 indexed taskId, string result);\n event TaskRated(uint256 indexed taskId, uint8 rating);\n /**\n * @dev Creates a new task with the given prompt and task type.\n * @param prompt The description or prompt of the task.\n * @return taskId The ID of the newly created task.\n */\n function createTask(\n string memory prompt,\n uint256 proposalId\n ) external payable returns (TaskData memory) {\n ServiceProposal memory proposal = agentRegistry.getProposal(proposalId);\n require(proposal.issuer != address(0), \"ServiceProposal not found\");\n require(proposal.price == msg.value, \"Invalid price\");\n\n TaskData storage task = tasks[nextTaskId];\n task.id = nextTaskId;\n task.prompt = prompt;\n task.issuer = msg.sender;\n task.proposalId = proposalId;\n task.assignee = proposal.issuer;\n issuerTasks[msg.sender].push(nextTaskId);\n task.status = TaskStatus.ASSIGNED;\n emit TaskCreated(msg.sender, proposal.issuer, nextTaskId, proposal.proposalId, prompt);\n\n nextTaskId++;\n return task;\n }\n\n /**\n * @dev Completes a task with the given result.\n * @param taskId The ID of the task.\n * @param result The result or output of the completed task.\n */\n function completeTask(uint256 taskId, string memory result) external {\n TaskData storage task = tasks[taskId];\n require(msg.sender == task.assignee, \"Not authorized\");\n require(task.status == TaskStatus.ASSIGNED, \"Invalid task status\");\n\n task.status = TaskStatus.COMPLETED;\n task.result = result;\n ServiceProposal memory proposal = agentRegistry.getProposal(task.proposalId);\n \n TransferHelper.safeTransferETH(proposal.issuer, proposal.price);\n\n emit TaskStatusChanged(taskId, task.status);\n emit TaskCompleted(taskId, result);\n }\n\n /**\n * @dev Rated a completed task, called by the task issuer\n * @param taskId The ID of the task.\n * @param rating task rating from 0 to 100.\n */ \n function rateTask(uint256 taskId, uint8 rating) onlyTaskIssuer(taskId) external {\n TaskData storage task = tasks[taskId];\n\n require(task.status == TaskStatus.COMPLETED, \"Task is not completed\");\n require(task.rating == 0, \"Task got rating already\");\n require(rating >= 0 && rating <= 100, \"Rating must be between 0 and 100\");\n \n task.rating = rating;\n ServiceProposal memory proposal = agentRegistry.getProposal(task.proposalId);\n\n agentRegistry.addRating(proposal.issuer, rating);\n\n emit TaskRated(taskId, rating);\n }\n\n /**\n * @dev Cancels a task that is in ASSIGNED status and refunds the payment.\n * @param taskId The ID of the task to cancel.\n */\n function cancelTask(uint256 taskId) external onlyTaskIssuer(taskId) {\n TaskData storage task = tasks[taskId];\n require(task.status != TaskStatus.COMPLETED && task.status != TaskStatus.CANCELED, \"Task cannot be canceled\");\n \n task.status = TaskStatus.CANCELED;\n ServiceProposal memory proposal = agentRegistry.getProposal(task.proposalId);\n \n // Refund the payment to the issuer\n TransferHelper.safeTransferETH(task.issuer, proposal.price);\n \n emit TaskStatusChanged(taskId, task.status);\n emit TaskCanceled(taskId);\n }\n\n function getTasksByIssuer(address issuer) external view returns (uint256[] memory) {\n return issuerTasks[issuer];\n }\n\n function getTask(uint256 taskId) external view returns (TaskData memory) {\n return tasks[taskId];\n }\n\n function getStatus(uint256 taskId) external view returns (TaskStatus) {\n return tasks[taskId].status;\n }\n \n function getAssignee(uint256 taskId) external view returns (address) {\n return tasks[taskId].assignee;\n }\n}\n" } }, "settings": { @@ -2114,22 +2120,22 @@ "absolutePath": "contracts/AgentsRegistry.sol", "exportedSymbols": { "AgentsRegistry": [ - 506 + 670 ], "Context": [ 177 ], "IProposalStruct": [ - 1040 + 1404 ], "Ownable": [ 147 ], "ServiceRegistry": [ - 682 + 844 ] }, - "id": 507, + "id": 671, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ @@ -2150,8 +2156,8 @@ "id": 180, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 507, - "sourceUnit": 683, + "scope": 671, + "sourceUnit": 845, "src": "58:31:2", "symbolAliases": [], "unitAlias": "" @@ -2162,7 +2168,7 @@ "id": 181, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 507, + "scope": 671, "sourceUnit": 148, "src": "90:52:2", "symbolAliases": [], @@ -2174,8 +2180,8 @@ "id": 182, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 507, - "sourceUnit": 1041, + "scope": 671, + "sourceUnit": 1405, "src": "143:42:2", "symbolAliases": [], "unitAlias": "" @@ -2206,7 +2212,7 @@ "398:15:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1040, + "referencedDeclaration": 1404, "src": "398:15:2" }, "id": 187, @@ -2224,10 +2230,10 @@ "text": " @title AgentsRegistry\n @author leonprou\n @notice A smart contract that stores information about the agents, and the services proposals provided by the agents." }, "fullyImplemented": true, - "id": 506, + "id": 670, "linearizedBaseContracts": [ - 506, - 1040, + 670, + 1404, 147, 177 ], @@ -2237,7 +2243,7 @@ "nodes": [ { "canonicalName": "AgentsRegistry.AgentData", - "id": 204, + "id": 200, "members": [ { "constant": false, @@ -2246,7 +2252,7 @@ "name": "name", "nameLocation": "455:4:2", "nodeType": "VariableDeclaration", - "scope": 204, + "scope": 200, "src": "448:11:2", "stateVariable": false, "storageLocation": "default", @@ -2273,7 +2279,7 @@ "name": "agentUri", "nameLocation": "476:8:2", "nodeType": "VariableDeclaration", - "scope": 204, + "scope": 200, "src": "469:15:2", "stateVariable": false, "storageLocation": "default", @@ -2300,7 +2306,7 @@ "name": "owner", "nameLocation": "502:5:2", "nodeType": "VariableDeclaration", - "scope": 204, + "scope": 200, "src": "494:13:2", "stateVariable": false, "storageLocation": "default", @@ -2328,7 +2334,7 @@ "name": "agent", "nameLocation": "525:5:2", "nodeType": "VariableDeclaration", - "scope": 204, + "scope": 200, "src": "517:13:2", "stateVariable": false, "storageLocation": "default", @@ -2356,7 +2362,7 @@ "name": "reputation", "nameLocation": "548:10:2", "nodeType": "VariableDeclaration", - "scope": 204, + "scope": 200, "src": "540:18:2", "stateVariable": false, "storageLocation": "default", @@ -2380,71 +2386,25 @@ "constant": false, "id": 199, "mutability": "mutable", - "name": "isRegistered", - "nameLocation": "573:12:2", + "name": "totalRatings", + "nameLocation": "576:12:2", "nodeType": "VariableDeclaration", - "scope": 204, - "src": "568:17:2", + "scope": 200, + "src": "568:20:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { "id": 198, - "name": "bool", + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "568:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 203, - "mutability": "mutable", - "name": "proposals", - "nameLocation": "606:9:2", - "nodeType": "VariableDeclaration", - "scope": 204, - "src": "595:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Proposal_$1039_storage_$dyn_storage_ptr", - "typeString": "struct IProposalStruct.Proposal[]" - }, - "typeName": { - "baseType": { - "id": 201, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 200, - "name": "Proposal", - "nameLocations": [ - "595:8:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1039, - "src": "595:8:2" - }, - "referencedDeclaration": 1039, - "src": "595:8:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_storage_ptr", - "typeString": "struct IProposalStruct.Proposal" - } - }, - "id": 202, - "nodeType": "ArrayTypeName", - "src": "595:10:2", + "src": "568:7:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Proposal_$1039_storage_$dyn_storage_ptr", - "typeString": "struct IProposalStruct.Proposal[]" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "visibility": "internal" @@ -2453,103 +2413,132 @@ "name": "AgentData", "nameLocation": "428:9:2", "nodeType": "StructDefinition", - "scope": 506, - "src": "421:201:2", + "scope": 670, + "src": "421:174:2", "visibility": "public" }, { "constant": false, "functionSelector": "cbcf252a", - "id": 207, + "id": 203, "mutability": "mutable", "name": "serviceRegistry", - "nameLocation": "651:15:2", + "nameLocation": "624:15:2", "nodeType": "VariableDeclaration", - "scope": 506, - "src": "628:38:2", + "scope": 670, + "src": "601:38:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", + "typeIdentifier": "t_contract$_ServiceRegistry_$844", "typeString": "contract ServiceRegistry" }, "typeName": { - "id": 206, + "id": 202, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 205, + "id": 201, "name": "ServiceRegistry", "nameLocations": [ - "628:15:2" + "601:15:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 682, - "src": "628:15:2" + "referencedDeclaration": 844, + "src": "601:15:2" }, - "referencedDeclaration": 682, - "src": "628:15:2", + "referencedDeclaration": 844, + "src": "601:15:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", + "typeIdentifier": "t_contract$_ServiceRegistry_$844", "typeString": "contract ServiceRegistry" } }, "visibility": "public" }, + { + "constant": false, + "functionSelector": "9e498f16", + "id": 205, + "mutability": "mutable", + "name": "taskRegistry", + "nameLocation": "660:12:2", + "nodeType": "VariableDeclaration", + "scope": 670, + "src": "645:27:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 204, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "645:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, { "constant": false, "functionSelector": "fd66091e", - "id": 212, + "id": 210, "mutability": "mutable", "name": "agents", - "nameLocation": "709:6:2", + "nameLocation": "716:6:2", "nodeType": "VariableDeclaration", - "scope": 506, - "src": "672:43:2", + "scope": 670, + "src": "679:43:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$200_storage_$", "typeString": "mapping(address => struct AgentsRegistry.AgentData)" }, "typeName": { - "id": 211, + "id": 209, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 208, + "id": 206, "name": "address", "nodeType": "ElementaryTypeName", - "src": "680:7:2", + "src": "687:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "672:29:2", + "src": "679:29:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$200_storage_$", "typeString": "mapping(address => struct AgentsRegistry.AgentData)" }, "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 210, + "id": 208, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 209, + "id": 207, "name": "AgentData", "nameLocations": [ - "691:9:2" + "698:9:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 204, - "src": "691:9:2" + "referencedDeclaration": 200, + "src": "698:9:2" }, - "referencedDeclaration": 204, - "src": "691:9:2", + "referencedDeclaration": 200, + "src": "698:9:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", + "typeIdentifier": "t_struct$_AgentData_$200_storage_ptr", "typeString": "struct AgentsRegistry.AgentData" } } @@ -2559,46 +2548,60 @@ { "constant": false, "functionSelector": "013cf08b", - "id": 216, + "id": 215, "mutability": "mutable", "name": "proposals", - "nameLocation": "739:9:2", + "nameLocation": "771:9:2", "nodeType": "VariableDeclaration", - "scope": 506, - "src": "721:27:2", + "scope": 670, + "src": "728:52:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Proposal_$1039_storage_$dyn_storage", - "typeString": "struct IProposalStruct.Proposal[]" + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_ServiceProposal_$1403_storage_$", + "typeString": "mapping(uint256 => struct IProposalStruct.ServiceProposal)" }, "typeName": { - "baseType": { - "id": 214, + "id": 214, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "736:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "728:35:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_ServiceProposal_$1403_storage_$", + "typeString": "mapping(uint256 => struct IProposalStruct.ServiceProposal)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 213, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 213, - "name": "Proposal", + "id": 212, + "name": "ServiceProposal", "nameLocations": [ - "721:8:2" + "747:15:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1039, - "src": "721:8:2" + "referencedDeclaration": 1403, + "src": "747:15:2" }, - "referencedDeclaration": 1039, - "src": "721:8:2", + "referencedDeclaration": 1403, + "src": "747:15:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_storage_ptr", - "typeString": "struct IProposalStruct.Proposal" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_storage_ptr", + "typeString": "struct IProposalStruct.ServiceProposal" } - }, - "id": 215, - "nodeType": "ArrayTypeName", - "src": "721:10:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Proposal_$1039_storage_$dyn_storage_ptr", - "typeString": "struct IProposalStruct.Proposal[]" } }, "visibility": "public" @@ -2606,13 +2609,13 @@ { "constant": false, "functionSelector": "2ab09d14", - "id": 218, + "id": 217, "mutability": "mutable", "name": "nextProposalId", - "nameLocation": "769:14:2", + "nameLocation": "801:14:2", "nodeType": "VariableDeclaration", - "scope": 506, - "src": "754:29:2", + "scope": 670, + "src": "786:29:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2620,10 +2623,10 @@ "typeString": "uint256" }, "typeName": { - "id": 217, + "id": 216, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "754:7:2", + "src": "786:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2633,81 +2636,126 @@ }, { "body": { - "id": 231, + "id": 233, "nodeType": "Block", - "src": "829:87:2", + "src": "861:100:2", "statements": [ { "expression": { "arguments": [ { - "expression": { - "baseExpression": { - "id": 223, - "name": "agents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "847:6:2", + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 222, + "name": "agents", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 210, + "src": "879:6:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$200_storage_$", + "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" + } + }, + "id": 224, + "indexExpression": { + "id": 223, + "name": "agent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 219, + "src": "886:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "879:13:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" + "typeIdentifier": "t_struct$_AgentData_$200_storage", + "typeString": "struct AgentsRegistry.AgentData storage ref" } }, "id": 225, - "indexExpression": { - "id": 224, - "name": "agent", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "893:5:2", + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 193, + "src": "879:19:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 226, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "854:5:2", + "referencedDeclaration": -15, + "src": "902:3:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, + "id": 227, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "847:13:2", + "memberLocation": "906:6:2", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "902:10:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage", - "typeString": "struct AgentsRegistry.AgentData storage ref" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 226, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "861:12:2", - "memberName": "isRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 199, - "src": "847:26:2", + "src": "879:33:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "hexValue": "4167656e74206e6f742072656769737465726564", - "id": 227, + "hexValue": "4e6f7420746865206f776e6572206f6620746865206167656e74", + "id": 229, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "875:22:2", + "src": "914:28:2", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6b24a63f053c9f60b33a6142346432678adff778fb93a8ecec9013d5a898e395", - "typeString": "literal_string \"Agent not registered\"" + "typeIdentifier": "t_stringliteral_333080ba9ab8738c4a0b47b5b79d2c142d573a23f488baafda66363f88786955", + "typeString": "literal_string \"Not the owner of the agent\"" }, - "value": "Agent not registered" + "value": "Not the owner of the agent" } ], "expression": { @@ -2717,11 +2765,11 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_6b24a63f053c9f60b33a6142346432678adff778fb93a8ecec9013d5a898e395", - "typeString": "literal_string \"Agent not registered\"" + "typeIdentifier": "t_stringliteral_333080ba9ab8738c4a0b47b5b79d2c142d573a23f488baafda66363f88786955", + "typeString": "literal_string \"Not the owner of the agent\"" } ], - "id": 222, + "id": 221, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2729,13 +2777,13 @@ -18 ], "referencedDeclaration": -18, - "src": "839:7:2", + "src": "871:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 228, + "id": 230, "isConstant": false, "isLValue": false, "isPure": false, @@ -2744,41 +2792,41 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "839:59:2", + "src": "871:72:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 229, + "id": 231, "nodeType": "ExpressionStatement", - "src": "839:59:2" + "src": "871:72:2" }, { - "id": 230, + "id": 232, "nodeType": "PlaceholderStatement", - "src": "908:1:2" + "src": "953:1:2" } ] }, - "id": 232, - "name": "onlyRegistered", - "nameLocation": "799:14:2", + "id": 234, + "name": "onlyAgentOwner", + "nameLocation": "831:14:2", "nodeType": "ModifierDefinition", "parameters": { - "id": 221, + "id": 220, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 220, + "id": 219, "mutability": "mutable", "name": "agent", - "nameLocation": "822:5:2", + "nameLocation": "854:5:2", "nodeType": "VariableDeclaration", - "scope": 232, - "src": "814:13:2", + "scope": 234, + "src": "846:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2786,10 +2834,10 @@ "typeString": "address" }, "typeName": { - "id": 219, + "id": 218, "name": "address", "nodeType": "ElementaryTypeName", - "src": "814:7:2", + "src": "846:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2799,64 +2847,111 @@ "visibility": "internal" } ], - "src": "813:15:2" + "src": "845:15:2" }, - "src": "790:126:2", + "src": "822:139:2", "virtual": false, "visibility": "internal" }, { "body": { - "id": 246, + "id": 252, "nodeType": "Block", - "src": "988:51:2", + "src": "1033:79:2", "statements": [ { "expression": { - "id": 244, + "id": 246, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 242, + "id": 244, "name": "serviceRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "998:15:2", + "referencedDeclaration": 203, + "src": "1043:15:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", + "typeIdentifier": "t_contract$_ServiceRegistry_$844", "typeString": "contract ServiceRegistry" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 243, + "id": 245, "name": "_serviceRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "1016:16:2", + "referencedDeclaration": 237, + "src": "1061:16:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", + "typeIdentifier": "t_contract$_ServiceRegistry_$844", "typeString": "contract ServiceRegistry" } }, - "src": "998:34:2", + "src": "1043:34:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", + "typeIdentifier": "t_contract$_ServiceRegistry_$844", "typeString": "contract ServiceRegistry" } }, - "id": 245, + "id": 247, + "nodeType": "ExpressionStatement", + "src": "1043:34:2" + }, + { + "expression": { + "id": 250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 248, + "name": "nextProposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "1087:14:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "31", + "id": 249, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1104:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1087:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 251, "nodeType": "ExpressionStatement", - "src": "998:34:2" + "src": "1087:18:2" } ] }, - "id": 247, + "id": 253, "implemented": true, "kind": "constructor", "modifiers": [ @@ -2864,103 +2959,103 @@ "arguments": [ { "expression": { - "id": 238, + "id": 240, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "976:3:2", + "src": "1021:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 239, + "id": 241, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "980:6:2", + "memberLocation": "1025:6:2", "memberName": "sender", "nodeType": "MemberAccess", - "src": "976:10:2", + "src": "1021:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 240, + "id": 242, "kind": "baseConstructorSpecifier", "modifierName": { - "id": 237, + "id": 239, "name": "Ownable", "nameLocations": [ - "968:7:2" + "1013:7:2" ], "nodeType": "IdentifierPath", "referencedDeclaration": 147, - "src": "968:7:2" + "src": "1013:7:2" }, "nodeType": "ModifierInvocation", - "src": "968:19:2" + "src": "1013:19:2" } ], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 236, + "id": 238, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 235, + "id": 237, "mutability": "mutable", "name": "_serviceRegistry", - "nameLocation": "950:16:2", + "nameLocation": "995:16:2", "nodeType": "VariableDeclaration", - "scope": 247, - "src": "934:32:2", + "scope": 253, + "src": "979:32:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", + "typeIdentifier": "t_contract$_ServiceRegistry_$844", "typeString": "contract ServiceRegistry" }, "typeName": { - "id": 234, + "id": 236, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 233, + "id": 235, "name": "ServiceRegistry", "nameLocations": [ - "934:15:2" + "979:15:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 682, - "src": "934:15:2" + "referencedDeclaration": 844, + "src": "979:15:2" }, - "referencedDeclaration": 682, - "src": "934:15:2", + "referencedDeclaration": 844, + "src": "979:15:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", + "typeIdentifier": "t_contract$_ServiceRegistry_$844", "typeString": "contract ServiceRegistry" } }, "visibility": "internal" } ], - "src": "933:34:2" + "src": "978:34:2" }, "returnParameters": { - "id": 241, + "id": 243, "nodeType": "ParameterList", "parameters": [], - "src": "988:0:2" + "src": "1033:0:2" }, - "scope": 506, - "src": "922:117:2", + "scope": 670, + "src": "967:145:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" @@ -2968,24 +3063,24 @@ { "anonymous": false, "eventSelector": "2a562efb52e7cec209321f57200606311256da6d2a1b19d44db7837a3209de28", - "id": 257, + "id": 263, "name": "AgentRegistered", - "nameLocation": "1051:15:2", + "nameLocation": "1124:15:2", "nodeType": "EventDefinition", "parameters": { - "id": 256, + "id": 262, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 249, + "id": 255, "indexed": true, "mutability": "mutable", "name": "agent", - "nameLocation": "1083:5:2", + "nameLocation": "1156:5:2", "nodeType": "VariableDeclaration", - "scope": 257, - "src": "1067:21:2", + "scope": 263, + "src": "1140:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2993,10 +3088,10 @@ "typeString": "address" }, "typeName": { - "id": 248, + "id": 254, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1067:7:2", + "src": "1140:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3007,14 +3102,14 @@ }, { "constant": false, - "id": 251, + "id": 257, "indexed": true, "mutability": "mutable", "name": "owner", - "nameLocation": "1106:5:2", + "nameLocation": "1179:5:2", "nodeType": "VariableDeclaration", - "scope": 257, - "src": "1090:21:2", + "scope": 263, + "src": "1163:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3022,10 +3117,10 @@ "typeString": "address" }, "typeName": { - "id": 250, + "id": 256, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1090:7:2", + "src": "1163:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3036,14 +3131,14 @@ }, { "constant": false, - "id": 253, + "id": 259, "indexed": false, "mutability": "mutable", "name": "name", - "nameLocation": "1120:4:2", + "nameLocation": "1193:4:2", "nodeType": "VariableDeclaration", - "scope": 257, - "src": "1113:11:2", + "scope": 263, + "src": "1186:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3051,10 +3146,10 @@ "typeString": "string" }, "typeName": { - "id": 252, + "id": 258, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1113:6:2", + "src": "1186:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3064,14 +3159,14 @@ }, { "constant": false, - "id": 255, + "id": 261, "indexed": false, "mutability": "mutable", "name": "agentUri", - "nameLocation": "1133:8:2", + "nameLocation": "1206:8:2", "nodeType": "VariableDeclaration", - "scope": 257, - "src": "1126:15:2", + "scope": 263, + "src": "1199:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3079,10 +3174,10 @@ "typeString": "string" }, "typeName": { - "id": 254, + "id": 260, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1126:6:2", + "src": "1199:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3091,89 +3186,16 @@ "visibility": "internal" } ], - "src": "1066:76:2" + "src": "1139:76:2" }, - "src": "1045:98:2" + "src": "1118:98:2" }, { "anonymous": false, "eventSelector": "fc577563f1b9a0461e24abef1e1fcc0d33d3d881f20b5df6dda59de4aae2c821", - "id": 263, - "name": "ReputationUpdated", - "nameLocation": "1154:17:2", - "nodeType": "EventDefinition", - "parameters": { - "id": 262, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 259, - "indexed": true, - "mutability": "mutable", - "name": "agent", - "nameLocation": "1188:5:2", - "nodeType": "VariableDeclaration", - "scope": 263, - "src": "1172:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 258, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1172:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 261, - "indexed": false, - "mutability": "mutable", - "name": "newReputation", - "nameLocation": "1203:13:2", - "nodeType": "VariableDeclaration", - "scope": 263, - "src": "1195:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 260, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1195:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1171:46:2" - }, - "src": "1148:70:2" - }, - { - "anonymous": false, - "eventSelector": "4a7780b7f79e16baaacac40fb37edda816d999f4bb8a380012a27164eab18387", "id": 269, - "name": "ServiceAdded", - "nameLocation": "1229:12:2", + "name": "ReputationUpdated", + "nameLocation": "1227:17:2", "nodeType": "EventDefinition", "parameters": { "id": 268, @@ -3185,10 +3207,10 @@ "indexed": true, "mutability": "mutable", "name": "agent", - "nameLocation": "1258:5:2", + "nameLocation": "1261:5:2", "nodeType": "VariableDeclaration", "scope": 269, - "src": "1242:21:2", + "src": "1245:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3199,7 +3221,7 @@ "id": 264, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1242:7:2", + "src": "1245:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3213,11 +3235,11 @@ "id": 267, "indexed": false, "mutability": "mutable", - "name": "name", - "nameLocation": "1273:4:2", + "name": "newReputation", + "nameLocation": "1276:13:2", "nodeType": "VariableDeclaration", "scope": 269, - "src": "1265:12:2", + "src": "1268:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3228,7 +3250,7 @@ "id": 266, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1265:7:2", + "src": "1268:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3237,16 +3259,16 @@ "visibility": "internal" } ], - "src": "1241:37:2" + "src": "1244:46:2" }, - "src": "1223:56:2" + "src": "1221:70:2" }, { "anonymous": false, "eventSelector": "e194e0bc2279adb185c748ae57db10fe2ef1005a1b5646f96235a881c88ddb79", "id": 279, "name": "ProposalAdded", - "nameLocation": "1290:13:2", + "nameLocation": "1303:13:2", "nodeType": "EventDefinition", "parameters": { "id": 278, @@ -3258,10 +3280,10 @@ "indexed": true, "mutability": "mutable", "name": "agent", - "nameLocation": "1320:5:2", + "nameLocation": "1333:5:2", "nodeType": "VariableDeclaration", "scope": 279, - "src": "1304:21:2", + "src": "1317:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3272,7 +3294,7 @@ "id": 270, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1304:7:2", + "src": "1317:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3287,10 +3309,10 @@ "indexed": false, "mutability": "mutable", "name": "proposalId", - "nameLocation": "1335:10:2", + "nameLocation": "1348:10:2", "nodeType": "VariableDeclaration", "scope": 279, - "src": "1327:18:2", + "src": "1340:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3301,7 +3323,7 @@ "id": 272, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1327:7:2", + "src": "1340:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3315,10 +3337,10 @@ "indexed": false, "mutability": "mutable", "name": "name", - "nameLocation": "1354:4:2", + "nameLocation": "1367:4:2", "nodeType": "VariableDeclaration", "scope": 279, - "src": "1347:11:2", + "src": "1360:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3329,7 +3351,7 @@ "id": 274, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1347:6:2", + "src": "1360:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3343,10 +3365,10 @@ "indexed": false, "mutability": "mutable", "name": "price", - "nameLocation": "1368:5:2", + "nameLocation": "1381:5:2", "nodeType": "VariableDeclaration", "scope": 279, - "src": "1360:13:2", + "src": "1373:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3357,7 +3379,181 @@ "id": 276, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1360:7:2", + "src": "1373:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1316:71:2" + }, + "src": "1297:91:2" + }, + { + "anonymous": false, + "eventSelector": "45204680e8152470a4bb058a5049426c93d82614d97945e5b6541e67aba4a8f2", + "id": 285, + "name": "ProposalRemoved", + "nameLocation": "1399:15:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 284, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 281, + "indexed": true, + "mutability": "mutable", + "name": "agent", + "nameLocation": "1431:5:2", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "1415:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 280, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1415:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 283, + "indexed": false, + "mutability": "mutable", + "name": "proposalId", + "nameLocation": "1446:10:2", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "1438:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 282, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1438:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1414:43:2" + }, + "src": "1393:65:2" + }, + { + "anonymous": false, + "eventSelector": "17dd2a9ef057d20a43841bf09ed21fb534caf511918c6eaf5edb9f265c5cdb66", + "id": 293, + "name": "ProposalUpdated", + "nameLocation": "1469:15:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 287, + "indexed": true, + "mutability": "mutable", + "name": "agent", + "nameLocation": "1501:5:2", + "nodeType": "VariableDeclaration", + "scope": 293, + "src": "1485:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 286, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1485:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 289, + "indexed": false, + "mutability": "mutable", + "name": "proposalId", + "nameLocation": "1516:10:2", + "nodeType": "VariableDeclaration", + "scope": 293, + "src": "1508:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1508:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 291, + "indexed": false, + "mutability": "mutable", + "name": "price", + "nameLocation": "1536:5:2", + "nodeType": "VariableDeclaration", + "scope": 293, + "src": "1528:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1528:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3366,102 +3562,125 @@ "visibility": "internal" } ], - "src": "1303:71:2" + "src": "1484:58:2" }, - "src": "1284:91:2" + "src": "1463:80:2" }, { "body": { - "id": 401, + "id": 315, "nodeType": "Block", - "src": "2189:820:2", + "src": "1765:110:2", "statements": [ { "expression": { "arguments": [ { - "id": 300, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2207:27:2", - "subExpression": { - "expression": { - "baseExpression": { - "id": 296, - "name": "agents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "2208:6:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" - } - }, - "id": 298, - "indexExpression": { - "id": 297, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "2215:5:2", + "leftExpression": { + "id": 302, + "name": "_taskRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 296, + "src": "1783:13:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 305, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1808:1:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } - }, + ], + "id": 304, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2208:13:2", + "nodeType": "ElementaryTypeNameExpression", + "src": "1800:7:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage", - "typeString": "struct AgentsRegistry.AgentData storage ref" + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 303, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1800:7:2", + "typeDescriptions": {} } }, - "id": 299, + "id": 306, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, - "memberLocation": "2222:12:2", - "memberName": "isRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 199, - "src": "2208:26:2", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1800:10:2", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, + "src": "1783:27:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "hexValue": "4167656e7420616c72656164792072656769737465726564", - "id": 301, + "hexValue": "496e76616c69642061646472657373", + "id": 308, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2236:26:2", + "src": "1812:17:2", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3c17f52d7f382f39131bc893c7e27e69aa71bee31c68e2de3649b59b8bfebc2b", - "typeString": "literal_string \"Agent already registered\"" + "typeIdentifier": "t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226", + "typeString": "literal_string \"Invalid address\"" }, - "value": "Agent already registered" + "value": "Invalid address" } ], "expression": { @@ -3471,11 +3690,11 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_3c17f52d7f382f39131bc893c7e27e69aa71bee31c68e2de3649b59b8bfebc2b", - "typeString": "literal_string \"Agent already registered\"" + "typeIdentifier": "t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226", + "typeString": "literal_string \"Invalid address\"" } ], - "id": 295, + "id": 301, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3483,13 +3702,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2199:7:2", + "src": "1775:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 302, + "id": 309, "isConstant": false, "isLValue": false, "isPure": false, @@ -3498,100 +3717,255 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2199:64:2", + "src": "1775:55:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 303, + "id": 310, "nodeType": "ExpressionStatement", - "src": "2199:64:2" + "src": "1775:55:2" + }, + { + "expression": { + "id": 313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 311, + "name": "taskRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "1840:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 312, + "name": "_taskRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 296, + "src": "1855:13:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1840:28:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 314, + "nodeType": "ExpressionStatement", + "src": "1840:28:2" + } + ] + }, + "documentation": { + "id": 294, + "nodeType": "StructuredDocumentation", + "src": "1553:140:2", + "text": " @dev Sets the address of the TaskRegistry contract.\n @param _taskRegistry The address of the TaskRegistry contract." + }, + "functionSelector": "b2d78069", + "id": 316, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 299, + "kind": "modifierInvocation", + "modifierName": { + "id": 298, + "name": "onlyOwner", + "nameLocations": [ + "1755:9:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "1755:9:2" }, + "nodeType": "ModifierInvocation", + "src": "1755:9:2" + } + ], + "name": "setTaskRegistry", + "nameLocation": "1707:15:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 297, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 296, + "mutability": "mutable", + "name": "_taskRegistry", + "nameLocation": "1731:13:2", + "nodeType": "VariableDeclaration", + "scope": 316, + "src": "1723:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 295, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1723:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1722:23:2" + }, + "returnParameters": { + "id": 300, + "nodeType": "ParameterList", + "parameters": [], + "src": "1765:0:2" + }, + "scope": 670, + "src": "1698:177:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 340, + "nodeType": "Block", + "src": "2108:136:2", + "statements": [ { "expression": { "arguments": [ { - "arguments": [ - { - "id": 307, - "name": "serviceName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 288, - "src": "2317:11:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 325, + "name": "_serviceRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 319, + "src": "2126:16:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } - ], - "expression": { - "argumentTypes": [ + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" + "hexValue": "30", + "id": 328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2154:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" } ], "expression": { - "id": 305, - "name": "serviceRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "2281:15:2", + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2146:7:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", - "typeString": "contract ServiceRegistry" + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 326, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2146:7:2", + "typeDescriptions": {} } }, - "id": 306, + "id": 329, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, - "memberLocation": "2297:19:2", - "memberName": "isServiceRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 645, - "src": "2281:35:2", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2146:10:2", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_bool_$", - "typeString": "function (string memory) view external returns (bool)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2281:48:2", - "tryCall": false, + "src": "2126:30:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "hexValue": "53657276696365206e6f742072656769737465726564", - "id": 309, + "hexValue": "496e76616c69642061646472657373", + "id": 331, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2331:24:2", + "src": "2158:17:2", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6", - "typeString": "literal_string \"Service not registered\"" + "typeIdentifier": "t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226", + "typeString": "literal_string \"Invalid address\"" }, - "value": "Service not registered" + "value": "Invalid address" } ], "expression": { @@ -3601,11 +3975,11 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6", - "typeString": "literal_string \"Service not registered\"" + "typeIdentifier": "t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226", + "typeString": "literal_string \"Invalid address\"" } ], - "id": 304, + "id": 324, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3613,13 +3987,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2273:7:2", + "src": "2118:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 310, + "id": 332, "isConstant": false, "isLValue": false, "isPure": false, @@ -3628,190 +4002,683 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2273:83:2", + "src": "2118:58:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 311, + "id": 333, "nodeType": "ExpressionStatement", - "src": "2273:83:2" - }, - { - "assignments": [ - 314 - ], - "declarations": [ - { - "constant": false, - "id": 314, - "mutability": "mutable", - "name": "agentData", - "nameLocation": "2393:9:2", - "nodeType": "VariableDeclaration", - "scope": 401, - "src": "2375:27:2", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData" - }, - "typeName": { - "id": 313, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 312, - "name": "AgentData", - "nameLocations": [ - "2375:9:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 204, - "src": "2375:9:2" - }, - "referencedDeclaration": 204, - "src": "2375:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData" - } - }, - "visibility": "internal" - } - ], - "id": 318, - "initialValue": { - "baseExpression": { - "id": 315, - "name": "agents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "2405:6:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" - } - }, - "id": 317, - "indexExpression": { - "id": 316, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "2412:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2405:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage", - "typeString": "struct AgentsRegistry.AgentData storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2375:43:2" + "src": "2118:58:2" }, { "expression": { - "id": 323, + "id": 338, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { + "id": 334, + "name": "serviceRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "2186:15:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ServiceRegistry_$844", + "typeString": "contract ServiceRegistry" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 336, + "name": "_serviceRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 319, + "src": "2220:16:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], "expression": { - "id": 319, - "name": "agentData", + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 335, + "name": "ServiceRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "2428:9:2", + "referencedDeclaration": 844, + "src": "2204:15:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" + "typeIdentifier": "t_type$_t_contract$_ServiceRegistry_$844_$", + "typeString": "type(contract ServiceRegistry)" } }, - "id": 321, + "id": 337, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, - "lValueRequested": true, - "memberLocation": "2438:4:2", - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 189, - "src": "2428:14:2", + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2204:33:2", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_string_storage", + "typeIdentifier": "t_contract$_ServiceRegistry_$844", + "typeString": "contract ServiceRegistry" + } + }, + "src": "2186:51:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ServiceRegistry_$844", + "typeString": "contract ServiceRegistry" + } + }, + "id": 339, + "nodeType": "ExpressionStatement", + "src": "2186:51:2" + } + ] + }, + "documentation": { + "id": 317, + "nodeType": "StructuredDocumentation", + "src": "1881:149:2", + "text": " @dev Sets the address of the ServiceRegistry contract.\n @param _serviceRegistry The address of the ServiceRegistry contract." + }, + "functionSelector": "d7071b1f", + "id": 341, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 322, + "kind": "modifierInvocation", + "modifierName": { + "id": 321, + "name": "onlyOwner", + "nameLocations": [ + "2098:9:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "2098:9:2" + }, + "nodeType": "ModifierInvocation", + "src": "2098:9:2" + } + ], + "name": "setServiceRegistry", + "nameLocation": "2044:18:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 320, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 319, + "mutability": "mutable", + "name": "_serviceRegistry", + "nameLocation": "2071:16:2", + "nodeType": "VariableDeclaration", + "scope": 341, + "src": "2063:24:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 318, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2063:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2062:26:2" + }, + "returnParameters": { + "id": 323, + "nodeType": "ParameterList", + "parameters": [], + "src": "2108:0:2" + }, + "scope": 670, + "src": "2035:209:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 456, + "nodeType": "Block", + "src": "3061:791:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 358, + "name": "agents", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 210, + "src": "3079:6:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$200_storage_$", + "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" + } + }, + "id": 360, + "indexExpression": { + "id": 359, + "name": "agent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 344, + "src": "3086:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3079:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AgentData_$200_storage", + "typeString": "struct AgentsRegistry.AgentData storage ref" + } + }, + "id": 361, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3093:5:2", + "memberName": "agent", + "nodeType": "MemberAccess", + "referencedDeclaration": 195, + "src": "3079:19:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 364, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3110:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3102:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 362, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3102:7:2", + "typeDescriptions": {} + } + }, + "id": 365, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3102:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3079:33:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4167656e7420616c72656164792072656769737465726564", + "id": 367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3114:26:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3c17f52d7f382f39131bc893c7e27e69aa71bee31c68e2de3649b59b8bfebc2b", + "typeString": "literal_string \"Agent already registered\"" + }, + "value": "Agent already registered" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3c17f52d7f382f39131bc893c7e27e69aa71bee31c68e2de3649b59b8bfebc2b", + "typeString": "literal_string \"Agent already registered\"" + } + ], + "id": 357, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3071:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3071:70:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 369, + "nodeType": "ExpressionStatement", + "src": "3071:70:2" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 373, + "name": "serviceName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 350, + "src": "3195:11:2", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 371, + "name": "serviceRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "3159:15:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ServiceRegistry_$844", + "typeString": "contract ServiceRegistry" + } + }, + "id": 372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3175:19:2", + "memberName": "isServiceRegistered", + "nodeType": "MemberAccess", + "referencedDeclaration": 807, + "src": "3159:35:2", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_bool_$", + "typeString": "function (string memory) view external returns (bool)" + } + }, + "id": 374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3159:48:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "53657276696365206e6f742072656769737465726564", + "id": 375, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3209:24:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6", + "typeString": "literal_string \"Service not registered\"" + }, + "value": "Service not registered" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6", + "typeString": "literal_string \"Service not registered\"" + } + ], + "id": 370, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3151:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3151:83:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 377, + "nodeType": "ExpressionStatement", + "src": "3151:83:2" + }, + { + "assignments": [ + 380 + ], + "declarations": [ + { + "constant": false, + "id": 380, + "mutability": "mutable", + "name": "agentData", + "nameLocation": "3271:9:2", + "nodeType": "VariableDeclaration", + "scope": 456, + "src": "3253:27:2", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AgentData_$200_storage_ptr", + "typeString": "struct AgentsRegistry.AgentData" + }, + "typeName": { + "id": 379, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 378, + "name": "AgentData", + "nameLocations": [ + "3253:9:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 200, + "src": "3253:9:2" + }, + "referencedDeclaration": 200, + "src": "3253:9:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AgentData_$200_storage_ptr", + "typeString": "struct AgentsRegistry.AgentData" + } + }, + "visibility": "internal" + } + ], + "id": 384, + "initialValue": { + "baseExpression": { + "id": 381, + "name": "agents", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 210, + "src": "3283:6:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$200_storage_$", + "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" + } + }, + "id": 383, + "indexExpression": { + "id": 382, + "name": "agent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 344, + "src": "3290:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3283:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AgentData_$200_storage", + "typeString": "struct AgentsRegistry.AgentData storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3253:43:2" + }, + { + "expression": { + "id": 389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 385, + "name": "agentData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 380, + "src": "3306:9:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AgentData_$200_storage_ptr", + "typeString": "struct AgentsRegistry.AgentData storage pointer" + } + }, + "id": 387, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3316:4:2", + "memberName": "name", + "nodeType": "MemberAccess", + "referencedDeclaration": 189, + "src": "3306:14:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 322, + "id": 388, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 284, - "src": "2445:4:2", + "referencedDeclaration": 346, + "src": "3323:4:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "2428:21:2", + "src": "3306:21:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 324, + "id": 390, "nodeType": "ExpressionStatement", - "src": "2428:21:2" + "src": "3306:21:2" }, { "expression": { - "id": 329, + "id": 395, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 325, + "id": 391, "name": "agentData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "2459:9:2", + "referencedDeclaration": 380, + "src": "3337:9:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", + "typeIdentifier": "t_struct$_AgentData_$200_storage_ptr", "typeString": "struct AgentsRegistry.AgentData storage pointer" } }, - "id": 327, + "id": 393, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "2469:8:2", + "memberLocation": "3347:8:2", "memberName": "agentUri", "nodeType": "MemberAccess", "referencedDeclaration": 191, - "src": "2459:18:2", + "src": "3337:18:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -3820,57 +4687,57 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 328, + "id": 394, "name": "agentUri", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 286, - "src": "2480:8:2", + "referencedDeclaration": 348, + "src": "3358:8:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "2459:29:2", + "src": "3337:29:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 330, + "id": 396, "nodeType": "ExpressionStatement", - "src": "2459:29:2" + "src": "3337:29:2" }, { "expression": { - "id": 336, + "id": 402, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 331, + "id": 397, "name": "agentData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "2498:9:2", + "referencedDeclaration": 380, + "src": "3376:9:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", + "typeIdentifier": "t_struct$_AgentData_$200_storage_ptr", "typeString": "struct AgentsRegistry.AgentData storage pointer" } }, - "id": 333, + "id": 399, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "2508:5:2", + "memberLocation": "3386:5:2", "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 193, - "src": "2498:15:2", + "src": "3376:15:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3880,71 +4747,71 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 334, + "id": 400, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "2516:3:2", + "src": "3394:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 335, + "id": 401, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2520:6:2", + "memberLocation": "3398:6:2", "memberName": "sender", "nodeType": "MemberAccess", - "src": "2516:10:2", + "src": "3394:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2498:28:2", + "src": "3376:28:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 337, + "id": 403, "nodeType": "ExpressionStatement", - "src": "2498:28:2" + "src": "3376:28:2" }, { "expression": { - "id": 342, + "id": 408, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 338, + "id": 404, "name": "agentData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "2536:9:2", + "referencedDeclaration": 380, + "src": "3414:9:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", + "typeIdentifier": "t_struct$_AgentData_$200_storage_ptr", "typeString": "struct AgentsRegistry.AgentData storage pointer" } }, - "id": 340, + "id": 406, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "2546:5:2", + "memberLocation": "3424:5:2", "memberName": "agent", "nodeType": "MemberAccess", "referencedDeclaration": 195, - "src": "2536:15:2", + "src": "3414:15:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3953,57 +4820,57 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 341, + "id": 407, "name": "agent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "2554:5:2", + "referencedDeclaration": 344, + "src": "3432:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2536:23:2", + "src": "3414:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 343, + "id": 409, "nodeType": "ExpressionStatement", - "src": "2536:23:2" + "src": "3414:23:2" }, { "expression": { - "id": 348, + "id": 414, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 344, + "id": 410, "name": "agentData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "2569:9:2", + "referencedDeclaration": 380, + "src": "3447:9:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", + "typeIdentifier": "t_struct$_AgentData_$200_storage_ptr", "typeString": "struct AgentsRegistry.AgentData storage pointer" } }, - "id": 346, + "id": 412, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "2579:10:2", + "memberLocation": "3457:10:2", "memberName": "reputation", "nodeType": "MemberAccess", "referencedDeclaration": 197, - "src": "2569:20:2", + "src": "3447:20:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4013,186 +4880,139 @@ "operator": "=", "rightHandSide": { "hexValue": "30", - "id": 347, + "id": 413, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2592:1:2", + "src": "3470:1:2", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "2569:24:2", + "src": "3447:24:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 349, - "nodeType": "ExpressionStatement", - "src": "2569:24:2" - }, - { - "expression": { - "id": 354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 350, - "name": "agentData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "2603:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 352, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2613:12:2", - "memberName": "isRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 199, - "src": "2603:22:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2628:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "2603:29:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 355, + "id": 415, "nodeType": "ExpressionStatement", - "src": "2603:29:2" + "src": "3447:24:2" }, { "assignments": [ - 358 + 418 ], "declarations": [ { "constant": false, - "id": 358, + "id": 418, "mutability": "mutable", "name": "proposal", - "nameLocation": "2658:8:2", + "nameLocation": "3505:8:2", "nodeType": "VariableDeclaration", - "scope": 401, - "src": "2642:24:2", + "scope": 456, + "src": "3482:31:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_memory_ptr", - "typeString": "struct IProposalStruct.Proposal" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal" }, "typeName": { - "id": 357, + "id": 417, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 356, - "name": "Proposal", + "id": 416, + "name": "ServiceProposal", "nameLocations": [ - "2642:8:2" + "3482:15:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1039, - "src": "2642:8:2" + "referencedDeclaration": 1403, + "src": "3482:15:2" }, - "referencedDeclaration": 1039, - "src": "2642:8:2", + "referencedDeclaration": 1403, + "src": "3482:15:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_storage_ptr", - "typeString": "struct IProposalStruct.Proposal" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_storage_ptr", + "typeString": "struct IProposalStruct.ServiceProposal" } }, "visibility": "internal" } ], - "id": 365, + "id": 426, "initialValue": { "arguments": [ { - "id": 360, + "id": 420, "name": "agent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "2678:5:2", + "referencedDeclaration": 344, + "src": "3532:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 361, + "id": 421, "name": "serviceName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 288, - "src": "2685:11:2", + "referencedDeclaration": 350, + "src": "3539:11:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { - "id": 362, + "id": 422, "name": "servicePrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 290, - "src": "2698:12:2", + "referencedDeclaration": 352, + "src": "3552:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 363, + "id": 423, "name": "nextProposalId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 218, - "src": "2712:14:2", + "referencedDeclaration": 217, + "src": "3566:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + { + "hexValue": "66616c7365", + "id": 424, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3582:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" } ], "expression": { @@ -4212,20 +5032,24 @@ { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "id": 359, - "name": "Proposal", + "id": 419, + "name": "ServiceProposal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "2669:8:2", + "referencedDeclaration": 1403, + "src": "3516:15:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Proposal_$1039_storage_ptr_$", - "typeString": "type(struct IProposalStruct.Proposal storage pointer)" + "typeIdentifier": "t_type$_t_struct$_ServiceProposal_$1403_storage_ptr_$", + "typeString": "type(struct IProposalStruct.ServiceProposal storage pointer)" } }, - "id": 364, + "id": 425, "isConstant": false, "isLValue": false, "isPure": false, @@ -4234,173 +5058,87 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2669:58:2", + "src": "3516:72:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "2642:85:2" + "src": "3482:106:2" }, { "expression": { - "arguments": [ - { - "id": 371, - "name": "proposal", + "id": 431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 427, + "name": "proposals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 358, - "src": "2762:8:2", + "referencedDeclaration": 215, + "src": "3598:9:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Proposal_$1039_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - ], - "expression": { - "expression": { - "id": 366, - "name": "agentData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "2737:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" - } - }, - "id": 369, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2747:9:2", - "memberName": "proposals", - "nodeType": "MemberAccess", - "referencedDeclaration": 203, - "src": "2737:19:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Proposal_$1039_storage_$dyn_storage", - "typeString": "struct IProposalStruct.Proposal storage ref[] storage ref" + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_ServiceProposal_$1403_storage_$", + "typeString": "mapping(uint256 => struct IProposalStruct.ServiceProposal storage ref)" } }, - "id": 370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2757:4:2", - "memberName": "push", - "nodeType": "MemberAccess", - "src": "2737:24:2", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_Proposal_$1039_storage_$dyn_storage_ptr_$_t_struct$_Proposal_$1039_storage_$returns$__$attached_to$_t_array$_t_struct$_Proposal_$1039_storage_$dyn_storage_ptr_$", - "typeString": "function (struct IProposalStruct.Proposal storage ref[] storage pointer,struct IProposalStruct.Proposal storage ref)" - } - }, - "id": 372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2737:34:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 373, - "nodeType": "ExpressionStatement", - "src": "2737:34:2" - }, - { - "expression": { - "arguments": [ - { - "id": 377, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 358, - "src": "2796:8:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Proposal_$1039_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" - } - ], - "expression": { - "id": 374, - "name": "proposals", + "id": 429, + "indexExpression": { + "id": 428, + "name": "nextProposalId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 216, - "src": "2781:9:2", + "referencedDeclaration": 217, + "src": "3608:14:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Proposal_$1039_storage_$dyn_storage", - "typeString": "struct IProposalStruct.Proposal storage ref[] storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 376, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "lValueRequested": false, - "memberLocation": "2791:4:2", - "memberName": "push", - "nodeType": "MemberAccess", - "src": "2781:14:2", + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3598:25:2", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_Proposal_$1039_storage_$dyn_storage_ptr_$_t_struct$_Proposal_$1039_storage_$returns$__$attached_to$_t_array$_t_struct$_Proposal_$1039_storage_$dyn_storage_ptr_$", - "typeString": "function (struct IProposalStruct.Proposal storage ref[] storage pointer,struct IProposalStruct.Proposal storage ref)" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_storage", + "typeString": "struct IProposalStruct.ServiceProposal storage ref" } }, - "id": 378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2781:24:2", - "tryCall": false, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 430, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "3626:8:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal memory" + } + }, + "src": "3598:36:2", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_storage", + "typeString": "struct IProposalStruct.ServiceProposal storage ref" } }, - "id": 379, + "id": 432, "nodeType": "ExpressionStatement", - "src": "2781:24:2" + "src": "3598:36:2" }, { "expression": { - "id": 381, + "id": 434, "isConstant": false, "isLValue": false, "isPure": false, @@ -4408,14 +5146,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2816:16:2", + "src": "3645:16:2", "subExpression": { - "id": 380, + "id": 433, "name": "nextProposalId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 218, - "src": "2816:14:2", + "referencedDeclaration": 217, + "src": "3645:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4426,20 +5164,20 @@ "typeString": "uint256" } }, - "id": 382, + "id": 435, "nodeType": "ExpressionStatement", - "src": "2816:16:2" + "src": "3645:16:2" }, { "eventCall": { "arguments": [ { - "id": 384, + "id": 437, "name": "agent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "2863:5:2", + "referencedDeclaration": 344, + "src": "3692:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4447,50 +5185,50 @@ }, { "expression": { - "id": 385, + "id": 438, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "2870:3:2", + "src": "3699:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 386, + "id": 439, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2874:6:2", + "memberLocation": "3703:6:2", "memberName": "sender", "nodeType": "MemberAccess", - "src": "2870:10:2", + "src": "3699:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 387, + "id": 440, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 284, - "src": "2882:4:2", + "referencedDeclaration": 346, + "src": "3711:4:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { - "id": 388, + "id": 441, "name": "agentUri", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 286, - "src": "2888:8:2", + "referencedDeclaration": 348, + "src": "3717:8:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -4516,18 +5254,18 @@ "typeString": "string memory" } ], - "id": 383, + "id": 436, "name": "AgentRegistered", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 257, - "src": "2847:15:2", + "referencedDeclaration": 263, + "src": "3676:15:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (address,address,string memory,string memory)" } }, - "id": 389, + "id": 442, "isConstant": false, "isLValue": false, "isPure": false, @@ -4536,27 +5274,27 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2847:50:2", + "src": "3676:50:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 390, + "id": 443, "nodeType": "EmitStatement", - "src": "2842:55:2" + "src": "3671:55:2" }, { "eventCall": { "arguments": [ { - "id": 392, + "id": 445, "name": "agent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "2926:5:2", + "referencedDeclaration": 344, + "src": "3755:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4564,51 +5302,51 @@ }, { "expression": { - "id": 393, + "id": 446, "name": "proposal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 358, - "src": "2933:8:2", + "referencedDeclaration": 418, + "src": "3762:8:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal memory" } }, - "id": 394, + "id": 447, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2942:10:2", + "memberLocation": "3771:10:2", "memberName": "proposalId", "nodeType": "MemberAccess", - "referencedDeclaration": 1038, - "src": "2933:19:2", + "referencedDeclaration": 1400, + "src": "3762:19:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 395, + "id": 448, "name": "serviceName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 288, - "src": "2954:11:2", + "referencedDeclaration": 350, + "src": "3783:11:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { - "id": 396, + "id": 449, "name": "servicePrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 290, - "src": "2967:12:2", + "referencedDeclaration": 352, + "src": "3796:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4634,18 +5372,18 @@ "typeString": "uint256" } ], - "id": 391, + "id": 444, "name": "ProposalAdded", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 279, - "src": "2912:13:2", + "src": "3741:13:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (address,uint256,string memory,uint256)" } }, - "id": 397, + "id": 450, "isConstant": false, "isLValue": false, "isPure": false, @@ -4654,68 +5392,98 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2912:68:2", + "src": "3741:68:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 398, + "id": 451, "nodeType": "EmitStatement", - "src": "2907:73:2" + "src": "3736:73:2" }, { "expression": { - "hexValue": "74727565", - "id": 399, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 454, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "bool", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "2998:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "leftExpression": { + "id": 452, + "name": "nextProposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "3827:14:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "value": "true" + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 453, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3844:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3827:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "functionReturnParameters": 294, - "id": 400, + "functionReturnParameters": 356, + "id": 455, "nodeType": "Return", - "src": "2991:11:2" + "src": "3820:25:2" } ] }, "documentation": { - "id": 280, + "id": 342, "nodeType": "StructuredDocumentation", - "src": "1385:598:2", + "src": "2254:598:2", "text": " @dev Registers a new agent with the given details.\n @param name The name of the agent.\n @param agentUri The URI pointing to the agent's metadata.\n @param agent The address of the agent.\n @param serviceName The name of the service.\n @param servicePrice The price of the service.\n @return true if the agent was registered successfully, false otherwise.\n Requirements:\n - The agent must not already be registered.\n - The caller will be set as the owner of the agent.\n Emits an {AgentRegistered} event." }, "functionSelector": "98366dbd", - "id": 402, + "id": 457, "implemented": true, "kind": "function", "modifiers": [], "name": "registerAgent", - "nameLocation": "1997:13:2", + "nameLocation": "2866:13:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 291, + "id": 353, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 282, + "id": 344, "mutability": "mutable", "name": "agent", - "nameLocation": "2028:5:2", + "nameLocation": "2897:5:2", "nodeType": "VariableDeclaration", - "scope": 402, - "src": "2020:13:2", + "scope": 457, + "src": "2889:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4723,10 +5491,10 @@ "typeString": "address" }, "typeName": { - "id": 281, + "id": 343, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2020:7:2", + "src": "2889:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4737,13 +5505,13 @@ }, { "constant": false, - "id": 284, + "id": 346, "mutability": "mutable", "name": "name", - "nameLocation": "2057:4:2", + "nameLocation": "2926:4:2", "nodeType": "VariableDeclaration", - "scope": 402, - "src": "2043:18:2", + "scope": 457, + "src": "2912:18:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4751,10 +5519,10 @@ "typeString": "string" }, "typeName": { - "id": 283, + "id": 345, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2043:6:2", + "src": "2912:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -4764,13 +5532,13 @@ }, { "constant": false, - "id": 286, + "id": 348, "mutability": "mutable", "name": "agentUri", - "nameLocation": "2085:8:2", + "nameLocation": "2954:8:2", "nodeType": "VariableDeclaration", - "scope": 402, - "src": "2071:22:2", + "scope": 457, + "src": "2940:22:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4778,10 +5546,10 @@ "typeString": "string" }, "typeName": { - "id": 285, + "id": 347, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2071:6:2", + "src": "2940:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -4791,13 +5559,13 @@ }, { "constant": false, - "id": 288, + "id": 350, "mutability": "mutable", "name": "serviceName", - "nameLocation": "2117:11:2", + "nameLocation": "2986:11:2", "nodeType": "VariableDeclaration", - "scope": 402, - "src": "2103:25:2", + "scope": 457, + "src": "2972:25:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4805,10 +5573,10 @@ "typeString": "string" }, "typeName": { - "id": 287, + "id": 349, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2103:6:2", + "src": "2972:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -4818,13 +5586,13 @@ }, { "constant": false, - "id": 290, + "id": 352, "mutability": "mutable", "name": "servicePrice", - "nameLocation": "2146:12:2", + "nameLocation": "3015:12:2", "nodeType": "VariableDeclaration", - "scope": 402, - "src": "2138:20:2", + "scope": 457, + "src": "3007:20:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4832,10 +5600,10 @@ "typeString": "uint256" }, "typeName": { - "id": 289, + "id": 351, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2138:7:2", + "src": "3007:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4844,164 +5612,293 @@ "visibility": "internal" } ], - "src": "2010:154:2" + "src": "2879:154:2" }, "returnParameters": { - "id": 294, + "id": 356, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 293, + "id": 355, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 402, - "src": "2183:4:2", + "scope": 457, + "src": "3052:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 292, - "name": "bool", + "id": 354, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2183:4:2", + "src": "3052:7:2", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "visibility": "internal" } ], - "src": "2182:6:2" + "src": "3051:9:2" }, - "scope": 506, - "src": "1988:1021:2", + "scope": 670, + "src": "2857:995:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 426, + "id": 512, "nodeType": "Block", - "src": "3118:107:2", + "src": "4494:408:2", "statements": [ { "expression": { - "id": 419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "baseExpression": { - "id": 414, - "name": "agents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "3128:6:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" + "arguments": [ + { + "arguments": [ + { + "id": 475, + "name": "serviceName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 462, + "src": "4548:11:2", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } } - }, - "id": 416, - "indexExpression": { - "id": 415, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 404, - "src": "3135:5:2", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 473, + "name": "serviceRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "4512:15:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ServiceRegistry_$844", + "typeString": "contract ServiceRegistry" + } + }, + "id": 474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4528:19:2", + "memberName": "isServiceRegistered", + "nodeType": "MemberAccess", + "referencedDeclaration": 807, + "src": "4512:35:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_bool_$", + "typeString": "function (string memory) view external returns (bool)" } }, + "id": 476, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3128:13:2", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4512:48:2", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage", - "typeString": "struct AgentsRegistry.AgentData storage ref" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 417, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "3142:10:2", - "memberName": "reputation", - "nodeType": "MemberAccess", - "referencedDeclaration": 197, - "src": "3128:24:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "hexValue": "53657276696365206e6f742072656769737465726564", + "id": 477, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4562:24:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6", + "typeString": "literal_string \"Service not registered\"" + }, + "value": "Service not registered" } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 418, - "name": "_reputation", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6", + "typeString": "literal_string \"Service not registered\"" + } + ], + "id": 472, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 406, - "src": "3155:11:2", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4504:7:2", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "src": "3128:38:2", + "id": 478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4504:83:2", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 420, + "id": 479, "nodeType": "ExpressionStatement", - "src": "3128:38:2" + "src": "4504:83:2" }, { - "eventCall": { + "assignments": [ + 482 + ], + "declarations": [ + { + "constant": false, + "id": 482, + "mutability": "mutable", + "name": "proposal", + "nameLocation": "4621:8:2", + "nodeType": "VariableDeclaration", + "scope": 512, + "src": "4598:31:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal" + }, + "typeName": { + "id": 481, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 480, + "name": "ServiceProposal", + "nameLocations": [ + "4598:15:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1403, + "src": "4598:15:2" + }, + "referencedDeclaration": 1403, + "src": "4598:15:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ServiceProposal_$1403_storage_ptr", + "typeString": "struct IProposalStruct.ServiceProposal" + } + }, + "visibility": "internal" + } + ], + "id": 490, + "initialValue": { "arguments": [ { - "id": 422, + "id": 484, "name": "agent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 404, - "src": "3199:5:2", + "referencedDeclaration": 460, + "src": "4648:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 423, - "name": "_reputation", + "id": 485, + "name": "serviceName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 462, + "src": "4655:11:2", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 486, + "name": "servicePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 464, + "src": "4668:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 487, + "name": "nextProposalId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 406, - "src": "3206:11:2", + "referencedDeclaration": 217, + "src": "4682:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + { + "hexValue": "74727565", + "id": 488, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4698:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" } ], "expression": { @@ -5010,292 +5907,383 @@ "typeIdentifier": "t_address", "typeString": "address" }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "id": 421, - "name": "ReputationUpdated", + "id": 483, + "name": "ServiceProposal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 263, - "src": "3181:17:2", + "referencedDeclaration": 1403, + "src": "4632:15:2", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" + "typeIdentifier": "t_type$_t_struct$_ServiceProposal_$1403_storage_ptr_$", + "typeString": "type(struct IProposalStruct.ServiceProposal storage pointer)" } }, - "id": 424, + "id": 489, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3181:37:2", + "src": "4632:71:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 425, - "nodeType": "EmitStatement", - "src": "3176:42:2" - } - ] - }, - "functionSelector": "f5c91a08", - "id": 427, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 409, - "kind": "modifierInvocation", - "modifierName": { - "id": 408, - "name": "onlyOwner", - "nameLocations": [ - "3086:9:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 58, - "src": "3086:9:2" - }, - "nodeType": "ModifierInvocation", - "src": "3086:9:2" - }, - { - "arguments": [ - { - "id": 411, - "name": "agent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 404, - "src": "3111:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 412, - "kind": "modifierInvocation", - "modifierName": { - "id": 410, - "name": "onlyRegistered", - "nameLocations": [ - "3096:14:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 232, - "src": "3096:14:2" - }, - "nodeType": "ModifierInvocation", - "src": "3096:21:2" - } - ], - "name": "updateReputation", - "nameLocation": "3024:16:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 407, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 404, - "mutability": "mutable", - "name": "agent", - "nameLocation": "3049:5:2", - "nodeType": "VariableDeclaration", - "scope": 427, - "src": "3041:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 403, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3041:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal memory" } }, - "visibility": "internal" + "nodeType": "VariableDeclarationStatement", + "src": "4598:105:2" }, - { - "constant": false, - "id": 406, - "mutability": "mutable", - "name": "_reputation", - "nameLocation": "3064:11:2", - "nodeType": "VariableDeclaration", - "scope": 427, - "src": "3056:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 405, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3056:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3040:36:2" - }, - "returnParameters": { - "id": 413, - "nodeType": "ParameterList", - "parameters": [], - "src": "3118:0:2" - }, - "scope": 506, - "src": "3015:210:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 442, - "nodeType": "Block", - "src": "3323:48:2", - "statements": [ { "expression": { - "expression": { + "id": 495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { "baseExpression": { - "id": 437, - "name": "agents", + "id": 491, + "name": "proposals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "3340:6:2", + "referencedDeclaration": 215, + "src": "4713:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_ServiceProposal_$1403_storage_$", + "typeString": "mapping(uint256 => struct IProposalStruct.ServiceProposal storage ref)" } }, - "id": 439, + "id": 493, "indexExpression": { - "id": 438, - "name": "agent", + "id": 492, + "name": "nextProposalId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 429, - "src": "3347:5:2", + "referencedDeclaration": 217, + "src": "4723:14:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, - "lValueRequested": false, + "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3340:13:2", + "src": "4713:25:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage", - "typeString": "struct AgentsRegistry.AgentData storage ref" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_storage", + "typeString": "struct IProposalStruct.ServiceProposal storage ref" } }, - "id": 440, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3354:10:2", - "memberName": "reputation", - "nodeType": "MemberAccess", - "referencedDeclaration": 197, - "src": "3340:24:2", + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 494, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 482, + "src": "4741:8:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal memory" + } + }, + "src": "4713:36:2", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_storage", + "typeString": "struct IProposalStruct.ServiceProposal storage ref" } }, - "functionReturnParameters": 436, - "id": 441, - "nodeType": "Return", - "src": "3333:31:2" - } - ] - }, - "functionSelector": "9c89a0e2", - "id": 443, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 432, - "name": "agent", - "nodeType": "Identifier", + "id": 496, + "nodeType": "ExpressionStatement", + "src": "4713:36:2" + }, + { + "expression": { + "id": 498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4760:16:2", + "subExpression": { + "id": 497, + "name": "nextProposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "4760:14:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 499, + "nodeType": "ExpressionStatement", + "src": "4760:16:2" + }, + { + "eventCall": { + "arguments": [ + { + "id": 501, + "name": "agent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 460, + "src": "4805:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 502, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 482, + "src": "4812:8:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal memory" + } + }, + "id": 503, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4821:10:2", + "memberName": "proposalId", + "nodeType": "MemberAccess", + "referencedDeclaration": 1400, + "src": "4812:19:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 504, + "name": "serviceName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 462, + "src": "4833:11:2", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 505, + "name": "servicePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 464, + "src": "4846:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 500, + "name": "ProposalAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 279, + "src": "4791:13:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,string memory,uint256)" + } + }, + "id": 506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4791:68:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 507, + "nodeType": "EmitStatement", + "src": "4786:73:2" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 508, + "name": "nextProposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "4877:14:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4894:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4877:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 471, + "id": 511, + "nodeType": "Return", + "src": "4870:25:2" + } + ] + }, + "documentation": { + "id": 458, + "nodeType": "StructuredDocumentation", + "src": "3859:496:2", + "text": " @dev Adds a new proposal for an agent.\n @param agent The address of the agent.\n @param serviceName The name of the service.\n @param servicePrice The price of the service.\n @return true if the proposal was added successfully, false otherwise.\n Requirements:\n - The caller must be the owner of the agent.\n - The agent must be registered.\n - The service must be registered.\n Emits a {ProposalAdded} event." + }, + "functionSelector": "f3a1a466", + "id": 513, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 467, + "name": "agent", + "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 429, - "src": "3298:5:2", + "referencedDeclaration": 460, + "src": "4469:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 433, + "id": 468, "kind": "modifierInvocation", "modifierName": { - "id": 431, - "name": "onlyRegistered", + "id": 466, + "name": "onlyAgentOwner", "nameLocations": [ - "3283:14:2" + "4454:14:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 232, - "src": "3283:14:2" + "referencedDeclaration": 234, + "src": "4454:14:2" }, "nodeType": "ModifierInvocation", - "src": "3283:21:2" + "src": "4454:21:2" } ], - "name": "getReputation", - "nameLocation": "3240:13:2", + "name": "addProposal", + "nameLocation": "4369:11:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 430, + "id": 465, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 429, + "id": 460, "mutability": "mutable", "name": "agent", - "nameLocation": "3262:5:2", + "nameLocation": "4389:5:2", "nodeType": "VariableDeclaration", - "scope": 443, - "src": "3254:13:2", + "scope": 513, + "src": "4381:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5303,10 +6291,10 @@ "typeString": "address" }, "typeName": { - "id": 428, + "id": 459, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3254:7:2", + "src": "4381:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5314,23 +6302,77 @@ } }, "visibility": "internal" + }, + { + "constant": false, + "id": 462, + "mutability": "mutable", + "name": "serviceName", + "nameLocation": "4410:11:2", + "nodeType": "VariableDeclaration", + "scope": 513, + "src": "4396:25:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 461, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4396:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 464, + "mutability": "mutable", + "name": "servicePrice", + "nameLocation": "4431:12:2", + "nodeType": "VariableDeclaration", + "scope": 513, + "src": "4423:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 463, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4423:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" } ], - "src": "3253:15:2" + "src": "4380:64:2" }, "returnParameters": { - "id": 436, + "id": 471, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 435, + "id": 470, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 443, - "src": "3314:7:2", + "scope": 513, + "src": "4485:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5338,10 +6380,10 @@ "typeString": "uint256" }, "typeName": { - "id": 434, + "id": 469, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3314:7:2", + "src": "4485:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5350,102 +6392,377 @@ "visibility": "internal" } ], - "src": "3313:9:2" + "src": "4484:9:2" }, - "scope": 506, - "src": "3231:140:2", - "stateMutability": "view", + "scope": 670, + "src": "4360:542:2", + "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 455, + "id": 548, "nodeType": "Block", - "src": "3443:50:2", + "src": "5465:202:2", "statements": [ { "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 527, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "5483:9:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_ServiceProposal_$1403_storage_$", + "typeString": "mapping(uint256 => struct IProposalStruct.ServiceProposal storage ref)" + } + }, + "id": 529, + "indexExpression": { + "id": 528, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "5493:10:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5483:21:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ServiceProposal_$1403_storage", + "typeString": "struct IProposalStruct.ServiceProposal storage ref" + } + }, + "id": 530, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5505:6:2", + "memberName": "issuer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1394, + "src": "5483:28:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 531, + "name": "agent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "5515:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5483:37:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5365727669636550726f706f73616c206e6f7420666f756e64", + "id": 533, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5522:27:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_add139ef5e0ce81551c750d068d2eb9f9e6c61a45817f3add2fc789b89b93829", + "typeString": "literal_string \"ServiceProposal not found\"" + }, + "value": "ServiceProposal not found" + } + ], "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_add139ef5e0ce81551c750d068d2eb9f9e6c61a45817f3add2fc789b89b93829", + "typeString": "literal_string \"ServiceProposal not found\"" + } + ], + "id": 526, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5475:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5475:75:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 535, + "nodeType": "ExpressionStatement", + "src": "5475:75:2" + }, + { + "expression": { + "id": 539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "5561:28:2", + "subExpression": { "baseExpression": { - "id": 450, - "name": "agents", + "id": 536, + "name": "proposals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "3460:6:2", + "referencedDeclaration": 215, + "src": "5568:9:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_ServiceProposal_$1403_storage_$", + "typeString": "mapping(uint256 => struct IProposalStruct.ServiceProposal storage ref)" } }, - "id": 452, + "id": 538, "indexExpression": { - "id": 451, - "name": "agent", + "id": 537, + "name": "proposalId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 445, - "src": "3467:5:2", + "referencedDeclaration": 518, + "src": "5578:10:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, - "lValueRequested": false, + "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3460:13:2", + "src": "5568:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage", - "typeString": "struct AgentsRegistry.AgentData storage ref" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_storage", + "typeString": "struct IProposalStruct.ServiceProposal storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 540, + "nodeType": "ExpressionStatement", + "src": "5561:28:2" + }, + { + "eventCall": { + "arguments": [ + { + "id": 542, + "name": "agent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "5620:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 543, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "5627:10:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 541, + "name": "ProposalRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 285, + "src": "5604:15:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" } }, - "id": 453, + "id": 544, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberLocation": "3474:12:2", - "memberName": "isRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 199, - "src": "3460:26:2", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5604:34:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 545, + "nodeType": "EmitStatement", + "src": "5599:39:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5656:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" - } + }, + "value": "true" }, - "functionReturnParameters": 449, - "id": 454, + "functionReturnParameters": 525, + "id": 547, "nodeType": "Return", - "src": "3453:33:2" + "src": "5649:11:2" } ] }, - "functionSelector": "c3c5a547", - "id": 456, + "documentation": { + "id": 514, + "nodeType": "StructuredDocumentation", + "src": "4908:447:2", + "text": " @dev Removes a proposal for an agent.\n @param agent The address of the agent.\n @param proposalId The ID of the proposal to remove.\n @return true if the proposal was removed successfully, false otherwise.\n Requirements:\n - The caller must be the owner of the agent.\n - The agent must be registered.\n - The proposal must exist.\n Emits a {ProposalRemoved} event." + }, + "functionSelector": "7b5c219d", + "id": 549, "implemented": true, "kind": "function", - "modifiers": [], - "name": "isRegistered", - "nameLocation": "3386:12:2", + "modifiers": [ + { + "arguments": [ + { + "id": 521, + "name": "agent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "5443:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 522, + "kind": "modifierInvocation", + "modifierName": { + "id": 520, + "name": "onlyAgentOwner", + "nameLocations": [ + "5428:14:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 234, + "src": "5428:14:2" + }, + "nodeType": "ModifierInvocation", + "src": "5428:21:2" + } + ], + "name": "removeProposal", + "nameLocation": "5369:14:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 446, + "id": 519, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 445, + "id": 516, "mutability": "mutable", "name": "agent", - "nameLocation": "3407:5:2", + "nameLocation": "5392:5:2", "nodeType": "VariableDeclaration", - "scope": 456, - "src": "3399:13:2", + "scope": 549, + "src": "5384:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5453,10 +6770,10 @@ "typeString": "address" }, "typeName": { - "id": 444, + "id": 515, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3399:7:2", + "src": "5384:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5464,23 +6781,50 @@ } }, "visibility": "internal" + }, + { + "constant": false, + "id": 518, + "mutability": "mutable", + "name": "proposalId", + "nameLocation": "5407:10:2", + "nodeType": "VariableDeclaration", + "scope": 549, + "src": "5399:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 517, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5399:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" } ], - "src": "3398:15:2" + "src": "5383:35:2" }, "returnParameters": { - "id": 449, + "id": 525, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 448, + "id": 524, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 456, - "src": "3437:4:2", + "scope": 549, + "src": "5459:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5488,10 +6832,10 @@ "typeString": "bool" }, "typeName": { - "id": 447, + "id": 523, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3437:4:2", + "src": "5459:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5500,214 +6844,778 @@ "visibility": "internal" } ], - "src": "3436:6:2" + "src": "5458:6:2" }, - "scope": 506, - "src": "3377:116:2", - "stateMutability": "view", + "scope": 670, + "src": "5360:307:2", + "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 491, + "id": 623, "nodeType": "Block", - "src": "4056:140:2", + "src": "5749:455:2", "statements": [ { - "assignments": [ - 474 - ], - "declarations": [ - { - "constant": false, - "id": 474, - "mutability": "mutable", - "name": "data", - "nameLocation": "4084:4:2", - "nodeType": "VariableDeclaration", - "scope": 491, - "src": "4066:22:2", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData" - }, - "typeName": { - "id": 473, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 472, - "name": "AgentData", - "nameLocations": [ - "4066:9:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 204, - "src": "4066:9:2" + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" }, - "referencedDeclaration": 204, - "src": "4066:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData" + "id": 562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 559, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5767:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5771:6:2", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5767:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 561, + "name": "taskRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "5781:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5767:26:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "visibility": "internal" - } - ], - "id": 478, - "initialValue": { - "baseExpression": { - "id": 475, - "name": "agents", + { + "hexValue": "4e6f7420746865205461736b526567697374727920636f6e7472616374", + "id": 563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5795:31:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ab4f7bdcd44e35f2fe5cd34e07194c1c227455329229f7f3f1e8494de9e5c74c", + "typeString": "literal_string \"Not the TaskRegistry contract\"" + }, + "value": "Not the TaskRegistry contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ab4f7bdcd44e35f2fe5cd34e07194c1c227455329229f7f3f1e8494de9e5c74c", + "typeString": "literal_string \"Not the TaskRegistry contract\"" + } + ], + "id": 558, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "4091:6:2", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5759:7:2", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$204_storage_$", - "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "id": 477, - "indexExpression": { - "id": 476, - "name": "_agent", + "id": 564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5759:68:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 565, + "nodeType": "ExpressionStatement", + "src": "5759:68:2" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 567, + "name": "_rating", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 553, + "src": "5845:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "30", + "id": 568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5856:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5845:12:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 570, + "name": "_rating", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 553, + "src": "5861:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "313030", + "id": 571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5872:3:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "5861:14:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5845:30:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "526174696e67206d757374206265206265747765656e203020616e6420313030", + "id": 574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5877:34:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c137d625e69877210f78bfe5d3113cccc58db43b2ac3bb8f673d723a397aae3e", + "typeString": "literal_string \"Rating must be between 0 and 100\"" + }, + "value": "Rating must be between 0 and 100" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c137d625e69877210f78bfe5d3113cccc58db43b2ac3bb8f673d723a397aae3e", + "typeString": "literal_string \"Rating must be between 0 and 100\"" + } + ], + "id": 566, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 459, - "src": "4098:6:2", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5837:7:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, + "id": 575, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4091:14:2", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5837:75:2", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage", - "typeString": "struct AgentsRegistry.AgentData storage ref" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "4066:39:2" + "id": 576, + "nodeType": "ExpressionStatement", + "src": "5837:75:2" }, { "expression": { - "components": [ - { - "expression": { - "id": 479, - "name": "data", + "id": 582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 577, + "name": "agents", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 210, + "src": "5922:6:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$200_storage_$", + "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" + } + }, + "id": 579, + "indexExpression": { + "id": 578, + "name": "agent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "4123:4:2", + "referencedDeclaration": 551, + "src": "5929:5:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 480, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4128:4:2", - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 189, - "src": "4123:9:2", + "nodeType": "IndexAccess", + "src": "5922:13:2", "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_struct$_AgentData_$200_storage", + "typeString": "struct AgentsRegistry.AgentData storage ref" } }, - { - "expression": { - "id": 481, - "name": "data", + "id": 580, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5936:12:2", + "memberName": "totalRatings", + "nodeType": "MemberAccess", + "referencedDeclaration": 199, + "src": "5922:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5952:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5922:31:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 583, + "nodeType": "ExpressionStatement", + "src": "5922:31:2" + }, + { + "expression": { + "id": 608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 584, + "name": "agents", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 210, + "src": "5963:6:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$200_storage_$", + "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" + } + }, + "id": 586, + "indexExpression": { + "id": 585, + "name": "agent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "4134:4:2", + "referencedDeclaration": 551, + "src": "5970:5:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 482, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4139:8:2", - "memberName": "agentUri", - "nodeType": "MemberAccess", - "referencedDeclaration": 191, - "src": "4134:13:2", + "nodeType": "IndexAccess", + "src": "5963:13:2", "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_struct$_AgentData_$200_storage", + "typeString": "struct AgentsRegistry.AgentData storage ref" } }, - { - "expression": { - "id": 483, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "4149:4:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" + "id": 587, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5977:10:2", + "memberName": "reputation", + "nodeType": "MemberAccess", + "referencedDeclaration": 197, + "src": "5963:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 588, + "name": "agents", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 210, + "src": "5991:6:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$200_storage_$", + "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" + } + }, + "id": 590, + "indexExpression": { + "id": 589, + "name": "agent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 551, + "src": "5998:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5991:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AgentData_$200_storage", + "typeString": "struct AgentsRegistry.AgentData storage ref" + } + }, + "id": 591, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6005:10:2", + "memberName": "reputation", + "nodeType": "MemberAccess", + "referencedDeclaration": 197, + "src": "5991:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 592, + "name": "agents", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 210, + "src": "6019:6:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$200_storage_$", + "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" + } + }, + "id": 594, + "indexExpression": { + "id": 593, + "name": "agent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 551, + "src": "6026:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6019:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AgentData_$200_storage", + "typeString": "struct AgentsRegistry.AgentData storage ref" + } + }, + "id": 595, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6033:12:2", + "memberName": "totalRatings", + "nodeType": "MemberAccess", + "referencedDeclaration": 199, + "src": "6019:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 596, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6048:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6019:30:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 598, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6018:32:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5991:59:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 600, + "name": "_rating", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 553, + "src": "6053:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5991:69:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - }, - "id": 484, + ], + "id": 602, "isConstant": false, - "isLValue": true, + "isInlineArray": false, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4154:5:2", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 193, - "src": "4149:10:2", + "nodeType": "TupleExpression", + "src": "5990:71:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - { + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { "expression": { - "id": 485, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "4161:4:2", + "baseExpression": { + "id": 603, + "name": "agents", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 210, + "src": "6064:6:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$200_storage_$", + "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" + } + }, + "id": 605, + "indexExpression": { + "id": 604, + "name": "agent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 551, + "src": "6071:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6064:13:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" + "typeIdentifier": "t_struct$_AgentData_$200_storage", + "typeString": "struct AgentsRegistry.AgentData storage ref" } }, - "id": 486, + "id": 606, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4166:5:2", - "memberName": "agent", + "memberLocation": "6078:12:2", + "memberName": "totalRatings", "nodeType": "MemberAccess", - "referencedDeclaration": 195, - "src": "4161:10:2", + "referencedDeclaration": 199, + "src": "6064:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5990:100:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5963:127:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 609, + "nodeType": "ExpressionStatement", + "src": "5963:127:2" + }, + { + "eventCall": { + "arguments": [ + { + "id": 611, + "name": "agent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 551, + "src": "6123:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5715,80 +7623,182 @@ }, { "expression": { - "id": 487, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "4173:4:2", + "baseExpression": { + "id": 612, + "name": "agents", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 210, + "src": "6130:6:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$200_storage_$", + "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" + } + }, + "id": 614, + "indexExpression": { + "id": 613, + "name": "agent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 551, + "src": "6137:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6130:13:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_AgentData_$204_storage_ptr", - "typeString": "struct AgentsRegistry.AgentData storage pointer" + "typeIdentifier": "t_struct$_AgentData_$200_storage", + "typeString": "struct AgentsRegistry.AgentData storage ref" } }, - "id": 488, + "id": 615, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4178:10:2", + "memberLocation": "6144:10:2", "memberName": "reputation", "nodeType": "MemberAccess", "referencedDeclaration": 197, - "src": "4173:15:2", + "src": "6130:24:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 489, - "isConstant": false, - "isInlineArray": false, + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 610, + "name": "ReputationUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "6105:17:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 616, + "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4122:67:2", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6105:50:2", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_string_storage_$_t_string_storage_$_t_address_$_t_address_$_t_uint256_$", - "typeString": "tuple(string storage ref,string storage ref,address,address,uint256)" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "functionReturnParameters": 471, - "id": 490, + "id": 617, + "nodeType": "EmitStatement", + "src": "6100:55:2" + }, + { + "expression": { + "expression": { + "baseExpression": { + "id": 618, + "name": "agents", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 210, + "src": "6173:6:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$200_storage_$", + "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" + } + }, + "id": 620, + "indexExpression": { + "id": 619, + "name": "agent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 551, + "src": "6180:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6173:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AgentData_$200_storage", + "typeString": "struct AgentsRegistry.AgentData storage ref" + } + }, + "id": 621, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6187:10:2", + "memberName": "reputation", + "nodeType": "MemberAccess", + "referencedDeclaration": 197, + "src": "6173:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 557, + "id": 622, "nodeType": "Return", - "src": "4115:74:2" + "src": "6166:31:2" } ] }, - "documentation": { - "id": 457, - "nodeType": "StructuredDocumentation", - "src": "3499:351:2", - "text": " @dev get agent data\n @param _agent The address of the agent\n @return name The name of the agent\n @return agentUri The URI pointing to the agent's metadata\n @return owner The owner address of the agent\n @return agent The agent contract address\n @return reputation The reputation score of the agent" - }, - "functionSelector": "aac9f15a", - "id": 492, + "functionSelector": "70370a81", + "id": 624, "implemented": true, "kind": "function", "modifiers": [], - "name": "getAgentData", - "nameLocation": "3864:12:2", + "name": "addRating", + "nameLocation": "5682:9:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 460, + "id": 554, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 459, + "id": 551, "mutability": "mutable", - "name": "_agent", - "nameLocation": "3885:6:2", + "name": "agent", + "nameLocation": "5700:5:2", "nodeType": "VariableDeclaration", - "scope": 492, - "src": "3877:14:2", + "scope": 624, + "src": "5692:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5796,10 +7806,10 @@ "typeString": "address" }, "typeName": { - "id": 458, + "id": 550, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3877:7:2", + "src": "5692:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5807,77 +7817,165 @@ } }, "visibility": "internal" - } - ], - "src": "3876:16:2" - }, - "returnParameters": { - "id": 471, - "nodeType": "ParameterList", - "parameters": [ + }, { "constant": false, - "id": 462, + "id": 553, "mutability": "mutable", - "name": "name", - "nameLocation": "3939:4:2", + "name": "_rating", + "nameLocation": "5715:7:2", "nodeType": "VariableDeclaration", - "scope": 492, - "src": "3925:18:2", + "scope": 624, + "src": "5707:15:2", "stateVariable": false, - "storageLocation": "memory", + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 461, - "name": "string", + "id": 552, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3925:6:2", + "src": "5707:7:2", "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "visibility": "internal" - }, + } + ], + "src": "5691:32:2" + }, + "returnParameters": { + "id": 557, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 464, + "id": 556, "mutability": "mutable", - "name": "agentUri", - "nameLocation": "3967:8:2", + "name": "", + "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 492, - "src": "3953:22:2", + "scope": 624, + "src": "5740:7:2", "stateVariable": false, - "storageLocation": "memory", + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 463, - "name": "string", + "id": 555, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3953:6:2", + "src": "5740:7:2", "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "visibility": "internal" - }, + } + ], + "src": "5739:9:2" + }, + "scope": 670, + "src": "5673:531:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 636, + "nodeType": "Block", + "src": "6280:48:2", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 631, + "name": "agents", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 210, + "src": "6297:6:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$200_storage_$", + "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" + } + }, + "id": 633, + "indexExpression": { + "id": 632, + "name": "agent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 626, + "src": "6304:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6297:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AgentData_$200_storage", + "typeString": "struct AgentsRegistry.AgentData storage ref" + } + }, + "id": 634, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6311:10:2", + "memberName": "reputation", + "nodeType": "MemberAccess", + "referencedDeclaration": 197, + "src": "6297:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 630, + "id": 635, + "nodeType": "Return", + "src": "6290:31:2" + } + ] + }, + "functionSelector": "9c89a0e2", + "id": 637, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getReputation", + "nameLocation": "6219:13:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 627, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 466, + "id": 626, "mutability": "mutable", - "name": "owner", - "nameLocation": "3993:5:2", + "name": "agent", + "nameLocation": "6241:5:2", "nodeType": "VariableDeclaration", - "scope": 492, - "src": "3985:13:2", + "scope": 637, + "src": "6233:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5885,10 +7983,10 @@ "typeString": "address" }, "typeName": { - "id": 465, + "id": 625, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3985:7:2", + "src": "6233:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5896,16 +7994,187 @@ } }, "visibility": "internal" + } + ], + "src": "6232:15:2" + }, + "returnParameters": { + "id": 630, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 629, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 637, + "src": "6271:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6271:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6270:9:2" + }, + "scope": 670, + "src": "6210:118:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 655, + "nodeType": "Block", + "src": "6571:77:2", + "statements": [ + { + "assignments": [ + 648 + ], + "declarations": [ + { + "constant": false, + "id": 648, + "mutability": "mutable", + "name": "data", + "nameLocation": "6599:4:2", + "nodeType": "VariableDeclaration", + "scope": 655, + "src": "6581:22:2", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AgentData_$200_storage_ptr", + "typeString": "struct AgentsRegistry.AgentData" + }, + "typeName": { + "id": 647, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 646, + "name": "AgentData", + "nameLocations": [ + "6581:9:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 200, + "src": "6581:9:2" + }, + "referencedDeclaration": 200, + "src": "6581:9:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AgentData_$200_storage_ptr", + "typeString": "struct AgentsRegistry.AgentData" + } + }, + "visibility": "internal" + } + ], + "id": 652, + "initialValue": { + "baseExpression": { + "id": 649, + "name": "agents", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 210, + "src": "6606:6:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_AgentData_$200_storage_$", + "typeString": "mapping(address => struct AgentsRegistry.AgentData storage ref)" + } + }, + "id": 651, + "indexExpression": { + "id": 650, + "name": "_agent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 640, + "src": "6613:6:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6606:14:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AgentData_$200_storage", + "typeString": "struct AgentsRegistry.AgentData storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6581:39:2" }, + { + "expression": { + "id": 653, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 648, + "src": "6637:4:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AgentData_$200_storage_ptr", + "typeString": "struct AgentsRegistry.AgentData storage pointer" + } + }, + "functionReturnParameters": 645, + "id": 654, + "nodeType": "Return", + "src": "6630:11:2" + } + ] + }, + "documentation": { + "id": 638, + "nodeType": "StructuredDocumentation", + "src": "6334:148:2", + "text": " @dev Returns the data of an agent.\n @param _agent The address of the agent.\n @return AgentData The data of the agent." + }, + "functionSelector": "aac9f15a", + "id": 656, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAgentData", + "nameLocation": "6496:12:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 641, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 468, + "id": 640, "mutability": "mutable", - "name": "agent", - "nameLocation": "4016:5:2", + "name": "_agent", + "nameLocation": "6517:6:2", "nodeType": "VariableDeclaration", - "scope": 492, - "src": "4008:13:2", + "scope": 656, + "src": "6509:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5913,10 +8182,10 @@ "typeString": "address" }, "typeName": { - "id": 467, + "id": 639, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4008:7:2", + "src": "6509:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5924,71 +8193,88 @@ } }, "visibility": "internal" - }, + } + ], + "src": "6508:16:2" + }, + "returnParameters": { + "id": 645, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 470, + "id": 644, "mutability": "mutable", - "name": "reputation", - "nameLocation": "4039:10:2", + "name": "", + "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 492, - "src": "4031:18:2", + "scope": 656, + "src": "6548:16:2", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_AgentData_$200_memory_ptr", + "typeString": "struct AgentsRegistry.AgentData" }, "typeName": { - "id": 469, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4031:7:2", + "id": 643, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 642, + "name": "AgentData", + "nameLocations": [ + "6548:9:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 200, + "src": "6548:9:2" + }, + "referencedDeclaration": 200, + "src": "6548:9:2", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_AgentData_$200_storage_ptr", + "typeString": "struct AgentsRegistry.AgentData" } }, "visibility": "internal" } ], - "src": "3915:140:2" + "src": "6547:23:2" }, - "scope": 506, - "src": "3855:341:2", + "scope": 670, + "src": "6487:161:2", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { - "id": 504, + "id": 668, "nodeType": "Block", - "src": "4284:45:2", + "src": "6743:45:2", "statements": [ { "expression": { "baseExpression": { - "id": 500, + "id": 664, "name": "proposals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 216, - "src": "4301:9:2", + "referencedDeclaration": 215, + "src": "6760:9:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Proposal_$1039_storage_$dyn_storage", - "typeString": "struct IProposalStruct.Proposal storage ref[] storage ref" + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_ServiceProposal_$1403_storage_$", + "typeString": "mapping(uint256 => struct IProposalStruct.ServiceProposal storage ref)" } }, - "id": 502, + "id": 666, "indexExpression": { - "id": 501, + "id": 665, "name": "proposalId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 494, - "src": "4311:10:2", + "referencedDeclaration": 658, + "src": "6770:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5999,40 +8285,40 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4301:21:2", + "src": "6760:21:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_storage", - "typeString": "struct IProposalStruct.Proposal storage ref" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_storage", + "typeString": "struct IProposalStruct.ServiceProposal storage ref" } }, - "functionReturnParameters": 499, - "id": 503, + "functionReturnParameters": 663, + "id": 667, "nodeType": "Return", - "src": "4294:28:2" + "src": "6753:28:2" } ] }, "functionSelector": "c7f758a8", - "id": 505, + "id": 669, "implemented": true, "kind": "function", "modifiers": [], "name": "getProposal", - "nameLocation": "4212:11:2", + "nameLocation": "6664:11:2", "nodeType": "FunctionDefinition", "parameters": { - "id": 495, + "id": 659, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 494, + "id": 658, "mutability": "mutable", "name": "proposalId", - "nameLocation": "4232:10:2", + "nameLocation": "6684:10:2", "nodeType": "VariableDeclaration", - "scope": 505, - "src": "4224:18:2", + "scope": 669, + "src": "6676:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6040,10 +8326,10 @@ "typeString": "uint256" }, "typeName": { - "id": 493, + "id": 657, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4224:7:2", + "src": "6676:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6052,75 +8338,76 @@ "visibility": "internal" } ], - "src": "4223:20:2" + "src": "6675:20:2" }, "returnParameters": { - "id": 499, + "id": 663, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 498, + "id": 662, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 505, - "src": "4267:15:2", + "scope": 669, + "src": "6719:22:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_memory_ptr", - "typeString": "struct IProposalStruct.Proposal" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal" }, "typeName": { - "id": 497, + "id": 661, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 496, - "name": "Proposal", + "id": 660, + "name": "ServiceProposal", "nameLocations": [ - "4267:8:2" + "6719:15:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1039, - "src": "4267:8:2" + "referencedDeclaration": 1403, + "src": "6719:15:2" }, - "referencedDeclaration": 1039, - "src": "4267:8:2", + "referencedDeclaration": 1403, + "src": "6719:15:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_storage_ptr", - "typeString": "struct IProposalStruct.Proposal" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_storage_ptr", + "typeString": "struct IProposalStruct.ServiceProposal" } }, "visibility": "internal" } ], - "src": "4266:17:2" + "src": "6718:24:2" }, - "scope": 506, - "src": "4203:126:2", + "scope": 670, + "src": "6655:133:2", "stateMutability": "view", "virtual": false, "visibility": "external" } ], - "scope": 507, - "src": "362:3969:2", + "scope": 671, + "src": "362:6428:2", "usedErrors": [ 13, 18 ], "usedEvents": [ 24, - 257, 263, 269, - 279 + 279, + 285, + 293 ] } ], - "src": "32:4300:2" + "src": "32:6759:2" }, "id": 2 }, @@ -6135,15 +8422,15 @@ 147 ], "ServiceRegistry": [ - 682 + 844 ] }, - "id": 683, + "id": 845, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 508, + "id": 672, "literals": [ "solidity", "^", @@ -6156,10 +8443,10 @@ { "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", "file": "@openzeppelin/contracts/access/Ownable.sol", - "id": 509, + "id": 673, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 683, + "scope": 845, "sourceUnit": 148, "src": "58:52:3", "symbolAliases": [], @@ -6170,7 +8457,7 @@ "baseContracts": [ { "baseName": { - "id": 511, + "id": 675, "name": "Ownable", "nameLocations": [ "284:7:3" @@ -6179,7 +8466,7 @@ "referencedDeclaration": 147, "src": "284:7:3" }, - "id": 512, + "id": 676, "nodeType": "InheritanceSpecifier", "src": "284:7:3" } @@ -6188,15 +8475,15 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 510, + "id": 674, "nodeType": "StructuredDocumentation", "src": "111:144:3", "text": " @title ServiceRegistry\n @author leonprou\n @notice A smart contract that stores information about the services provided by agents." }, "fullyImplemented": true, - "id": 682, + "id": 844, "linearizedBaseContracts": [ - 682, + 844, 147, 177 ], @@ -6206,16 +8493,16 @@ "nodes": [ { "canonicalName": "ServiceRegistry.Service", - "id": 519, + "id": 683, "members": [ { "constant": false, - "id": 514, + "id": 678, "mutability": "mutable", "name": "name", "nameLocation": "330:4:3", "nodeType": "VariableDeclaration", - "scope": 519, + "scope": 683, "src": "323:11:3", "stateVariable": false, "storageLocation": "default", @@ -6224,7 +8511,7 @@ "typeString": "string" }, "typeName": { - "id": 513, + "id": 677, "name": "string", "nodeType": "ElementaryTypeName", "src": "323:6:3", @@ -6237,12 +8524,12 @@ }, { "constant": false, - "id": 516, + "id": 680, "mutability": "mutable", "name": "category", "nameLocation": "351:8:3", "nodeType": "VariableDeclaration", - "scope": 519, + "scope": 683, "src": "344:15:3", "stateVariable": false, "storageLocation": "default", @@ -6251,7 +8538,7 @@ "typeString": "string" }, "typeName": { - "id": 515, + "id": 679, "name": "string", "nodeType": "ElementaryTypeName", "src": "344:6:3", @@ -6264,12 +8551,12 @@ }, { "constant": false, - "id": 518, + "id": 682, "mutability": "mutable", "name": "description", "nameLocation": "376:11:3", "nodeType": "VariableDeclaration", - "scope": 519, + "scope": 683, "src": "369:18:3", "stateVariable": false, "storageLocation": "default", @@ -6278,7 +8565,7 @@ "typeString": "string" }, "typeName": { - "id": 517, + "id": 681, "name": "string", "nodeType": "ElementaryTypeName", "src": "369:6:3", @@ -6293,32 +8580,32 @@ "name": "Service", "nameLocation": "305:7:3", "nodeType": "StructDefinition", - "scope": 682, + "scope": 844, "src": "298:96:3", "visibility": "public" }, { "constant": false, "functionSelector": "3017ba09", - "id": 524, + "id": 688, "mutability": "mutable", "name": "services", "nameLocation": "434:8:3", "nodeType": "VariableDeclaration", - "scope": 682, + "scope": 844, "src": "400:42:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Service_$519_storage_$", + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Service_$683_storage_$", "typeString": "mapping(string => struct ServiceRegistry.Service)" }, "typeName": { - "id": 523, + "id": 687, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 520, + "id": 684, "name": "string", "nodeType": "ElementaryTypeName", "src": "408:6:3", @@ -6330,28 +8617,28 @@ "nodeType": "Mapping", "src": "400:26:3", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Service_$519_storage_$", + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Service_$683_storage_$", "typeString": "mapping(string => struct ServiceRegistry.Service)" }, "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 522, + "id": 686, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 521, + "id": 685, "name": "Service", "nameLocations": [ "418:7:3" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 519, + "referencedDeclaration": 683, "src": "418:7:3" }, - "referencedDeclaration": 519, + "referencedDeclaration": 683, "src": "418:7:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage_ptr", + "typeIdentifier": "t_struct$_Service_$683_storage_ptr", "typeString": "struct ServiceRegistry.Service" } } @@ -6361,12 +8648,12 @@ { "constant": false, "functionSelector": "06237526", - "id": 526, + "id": 690, "mutability": "mutable", "name": "serviceCount", "nameLocation": "463:12:3", "nodeType": "VariableDeclaration", - "scope": 682, + "scope": 844, "src": "448:27:3", "stateVariable": true, "storageLocation": "default", @@ -6375,7 +8662,7 @@ "typeString": "uint256" }, "typeName": { - "id": 525, + "id": 689, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "448:7:3", @@ -6389,23 +8676,23 @@ { "anonymous": false, "eventSelector": "c182fe36565be4905be53a8ed353f07898b528f1625e778edf77c13674806486", - "id": 534, + "id": 698, "name": "ServiceRegistered", "nameLocation": "488:17:3", "nodeType": "EventDefinition", "parameters": { - "id": 533, + "id": 697, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 528, + "id": 692, "indexed": false, "mutability": "mutable", "name": "name", "nameLocation": "513:4:3", "nodeType": "VariableDeclaration", - "scope": 534, + "scope": 698, "src": "506:11:3", "stateVariable": false, "storageLocation": "default", @@ -6414,7 +8701,7 @@ "typeString": "string" }, "typeName": { - "id": 527, + "id": 691, "name": "string", "nodeType": "ElementaryTypeName", "src": "506:6:3", @@ -6427,13 +8714,13 @@ }, { "constant": false, - "id": 530, + "id": 694, "indexed": false, "mutability": "mutable", "name": "category", "nameLocation": "526:8:3", "nodeType": "VariableDeclaration", - "scope": 534, + "scope": 698, "src": "519:15:3", "stateVariable": false, "storageLocation": "default", @@ -6442,7 +8729,7 @@ "typeString": "string" }, "typeName": { - "id": 529, + "id": 693, "name": "string", "nodeType": "ElementaryTypeName", "src": "519:6:3", @@ -6455,13 +8742,13 @@ }, { "constant": false, - "id": 532, + "id": 696, "indexed": false, "mutability": "mutable", "name": "description", "nameLocation": "543:11:3", "nodeType": "VariableDeclaration", - "scope": 534, + "scope": 698, "src": "536:18:3", "stateVariable": false, "storageLocation": "default", @@ -6470,7 +8757,7 @@ "typeString": "string" }, "typeName": { - "id": 531, + "id": 695, "name": "string", "nodeType": "ElementaryTypeName", "src": "536:6:3", @@ -6489,23 +8776,23 @@ { "anonymous": false, "eventSelector": "4cd09e35844ccdf25aac9862af453cedf05d8a8b765f2763be8373b55215df8d", - "id": 542, + "id": 706, "name": "ServiceUpdated", "nameLocation": "567:14:3", "nodeType": "EventDefinition", "parameters": { - "id": 541, + "id": 705, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 536, + "id": 700, "indexed": false, "mutability": "mutable", "name": "name", "nameLocation": "589:4:3", "nodeType": "VariableDeclaration", - "scope": 542, + "scope": 706, "src": "582:11:3", "stateVariable": false, "storageLocation": "default", @@ -6514,7 +8801,7 @@ "typeString": "string" }, "typeName": { - "id": 535, + "id": 699, "name": "string", "nodeType": "ElementaryTypeName", "src": "582:6:3", @@ -6527,13 +8814,13 @@ }, { "constant": false, - "id": 538, + "id": 702, "indexed": false, "mutability": "mutable", "name": "category", "nameLocation": "602:8:3", "nodeType": "VariableDeclaration", - "scope": 542, + "scope": 706, "src": "595:15:3", "stateVariable": false, "storageLocation": "default", @@ -6542,7 +8829,7 @@ "typeString": "string" }, "typeName": { - "id": 537, + "id": 701, "name": "string", "nodeType": "ElementaryTypeName", "src": "595:6:3", @@ -6555,13 +8842,13 @@ }, { "constant": false, - "id": 540, + "id": 704, "indexed": false, "mutability": "mutable", "name": "description", "nameLocation": "619:11:3", "nodeType": "VariableDeclaration", - "scope": 542, + "scope": 706, "src": "612:18:3", "stateVariable": false, "storageLocation": "default", @@ -6570,7 +8857,7 @@ "typeString": "string" }, "typeName": { - "id": 539, + "id": 703, "name": "string", "nodeType": "ElementaryTypeName", "src": "612:6:3", @@ -6588,12 +8875,12 @@ }, { "body": { - "id": 549, + "id": 713, "nodeType": "Block", "src": "672:2:3", "statements": [] }, - "id": 550, + "id": 714, "implemented": true, "kind": "constructor", "modifiers": [ @@ -6601,7 +8888,7 @@ "arguments": [ { "expression": { - "id": 545, + "id": 709, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -6612,7 +8899,7 @@ "typeString": "msg" } }, - "id": 546, + "id": 710, "isConstant": false, "isLValue": false, "isPure": false, @@ -6627,10 +8914,10 @@ } } ], - "id": 547, + "id": 711, "kind": "baseConstructorSpecifier", "modifierName": { - "id": 544, + "id": 708, "name": "Ownable", "nameLocations": [ "652:7:3" @@ -6647,18 +8934,18 @@ "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 543, + "id": 707, "nodeType": "ParameterList", "parameters": [], "src": "649:2:3" }, "returnParameters": { - "id": 548, + "id": 712, "nodeType": "ParameterList", "parameters": [], "src": "672:0:3" }, - "scope": 682, + "scope": 844, "src": "638:36:3", "stateMutability": "nonpayable", "virtual": false, @@ -6666,15 +8953,15 @@ }, { "body": { - "id": 600, + "id": 762, "nodeType": "Block", - "src": "996:382:3", + "src": "986:382:3", "statements": [ { "expression": { "arguments": [ { - "id": 570, + "id": 732, "isConstant": false, "isLValue": false, "isPure": false, @@ -6682,16 +8969,16 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1014:31:3", + "src": "1004:31:3", "subExpression": { "arguments": [ { - "id": 568, + "id": 730, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 553, - "src": "1040:4:3", + "referencedDeclaration": 717, + "src": "1030:4:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -6706,33 +8993,33 @@ } ], "expression": { - "id": 566, + "id": 728, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, - "src": "1015:4:3", + "src": "1005:4:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", + "typeIdentifier": "t_contract$_ServiceRegistry_$844", "typeString": "contract ServiceRegistry" } }, - "id": 567, + "id": 729, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1020:19:3", + "memberLocation": "1010:19:3", "memberName": "isServiceRegistered", "nodeType": "MemberAccess", - "referencedDeclaration": 645, - "src": "1015:24:3", + "referencedDeclaration": 807, + "src": "1005:24:3", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_bool_$", "typeString": "function (string memory) view external returns (bool)" } }, - "id": 569, + "id": 731, "isConstant": false, "isLValue": false, "isPure": false, @@ -6741,7 +9028,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1015:30:3", + "src": "1005:30:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6755,14 +9042,14 @@ }, { "hexValue": "5365727669636520616c72656164792072656769737465726564", - "id": 571, + "id": 733, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1047:28:3", + "src": "1037:28:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_ac2c61739514b5f463c314c2780e64fc7747cb6b4d2c3e9147a35ee5c42aeefa", "typeString": "literal_string \"Service already registered\"" @@ -6781,7 +9068,7 @@ "typeString": "literal_string \"Service already registered\"" } ], - "id": 565, + "id": 727, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -6789,13 +9076,13 @@ -18 ], "referencedDeclaration": -18, - "src": "1006:7:3", + "src": "996:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 572, + "id": 734, "isConstant": false, "isLValue": false, "isPure": false, @@ -6804,94 +9091,94 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1006:70:3", + "src": "996:70:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 573, + "id": 735, "nodeType": "ExpressionStatement", - "src": "1006:70:3" + "src": "996:70:3" }, { "assignments": [ - 576 + 738 ], "declarations": [ { "constant": false, - "id": 576, + "id": 738, "mutability": "mutable", "name": "service", - "nameLocation": "1102:7:3", + "nameLocation": "1092:7:3", "nodeType": "VariableDeclaration", - "scope": 600, - "src": "1087:22:3", + "scope": 762, + "src": "1077:22:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_memory_ptr", + "typeIdentifier": "t_struct$_Service_$683_memory_ptr", "typeString": "struct ServiceRegistry.Service" }, "typeName": { - "id": 575, + "id": 737, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 574, + "id": 736, "name": "Service", "nameLocations": [ - "1087:7:3" + "1077:7:3" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 519, - "src": "1087:7:3" + "referencedDeclaration": 683, + "src": "1077:7:3" }, - "referencedDeclaration": 519, - "src": "1087:7:3", + "referencedDeclaration": 683, + "src": "1077:7:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage_ptr", + "typeIdentifier": "t_struct$_Service_$683_storage_ptr", "typeString": "struct ServiceRegistry.Service" } }, "visibility": "internal" } ], - "id": 582, + "id": 744, "initialValue": { "arguments": [ { - "id": 578, + "id": 740, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 553, - "src": "1140:4:3", + "referencedDeclaration": 717, + "src": "1130:4:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { - "id": 579, + "id": 741, "name": "category", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 555, - "src": "1168:8:3", + "referencedDeclaration": 719, + "src": "1158:8:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { - "id": 580, + "id": 742, "name": "description", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 557, - "src": "1203:11:3", + "referencedDeclaration": 721, + "src": "1193:11:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -6913,27 +9200,27 @@ "typeString": "string memory" } ], - "id": 577, + "id": 739, "name": "Service", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "1112:7:3", + "referencedDeclaration": 683, + "src": "1102:7:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Service_$519_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Service_$683_storage_ptr_$", "typeString": "type(struct ServiceRegistry.Service storage pointer)" } }, - "id": 581, + "id": 743, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "1134:4:3", - "1158:8:3", - "1190:11:3" + "1124:4:3", + "1148:8:3", + "1180:11:3" ], "names": [ "name", @@ -6941,44 +9228,44 @@ "description" ], "nodeType": "FunctionCall", - "src": "1112:113:3", + "src": "1102:113:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_memory_ptr", + "typeIdentifier": "t_struct$_Service_$683_memory_ptr", "typeString": "struct ServiceRegistry.Service memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "1087:138:3" + "src": "1077:138:3" }, { "expression": { - "id": 587, + "id": 749, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 583, + "id": 745, "name": "services", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "1236:8:3", + "referencedDeclaration": 688, + "src": "1226:8:3", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Service_$519_storage_$", + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Service_$683_storage_$", "typeString": "mapping(string memory => struct ServiceRegistry.Service storage ref)" } }, - "id": 585, + "id": 747, "indexExpression": { - "id": 584, + "id": 746, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 553, - "src": "1245:4:3", + "referencedDeclaration": 717, + "src": "1235:4:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -6989,70 +9276,70 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1236:14:3", + "src": "1226:14:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage", + "typeIdentifier": "t_struct$_Service_$683_storage", "typeString": "struct ServiceRegistry.Service storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 586, + "id": 748, "name": "service", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 576, - "src": "1253:7:3", + "referencedDeclaration": 738, + "src": "1243:7:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_memory_ptr", + "typeIdentifier": "t_struct$_Service_$683_memory_ptr", "typeString": "struct ServiceRegistry.Service memory" } }, - "src": "1236:24:3", + "src": "1226:24:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage", + "typeIdentifier": "t_struct$_Service_$683_storage", "typeString": "struct ServiceRegistry.Service storage ref" } }, - "id": 588, + "id": 750, "nodeType": "ExpressionStatement", - "src": "1236:24:3" + "src": "1226:24:3" }, { "eventCall": { "arguments": [ { - "id": 590, + "id": 752, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 553, - "src": "1294:4:3", + "referencedDeclaration": 717, + "src": "1284:4:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { - "id": 591, + "id": 753, "name": "category", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 555, - "src": "1300:8:3", + "referencedDeclaration": 719, + "src": "1290:8:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { - "id": 592, + "id": 754, "name": "description", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 557, - "src": "1310:11:3", + "referencedDeclaration": 721, + "src": "1300:11:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -7074,18 +9361,18 @@ "typeString": "string memory" } ], - "id": 589, + "id": 751, "name": "ServiceRegistered", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 534, - "src": "1276:17:3", + "referencedDeclaration": 698, + "src": "1266:17:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory,string memory)" } }, - "id": 593, + "id": 755, "isConstant": false, "isLValue": false, "isPure": false, @@ -7094,20 +9381,20 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1276:46:3", + "src": "1266:46:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 594, + "id": 756, "nodeType": "EmitStatement", - "src": "1271:51:3" + "src": "1261:51:3" }, { "expression": { - "id": 596, + "id": 758, "isConstant": false, "isLValue": false, "isPure": false, @@ -7115,14 +9402,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1333:14:3", + "src": "1323:14:3", "subExpression": { - "id": 595, + "id": 757, "name": "serviceCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 526, - "src": "1333:12:3", + "referencedDeclaration": 690, + "src": "1323:12:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7133,73 +9420,56 @@ "typeString": "uint256" } }, - "id": 597, + "id": 759, "nodeType": "ExpressionStatement", - "src": "1333:14:3" + "src": "1323:14:3" }, { "expression": { - "id": 598, + "id": 760, "name": "service", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 576, - "src": "1364:7:3", + "referencedDeclaration": 738, + "src": "1354:7:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_memory_ptr", + "typeIdentifier": "t_struct$_Service_$683_memory_ptr", "typeString": "struct ServiceRegistry.Service memory" } }, - "functionReturnParameters": 564, - "id": 599, + "functionReturnParameters": 726, + "id": 761, "nodeType": "Return", - "src": "1357:14:3" + "src": "1347:14:3" } ] }, "documentation": { - "id": 551, + "id": 715, "nodeType": "StructuredDocumentation", "src": "680:171:3", "text": " @dev Registers a new service with the given name and price.\n @param name The name of the service.\n @return The ID of the registered service." }, "functionSelector": "ef57d884", - "id": 601, + "id": 763, "implemented": true, "kind": "function", - "modifiers": [ - { - "id": 560, - "kind": "modifierInvocation", - "modifierName": { - "id": 559, - "name": "onlyOwner", - "nameLocations": [ - "961:9:3" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 58, - "src": "961:9:3" - }, - "nodeType": "ModifierInvocation", - "src": "961:9:3" - } - ], + "modifiers": [], "name": "registerService", "nameLocation": "865:15:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 558, + "id": 722, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 553, + "id": 717, "mutability": "mutable", "name": "name", "nameLocation": "895:4:3", "nodeType": "VariableDeclaration", - "scope": 601, + "scope": 763, "src": "881:18:3", "stateVariable": false, "storageLocation": "memory", @@ -7208,7 +9478,7 @@ "typeString": "string" }, "typeName": { - "id": 552, + "id": 716, "name": "string", "nodeType": "ElementaryTypeName", "src": "881:6:3", @@ -7221,12 +9491,12 @@ }, { "constant": false, - "id": 555, + "id": 719, "mutability": "mutable", "name": "category", "nameLocation": "915:8:3", "nodeType": "VariableDeclaration", - "scope": 601, + "scope": 763, "src": "901:22:3", "stateVariable": false, "storageLocation": "memory", @@ -7235,7 +9505,7 @@ "typeString": "string" }, "typeName": { - "id": 554, + "id": 718, "name": "string", "nodeType": "ElementaryTypeName", "src": "901:6:3", @@ -7248,12 +9518,12 @@ }, { "constant": false, - "id": 557, + "id": 721, "mutability": "mutable", "name": "description", "nameLocation": "939:11:3", "nodeType": "VariableDeclaration", - "scope": 601, + "scope": 763, "src": "925:25:3", "stateVariable": false, "storageLocation": "memory", @@ -7262,7 +9532,7 @@ "typeString": "string" }, "typeName": { - "id": 556, + "id": 720, "name": "string", "nodeType": "ElementaryTypeName", "src": "925:6:3", @@ -7277,83 +9547,83 @@ "src": "880:71:3" }, "returnParameters": { - "id": 564, + "id": 726, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 563, + "id": 725, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 601, - "src": "980:14:3", + "scope": 763, + "src": "970:14:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_memory_ptr", + "typeIdentifier": "t_struct$_Service_$683_memory_ptr", "typeString": "struct ServiceRegistry.Service" }, "typeName": { - "id": 562, + "id": 724, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 561, + "id": 723, "name": "Service", "nameLocations": [ - "980:7:3" + "970:7:3" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 519, - "src": "980:7:3" + "referencedDeclaration": 683, + "src": "970:7:3" }, - "referencedDeclaration": 519, - "src": "980:7:3", + "referencedDeclaration": 683, + "src": "970:7:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage_ptr", + "typeIdentifier": "t_struct$_Service_$683_storage_ptr", "typeString": "struct ServiceRegistry.Service" } }, "visibility": "internal" } ], - "src": "979:16:3" + "src": "969:16:3" }, - "scope": 682, - "src": "856:522:3", + "scope": 844, + "src": "856:512:3", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 614, + "id": 776, "nodeType": "Block", - "src": "1626:38:3", + "src": "1616:38:3", "statements": [ { "expression": { "baseExpression": { - "id": 610, + "id": 772, "name": "services", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "1643:8:3", + "referencedDeclaration": 688, + "src": "1633:8:3", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Service_$519_storage_$", + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Service_$683_storage_$", "typeString": "mapping(string memory => struct ServiceRegistry.Service storage ref)" } }, - "id": 612, + "id": 774, "indexExpression": { - "id": 611, + "id": 773, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 604, - "src": "1652:4:3", + "referencedDeclaration": 766, + "src": "1642:4:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -7364,46 +9634,46 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1643:14:3", + "src": "1633:14:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage", + "typeIdentifier": "t_struct$_Service_$683_storage", "typeString": "struct ServiceRegistry.Service storage ref" } }, - "functionReturnParameters": 609, - "id": 613, + "functionReturnParameters": 771, + "id": 775, "nodeType": "Return", - "src": "1636:21:3" + "src": "1626:21:3" } ] }, "documentation": { - "id": 602, + "id": 764, "nodeType": "StructuredDocumentation", - "src": "1384:158:3", + "src": "1374:158:3", "text": " @dev Retrieves the details of a service.\n @param name The name of the service to retrieve.\n @return The details of the service." }, "functionSelector": "794758be", - "id": 615, + "id": 777, "implemented": true, "kind": "function", "modifiers": [], "name": "getService", - "nameLocation": "1556:10:3", + "nameLocation": "1546:10:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 605, + "id": 767, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 604, + "id": 766, "mutability": "mutable", "name": "name", - "nameLocation": "1581:4:3", + "nameLocation": "1571:4:3", "nodeType": "VariableDeclaration", - "scope": 615, - "src": "1567:18:3", + "scope": 777, + "src": "1557:18:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -7411,10 +9681,10 @@ "typeString": "string" }, "typeName": { - "id": 603, + "id": 765, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1567:6:3", + "src": "1557:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -7423,63 +9693,63 @@ "visibility": "internal" } ], - "src": "1566:20:3" + "src": "1556:20:3" }, "returnParameters": { - "id": 609, + "id": 771, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 608, + "id": 770, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 615, - "src": "1610:14:3", + "scope": 777, + "src": "1600:14:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_memory_ptr", + "typeIdentifier": "t_struct$_Service_$683_memory_ptr", "typeString": "struct ServiceRegistry.Service" }, "typeName": { - "id": 607, + "id": 769, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 606, + "id": 768, "name": "Service", "nameLocations": [ - "1610:7:3" + "1600:7:3" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 519, - "src": "1610:7:3" + "referencedDeclaration": 683, + "src": "1600:7:3" }, - "referencedDeclaration": 519, - "src": "1610:7:3", + "referencedDeclaration": 683, + "src": "1600:7:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage_ptr", + "typeIdentifier": "t_struct$_Service_$683_storage_ptr", "typeString": "struct ServiceRegistry.Service" } }, "visibility": "internal" } ], - "src": "1609:16:3" + "src": "1599:16:3" }, - "scope": 682, - "src": "1547:117:3", + "scope": 844, + "src": "1537:117:3", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { - "id": 644, + "id": 806, "nodeType": "Block", - "src": "1748:127:3", + "src": "1738:127:3", "statements": [ { "expression": { @@ -7489,7 +9759,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 629, + "id": 791, "isConstant": false, "isLValue": false, "isPure": false, @@ -7498,12 +9768,12 @@ "expression": { "arguments": [ { - "id": 625, + "id": 787, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 617, - "src": "1772:4:3", + "referencedDeclaration": 779, + "src": "1762:4:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -7517,26 +9787,26 @@ "typeString": "string memory" } ], - "id": 624, + "id": 786, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1766:5:3", + "src": "1756:5:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 623, + "id": 785, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1766:5:3", + "src": "1756:5:3", "typeDescriptions": {} } }, - "id": 626, + "id": 788, "isConstant": false, "isLValue": false, "isPure": false, @@ -7545,22 +9815,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1766:11:3", + "src": "1756:11:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 627, + "id": 789, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1778:6:3", + "memberLocation": "1768:6:3", "memberName": "length", "nodeType": "MemberAccess", - "src": "1766:18:3", + "src": "1756:18:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7570,21 +9840,21 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 628, + "id": 790, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1787:1:3", + "src": "1777:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "1766:22:3", + "src": "1756:22:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7592,14 +9862,14 @@ }, { "hexValue": "496e76616c69642073657276696365206e616d65", - "id": 630, + "id": 792, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1790:22:3", + "src": "1780:22:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b193a272406cc908bf089bbfd62bbee3e6f0f99dfc3103f9a3b8b4618c96abfe", "typeString": "literal_string \"Invalid service name\"" @@ -7618,7 +9888,7 @@ "typeString": "literal_string \"Invalid service name\"" } ], - "id": 622, + "id": 784, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -7626,13 +9896,13 @@ -18 ], "referencedDeclaration": -18, - "src": "1758:7:3", + "src": "1748:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 631, + "id": 793, "isConstant": false, "isLValue": false, "isPure": false, @@ -7641,16 +9911,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1758:55:3", + "src": "1748:55:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 632, + "id": 794, "nodeType": "ExpressionStatement", - "src": "1758:55:3" + "src": "1748:55:3" }, { "expression": { @@ -7658,7 +9928,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 642, + "id": 804, "isConstant": false, "isLValue": false, "isPure": false, @@ -7669,25 +9939,25 @@ { "expression": { "baseExpression": { - "id": 635, + "id": 797, "name": "services", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "1837:8:3", + "referencedDeclaration": 688, + "src": "1827:8:3", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Service_$519_storage_$", + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Service_$683_storage_$", "typeString": "mapping(string memory => struct ServiceRegistry.Service storage ref)" } }, - "id": 637, + "id": 799, "indexExpression": { - "id": 636, + "id": 798, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 617, - "src": "1846:4:3", + "referencedDeclaration": 779, + "src": "1836:4:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -7698,22 +9968,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1837:14:3", + "src": "1827:14:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage", + "typeIdentifier": "t_struct$_Service_$683_storage", "typeString": "struct ServiceRegistry.Service storage ref" } }, - "id": 638, + "id": 800, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1852:4:3", + "memberLocation": "1842:4:3", "memberName": "name", "nodeType": "MemberAccess", - "referencedDeclaration": 514, - "src": "1837:19:3", + "referencedDeclaration": 678, + "src": "1827:19:3", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -7727,26 +9997,26 @@ "typeString": "string storage ref" } ], - "id": 634, + "id": 796, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1831:5:3", + "src": "1821:5:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 633, + "id": 795, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1831:5:3", + "src": "1821:5:3", "typeDescriptions": {} } }, - "id": 639, + "id": 801, "isConstant": false, "isLValue": false, "isPure": false, @@ -7755,22 +10025,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1831:26:3", + "src": "1821:26:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer" } }, - "id": 640, + "id": 802, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1858:6:3", + "memberLocation": "1848:6:3", "memberName": "length", "nodeType": "MemberAccess", - "src": "1831:33:3", + "src": "1821:33:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7780,54 +10050,54 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 641, + "id": 803, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1867:1:3", + "src": "1857:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "1831:37:3", + "src": "1821:37:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 621, - "id": 643, + "functionReturnParameters": 783, + "id": 805, "nodeType": "Return", - "src": "1824:44:3" + "src": "1814:44:3" } ] }, "functionSelector": "b405166b", - "id": 645, + "id": 807, "implemented": true, "kind": "function", "modifiers": [], "name": "isServiceRegistered", - "nameLocation": "1679:19:3", + "nameLocation": "1669:19:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 618, + "id": 780, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 617, + "id": 779, "mutability": "mutable", "name": "name", - "nameLocation": "1713:4:3", + "nameLocation": "1703:4:3", "nodeType": "VariableDeclaration", - "scope": 645, - "src": "1699:18:3", + "scope": 807, + "src": "1689:18:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -7835,10 +10105,10 @@ "typeString": "string" }, "typeName": { - "id": 616, + "id": 778, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1699:6:3", + "src": "1689:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -7847,21 +10117,21 @@ "visibility": "internal" } ], - "src": "1698:20:3" + "src": "1688:20:3" }, "returnParameters": { - "id": 621, + "id": 783, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 620, + "id": 782, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 645, - "src": "1742:4:3", + "scope": 807, + "src": "1732:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7869,10 +10139,10 @@ "typeString": "bool" }, "typeName": { - "id": 619, + "id": 781, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1742:4:3", + "src": "1732:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7881,19 +10151,19 @@ "visibility": "internal" } ], - "src": "1741:6:3" + "src": "1731:6:3" }, - "scope": 682, - "src": "1670:205:3", + "scope": 844, + "src": "1660:205:3", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { - "id": 680, + "id": 842, "nodeType": "Block", - "src": "1994:282:3", + "src": "1984:282:3", "statements": [ { "expression": { @@ -7901,12 +10171,12 @@ { "arguments": [ { - "id": 659, + "id": 821, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "2037:4:3", + "referencedDeclaration": 809, + "src": "2027:4:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -7921,33 +10191,33 @@ } ], "expression": { - "id": 657, + "id": 819, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, - "src": "2012:4:3", + "src": "2002:4:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_ServiceRegistry_$682", + "typeIdentifier": "t_contract$_ServiceRegistry_$844", "typeString": "contract ServiceRegistry" } }, - "id": 658, + "id": 820, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2017:19:3", + "memberLocation": "2007:19:3", "memberName": "isServiceRegistered", "nodeType": "MemberAccess", - "referencedDeclaration": 645, - "src": "2012:24:3", + "referencedDeclaration": 807, + "src": "2002:24:3", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_bool_$", "typeString": "function (string memory) view external returns (bool)" } }, - "id": 660, + "id": 822, "isConstant": false, "isLValue": false, "isPure": false, @@ -7956,7 +10226,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2012:30:3", + "src": "2002:30:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7965,14 +10235,14 @@ }, { "hexValue": "53657276696365206e6f742072656769737465726564", - "id": 661, + "id": 823, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2044:24:3", + "src": "2034:24:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6", "typeString": "literal_string \"Service not registered\"" @@ -7991,7 +10261,7 @@ "typeString": "literal_string \"Service not registered\"" } ], - "id": 656, + "id": 818, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -7999,13 +10269,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2004:7:3", + "src": "1994:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 662, + "id": 824, "isConstant": false, "isLValue": false, "isPure": false, @@ -8014,45 +10284,45 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2004:65:3", + "src": "1994:65:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 663, + "id": 825, "nodeType": "ExpressionStatement", - "src": "2004:65:3" + "src": "1994:65:3" }, { "expression": { - "id": 672, + "id": 834, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 664, + "id": 826, "name": "services", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "2080:8:3", + "referencedDeclaration": 688, + "src": "2070:8:3", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Service_$519_storage_$", + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Service_$683_storage_$", "typeString": "mapping(string memory => struct ServiceRegistry.Service storage ref)" } }, - "id": 666, + "id": 828, "indexExpression": { - "id": 665, + "id": 827, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "2089:4:3", + "referencedDeclaration": 809, + "src": "2079:4:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -8063,9 +10333,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2080:14:3", + "src": "2070:14:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage", + "typeIdentifier": "t_struct$_Service_$683_storage", "typeString": "struct ServiceRegistry.Service storage ref" } }, @@ -8074,36 +10344,36 @@ "rightHandSide": { "arguments": [ { - "id": 668, + "id": 830, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "2125:4:3", + "referencedDeclaration": 809, + "src": "2115:4:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { - "id": 669, + "id": 831, "name": "category", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 649, - "src": "2153:8:3", + "referencedDeclaration": 811, + "src": "2143:8:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { - "id": 670, + "id": 832, "name": "description", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 651, - "src": "2188:11:3", + "referencedDeclaration": 813, + "src": "2178:11:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -8125,27 +10395,27 @@ "typeString": "string memory" } ], - "id": 667, + "id": 829, "name": "Service", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "2097:7:3", + "referencedDeclaration": 683, + "src": "2087:7:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Service_$519_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Service_$683_storage_ptr_$", "typeString": "type(struct ServiceRegistry.Service storage pointer)" } }, - "id": 671, + "id": 833, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "2119:4:3", - "2143:8:3", - "2175:11:3" + "2109:4:3", + "2133:8:3", + "2165:11:3" ], "names": [ "name", @@ -8153,57 +10423,57 @@ "description" ], "nodeType": "FunctionCall", - "src": "2097:113:3", + "src": "2087:113:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_memory_ptr", + "typeIdentifier": "t_struct$_Service_$683_memory_ptr", "typeString": "struct ServiceRegistry.Service memory" } }, - "src": "2080:130:3", + "src": "2070:130:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Service_$519_storage", + "typeIdentifier": "t_struct$_Service_$683_storage", "typeString": "struct ServiceRegistry.Service storage ref" } }, - "id": 673, + "id": 835, "nodeType": "ExpressionStatement", - "src": "2080:130:3" + "src": "2070:130:3" }, { "eventCall": { "arguments": [ { - "id": 675, + "id": 837, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "2241:4:3", + "referencedDeclaration": 809, + "src": "2231:4:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { - "id": 676, + "id": 838, "name": "category", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 649, - "src": "2247:8:3", + "referencedDeclaration": 811, + "src": "2237:8:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { - "id": 677, + "id": 839, "name": "description", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 651, - "src": "2257:11:3", + "referencedDeclaration": 813, + "src": "2247:11:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -8225,18 +10495,18 @@ "typeString": "string memory" } ], - "id": 674, + "id": 836, "name": "ServiceUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 542, - "src": "2226:14:3", + "referencedDeclaration": 706, + "src": "2216:14:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory,string memory)" } }, - "id": 678, + "id": 840, "isConstant": false, "isLValue": false, "isPure": false, @@ -8245,57 +10515,57 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2226:43:3", + "src": "2216:43:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 679, + "id": 841, "nodeType": "EmitStatement", - "src": "2221:48:3" + "src": "2211:48:3" } ] }, "functionSelector": "7f3ed719", - "id": 681, + "id": 843, "implemented": true, "kind": "function", "modifiers": [ { - "id": 654, + "id": 816, "kind": "modifierInvocation", "modifierName": { - "id": 653, + "id": 815, "name": "onlyOwner", "nameLocations": [ - "1984:9:3" + "1974:9:3" ], "nodeType": "IdentifierPath", "referencedDeclaration": 58, - "src": "1984:9:3" + "src": "1974:9:3" }, "nodeType": "ModifierInvocation", - "src": "1984:9:3" + "src": "1974:9:3" } ], "name": "updateService", - "nameLocation": "1890:13:3", + "nameLocation": "1880:13:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 652, + "id": 814, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 647, + "id": 809, "mutability": "mutable", "name": "name", - "nameLocation": "1918:4:3", + "nameLocation": "1908:4:3", "nodeType": "VariableDeclaration", - "scope": 681, - "src": "1904:18:3", + "scope": 843, + "src": "1894:18:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -8303,10 +10573,10 @@ "typeString": "string" }, "typeName": { - "id": 646, + "id": 808, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1904:6:3", + "src": "1894:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -8316,13 +10586,13 @@ }, { "constant": false, - "id": 649, + "id": 811, "mutability": "mutable", "name": "category", - "nameLocation": "1938:8:3", + "nameLocation": "1928:8:3", "nodeType": "VariableDeclaration", - "scope": 681, - "src": "1924:22:3", + "scope": 843, + "src": "1914:22:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -8330,10 +10600,10 @@ "typeString": "string" }, "typeName": { - "id": 648, + "id": 810, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1924:6:3", + "src": "1914:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -8343,13 +10613,13 @@ }, { "constant": false, - "id": 651, + "id": 813, "mutability": "mutable", "name": "description", - "nameLocation": "1962:11:3", + "nameLocation": "1952:11:3", "nodeType": "VariableDeclaration", - "scope": 681, - "src": "1948:25:3", + "scope": 843, + "src": "1938:25:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -8357,10 +10627,10 @@ "typeString": "string" }, "typeName": { - "id": 650, + "id": 812, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1948:6:3", + "src": "1938:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -8369,35 +10639,35 @@ "visibility": "internal" } ], - "src": "1903:71:3" + "src": "1893:71:3" }, "returnParameters": { - "id": 655, + "id": 817, "nodeType": "ParameterList", "parameters": [], - "src": "1994:0:3" + "src": "1984:0:3" }, - "scope": 682, - "src": "1881:395:3", + "scope": 844, + "src": "1871:395:3", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 683, - "src": "256:2022:3", + "scope": 845, + "src": "256:2012:3", "usedErrors": [ 13, 18 ], "usedEvents": [ 24, - 534, - 542 + 698, + 706 ] } ], - "src": "32:2247:3" + "src": "32:2237:3" }, "id": 3 }, @@ -8406,33 +10676,33 @@ "absolutePath": "contracts/TaskRegistry.sol", "exportedSymbols": { "AgentsRegistry": [ - 506 + 670 ], "Context": [ 177 ], "IProposalStruct": [ - 1040 + 1404 ], "Ownable": [ 147 ], "ServiceRegistry": [ - 682 + 844 ], "TaskRegistry": [ - 1028 + 1359 ], "TransferHelper": [ - 1200 + 1617 ] }, - "id": 1029, + "id": 1360, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 684, + "id": 846, "literals": [ "solidity", "^", @@ -8445,10 +10715,10 @@ { "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", "file": "@openzeppelin/contracts/access/Ownable.sol", - "id": 685, + "id": 847, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1029, + "scope": 1360, "sourceUnit": 148, "src": "58:52:4", "symbolAliases": [], @@ -8457,11 +10727,11 @@ { "absolutePath": "contracts/interfaces/IProposalStruct.sol", "file": "./interfaces/IProposalStruct.sol", - "id": 686, + "id": 848, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1029, - "sourceUnit": 1041, + "scope": 1360, + "sourceUnit": 1405, "src": "111:42:4", "symbolAliases": [], "unitAlias": "" @@ -8469,11 +10739,11 @@ { "absolutePath": "contracts/AgentsRegistry.sol", "file": "./AgentsRegistry.sol", - "id": 687, + "id": 849, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1029, - "sourceUnit": 507, + "scope": 1360, + "sourceUnit": 671, "src": "154:30:4", "symbolAliases": [], "unitAlias": "" @@ -8481,11 +10751,11 @@ { "absolutePath": "contracts/lib/TransferHelper.sol", "file": "./lib/TransferHelper.sol", - "id": 688, + "id": 850, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1029, - "sourceUnit": 1201, + "scope": 1360, + "sourceUnit": 1618, "src": "185:34:4", "symbolAliases": [], "unitAlias": "" @@ -8495,7 +10765,7 @@ "baseContracts": [ { "baseName": { - "id": 690, + "id": 852, "name": "Ownable", "nameLocations": [ "405:7:4" @@ -8504,22 +10774,22 @@ "referencedDeclaration": 147, "src": "405:7:4" }, - "id": 691, + "id": 853, "nodeType": "InheritanceSpecifier", "src": "405:7:4" }, { "baseName": { - "id": 692, + "id": 854, "name": "IProposalStruct", "nameLocations": [ "414:15:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1040, + "referencedDeclaration": 1404, "src": "414:15:4" }, - "id": 693, + "id": 855, "nodeType": "InheritanceSpecifier", "src": "414:15:4" } @@ -8528,16 +10798,16 @@ "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 689, + "id": 851, "nodeType": "StructuredDocumentation", "src": "221:158:4", "text": " @title TaskRegistry\n @author leonprou\n @notice A smart contract that stores information about the tasks issued for the agent service providers." }, "fullyImplemented": true, - "id": 1028, + "id": 1359, "linearizedBaseContracts": [ - 1028, - 1040, + 1359, + 1404, 147, 177 ], @@ -8547,55 +10817,55 @@ "nodes": [ { "canonicalName": "TaskRegistry.TaskStatus", - "id": 698, + "id": 860, "members": [ { - "id": 694, + "id": 856, "name": "CREATED", "nameLocation": "455:7:4", "nodeType": "EnumValue", "src": "455:7:4" }, { - "id": 695, + "id": 857, "name": "ASSIGNED", "nameLocation": "464:8:4", "nodeType": "EnumValue", "src": "464:8:4" }, { - "id": 696, + "id": 858, "name": "COMPLETED", "nameLocation": "474:9:4", "nodeType": "EnumValue", "src": "474:9:4" }, { - "id": 697, - "name": "FAILED", - "nameLocation": "485:6:4", + "id": 859, + "name": "CANCELED", + "nameLocation": "485:8:4", "nodeType": "EnumValue", - "src": "485:6:4" + "src": "485:8:4" } ], "name": "TaskStatus", "nameLocation": "442:10:4", "nodeType": "EnumDefinition", - "src": "437:56:4" + "src": "437:58:4" }, { "canonicalName": "TaskRegistry.TaskData", - "id": 714, + "id": 878, "members": [ { "constant": false, - "id": 700, + "id": 862, "mutability": "mutable", "name": "id", - "nameLocation": "533:2:4", + "nameLocation": "535:2:4", "nodeType": "VariableDeclaration", - "scope": 714, - "src": "525:10:4", + "scope": 878, + "src": "527:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8603,10 +10873,10 @@ "typeString": "uint256" }, "typeName": { - "id": 699, + "id": 861, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "525:7:4", + "src": "527:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8616,13 +10886,13 @@ }, { "constant": false, - "id": 702, + "id": 864, "mutability": "mutable", "name": "prompt", - "nameLocation": "552:6:4", + "nameLocation": "554:6:4", "nodeType": "VariableDeclaration", - "scope": 714, - "src": "545:13:4", + "scope": 878, + "src": "547:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8630,10 +10900,10 @@ "typeString": "string" }, "typeName": { - "id": 701, + "id": 863, "name": "string", "nodeType": "ElementaryTypeName", - "src": "545:6:4", + "src": "547:6:4", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -8643,13 +10913,13 @@ }, { "constant": false, - "id": 704, + "id": 866, "mutability": "mutable", "name": "issuer", - "nameLocation": "576:6:4", + "nameLocation": "578:6:4", "nodeType": "VariableDeclaration", - "scope": 714, - "src": "568:14:4", + "scope": 878, + "src": "570:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8657,10 +10927,10 @@ "typeString": "address" }, "typeName": { - "id": 703, + "id": 865, "name": "address", "nodeType": "ElementaryTypeName", - "src": "568:7:4", + "src": "570:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8671,36 +10941,36 @@ }, { "constant": false, - "id": 707, + "id": 869, "mutability": "mutable", "name": "status", - "nameLocation": "603:6:4", + "nameLocation": "605:6:4", "nodeType": "VariableDeclaration", - "scope": 714, - "src": "592:17:4", + "scope": 878, + "src": "594:17:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", + "typeIdentifier": "t_enum$_TaskStatus_$860", "typeString": "enum TaskRegistry.TaskStatus" }, "typeName": { - "id": 706, + "id": 868, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 705, + "id": 867, "name": "TaskStatus", "nameLocations": [ - "592:10:4" + "594:10:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 698, - "src": "592:10:4" + "referencedDeclaration": 860, + "src": "594:10:4" }, - "referencedDeclaration": 698, - "src": "592:10:4", + "referencedDeclaration": 860, + "src": "594:10:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", + "typeIdentifier": "t_enum$_TaskStatus_$860", "typeString": "enum TaskRegistry.TaskStatus" } }, @@ -8708,13 +10978,13 @@ }, { "constant": false, - "id": 709, + "id": 871, "mutability": "mutable", "name": "assignee", - "nameLocation": "627:8:4", + "nameLocation": "629:8:4", "nodeType": "VariableDeclaration", - "scope": 714, - "src": "619:16:4", + "scope": 878, + "src": "621:16:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8722,10 +10992,10 @@ "typeString": "address" }, "typeName": { - "id": 708, + "id": 870, "name": "address", "nodeType": "ElementaryTypeName", - "src": "619:7:4", + "src": "621:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8736,13 +11006,13 @@ }, { "constant": false, - "id": 711, + "id": 873, "mutability": "mutable", "name": "proposalId", - "nameLocation": "653:10:4", + "nameLocation": "655:10:4", "nodeType": "VariableDeclaration", - "scope": 714, - "src": "645:18:4", + "scope": 878, + "src": "647:18:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8750,10 +11020,10 @@ "typeString": "uint256" }, "typeName": { - "id": 710, + "id": 872, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "645:7:4", + "src": "647:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8763,13 +11033,13 @@ }, { "constant": false, - "id": 713, + "id": 875, "mutability": "mutable", "name": "result", - "nameLocation": "680:6:4", + "nameLocation": "682:6:4", "nodeType": "VariableDeclaration", - "scope": 714, - "src": "673:13:4", + "scope": 878, + "src": "675:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8777,80 +11047,107 @@ "typeString": "string" }, "typeName": { - "id": 712, + "id": 874, "name": "string", "nodeType": "ElementaryTypeName", - "src": "673:6:4", + "src": "675:6:4", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" + }, + { + "constant": false, + "id": 877, + "mutability": "mutable", + "name": "rating", + "nameLocation": "704:6:4", + "nodeType": "VariableDeclaration", + "scope": 878, + "src": "698:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 876, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "698:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" } ], "name": "TaskData", - "nameLocation": "506:8:4", + "nameLocation": "508:8:4", "nodeType": "StructDefinition", - "scope": 1028, - "src": "499:194:4", + "scope": 1359, + "src": "501:216:4", "visibility": "public" }, { "constant": false, "functionSelector": "8d977672", - "id": 719, + "id": 883, "mutability": "mutable", "name": "tasks", - "nameLocation": "739:5:4", + "nameLocation": "763:5:4", "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "703:41:4", + "scope": 1359, + "src": "727:41:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$714_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$878_storage_$", "typeString": "mapping(uint256 => struct TaskRegistry.TaskData)" }, "typeName": { - "id": 718, + "id": 882, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 715, + "id": 879, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "711:7:4", + "src": "735:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "703:28:4", + "src": "727:28:4", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$714_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$878_storage_$", "typeString": "mapping(uint256 => struct TaskRegistry.TaskData)" }, "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 717, + "id": 881, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 716, + "id": 880, "name": "TaskData", "nameLocations": [ - "722:8:4" + "746:8:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 714, - "src": "722:8:4" + "referencedDeclaration": 878, + "src": "746:8:4" }, - "referencedDeclaration": 714, - "src": "722:8:4", + "referencedDeclaration": 878, + "src": "746:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage_ptr", + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", "typeString": "struct TaskRegistry.TaskData" } } @@ -8860,13 +11157,13 @@ { "constant": false, "functionSelector": "2a2b3a9d", - "id": 724, + "id": 888, "mutability": "mutable", "name": "issuerTasks", - "nameLocation": "787:11:4", + "nameLocation": "811:11:4", "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "750:48:4", + "scope": 1359, + "src": "774:48:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -8874,21 +11171,21 @@ "typeString": "mapping(address => uint256[])" }, "typeName": { - "id": 723, + "id": 887, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 720, + "id": 884, "name": "address", "nodeType": "ElementaryTypeName", - "src": "758:7:4", + "src": "782:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "750:29:4", + "src": "774:29:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[])" @@ -8897,18 +11194,18 @@ "valueNameLocation": "-1:-1:-1", "valueType": { "baseType": { - "id": 721, + "id": 885, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "769:7:4", + "src": "793:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 722, + "id": 886, "nodeType": "ArrayTypeName", - "src": "769:9:4", + "src": "793:9:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -8919,13 +11216,13 @@ }, { "constant": false, - "id": 726, + "id": 890, "mutability": "mutable", "name": "nextTaskId", - "nameLocation": "820:10:4", + "nameLocation": "844:10:4", "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "804:26:4", + "scope": 1359, + "src": "828:26:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -8933,10 +11230,10 @@ "typeString": "uint256" }, "typeName": { - "id": 725, + "id": 889, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "804:7:4", + "src": "828:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8947,36 +11244,36 @@ { "constant": false, "functionSelector": "0d1cfcae", - "id": 729, + "id": 893, "mutability": "mutable", "name": "agentRegistry", - "nameLocation": "858:13:4", + "nameLocation": "882:13:4", "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "836:35:4", + "scope": 1359, + "src": "860:35:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", + "typeIdentifier": "t_contract$_AgentsRegistry_$670", "typeString": "contract AgentsRegistry" }, "typeName": { - "id": 728, + "id": 892, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 727, + "id": 891, "name": "AgentsRegistry", "nameLocations": [ - "836:14:4" + "860:14:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 506, - "src": "836:14:4" + "referencedDeclaration": 670, + "src": "860:14:4" }, - "referencedDeclaration": 506, - "src": "836:14:4", + "referencedDeclaration": 670, + "src": "860:14:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", + "typeIdentifier": "t_contract$_AgentsRegistry_$670", "typeString": "contract AgentsRegistry" } }, @@ -8984,56 +11281,321 @@ }, { "body": { - "id": 743, + "id": 909, + "nodeType": "Block", + "src": "942:101:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 898, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "960:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "964:6:4", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "960:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "baseExpression": { + "id": 900, + "name": "tasks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 883, + "src": "974:5:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$878_storage_$", + "typeString": "mapping(uint256 => struct TaskRegistry.TaskData storage ref)" + } + }, + "id": 902, + "indexExpression": { + "id": 901, + "name": "taskId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 895, + "src": "980:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "974:13:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaskData_$878_storage", + "typeString": "struct TaskRegistry.TaskData storage ref" + } + }, + "id": 903, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "988:6:4", + "memberName": "issuer", + "nodeType": "MemberAccess", + "referencedDeclaration": 866, + "src": "974:20:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "960:34:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6f742074686520697373756572206f6620746865207461736b", + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "996:28:4", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8b01433edf8e1c1ecc76c5925a92e74cb9845acafce91ff571223021d8950f7c", + "typeString": "literal_string \"Not the issuer of the task\"" + }, + "value": "Not the issuer of the task" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8b01433edf8e1c1ecc76c5925a92e74cb9845acafce91ff571223021d8950f7c", + "typeString": "literal_string \"Not the issuer of the task\"" + } + ], + "id": 897, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "952:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "952:73:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 907, + "nodeType": "ExpressionStatement", + "src": "952:73:4" + }, + { + "id": 908, + "nodeType": "PlaceholderStatement", + "src": "1035:1:4" + } + ] + }, + "id": 910, + "name": "onlyTaskIssuer", + "nameLocation": "911:14:4", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 896, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 895, + "mutability": "mutable", + "name": "taskId", + "nameLocation": "934:6:4", + "nodeType": "VariableDeclaration", + "scope": 910, + "src": "926:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 894, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "926:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "925:16:4" + }, + "src": "902:141:4", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 928, "nodeType": "Block", - "src": "940:47:4", + "src": "1111:71:4", "statements": [ { "expression": { - "id": 741, + "id": 922, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 739, + "id": 920, "name": "agentRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 729, - "src": "950:13:4", + "referencedDeclaration": 893, + "src": "1121:13:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", + "typeIdentifier": "t_contract$_AgentsRegistry_$670", "typeString": "contract AgentsRegistry" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 740, + "id": 921, "name": "_agentRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 732, - "src": "966:14:4", + "referencedDeclaration": 913, + "src": "1137:14:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", + "typeIdentifier": "t_contract$_AgentsRegistry_$670", "typeString": "contract AgentsRegistry" } }, - "src": "950:30:4", + "src": "1121:30:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", + "typeIdentifier": "t_contract$_AgentsRegistry_$670", "typeString": "contract AgentsRegistry" } }, - "id": 742, + "id": 923, + "nodeType": "ExpressionStatement", + "src": "1121:30:4" + }, + { + "expression": { + "id": 926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 924, + "name": "nextTaskId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 890, + "src": "1161:10:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "31", + "id": 925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1174:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1161:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 927, "nodeType": "ExpressionStatement", - "src": "950:30:4" + "src": "1161:14:4" } ] }, - "id": 744, + "id": 929, "implemented": true, "kind": "constructor", "modifiers": [ @@ -9041,103 +11603,103 @@ "arguments": [ { "expression": { - "id": 735, + "id": 916, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "928:3:4", + "src": "1099:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 736, + "id": 917, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "932:6:4", + "memberLocation": "1103:6:4", "memberName": "sender", "nodeType": "MemberAccess", - "src": "928:10:4", + "src": "1099:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 737, + "id": 918, "kind": "baseConstructorSpecifier", "modifierName": { - "id": 734, + "id": 915, "name": "Ownable", "nameLocations": [ - "920:7:4" + "1091:7:4" ], "nodeType": "IdentifierPath", "referencedDeclaration": 147, - "src": "920:7:4" + "src": "1091:7:4" }, "nodeType": "ModifierInvocation", - "src": "920:19:4" + "src": "1091:19:4" } ], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 733, + "id": 914, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 732, + "id": 913, "mutability": "mutable", "name": "_agentRegistry", - "nameLocation": "904:14:4", + "nameLocation": "1075:14:4", "nodeType": "VariableDeclaration", - "scope": 744, - "src": "889:29:4", + "scope": 929, + "src": "1060:29:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", + "typeIdentifier": "t_contract$_AgentsRegistry_$670", "typeString": "contract AgentsRegistry" }, "typeName": { - "id": 731, + "id": 912, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 730, + "id": 911, "name": "AgentsRegistry", "nameLocations": [ - "889:14:4" + "1060:14:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 506, - "src": "889:14:4" + "referencedDeclaration": 670, + "src": "1060:14:4" }, - "referencedDeclaration": 506, - "src": "889:14:4", + "referencedDeclaration": 670, + "src": "1060:14:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", + "typeIdentifier": "t_contract$_AgentsRegistry_$670", "typeString": "contract AgentsRegistry" } }, "visibility": "internal" } ], - "src": "888:31:4" + "src": "1059:31:4" }, "returnParameters": { - "id": 738, + "id": 919, "nodeType": "ParameterList", "parameters": [], - "src": "940:0:4" + "src": "1111:0:4" }, - "scope": 1028, - "src": "877:110:4", + "scope": 1359, + "src": "1048:134:4", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" @@ -9145,24 +11707,24 @@ { "anonymous": false, "eventSelector": "5c005bbbb9da508c37935b1a9f270836e0be1fd11d4d47119f925a3ff33820e9", - "id": 756, + "id": 941, "name": "TaskCreated", - "nameLocation": "1003:11:4", + "nameLocation": "1198:11:4", "nodeType": "EventDefinition", "parameters": { - "id": 755, + "id": 940, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 746, + "id": 931, "indexed": true, "mutability": "mutable", "name": "issuer", - "nameLocation": "1031:6:4", + "nameLocation": "1226:6:4", "nodeType": "VariableDeclaration", - "scope": 756, - "src": "1015:22:4", + "scope": 941, + "src": "1210:22:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9170,10 +11732,10 @@ "typeString": "address" }, "typeName": { - "id": 745, + "id": 930, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1015:7:4", + "src": "1210:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9184,14 +11746,14 @@ }, { "constant": false, - "id": 748, + "id": 933, "indexed": true, "mutability": "mutable", "name": "assignee", - "nameLocation": "1055:8:4", + "nameLocation": "1250:8:4", "nodeType": "VariableDeclaration", - "scope": 756, - "src": "1039:24:4", + "scope": 941, + "src": "1234:24:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9199,10 +11761,10 @@ "typeString": "address" }, "typeName": { - "id": 747, + "id": 932, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1039:7:4", + "src": "1234:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9213,14 +11775,14 @@ }, { "constant": false, - "id": 750, + "id": 935, "indexed": false, "mutability": "mutable", "name": "taskId", - "nameLocation": "1073:6:4", + "nameLocation": "1268:6:4", "nodeType": "VariableDeclaration", - "scope": 756, - "src": "1065:14:4", + "scope": 941, + "src": "1260:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9228,10 +11790,10 @@ "typeString": "uint256" }, "typeName": { - "id": 749, + "id": 934, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1065:7:4", + "src": "1260:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9241,14 +11803,14 @@ }, { "constant": false, - "id": 752, + "id": 937, "indexed": false, "mutability": "mutable", "name": "proposalId", - "nameLocation": "1089:10:4", + "nameLocation": "1284:10:4", "nodeType": "VariableDeclaration", - "scope": 756, - "src": "1081:18:4", + "scope": 941, + "src": "1276:18:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9256,10 +11818,10 @@ "typeString": "uint256" }, "typeName": { - "id": 751, + "id": 936, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1081:7:4", + "src": "1276:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9269,14 +11831,14 @@ }, { "constant": false, - "id": 754, + "id": 939, "indexed": false, "mutability": "mutable", "name": "prompt", - "nameLocation": "1108:6:4", + "nameLocation": "1303:6:4", "nodeType": "VariableDeclaration", - "scope": 756, - "src": "1101:13:4", + "scope": 941, + "src": "1296:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9284,10 +11846,10 @@ "typeString": "string" }, "typeName": { - "id": 753, + "id": 938, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1101:6:4", + "src": "1296:6:4", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -9296,31 +11858,31 @@ "visibility": "internal" } ], - "src": "1014:101:4" + "src": "1209:101:4" }, - "src": "997:119:4" + "src": "1192:119:4" }, { "anonymous": false, "eventSelector": "d76ef80cfb1ce0c70d0cbc0ab1b9f2f298a78f9fca5c841be963ae9a5d721bb4", - "id": 763, + "id": 948, "name": "TaskStatusChanged", - "nameLocation": "1127:17:4", + "nameLocation": "1322:17:4", "nodeType": "EventDefinition", "parameters": { - "id": 762, + "id": 947, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 758, + "id": 943, "indexed": true, "mutability": "mutable", "name": "taskId", - "nameLocation": "1161:6:4", + "nameLocation": "1356:6:4", "nodeType": "VariableDeclaration", - "scope": 763, - "src": "1145:22:4", + "scope": 948, + "src": "1340:22:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9328,10 +11890,10 @@ "typeString": "uint256" }, "typeName": { - "id": 757, + "id": 942, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1145:7:4", + "src": "1340:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9341,68 +11903,68 @@ }, { "constant": false, - "id": 761, + "id": 946, "indexed": false, "mutability": "mutable", "name": "status", - "nameLocation": "1180:6:4", + "nameLocation": "1375:6:4", "nodeType": "VariableDeclaration", - "scope": 763, - "src": "1169:17:4", + "scope": 948, + "src": "1364:17:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", + "typeIdentifier": "t_enum$_TaskStatus_$860", "typeString": "enum TaskRegistry.TaskStatus" }, "typeName": { - "id": 760, + "id": 945, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 759, + "id": 944, "name": "TaskStatus", "nameLocations": [ - "1169:10:4" + "1364:10:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 698, - "src": "1169:10:4" + "referencedDeclaration": 860, + "src": "1364:10:4" }, - "referencedDeclaration": 698, - "src": "1169:10:4", + "referencedDeclaration": 860, + "src": "1364:10:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", + "typeIdentifier": "t_enum$_TaskStatus_$860", "typeString": "enum TaskRegistry.TaskStatus" } }, "visibility": "internal" } ], - "src": "1144:43:4" + "src": "1339:43:4" }, - "src": "1121:67:4" + "src": "1316:67:4" }, { "anonymous": false, "eventSelector": "52476d55ecef5cf13caa64038f297fe6bbf865d9584a98b8722a15a6d5db128f", - "id": 769, + "id": 954, "name": "TaskAssigned", - "nameLocation": "1199:12:4", + "nameLocation": "1394:12:4", "nodeType": "EventDefinition", "parameters": { - "id": 768, + "id": 953, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 765, + "id": 950, "indexed": true, "mutability": "mutable", "name": "taskId", - "nameLocation": "1228:6:4", + "nameLocation": "1423:6:4", "nodeType": "VariableDeclaration", - "scope": 769, - "src": "1212:22:4", + "scope": 954, + "src": "1407:22:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9410,10 +11972,10 @@ "typeString": "uint256" }, "typeName": { - "id": 764, + "id": 949, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1212:7:4", + "src": "1407:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9423,14 +11985,14 @@ }, { "constant": false, - "id": 767, + "id": 952, "indexed": true, "mutability": "mutable", "name": "agent", - "nameLocation": "1252:5:4", + "nameLocation": "1447:5:4", "nodeType": "VariableDeclaration", - "scope": 769, - "src": "1236:21:4", + "scope": 954, + "src": "1431:21:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9438,10 +12000,10 @@ "typeString": "address" }, "typeName": { - "id": 766, + "id": 951, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1236:7:4", + "src": "1431:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9451,31 +12013,75 @@ "visibility": "internal" } ], - "src": "1211:47:4" + "src": "1406:47:4" + }, + "src": "1388:66:4" + }, + { + "anonymous": false, + "eventSelector": "1aa8a90c7d7a86bac690072d3f3d726bb8ebbe1989e158530440963f04c11eb2", + "id": 958, + "name": "TaskCanceled", + "nameLocation": "1465:12:4", + "nodeType": "EventDefinition", + "parameters": { + "id": 957, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 956, + "indexed": true, + "mutability": "mutable", + "name": "taskId", + "nameLocation": "1494:6:4", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "1478:22:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 955, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1478:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1477:24:4" }, - "src": "1193:66:4" + "src": "1459:43:4" }, { "anonymous": false, - "eventSelector": "f70b6e01390661fcb31e942764450e3764313c0269bbb4427441a769dd618802", - "id": 776, + "eventSelector": "44ebb686e1e855ef4194f3f772155c2a87fc1f52ebc760f8a0b008a75a1ea28a", + "id": 965, "name": "ProposalApproved", - "nameLocation": "1270:16:4", + "nameLocation": "1513:16:4", "nodeType": "EventDefinition", "parameters": { - "id": 775, + "id": 964, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 771, + "id": 960, "indexed": true, "mutability": "mutable", "name": "taskId", - "nameLocation": "1303:6:4", + "nameLocation": "1546:6:4", "nodeType": "VariableDeclaration", - "scope": 776, - "src": "1287:22:4", + "scope": 965, + "src": "1530:22:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9483,10 +12089,10 @@ "typeString": "uint256" }, "typeName": { - "id": 770, + "id": 959, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1287:7:4", + "src": "1530:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9496,68 +12102,68 @@ }, { "constant": false, - "id": 774, + "id": 963, "indexed": false, "mutability": "mutable", "name": "proposal", - "nameLocation": "1320:8:4", + "nameLocation": "1570:8:4", "nodeType": "VariableDeclaration", - "scope": 776, - "src": "1311:17:4", + "scope": 965, + "src": "1554:24:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_memory_ptr", - "typeString": "struct IProposalStruct.Proposal" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal" }, "typeName": { - "id": 773, + "id": 962, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 772, - "name": "Proposal", + "id": 961, + "name": "ServiceProposal", "nameLocations": [ - "1311:8:4" + "1554:15:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1039, - "src": "1311:8:4" + "referencedDeclaration": 1403, + "src": "1554:15:4" }, - "referencedDeclaration": 1039, - "src": "1311:8:4", + "referencedDeclaration": 1403, + "src": "1554:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_storage_ptr", - "typeString": "struct IProposalStruct.Proposal" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_storage_ptr", + "typeString": "struct IProposalStruct.ServiceProposal" } }, "visibility": "internal" } ], - "src": "1286:43:4" + "src": "1529:50:4" }, - "src": "1264:66:4" + "src": "1507:73:4" }, { "anonymous": false, "eventSelector": "7e6ffc29fe63759579d96a0457a8f2e08339aca345bd469f59dc2e61f82a5aeb", - "id": 782, + "id": 971, "name": "TaskCompleted", - "nameLocation": "1341:13:4", + "nameLocation": "1591:13:4", "nodeType": "EventDefinition", "parameters": { - "id": 781, + "id": 970, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 778, + "id": 967, "indexed": true, "mutability": "mutable", "name": "taskId", - "nameLocation": "1371:6:4", + "nameLocation": "1621:6:4", "nodeType": "VariableDeclaration", - "scope": 782, - "src": "1355:22:4", + "scope": 971, + "src": "1605:22:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9565,10 +12171,10 @@ "typeString": "uint256" }, "typeName": { - "id": 777, + "id": 966, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1355:7:4", + "src": "1605:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9578,14 +12184,14 @@ }, { "constant": false, - "id": 780, + "id": 969, "indexed": false, "mutability": "mutable", "name": "result", - "nameLocation": "1386:6:4", + "nameLocation": "1636:6:4", "nodeType": "VariableDeclaration", - "scope": 782, - "src": "1379:13:4", + "scope": 971, + "src": "1629:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9593,10 +12199,10 @@ "typeString": "string" }, "typeName": { - "id": 779, + "id": 968, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1379:6:4", + "src": "1629:6:4", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -9605,69 +12211,141 @@ "visibility": "internal" } ], - "src": "1354:39:4" + "src": "1604:39:4" + }, + "src": "1585:59:4" + }, + { + "anonymous": false, + "eventSelector": "0f9189bfc5977d44b1a00920e53a6a0e00229f6c53e76b73fc7e0581ae99abdc", + "id": 977, + "name": "TaskRated", + "nameLocation": "1655:9:4", + "nodeType": "EventDefinition", + "parameters": { + "id": 976, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 973, + "indexed": true, + "mutability": "mutable", + "name": "taskId", + "nameLocation": "1681:6:4", + "nodeType": "VariableDeclaration", + "scope": 977, + "src": "1665:22:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1665:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 975, + "indexed": false, + "mutability": "mutable", + "name": "rating", + "nameLocation": "1695:6:4", + "nodeType": "VariableDeclaration", + "scope": 977, + "src": "1689:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 974, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1689:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "1664:38:4" }, - "src": "1335:59:4" + "src": "1649:54:4" }, { "body": { - "id": 891, + "id": 1086, "nodeType": "Block", - "src": "1723:672:4", + "src": "2031:686:4", "statements": [ { "assignments": [ - 795 + 990 ], "declarations": [ { "constant": false, - "id": 795, + "id": 990, "mutability": "mutable", "name": "proposal", - "nameLocation": "1749:8:4", + "nameLocation": "2064:8:4", "nodeType": "VariableDeclaration", - "scope": 891, - "src": "1733:24:4", + "scope": 1086, + "src": "2041:31:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_memory_ptr", - "typeString": "struct IProposalStruct.Proposal" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal" }, "typeName": { - "id": 794, + "id": 989, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 793, - "name": "Proposal", + "id": 988, + "name": "ServiceProposal", "nameLocations": [ - "1733:8:4" + "2041:15:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1039, - "src": "1733:8:4" + "referencedDeclaration": 1403, + "src": "2041:15:4" }, - "referencedDeclaration": 1039, - "src": "1733:8:4", + "referencedDeclaration": 1403, + "src": "2041:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_storage_ptr", - "typeString": "struct IProposalStruct.Proposal" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_storage_ptr", + "typeString": "struct IProposalStruct.ServiceProposal" } }, "visibility": "internal" } ], - "id": 800, + "id": 995, "initialValue": { "arguments": [ { - "id": 798, + "id": 993, "name": "proposalId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 787, - "src": "1786:10:4", + "referencedDeclaration": 982, + "src": "2101:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9682,33 +12360,33 @@ } ], "expression": { - "id": 796, + "id": 991, "name": "agentRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 729, - "src": "1760:13:4", + "referencedDeclaration": 893, + "src": "2075:13:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", + "typeIdentifier": "t_contract$_AgentsRegistry_$670", "typeString": "contract AgentsRegistry" } }, - "id": 797, + "id": 992, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1774:11:4", + "memberLocation": "2089:11:4", "memberName": "getProposal", "nodeType": "MemberAccess", - "referencedDeclaration": 505, - "src": "1760:25:4", + "referencedDeclaration": 669, + "src": "2075:25:4", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Proposal_$1039_memory_ptr_$", - "typeString": "function (uint256) view external returns (struct IProposalStruct.Proposal memory)" + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_ServiceProposal_$1403_memory_ptr_$", + "typeString": "function (uint256) view external returns (struct IProposalStruct.ServiceProposal memory)" } }, - "id": 799, + "id": 994, "isConstant": false, "isLValue": false, "isPure": false, @@ -9717,15 +12395,15 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1760:37:4", + "src": "2075:37:4", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "1733:64:4" + "src": "2041:71:4" }, { "expression": { @@ -9735,34 +12413,34 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 808, + "id": 1003, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 802, + "id": 997, "name": "proposal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 795, - "src": "1815:8:4", + "referencedDeclaration": 990, + "src": "2130:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal memory" } }, - "id": 803, + "id": 998, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1824:6:4", + "memberLocation": "2139:6:4", "memberName": "issuer", "nodeType": "MemberAccess", - "referencedDeclaration": 1032, - "src": "1815:15:4", + "referencedDeclaration": 1394, + "src": "2130:15:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9774,14 +12452,14 @@ "arguments": [ { "hexValue": "30", - "id": 806, + "id": 1001, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1842:1:4", + "src": "2157:1:4", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -9796,26 +12474,26 @@ "typeString": "int_const 0" } ], - "id": 805, + "id": 1000, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1834:7:4", + "src": "2149:7:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 804, + "id": 999, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1834:7:4", + "src": "2149:7:4", "typeDescriptions": {} } }, - "id": 807, + "id": 1002, "isConstant": false, "isLValue": false, "isPure": true, @@ -9824,34 +12502,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1834:10:4", + "src": "2149:10:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1815:29:4", + "src": "2130:29:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "hexValue": "50726f706f73616c206e6f7420666f756e64", - "id": 809, + "hexValue": "5365727669636550726f706f73616c206e6f7420666f756e64", + "id": 1004, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1846:20:4", + "src": "2161:27:4", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bcf95e6a362746bd232f2b944afd538b26aa461607b394f948bce2609a1a50c9", - "typeString": "literal_string \"Proposal not found\"" + "typeIdentifier": "t_stringliteral_add139ef5e0ce81551c750d068d2eb9f9e6c61a45817f3add2fc789b89b93829", + "typeString": "literal_string \"ServiceProposal not found\"" }, - "value": "Proposal not found" + "value": "ServiceProposal not found" } ], "expression": { @@ -9861,11 +12539,11 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_bcf95e6a362746bd232f2b944afd538b26aa461607b394f948bce2609a1a50c9", - "typeString": "literal_string \"Proposal not found\"" + "typeIdentifier": "t_stringliteral_add139ef5e0ce81551c750d068d2eb9f9e6c61a45817f3add2fc789b89b93829", + "typeString": "literal_string \"ServiceProposal not found\"" } ], - "id": 801, + "id": 996, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -9873,13 +12551,13 @@ -18 ], "referencedDeclaration": -18, - "src": "1807:7:4", + "src": "2122:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 810, + "id": 1005, "isConstant": false, "isLValue": false, "isPure": false, @@ -9888,16 +12566,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1807:60:4", + "src": "2122:67:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 811, + "id": 1006, "nodeType": "ExpressionStatement", - "src": "1807:60:4" + "src": "2122:67:4" }, { "expression": { @@ -9907,34 +12585,34 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 817, + "id": 1012, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 813, + "id": 1008, "name": "proposal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 795, - "src": "1885:8:4", + "referencedDeclaration": 990, + "src": "2207:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal memory" } }, - "id": 814, + "id": 1009, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1894:5:4", + "memberLocation": "2216:5:4", "memberName": "price", "nodeType": "MemberAccess", - "referencedDeclaration": 1036, - "src": "1885:14:4", + "referencedDeclaration": 1398, + "src": "2207:14:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9944,32 +12622,32 @@ "operator": "==", "rightExpression": { "expression": { - "id": 815, + "id": 1010, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "1903:3:4", + "src": "2225:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 816, + "id": 1011, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1907:5:4", + "memberLocation": "2229:5:4", "memberName": "value", "nodeType": "MemberAccess", - "src": "1903:9:4", + "src": "2225:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1885:27:4", + "src": "2207:27:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9977,14 +12655,14 @@ }, { "hexValue": "496e76616c6964207072696365", - "id": 818, + "id": 1013, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1914:15:4", + "src": "2236:15:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_eaa01effe6abd0543e9529d3961b0f5d26980f0661c156a79b89c39a093463f7", "typeString": "literal_string \"Invalid price\"" @@ -10003,7 +12681,7 @@ "typeString": "literal_string \"Invalid price\"" } ], - "id": 812, + "id": 1007, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -10011,13 +12689,13 @@ -18 ], "referencedDeclaration": -18, - "src": "1877:7:4", + "src": "2199:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 819, + "id": 1014, "isConstant": false, "isLValue": false, "isPure": false, @@ -10026,82 +12704,82 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1877:53:4", + "src": "2199:53:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 820, + "id": 1015, "nodeType": "ExpressionStatement", - "src": "1877:53:4" + "src": "2199:53:4" }, { "assignments": [ - 823 + 1018 ], "declarations": [ { "constant": false, - "id": 823, + "id": 1018, "mutability": "mutable", "name": "task", - "nameLocation": "1958:4:4", + "nameLocation": "2280:4:4", "nodeType": "VariableDeclaration", - "scope": 891, - "src": "1941:21:4", + "scope": 1086, + "src": "2263:21:4", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage_ptr", + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", "typeString": "struct TaskRegistry.TaskData" }, "typeName": { - "id": 822, + "id": 1017, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 821, + "id": 1016, "name": "TaskData", "nameLocations": [ - "1941:8:4" + "2263:8:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 714, - "src": "1941:8:4" + "referencedDeclaration": 878, + "src": "2263:8:4" }, - "referencedDeclaration": 714, - "src": "1941:8:4", + "referencedDeclaration": 878, + "src": "2263:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage_ptr", + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", "typeString": "struct TaskRegistry.TaskData" } }, "visibility": "internal" } ], - "id": 827, + "id": 1022, "initialValue": { "baseExpression": { - "id": 824, + "id": 1019, "name": "tasks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "1965:5:4", + "referencedDeclaration": 883, + "src": "2287:5:4", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$714_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$878_storage_$", "typeString": "mapping(uint256 => struct TaskRegistry.TaskData storage ref)" } }, - "id": 826, + "id": 1021, "indexExpression": { - "id": 825, + "id": 1020, "name": "nextTaskId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 726, - "src": "1971:10:4", + "referencedDeclaration": 890, + "src": "2293:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10112,45 +12790,45 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1965:17:4", + "src": "2287:17:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage", + "typeIdentifier": "t_struct$_TaskData_$878_storage", "typeString": "struct TaskRegistry.TaskData storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "1941:41:4" + "src": "2263:41:4" }, { "expression": { - "id": 832, + "id": 1027, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 828, + "id": 1023, "name": "task", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 823, - "src": "1992:4:4", + "referencedDeclaration": 1018, + "src": "2314:4:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage_ptr", + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", "typeString": "struct TaskRegistry.TaskData storage pointer" } }, - "id": 830, + "id": 1025, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "1997:2:4", + "memberLocation": "2319:2:4", "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 700, - "src": "1992:7:4", + "referencedDeclaration": 862, + "src": "2314:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10159,57 +12837,57 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 831, + "id": 1026, "name": "nextTaskId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 726, - "src": "2002:10:4", + "referencedDeclaration": 890, + "src": "2324:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1992:20:4", + "src": "2314:20:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 833, + "id": 1028, "nodeType": "ExpressionStatement", - "src": "1992:20:4" + "src": "2314:20:4" }, { "expression": { - "id": 838, + "id": 1033, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 834, + "id": 1029, "name": "task", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 823, - "src": "2022:4:4", + "referencedDeclaration": 1018, + "src": "2344:4:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage_ptr", + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", "typeString": "struct TaskRegistry.TaskData storage pointer" } }, - "id": 836, + "id": 1031, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "2027:6:4", + "memberLocation": "2349:6:4", "memberName": "prompt", "nodeType": "MemberAccess", - "referencedDeclaration": 702, - "src": "2022:11:4", + "referencedDeclaration": 864, + "src": "2344:11:4", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -10218,57 +12896,57 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 837, + "id": 1032, "name": "prompt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 785, - "src": "2036:6:4", + "referencedDeclaration": 980, + "src": "2358:6:4", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "2022:20:4", + "src": "2344:20:4", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 839, + "id": 1034, "nodeType": "ExpressionStatement", - "src": "2022:20:4" + "src": "2344:20:4" }, { "expression": { - "id": 845, + "id": 1040, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 840, + "id": 1035, "name": "task", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 823, - "src": "2052:4:4", + "referencedDeclaration": 1018, + "src": "2374:4:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage_ptr", + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", "typeString": "struct TaskRegistry.TaskData storage pointer" } }, - "id": 842, + "id": 1037, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "2057:6:4", + "memberLocation": "2379:6:4", "memberName": "issuer", "nodeType": "MemberAccess", - "referencedDeclaration": 704, - "src": "2052:11:4", + "referencedDeclaration": 866, + "src": "2374:11:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10278,71 +12956,71 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 843, + "id": 1038, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "2066:3:4", + "src": "2388:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 844, + "id": 1039, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2070:6:4", + "memberLocation": "2392:6:4", "memberName": "sender", "nodeType": "MemberAccess", - "src": "2066:10:4", + "src": "2388:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2052:24:4", + "src": "2374:24:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 846, + "id": 1041, "nodeType": "ExpressionStatement", - "src": "2052:24:4" + "src": "2374:24:4" }, { "expression": { - "id": 851, + "id": 1046, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 847, + "id": 1042, "name": "task", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 823, - "src": "2086:4:4", + "referencedDeclaration": 1018, + "src": "2408:4:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage_ptr", + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", "typeString": "struct TaskRegistry.TaskData storage pointer" } }, - "id": 849, + "id": 1044, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "2091:10:4", + "memberLocation": "2413:10:4", "memberName": "proposalId", "nodeType": "MemberAccess", - "referencedDeclaration": 711, - "src": "2086:15:4", + "referencedDeclaration": 873, + "src": "2408:15:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10351,57 +13029,57 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 850, + "id": 1045, "name": "proposalId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 787, - "src": "2104:10:4", + "referencedDeclaration": 982, + "src": "2426:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2086:28:4", + "src": "2408:28:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 852, + "id": 1047, "nodeType": "ExpressionStatement", - "src": "2086:28:4" + "src": "2408:28:4" }, { "expression": { - "id": 858, + "id": 1053, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 853, + "id": 1048, "name": "task", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 823, - "src": "2124:4:4", + "referencedDeclaration": 1018, + "src": "2446:4:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage_ptr", + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", "typeString": "struct TaskRegistry.TaskData storage pointer" } }, - "id": 855, + "id": 1050, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "2129:8:4", + "memberLocation": "2451:8:4", "memberName": "assignee", "nodeType": "MemberAccess", - "referencedDeclaration": 709, - "src": "2124:13:4", + "referencedDeclaration": 871, + "src": "2446:13:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10411,52 +13089,52 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 856, + "id": 1051, "name": "proposal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 795, - "src": "2140:8:4", + "referencedDeclaration": 990, + "src": "2462:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal memory" } }, - "id": 857, + "id": 1052, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2149:6:4", + "memberLocation": "2471:6:4", "memberName": "issuer", "nodeType": "MemberAccess", - "referencedDeclaration": 1032, - "src": "2140:15:4", + "referencedDeclaration": 1394, + "src": "2462:15:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2124:31:4", + "src": "2446:31:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 859, + "id": 1054, "nodeType": "ExpressionStatement", - "src": "2124:31:4" + "src": "2446:31:4" }, { "expression": { "arguments": [ { - "id": 865, + "id": 1060, "name": "nextTaskId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 726, - "src": "2194:10:4", + "referencedDeclaration": 890, + "src": "2516:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10472,40 +13150,40 @@ ], "expression": { "baseExpression": { - "id": 860, + "id": 1055, "name": "issuerTasks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "2165:11:4", + "referencedDeclaration": 888, + "src": "2487:11:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 863, + "id": 1058, "indexExpression": { "expression": { - "id": 861, + "id": 1056, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "2177:3:4", + "src": "2499:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 862, + "id": 1057, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2181:6:4", + "memberLocation": "2503:6:4", "memberName": "sender", "nodeType": "MemberAccess", - "src": "2177:10:4", + "src": "2499:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10516,27 +13194,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2165:23:4", + "src": "2487:23:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 864, + "id": 1059, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2189:4:4", + "memberLocation": "2511:4:4", "memberName": "push", "nodeType": "MemberAccess", - "src": "2165:28:4", + "src": "2487:28:4", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$", "typeString": "function (uint256[] storage pointer,uint256)" } }, - "id": 866, + "id": 1061, "isConstant": false, "isLValue": false, "isPure": false, @@ -10545,49 +13223,49 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2165:40:4", + "src": "2487:40:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 867, + "id": 1062, "nodeType": "ExpressionStatement", - "src": "2165:40:4" + "src": "2487:40:4" }, { "expression": { - "id": 873, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 868, + "id": 1063, "name": "task", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 823, - "src": "2215:4:4", + "referencedDeclaration": 1018, + "src": "2537:4:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage_ptr", + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", "typeString": "struct TaskRegistry.TaskData storage pointer" } }, - "id": 870, + "id": 1065, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "2220:6:4", + "memberLocation": "2542:6:4", "memberName": "status", "nodeType": "MemberAccess", - "referencedDeclaration": 707, - "src": "2215:11:4", + "referencedDeclaration": 869, + "src": "2537:11:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", + "typeIdentifier": "t_enum$_TaskStatus_$860", "typeString": "enum TaskRegistry.TaskStatus" } }, @@ -10595,67 +13273,67 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 871, + "id": 1066, "name": "TaskStatus", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "2229:10:4", + "referencedDeclaration": 860, + "src": "2551:10:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TaskStatus_$698_$", + "typeIdentifier": "t_type$_t_enum$_TaskStatus_$860_$", "typeString": "type(enum TaskRegistry.TaskStatus)" } }, - "id": 872, + "id": 1067, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "2240:8:4", + "memberLocation": "2562:8:4", "memberName": "ASSIGNED", "nodeType": "MemberAccess", - "referencedDeclaration": 695, - "src": "2229:19:4", + "referencedDeclaration": 857, + "src": "2551:19:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", + "typeIdentifier": "t_enum$_TaskStatus_$860", "typeString": "enum TaskRegistry.TaskStatus" } }, - "src": "2215:33:4", + "src": "2537:33:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", + "typeIdentifier": "t_enum$_TaskStatus_$860", "typeString": "enum TaskRegistry.TaskStatus" } }, - "id": 874, + "id": 1069, "nodeType": "ExpressionStatement", - "src": "2215:33:4" + "src": "2537:33:4" }, { "eventCall": { "arguments": [ { "expression": { - "id": 876, + "id": 1071, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "2275:3:4", + "src": "2597:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 877, + "id": 1072, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2279:6:4", + "memberLocation": "2601:6:4", "memberName": "sender", "nodeType": "MemberAccess", - "src": "2275:10:4", + "src": "2597:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10663,39 +13341,39 @@ }, { "expression": { - "id": 878, + "id": 1073, "name": "proposal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 795, - "src": "2287:8:4", + "referencedDeclaration": 990, + "src": "2609:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal memory" } }, - "id": 879, + "id": 1074, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2296:6:4", + "memberLocation": "2618:6:4", "memberName": "issuer", "nodeType": "MemberAccess", - "referencedDeclaration": 1032, - "src": "2287:15:4", + "referencedDeclaration": 1394, + "src": "2609:15:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 880, + "id": 1075, "name": "nextTaskId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 726, - "src": "2304:10:4", + "referencedDeclaration": 890, + "src": "2626:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10703,39 +13381,39 @@ }, { "expression": { - "id": 881, + "id": 1076, "name": "proposal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 795, - "src": "2316:8:4", + "referencedDeclaration": 990, + "src": "2638:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal memory" } }, - "id": 882, + "id": 1077, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2325:10:4", + "memberLocation": "2647:10:4", "memberName": "proposalId", "nodeType": "MemberAccess", - "referencedDeclaration": 1038, - "src": "2316:19:4", + "referencedDeclaration": 1400, + "src": "2638:19:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 883, + "id": 1078, "name": "prompt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 785, - "src": "2337:6:4", + "referencedDeclaration": 980, + "src": "2659:6:4", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -10765,18 +13443,18 @@ "typeString": "string memory" } ], - "id": 875, + "id": 1070, "name": "TaskCreated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 756, - "src": "2263:11:4", + "referencedDeclaration": 941, + "src": "2585:11:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (address,address,uint256,uint256,string memory)" } }, - "id": 884, + "id": 1079, "isConstant": false, "isLValue": false, "isPure": false, @@ -10785,20 +13463,20 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2263:81:4", + "src": "2585:81:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 885, + "id": 1080, "nodeType": "EmitStatement", - "src": "2258:86:4" + "src": "2580:86:4" }, { "expression": { - "id": 887, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, @@ -10806,14 +13484,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2355:12:4", + "src": "2677:12:4", "subExpression": { - "id": 886, + "id": 1081, "name": "nextTaskId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 726, - "src": "2355:10:4", + "referencedDeclaration": 890, + "src": "2677:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10824,57 +13502,57 @@ "typeString": "uint256" } }, - "id": 888, + "id": 1083, "nodeType": "ExpressionStatement", - "src": "2355:12:4" + "src": "2677:12:4" }, { "expression": { - "id": 889, + "id": 1084, "name": "task", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 823, - "src": "2384:4:4", + "referencedDeclaration": 1018, + "src": "2706:4:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage_ptr", + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", "typeString": "struct TaskRegistry.TaskData storage pointer" } }, - "functionReturnParameters": 792, - "id": 890, + "functionReturnParameters": 987, + "id": 1085, "nodeType": "Return", - "src": "2377:11:4" + "src": "2699:11:4" } ] }, "documentation": { - "id": 783, + "id": 978, "nodeType": "StructuredDocumentation", - "src": "1400:191:4", + "src": "1708:191:4", "text": " @dev Creates a new task with the given prompt and task type.\n @param prompt The description or prompt of the task.\n @return taskId The ID of the newly created task." }, "functionSelector": "04fe2b34", - "id": 892, + "id": 1087, "implemented": true, "kind": "function", "modifiers": [], "name": "createTask", - "nameLocation": "1605:10:4", + "nameLocation": "1913:10:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 788, + "id": 983, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 785, + "id": 980, "mutability": "mutable", "name": "prompt", - "nameLocation": "1639:6:4", + "nameLocation": "1947:6:4", "nodeType": "VariableDeclaration", - "scope": 892, - "src": "1625:20:4", + "scope": 1087, + "src": "1933:20:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -10882,10 +13560,10 @@ "typeString": "string" }, "typeName": { - "id": 784, + "id": 979, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1625:6:4", + "src": "1933:6:4", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -10895,13 +13573,13 @@ }, { "constant": false, - "id": 787, + "id": 982, "mutability": "mutable", "name": "proposalId", - "nameLocation": "1663:10:4", + "nameLocation": "1971:10:4", "nodeType": "VariableDeclaration", - "scope": 892, - "src": "1655:18:4", + "scope": 1087, + "src": "1963:18:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10909,10 +13587,10 @@ "typeString": "uint256" }, "typeName": { - "id": 786, + "id": 981, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1655:7:4", + "src": "1963:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10921,129 +13599,129 @@ "visibility": "internal" } ], - "src": "1615:64:4" + "src": "1923:64:4" }, "returnParameters": { - "id": 792, + "id": 987, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 791, + "id": 986, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 892, - "src": "1706:15:4", + "scope": 1087, + "src": "2014:15:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_memory_ptr", + "typeIdentifier": "t_struct$_TaskData_$878_memory_ptr", "typeString": "struct TaskRegistry.TaskData" }, "typeName": { - "id": 790, + "id": 985, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 789, + "id": 984, "name": "TaskData", "nameLocations": [ - "1706:8:4" + "2014:8:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 714, - "src": "1706:8:4" + "referencedDeclaration": 878, + "src": "2014:8:4" }, - "referencedDeclaration": 714, - "src": "1706:8:4", + "referencedDeclaration": 878, + "src": "2014:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage_ptr", + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", "typeString": "struct TaskRegistry.TaskData" } }, "visibility": "internal" } ], - "src": "1705:17:4" + "src": "2013:17:4" }, - "scope": 1028, - "src": "1596:799:4", + "scope": 1359, + "src": "1904:813:4", "stateMutability": "payable", "virtual": false, "visibility": "external" }, { "body": { - "id": 973, + "id": 1162, "nodeType": "Block", - "src": "2640:553:4", + "src": "2962:535:4", "statements": [ { "assignments": [ - 902 + 1097 ], "declarations": [ { "constant": false, - "id": 902, + "id": 1097, "mutability": "mutable", "name": "task", - "nameLocation": "2667:4:4", + "nameLocation": "2989:4:4", "nodeType": "VariableDeclaration", - "scope": 973, - "src": "2650:21:4", + "scope": 1162, + "src": "2972:21:4", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage_ptr", + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", "typeString": "struct TaskRegistry.TaskData" }, "typeName": { - "id": 901, + "id": 1096, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 900, + "id": 1095, "name": "TaskData", "nameLocations": [ - "2650:8:4" + "2972:8:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 714, - "src": "2650:8:4" + "referencedDeclaration": 878, + "src": "2972:8:4" }, - "referencedDeclaration": 714, - "src": "2650:8:4", + "referencedDeclaration": 878, + "src": "2972:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage_ptr", + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", "typeString": "struct TaskRegistry.TaskData" } }, "visibility": "internal" } ], - "id": 906, + "id": 1101, "initialValue": { "baseExpression": { - "id": 903, + "id": 1098, "name": "tasks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "2674:5:4", + "referencedDeclaration": 883, + "src": "2996:5:4", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$714_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$878_storage_$", "typeString": "mapping(uint256 => struct TaskRegistry.TaskData storage ref)" } }, - "id": 905, + "id": 1100, "indexExpression": { - "id": 904, + "id": 1099, "name": "taskId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 895, - "src": "2680:6:4", + "referencedDeclaration": 1090, + "src": "3002:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11054,339 +13732,106 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2674:13:4", + "src": "2996:13:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage", + "typeIdentifier": "t_struct$_TaskData_$878_storage", "typeString": "struct TaskRegistry.TaskData storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "2650:37:4" + "src": "2972:37:4" }, { "expression": { "arguments": [ { "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 908, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2705:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2709:6:4", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2705:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 910, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "2719:4:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" - } - }, - "id": 911, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2724:8:4", - "memberName": "assignee", - "nodeType": "MemberAccess", - "referencedDeclaration": 709, - "src": "2719:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2705:27:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 913, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2736:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 914, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2740:6:4", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2736:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 915, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "2750:5:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2750:7:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2736:21:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2705:52:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "4e6f7420617574686f72697a6564", - "id": 919, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2759:16:4", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36", - "typeString": "literal_string \"Not authorized\"" - }, - "value": "Not authorized" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36", - "typeString": "literal_string \"Not authorized\"" - } - ], - "id": 907, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2697:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2697:79:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 921, - "nodeType": "ExpressionStatement", - "src": "2697:79:4" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 927, + "id": 1107, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 923, - "name": "task", + "id": 1103, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "2794:4:4", + "referencedDeclaration": -15, + "src": "3027:3:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage_ptr", - "typeString": "struct TaskRegistry.TaskData storage pointer" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, - "id": 924, + "id": 1104, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2799:6:4", - "memberName": "status", + "memberLocation": "3031:6:4", + "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": 707, - "src": "2794:11:4", + "src": "3027:10:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" + "typeIdentifier": "t_address", + "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "expression": { - "id": 925, - "name": "TaskStatus", + "id": 1105, + "name": "task", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "2809:10:4", + "referencedDeclaration": 1097, + "src": "3041:4:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TaskStatus_$698_$", - "typeString": "type(enum TaskRegistry.TaskStatus)" + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", + "typeString": "struct TaskRegistry.TaskData storage pointer" } }, - "id": 926, + "id": 1106, "isConstant": false, - "isLValue": false, - "isPure": true, + "isLValue": true, + "isPure": false, "lValueRequested": false, - "memberLocation": "2820:8:4", - "memberName": "ASSIGNED", + "memberLocation": "3046:8:4", + "memberName": "assignee", "nodeType": "MemberAccess", - "referencedDeclaration": 695, - "src": "2809:19:4", + "referencedDeclaration": 871, + "src": "3041:13:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "2794:34:4", + "src": "3027:27:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "hexValue": "496e76616c6964207461736b20737461747573", - "id": 928, + "hexValue": "4e6f7420617574686f72697a6564", + "id": 1108, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2830:21:4", + "src": "3056:16:4", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_35c761622bcc8ab75f9adfaf21a4872a39cd06f2745d5488272d29f1f753f270", - "typeString": "literal_string \"Invalid task status\"" + "typeIdentifier": "t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36", + "typeString": "literal_string \"Not authorized\"" }, - "value": "Invalid task status" + "value": "Not authorized" } ], "expression": { @@ -11396,11 +13841,11 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_35c761622bcc8ab75f9adfaf21a4872a39cd06f2745d5488272d29f1f753f270", - "typeString": "literal_string \"Invalid task status\"" + "typeIdentifier": "t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36", + "typeString": "literal_string \"Not authorized\"" } ], - "id": 922, + "id": 1102, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11408,13 +13853,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2786:7:4", + "src": "3019:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 929, + "id": 1109, "isConstant": false, "isLValue": false, "isPure": false, @@ -11423,49 +13868,188 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2786:66:4", + "src": "3019:54:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 930, + "id": 1110, "nodeType": "ExpressionStatement", - "src": "2786:66:4" + "src": "3019:54:4" }, { "expression": { - "id": 936, + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_enum$_TaskStatus_$860", + "typeString": "enum TaskRegistry.TaskStatus" + }, + "id": 1116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1112, + "name": "task", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1097, + "src": "3091:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", + "typeString": "struct TaskRegistry.TaskData storage pointer" + } + }, + "id": 1113, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3096:6:4", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 869, + "src": "3091:11:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TaskStatus_$860", + "typeString": "enum TaskRegistry.TaskStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 1114, + "name": "TaskStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 860, + "src": "3106:10:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_TaskStatus_$860_$", + "typeString": "type(enum TaskRegistry.TaskStatus)" + } + }, + "id": 1115, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3117:8:4", + "memberName": "ASSIGNED", + "nodeType": "MemberAccess", + "referencedDeclaration": 857, + "src": "3106:19:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TaskStatus_$860", + "typeString": "enum TaskRegistry.TaskStatus" + } + }, + "src": "3091:34:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "496e76616c6964207461736b20737461747573", + "id": 1117, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3127:21:4", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_35c761622bcc8ab75f9adfaf21a4872a39cd06f2745d5488272d29f1f753f270", + "typeString": "literal_string \"Invalid task status\"" + }, + "value": "Invalid task status" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_35c761622bcc8ab75f9adfaf21a4872a39cd06f2745d5488272d29f1f753f270", + "typeString": "literal_string \"Invalid task status\"" + } + ], + "id": 1111, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3083:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3083:66:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1119, + "nodeType": "ExpressionStatement", + "src": "3083:66:4" + }, + { + "expression": { + "id": 1125, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 931, + "id": 1120, "name": "task", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "2863:4:4", + "referencedDeclaration": 1097, + "src": "3160:4:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage_ptr", + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", "typeString": "struct TaskRegistry.TaskData storage pointer" } }, - "id": 933, + "id": 1122, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "2868:6:4", + "memberLocation": "3165:6:4", "memberName": "status", "nodeType": "MemberAccess", - "referencedDeclaration": 707, - "src": "2863:11:4", + "referencedDeclaration": 869, + "src": "3160:11:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", + "typeIdentifier": "t_enum$_TaskStatus_$860", "typeString": "enum TaskRegistry.TaskStatus" } }, @@ -11473,72 +14057,72 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 934, + "id": 1123, "name": "TaskStatus", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "2877:10:4", + "referencedDeclaration": 860, + "src": "3174:10:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TaskStatus_$698_$", + "typeIdentifier": "t_type$_t_enum$_TaskStatus_$860_$", "typeString": "type(enum TaskRegistry.TaskStatus)" } }, - "id": 935, + "id": 1124, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "2888:9:4", + "memberLocation": "3185:9:4", "memberName": "COMPLETED", "nodeType": "MemberAccess", - "referencedDeclaration": 696, - "src": "2877:20:4", + "referencedDeclaration": 858, + "src": "3174:20:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", + "typeIdentifier": "t_enum$_TaskStatus_$860", "typeString": "enum TaskRegistry.TaskStatus" } }, - "src": "2863:34:4", + "src": "3160:34:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", + "typeIdentifier": "t_enum$_TaskStatus_$860", "typeString": "enum TaskRegistry.TaskStatus" } }, - "id": 937, + "id": 1126, "nodeType": "ExpressionStatement", - "src": "2863:34:4" + "src": "3160:34:4" }, { "expression": { - "id": 942, + "id": 1131, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 938, + "id": 1127, "name": "task", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "2907:4:4", + "referencedDeclaration": 1097, + "src": "3204:4:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage_ptr", + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", "typeString": "struct TaskRegistry.TaskData storage pointer" } }, - "id": 940, + "id": 1129, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "2912:6:4", + "memberLocation": "3209:6:4", "memberName": "result", "nodeType": "MemberAccess", - "referencedDeclaration": 713, - "src": "2907:11:4", + "referencedDeclaration": 875, + "src": "3204:11:4", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -11547,96 +14131,96 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 941, + "id": 1130, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 897, - "src": "2921:6:4", + "referencedDeclaration": 1092, + "src": "3218:6:4", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "2907:20:4", + "src": "3204:20:4", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 943, + "id": 1132, "nodeType": "ExpressionStatement", - "src": "2907:20:4" + "src": "3204:20:4" }, { "assignments": [ - 946 + 1135 ], "declarations": [ { "constant": false, - "id": 946, + "id": 1135, "mutability": "mutable", "name": "proposal", - "nameLocation": "2953:8:4", + "nameLocation": "3257:8:4", "nodeType": "VariableDeclaration", - "scope": 973, - "src": "2937:24:4", + "scope": 1162, + "src": "3234:31:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_memory_ptr", - "typeString": "struct IProposalStruct.Proposal" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal" }, "typeName": { - "id": 945, + "id": 1134, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 944, - "name": "Proposal", + "id": 1133, + "name": "ServiceProposal", "nameLocations": [ - "2937:8:4" + "3234:15:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1039, - "src": "2937:8:4" + "referencedDeclaration": 1403, + "src": "3234:15:4" }, - "referencedDeclaration": 1039, - "src": "2937:8:4", + "referencedDeclaration": 1403, + "src": "3234:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_storage_ptr", - "typeString": "struct IProposalStruct.Proposal" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_storage_ptr", + "typeString": "struct IProposalStruct.ServiceProposal" } }, "visibility": "internal" } ], - "id": 952, + "id": 1141, "initialValue": { "arguments": [ { "expression": { - "id": 949, + "id": 1138, "name": "task", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "2990:4:4", + "referencedDeclaration": 1097, + "src": "3294:4:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage_ptr", + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", "typeString": "struct TaskRegistry.TaskData storage pointer" } }, - "id": 950, + "id": 1139, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2995:10:4", + "memberLocation": "3299:10:4", "memberName": "proposalId", "nodeType": "MemberAccess", - "referencedDeclaration": 711, - "src": "2990:15:4", + "referencedDeclaration": 873, + "src": "3294:15:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11651,33 +14235,33 @@ } ], "expression": { - "id": 947, + "id": 1136, "name": "agentRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 729, - "src": "2964:13:4", + "referencedDeclaration": 893, + "src": "3268:13:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_AgentsRegistry_$506", + "typeIdentifier": "t_contract$_AgentsRegistry_$670", "typeString": "contract AgentsRegistry" } }, - "id": 948, + "id": 1137, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2978:11:4", + "memberLocation": "3282:11:4", "memberName": "getProposal", "nodeType": "MemberAccess", - "referencedDeclaration": 505, - "src": "2964:25:4", + "referencedDeclaration": 669, + "src": "3268:25:4", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Proposal_$1039_memory_ptr_$", - "typeString": "function (uint256) view external returns (struct IProposalStruct.Proposal memory)" + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_ServiceProposal_$1403_memory_ptr_$", + "typeString": "function (uint256) view external returns (struct IProposalStruct.ServiceProposal memory)" } }, - "id": 951, + "id": 1140, "isConstant": false, "isLValue": false, "isPure": false, @@ -11686,42 +14270,42 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2964:42:4", + "src": "3268:42:4", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "2937:69:4" + "src": "3234:76:4" }, { "expression": { "arguments": [ { "expression": { - "id": 956, + "id": 1145, "name": "proposal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 946, - "src": "3056:8:4", + "referencedDeclaration": 1135, + "src": "3360:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal memory" } }, - "id": 957, + "id": 1146, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3065:6:4", + "memberLocation": "3369:6:4", "memberName": "issuer", "nodeType": "MemberAccess", - "referencedDeclaration": 1032, - "src": "3056:15:4", + "referencedDeclaration": 1394, + "src": "3360:15:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11729,27 +14313,27 @@ }, { "expression": { - "id": 958, + "id": 1147, "name": "proposal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 946, - "src": "3073:8:4", + "referencedDeclaration": 1135, + "src": "3377:8:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$1039_memory_ptr", - "typeString": "struct IProposalStruct.Proposal memory" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal memory" } }, - "id": 959, + "id": 1148, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3082:5:4", + "memberLocation": "3386:5:4", "memberName": "price", "nodeType": "MemberAccess", - "referencedDeclaration": 1036, - "src": "3073:14:4", + "referencedDeclaration": 1398, + "src": "3377:14:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11768,33 +14352,33 @@ } ], "expression": { - "id": 953, + "id": 1142, "name": "TransferHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1200, - "src": "3025:14:4", + "referencedDeclaration": 1617, + "src": "3329:14:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TransferHelper_$1200_$", + "typeIdentifier": "t_type$_t_contract$_TransferHelper_$1617_$", "typeString": "type(library TransferHelper)" } }, - "id": 955, + "id": 1144, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3040:15:4", + "memberLocation": "3344:15:4", "memberName": "safeTransferETH", "nodeType": "MemberAccess", - "referencedDeclaration": 1199, - "src": "3025:30:4", + "referencedDeclaration": 1616, + "src": "3329:30:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 960, + "id": 1149, "isConstant": false, "isLValue": false, "isPure": false, @@ -11803,27 +14387,27 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3025:63:4", + "src": "3329:63:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 961, + "id": 1150, "nodeType": "ExpressionStatement", - "src": "3025:63:4" + "src": "3329:63:4" }, { "eventCall": { "arguments": [ { - "id": 963, + "id": 1152, "name": "taskId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 895, - "src": "3122:6:4", + "referencedDeclaration": 1090, + "src": "3426:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11831,29 +14415,29 @@ }, { "expression": { - "id": 964, + "id": 1153, "name": "task", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "3130:4:4", + "referencedDeclaration": 1097, + "src": "3434:4:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage_ptr", + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", "typeString": "struct TaskRegistry.TaskData storage pointer" } }, - "id": 965, + "id": 1154, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3135:6:4", + "memberLocation": "3439:6:4", "memberName": "status", "nodeType": "MemberAccess", - "referencedDeclaration": 707, - "src": "3130:11:4", + "referencedDeclaration": 869, + "src": "3434:11:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", + "typeIdentifier": "t_enum$_TaskStatus_$860", "typeString": "enum TaskRegistry.TaskStatus" } } @@ -11865,22 +14449,22 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_enum$_TaskStatus_$698", + "typeIdentifier": "t_enum$_TaskStatus_$860", "typeString": "enum TaskRegistry.TaskStatus" } ], - "id": 962, + "id": 1151, "name": "TaskStatusChanged", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 763, - "src": "3104:17:4", + "referencedDeclaration": 948, + "src": "3408:17:4", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_enum$_TaskStatus_$698_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_enum$_TaskStatus_$860_$returns$__$", "typeString": "function (uint256,enum TaskRegistry.TaskStatus)" } }, - "id": 966, + "id": 1155, "isConstant": false, "isLValue": false, "isPure": false, @@ -11889,39 +14473,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3104:38:4", + "src": "3408:38:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 967, + "id": 1156, "nodeType": "EmitStatement", - "src": "3099:43:4" + "src": "3403:43:4" }, { "eventCall": { "arguments": [ { - "id": 969, + "id": 1158, "name": "taskId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 895, - "src": "3171:6:4", + "referencedDeclaration": 1090, + "src": "3475:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 970, + "id": 1159, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 897, - "src": "3179:6:4", + "referencedDeclaration": 1092, + "src": "3483:6:4", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -11939,18 +14523,18 @@ "typeString": "string memory" } ], - "id": 968, + "id": 1157, "name": "TaskCompleted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 782, - "src": "3157:13:4", + "referencedDeclaration": 971, + "src": "3461:13:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (uint256,string memory)" } }, - "id": 971, + "id": 1160, "isConstant": false, "isLValue": false, "isPure": false, @@ -11959,46 +14543,46 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3157:29:4", + "src": "3461:29:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 972, + "id": 1161, "nodeType": "EmitStatement", - "src": "3152:34:4" + "src": "3456:34:4" } ] }, "documentation": { - "id": 893, + "id": 1088, "nodeType": "StructuredDocumentation", - "src": "2401:165:4", + "src": "2723:165:4", "text": " @dev Completes a task with the given result.\n @param taskId The ID of the task.\n @param result The result or output of the completed task." }, "functionSelector": "74aaa760", - "id": 974, + "id": 1163, "implemented": true, "kind": "function", "modifiers": [], "name": "completeTask", - "nameLocation": "2580:12:4", + "nameLocation": "2902:12:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 898, + "id": 1093, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 895, + "id": 1090, "mutability": "mutable", "name": "taskId", - "nameLocation": "2601:6:4", + "nameLocation": "2923:6:4", "nodeType": "VariableDeclaration", - "scope": 974, - "src": "2593:14:4", + "scope": 1163, + "src": "2915:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12006,10 +14590,10 @@ "typeString": "uint256" }, "typeName": { - "id": 894, + "id": 1089, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2593:7:4", + "src": "2915:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12019,13 +14603,13 @@ }, { "constant": false, - "id": 897, + "id": 1092, "mutability": "mutable", "name": "result", - "nameLocation": "2623:6:4", + "nameLocation": "2945:6:4", "nodeType": "VariableDeclaration", - "scope": 974, - "src": "2609:20:4", + "scope": 1163, + "src": "2931:20:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -12033,10 +14617,10 @@ "typeString": "string" }, "typeName": { - "id": 896, + "id": 1091, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2609:6:4", + "src": "2931:6:4", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -12045,191 +14629,91 @@ "visibility": "internal" } ], - "src": "2592:38:4" + "src": "2914:38:4" }, "returnParameters": { - "id": 899, + "id": 1094, "nodeType": "ParameterList", "parameters": [], - "src": "2640:0:4" + "src": "2962:0:4" }, - "scope": 1028, - "src": "2571:622:4", + "scope": 1359, + "src": "2893:604:4", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 986, + "id": 1237, "nodeType": "Block", - "src": "3283:43:4", + "src": "3750:504:4", "statements": [ { - "expression": { - "baseExpression": { - "id": 982, - "name": "issuerTasks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "3300:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 984, - "indexExpression": { - "id": 983, - "name": "issuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 976, - "src": "3312:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3300:19:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 981, - "id": 985, - "nodeType": "Return", - "src": "3293:26:4" - } - ] - }, - "functionSelector": "639241ab", - "id": 987, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTasksByIssuer", - "nameLocation": "3209:16:4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 977, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 976, - "mutability": "mutable", - "name": "issuer", - "nameLocation": "3234:6:4", - "nodeType": "VariableDeclaration", - "scope": 987, - "src": "3226:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 975, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3226:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3225:16:4" - }, - "returnParameters": { - "id": 981, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 980, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 987, - "src": "3265:16:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3265:7:4", + "assignments": [ + 1176 + ], + "declarations": [ + { + "constant": false, + "id": 1176, + "mutability": "mutable", + "name": "task", + "nameLocation": "3777:4:4", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "3760:21:4", + "stateVariable": false, + "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "nodeType": "ArrayTypeName", - "src": "3265:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", + "typeString": "struct TaskRegistry.TaskData" + }, + "typeName": { + "id": 1175, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1174, + "name": "TaskData", + "nameLocations": [ + "3760:8:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 878, + "src": "3760:8:4" + }, + "referencedDeclaration": 878, + "src": "3760:8:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", + "typeString": "struct TaskRegistry.TaskData" + } + }, + "visibility": "internal" } - }, - "visibility": "internal" - } - ], - "src": "3264:18:4" - }, - "scope": 1028, - "src": "3200:126:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 999, - "nodeType": "Block", - "src": "3405:37:4", - "statements": [ - { - "expression": { + ], + "id": 1180, + "initialValue": { "baseExpression": { - "id": 995, + "id": 1177, "name": "tasks", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "3422:5:4", + "referencedDeclaration": 883, + "src": "3784:5:4", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$714_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$878_storage_$", "typeString": "mapping(uint256 => struct TaskRegistry.TaskData storage ref)" } }, - "id": 997, + "id": 1179, "indexExpression": { - "id": 996, + "id": 1178, "name": "taskId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "3428:6:4", + "referencedDeclaration": 1166, + "src": "3790:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12240,358 +14724,875 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3422:13:4", + "src": "3784:13:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage", + "typeIdentifier": "t_struct$_TaskData_$878_storage", "typeString": "struct TaskRegistry.TaskData storage ref" } }, - "functionReturnParameters": 994, - "id": 998, - "nodeType": "Return", - "src": "3415:20:4" - } - ] - }, - "functionSelector": "1d65e77e", - "id": 1000, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTask", - "nameLocation": "3341:7:4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 990, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 989, - "mutability": "mutable", - "name": "taskId", - "nameLocation": "3357:6:4", - "nodeType": "VariableDeclaration", - "scope": 1000, - "src": "3349:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 988, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3349:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3348:16:4" - }, - "returnParameters": { - "id": 994, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 993, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1000, - "src": "3388:15:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_memory_ptr", - "typeString": "struct TaskRegistry.TaskData" - }, - "typeName": { - "id": 992, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 991, - "name": "TaskData", - "nameLocations": [ - "3388:8:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 714, - "src": "3388:8:4" - }, - "referencedDeclaration": 714, - "src": "3388:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage_ptr", - "typeString": "struct TaskRegistry.TaskData" - } - }, - "visibility": "internal" - } - ], - "src": "3387:17:4" - }, - "scope": 1028, - "src": "3332:110:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 1013, - "nodeType": "Block", - "src": "3518:44:4", - "statements": [ + "nodeType": "VariableDeclarationStatement", + "src": "3760:37:4" + }, { "expression": { - "expression": { - "baseExpression": { - "id": 1008, - "name": "tasks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "3535:5:4", + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_enum$_TaskStatus_$860", + "typeString": "enum TaskRegistry.TaskStatus" + }, + "id": 1186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1182, + "name": "task", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1176, + "src": "3816:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", + "typeString": "struct TaskRegistry.TaskData storage pointer" + } + }, + "id": 1183, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3821:6:4", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 869, + "src": "3816:11:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TaskStatus_$860", + "typeString": "enum TaskRegistry.TaskStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 1184, + "name": "TaskStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 860, + "src": "3831:10:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_TaskStatus_$860_$", + "typeString": "type(enum TaskRegistry.TaskStatus)" + } + }, + "id": 1185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3842:9:4", + "memberName": "COMPLETED", + "nodeType": "MemberAccess", + "referencedDeclaration": 858, + "src": "3831:20:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TaskStatus_$860", + "typeString": "enum TaskRegistry.TaskStatus" + } + }, + "src": "3816:35:4", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$714_storage_$", - "typeString": "mapping(uint256 => struct TaskRegistry.TaskData storage ref)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 1010, - "indexExpression": { - "id": 1009, - "name": "taskId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1002, - "src": "3541:6:4", + { + "hexValue": "5461736b206973206e6f7420636f6d706c65746564", + "id": 1187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3853:23:4", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_stringliteral_a08755c006bba216d153388cc97acf5e536a500c0ec88cade64bd6b2f0d0e27d", + "typeString": "literal_string \"Task is not completed\"" + }, + "value": "Task is not completed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a08755c006bba216d153388cc97acf5e536a500c0ec88cade64bd6b2f0d0e27d", + "typeString": "literal_string \"Task is not completed\"" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3535:13:4", + ], + "id": 1181, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3808:7:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage", - "typeString": "struct TaskRegistry.TaskData storage ref" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "id": 1011, + "id": 1188, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberLocation": "3549:6:4", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 707, - "src": "3535:20:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - } - }, - "functionReturnParameters": 1007, - "id": 1012, - "nodeType": "Return", - "src": "3528:27:4" - } - ] - }, - "functionSelector": "5c622a0e", - "id": 1014, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getStatus", - "nameLocation": "3457:9:4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1003, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1002, - "mutability": "mutable", - "name": "taskId", - "nameLocation": "3475:6:4", - "nodeType": "VariableDeclaration", - "scope": 1014, - "src": "3467:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1001, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3467:7:4", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3808:69:4", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "visibility": "internal" - } - ], - "src": "3466:16:4" - }, - "returnParameters": { - "id": 1007, - "nodeType": "ParameterList", - "parameters": [ + "id": 1189, + "nodeType": "ExpressionStatement", + "src": "3808:69:4" + }, { - "constant": false, - "id": 1006, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1014, - "src": "3506:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" - }, - "typeName": { - "id": 1005, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1004, - "name": "TaskStatus", - "nameLocations": [ - "3506:10:4" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 698, - "src": "3506:10:4" + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 1194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1191, + "name": "task", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1176, + "src": "3895:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", + "typeString": "struct TaskRegistry.TaskData storage pointer" + } + }, + "id": 1192, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3900:6:4", + "memberName": "rating", + "nodeType": "MemberAccess", + "referencedDeclaration": 877, + "src": "3895:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3910:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3895:16:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5461736b20676f7420726174696e6720616c7265616479", + "id": 1195, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3913:25:4", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_306fe74d51ecec7b72bc35613a90b4c93840ded0ff8f63d0daef622fd6053b19", + "typeString": "literal_string \"Task got rating already\"" + }, + "value": "Task got rating already" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_306fe74d51ecec7b72bc35613a90b4c93840ded0ff8f63d0daef622fd6053b19", + "typeString": "literal_string \"Task got rating already\"" + } + ], + "id": 1190, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3887:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } }, - "referencedDeclaration": 698, - "src": "3506:10:4", + "id": 1196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3887:52:4", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_enum$_TaskStatus_$698", - "typeString": "enum TaskRegistry.TaskStatus" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "visibility": "internal" - } - ], - "src": "3505:12:4" - }, - "scope": 1028, - "src": "3448:114:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 1026, - "nodeType": "Block", - "src": "3641:46:4", - "statements": [ + "id": 1197, + "nodeType": "ExpressionStatement", + "src": "3887:52:4" + }, { "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 1201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1199, + "name": "rating", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1168, + "src": "3957:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "30", + "id": 1200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3967:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3957:11:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 1204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1202, + "name": "rating", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1168, + "src": "3972:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "313030", + "id": 1203, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3982:3:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "3972:13:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3957:28:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "526174696e67206d757374206265206265747765656e203020616e6420313030", + "id": 1206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3987:34:4", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c137d625e69877210f78bfe5d3113cccc58db43b2ac3bb8f673d723a397aae3e", + "typeString": "literal_string \"Rating must be between 0 and 100\"" + }, + "value": "Rating must be between 0 and 100" + } + ], "expression": { - "baseExpression": { - "id": 1021, - "name": "tasks", + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c137d625e69877210f78bfe5d3113cccc58db43b2ac3bb8f673d723a397aae3e", + "typeString": "literal_string \"Rating must be between 0 and 100\"" + } + ], + "id": 1198, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3949:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3949:73:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1208, + "nodeType": "ExpressionStatement", + "src": "3949:73:4" + }, + { + "expression": { + "id": 1213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 1209, + "name": "task", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "3658:5:4", + "referencedDeclaration": 1176, + "src": "4041:4:4", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$714_storage_$", - "typeString": "mapping(uint256 => struct TaskRegistry.TaskData storage ref)" + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", + "typeString": "struct TaskRegistry.TaskData storage pointer" } }, - "id": 1023, - "indexExpression": { - "id": 1022, - "name": "taskId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "3664:6:4", + "id": 1211, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "4046:6:4", + "memberName": "rating", + "nodeType": "MemberAccess", + "referencedDeclaration": 877, + "src": "4041:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1212, + "name": "rating", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1168, + "src": "4055:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "4041:20:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 1214, + "nodeType": "ExpressionStatement", + "src": "4041:20:4" + }, + { + "assignments": [ + 1217 + ], + "declarations": [ + { + "constant": false, + "id": 1217, + "mutability": "mutable", + "name": "proposal", + "nameLocation": "4094:8:4", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "4071:31:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal" + }, + "typeName": { + "id": 1216, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1215, + "name": "ServiceProposal", + "nameLocations": [ + "4071:15:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1403, + "src": "4071:15:4" + }, + "referencedDeclaration": 1403, + "src": "4071:15:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ServiceProposal_$1403_storage_ptr", + "typeString": "struct IProposalStruct.ServiceProposal" + } + }, + "visibility": "internal" + } + ], + "id": 1223, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 1220, + "name": "task", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1176, + "src": "4131:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", + "typeString": "struct TaskRegistry.TaskData storage pointer" + } + }, + "id": 1221, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4136:10:4", + "memberName": "proposalId", + "nodeType": "MemberAccess", + "referencedDeclaration": 873, + "src": "4131:15:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1218, + "name": "agentRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 893, + "src": "4105:13:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AgentsRegistry_$670", + "typeString": "contract AgentsRegistry" + } }, + "id": 1219, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3658:13:4", + "memberLocation": "4119:11:4", + "memberName": "getProposal", + "nodeType": "MemberAccess", + "referencedDeclaration": 669, + "src": "4105:25:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_TaskData_$714_storage", - "typeString": "struct TaskRegistry.TaskData storage ref" + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_ServiceProposal_$1403_memory_ptr_$", + "typeString": "function (uint256) view external returns (struct IProposalStruct.ServiceProposal memory)" } }, - "id": 1024, + "id": 1222, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberLocation": "3672:8:4", - "memberName": "assignee", - "nodeType": "MemberAccess", - "referencedDeclaration": 709, - "src": "3658:22:4", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4105:42:4", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal memory" } }, - "functionReturnParameters": 1020, - "id": 1025, - "nodeType": "Return", - "src": "3651:29:4" + "nodeType": "VariableDeclarationStatement", + "src": "4071:76:4" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1227, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1217, + "src": "4182:8:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal memory" + } + }, + "id": 1228, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4191:6:4", + "memberName": "issuer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1394, + "src": "4182:15:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1229, + "name": "rating", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1168, + "src": "4199:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "expression": { + "id": 1224, + "name": "agentRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 893, + "src": "4158:13:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AgentsRegistry_$670", + "typeString": "contract AgentsRegistry" + } + }, + "id": 1226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4172:9:4", + "memberName": "addRating", + "nodeType": "MemberAccess", + "referencedDeclaration": 624, + "src": "4158:23:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) external returns (uint256)" + } + }, + "id": 1230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4158:48:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1231, + "nodeType": "ExpressionStatement", + "src": "4158:48:4" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1233, + "name": "taskId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1166, + "src": "4232:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1234, + "name": "rating", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1168, + "src": "4240:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 1232, + "name": "TaskRated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 977, + "src": "4222:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint8_$returns$__$", + "typeString": "function (uint256,uint8)" + } + }, + "id": 1235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4222:25:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1236, + "nodeType": "EmitStatement", + "src": "4217:30:4" } ] }, - "functionSelector": "07b31818", - "id": 1027, + "documentation": { + "id": 1164, + "nodeType": "StructuredDocumentation", + "src": "3503:158:4", + "text": " @dev Rated a completed task, called by the task issuer\n @param taskId The ID of the task.\n @param rating task rating from 0 to 100." + }, + "functionSelector": "6298eee0", + "id": 1238, "implemented": true, "kind": "function", - "modifiers": [], - "name": "getAssignee", - "nameLocation": "3581:11:4", + "modifiers": [ + { + "arguments": [ + { + "id": 1171, + "name": "taskId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1166, + "src": "3733:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1172, + "kind": "modifierInvocation", + "modifierName": { + "id": 1170, + "name": "onlyTaskIssuer", + "nameLocations": [ + "3718:14:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 910, + "src": "3718:14:4" + }, + "nodeType": "ModifierInvocation", + "src": "3718:22:4" + } + ], + "name": "rateTask", + "nameLocation": "3679:8:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1017, + "id": 1169, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1016, + "id": 1166, "mutability": "mutable", "name": "taskId", - "nameLocation": "3601:6:4", + "nameLocation": "3696:6:4", "nodeType": "VariableDeclaration", - "scope": 1027, - "src": "3593:14:4", + "scope": 1238, + "src": "3688:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12599,495 +15600,361 @@ "typeString": "uint256" }, "typeName": { - "id": 1015, + "id": 1165, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3593:7:4", + "src": "3688:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" - } - ], - "src": "3592:16:4" - }, - "returnParameters": { - "id": 1020, - "nodeType": "ParameterList", - "parameters": [ + }, { "constant": false, - "id": 1019, + "id": 1168, "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", + "name": "rating", + "nameLocation": "3710:6:4", "nodeType": "VariableDeclaration", - "scope": 1027, - "src": "3632:7:4", + "scope": 1238, + "src": "3704:12:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint8", + "typeString": "uint8" }, "typeName": { - "id": 1018, - "name": "address", + "id": 1167, + "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3632:7:4", - "stateMutability": "nonpayable", + "src": "3704:5:4", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, "visibility": "internal" } ], - "src": "3631:9:4" + "src": "3687:30:4" }, - "scope": 1028, - "src": "3572:115:4", - "stateMutability": "view", + "returnParameters": { + "id": 1173, + "nodeType": "ParameterList", + "parameters": [], + "src": "3750:0:4" + }, + "scope": 1359, + "src": "3670:584:4", + "stateMutability": "nonpayable", "virtual": false, "visibility": "external" - } - ], - "scope": 1029, - "src": "380:3309:4", - "usedErrors": [ - 13, - 18 - ], - "usedEvents": [ - 24, - 756, - 763, - 769, - 776, - 782 - ] - } - ], - "src": "32:3658:4" - }, - "id": 4 - }, - "contracts/interfaces/IProposalStruct.sol": { - "ast": { - "absolutePath": "contracts/interfaces/IProposalStruct.sol", - "exportedSymbols": { - "IProposalStruct": [ - 1040 - ] - }, - "id": 1041, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1030, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "32:24:5" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IProposalStruct", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": true, - "id": 1040, - "linearizedBaseContracts": [ - 1040 - ], - "name": "IProposalStruct", - "nameLocation": "67:15:5", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "IProposalStruct.Proposal", - "id": 1039, - "members": [ - { - "constant": false, - "id": 1032, - "mutability": "mutable", - "name": "issuer", - "nameLocation": "119:6:5", - "nodeType": "VariableDeclaration", - "scope": 1039, - "src": "111:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1031, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "111:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1034, - "mutability": "mutable", - "name": "serviceName", - "nameLocation": "140:11:5", - "nodeType": "VariableDeclaration", - "scope": 1039, - "src": "133:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1033, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "133:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1036, - "mutability": "mutable", - "name": "price", - "nameLocation": "167:5:5", - "nodeType": "VariableDeclaration", - "scope": 1039, - "src": "159:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1035, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "159:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1038, - "mutability": "mutable", - "name": "proposalId", - "nameLocation": "188:10:5", - "nodeType": "VariableDeclaration", - "scope": 1039, - "src": "180:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1037, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "180:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "Proposal", - "nameLocation": "94:8:5", - "nodeType": "StructDefinition", - "scope": 1040, - "src": "87:116:5", - "visibility": "public" - } - ], - "scope": 1041, - "src": "57:148:5", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "32:173:5" - }, - "id": 5 - }, - "contracts/lib/TransferHelper.sol": { - "ast": { - "absolutePath": "contracts/lib/TransferHelper.sol", - "exportedSymbols": { - "TransferHelper": [ - 1200 - ] - }, - "id": 1201, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1042, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "31:24:6" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "TransferHelper", - "contractDependencies": [], - "contractKind": "library", - "fullyImplemented": true, - "id": 1200, - "linearizedBaseContracts": [ - 1200 - ], - "name": "TransferHelper", - "nameLocation": "176:14:6", - "nodeType": "ContractDefinition", - "nodes": [ + }, { "body": { - "id": 1084, + "id": 1304, "nodeType": "Block", - "src": "299:332:6", + "src": "4471:530:4", "statements": [ { "assignments": [ - 1052, - 1054 + 1249 ], "declarations": [ { "constant": false, - "id": 1052, - "mutability": "mutable", - "name": "success", - "nameLocation": "380:7:6", - "nodeType": "VariableDeclaration", - "scope": 1084, - "src": "375:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1051, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "375:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1054, + "id": 1249, "mutability": "mutable", - "name": "data", - "nameLocation": "402:4:6", + "name": "task", + "nameLocation": "4498:4:4", "nodeType": "VariableDeclaration", - "scope": 1084, - "src": "389:17:6", + "scope": 1304, + "src": "4481:21:4", "stateVariable": false, - "storageLocation": "memory", + "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", + "typeString": "struct TaskRegistry.TaskData" }, "typeName": { - "id": 1053, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "389:5:6", + "id": 1248, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1247, + "name": "TaskData", + "nameLocations": [ + "4481:8:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 878, + "src": "4481:8:4" + }, + "referencedDeclaration": 878, + "src": "4481:8:4", "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", + "typeString": "struct TaskRegistry.TaskData" } }, "visibility": "internal" } ], - "id": 1064, + "id": 1253, "initialValue": { + "baseExpression": { + "id": 1250, + "name": "tasks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 883, + "src": "4505:5:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$878_storage_$", + "typeString": "mapping(uint256 => struct TaskRegistry.TaskData storage ref)" + } + }, + "id": 1252, + "indexExpression": { + "id": 1251, + "name": "taskId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1241, + "src": "4511:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4505:13:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaskData_$878_storage", + "typeString": "struct TaskRegistry.TaskData storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4481:37:4" + }, + { + "expression": { "arguments": [ { - "arguments": [ - { - "hexValue": "30783039356561376233", - "id": 1059, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_enum$_TaskStatus_$860", + "typeString": "enum TaskRegistry.TaskStatus" + }, + "id": 1259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1255, + "name": "task", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1249, + "src": "4536:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", + "typeString": "struct TaskRegistry.TaskData storage pointer" + } + }, + "id": 1256, "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", + "isLValue": true, + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "444:10:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_157198259_by_1", - "typeString": "int_const 157198259" - }, - "value": "0x095ea7b3" - }, - { - "id": 1060, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "456:2:6", + "memberLocation": "4541:6:4", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 869, + "src": "4536:11:4", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_enum$_TaskStatus_$860", + "typeString": "enum TaskRegistry.TaskStatus" } }, - { - "id": 1061, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1048, - "src": "460:5:6", + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 1257, + "name": "TaskStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 860, + "src": "4551:10:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_TaskStatus_$860_$", + "typeString": "type(enum TaskRegistry.TaskStatus)" + } + }, + "id": 1258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4562:9:4", + "memberName": "COMPLETED", + "nodeType": "MemberAccess", + "referencedDeclaration": 858, + "src": "4551:20:4", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_enum$_TaskStatus_$860", + "typeString": "enum TaskRegistry.TaskStatus" } + }, + "src": "4536:35:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_157198259_by_1", - "typeString": "int_const 157198259" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_enum$_TaskStatus_$860", + "typeString": "enum TaskRegistry.TaskStatus" + }, + "id": 1264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1260, + "name": "task", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1249, + "src": "4575:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", + "typeString": "struct TaskRegistry.TaskData storage pointer" + } }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "id": 1261, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4580:6:4", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 869, + "src": "4575:11:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TaskStatus_$860", + "typeString": "enum TaskRegistry.TaskStatus" } - ], - "expression": { - "id": 1057, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "421:3:6", + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 1262, + "name": "TaskStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 860, + "src": "4590:10:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_TaskStatus_$860_$", + "typeString": "type(enum TaskRegistry.TaskStatus)" + } + }, + "id": 1263, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4601:8:4", + "memberName": "CANCELED", + "nodeType": "MemberAccess", + "referencedDeclaration": 859, + "src": "4590:19:4", "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" + "typeIdentifier": "t_enum$_TaskStatus_$860", + "typeString": "enum TaskRegistry.TaskStatus" } }, - "id": 1058, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "425:18:6", - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "src": "421:22:6", + "src": "4575:34:4", "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 1062, + "src": "4536:73:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5461736b2063616e6e6f742062652063616e63656c6564", + "id": 1266, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "string", "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "421:45:6", - "tryCall": false, + "nodeType": "Literal", + "src": "4611:25:4", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } + "typeIdentifier": "t_stringliteral_784e567ba03dff6623f8e7bbee52b701bfd622c294c48e22d5da37cfabe25ac0", + "typeString": "literal_string \"Task cannot be canceled\"" + }, + "value": "Task cannot be canceled" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_784e567ba03dff6623f8e7bbee52b701bfd622c294c48e22d5da37cfabe25ac0", + "typeString": "literal_string \"Task cannot be canceled\"" } ], - "expression": { - "id": 1055, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1044, - "src": "410:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "416:4:6", - "memberName": "call", - "nodeType": "MemberAccess", - "src": "410:10:6", + "id": 1254, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4528:7:4", "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)" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "id": 1063, + "id": 1267, "isConstant": false, "isLValue": false, "isPure": false, @@ -13096,626 +15963,202 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "410:57:6", + "src": "4528:109:4", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "374:93:6" + "id": 1268, + "nodeType": "ExpressionStatement", + "src": "4528:109:4" }, { "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1066, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1052, - "src": "498:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 1067, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1054, - "src": "510:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "515:6:6", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "510:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 1069, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "525:1:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "510:16:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "arguments": [ - { - "id": 1073, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1054, - "src": "541:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "components": [ - { - "id": 1075, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "548:4:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - }, - "typeName": { - "id": 1074, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "548:4:6", - "typeDescriptions": {} - } - } - ], - "id": 1076, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "547:6:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - ], - "expression": { - "id": 1071, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "530:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "534:6:6", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "530:10:6", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "530:24:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "510:44:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 1079, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "509:46:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "498:57:6", + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 1269, + "name": "task", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1249, + "src": "4656:4:4", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", + "typeString": "struct TaskRegistry.TaskData storage pointer" } }, - { - "hexValue": "5472616e7366657248656c7065723a3a73616665417070726f76653a20617070726f7665206661696c6564", - "id": 1081, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "569:45:6", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b4dd1eb4be82119fd3a99acfb5dd4c57591eb0ea309359b1af3d65a4460c7123", - "typeString": "literal_string \"TransferHelper::safeApprove: approve failed\"" - }, - "value": "TransferHelper::safeApprove: approve failed" + "id": 1271, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "4661:6:4", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 869, + "src": "4656:11:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TaskStatus_$860", + "typeString": "enum TaskRegistry.TaskStatus" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b4dd1eb4be82119fd3a99acfb5dd4c57591eb0ea309359b1af3d65a4460c7123", - "typeString": "literal_string \"TransferHelper::safeApprove: approve failed\"" + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 1272, + "name": "TaskStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 860, + "src": "4670:10:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_TaskStatus_$860_$", + "typeString": "type(enum TaskRegistry.TaskStatus)" } - ], - "id": 1065, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "477:7:6", + }, + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4681:8:4", + "memberName": "CANCELED", + "nodeType": "MemberAccess", + "referencedDeclaration": 859, + "src": "4670:19:4", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_enum$_TaskStatus_$860", + "typeString": "enum TaskRegistry.TaskStatus" } }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "477:147:6", - "tryCall": false, + "src": "4656:33:4", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_enum$_TaskStatus_$860", + "typeString": "enum TaskRegistry.TaskStatus" } }, - "id": 1083, + "id": 1275, "nodeType": "ExpressionStatement", - "src": "477:147:6" - } - ] - }, - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeApprove", - "nameLocation": "206:11:6", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1049, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1044, - "mutability": "mutable", - "name": "token", - "nameLocation": "235:5:6", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "227:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1043, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "227:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1046, - "mutability": "mutable", - "name": "to", - "nameLocation": "258:2:6", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "250:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1045, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "250:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" + "src": "4656:33:4" }, - { - "constant": false, - "id": 1048, - "mutability": "mutable", - "name": "value", - "nameLocation": "278:5:6", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "270:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1047, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "270:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "217:72:6" - }, - "returnParameters": { - "id": 1050, - "nodeType": "ParameterList", - "parameters": [], - "src": "299:0:6" - }, - "scope": 1200, - "src": "197:434:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1127, - "nodeType": "Block", - "src": "740:335:6", - "statements": [ { "assignments": [ - 1095, - 1097 + 1278 ], "declarations": [ { "constant": false, - "id": 1095, - "mutability": "mutable", - "name": "success", - "nameLocation": "822:7:6", - "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "817:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1094, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "817:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1097, + "id": 1278, "mutability": "mutable", - "name": "data", - "nameLocation": "844:4:6", + "name": "proposal", + "nameLocation": "4722:8:4", "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "831:17:6", + "scope": 1304, + "src": "4699:31:4", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal" }, "typeName": { - "id": 1096, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "831:5:6", + "id": 1277, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1276, + "name": "ServiceProposal", + "nameLocations": [ + "4699:15:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1403, + "src": "4699:15:4" + }, + "referencedDeclaration": 1403, + "src": "4699:15:4", "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_storage_ptr", + "typeString": "struct IProposalStruct.ServiceProposal" } }, "visibility": "internal" } ], - "id": 1107, + "id": 1284, "initialValue": { "arguments": [ { - "arguments": [ - { - "hexValue": "30786139303539636262", - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "886:10:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_2835717307_by_1", - "typeString": "int_const 2835717307" - }, - "value": "0xa9059cbb" - }, - { - "id": 1103, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "898:2:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1104, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1091, - "src": "902:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_2835717307_by_1", - "typeString": "int_const 2835717307" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 1100, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "863:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1101, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "867:18:6", - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "src": "863:22:6", + "id": 1281, + "name": "task", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1249, + "src": "4759:4:4", "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", + "typeString": "struct TaskRegistry.TaskData storage pointer" } }, - "id": 1105, + "id": 1282, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "863:45:6", - "tryCall": false, + "memberLocation": "4764:10:4", + "memberName": "proposalId", + "nodeType": "MemberAccess", + "referencedDeclaration": 873, + "src": "4759:15:4", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], "expression": { - "id": 1098, - "name": "token", + "id": 1279, + "name": "agentRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "852:5:6", + "referencedDeclaration": 893, + "src": "4733:13:4", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_AgentsRegistry_$670", + "typeString": "contract AgentsRegistry" } }, - "id": 1099, + "id": 1280, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "858:4:6", - "memberName": "call", + "memberLocation": "4747:11:4", + "memberName": "getProposal", "nodeType": "MemberAccess", - "src": "852:10:6", + "referencedDeclaration": 669, + "src": "4733:25:4", "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)" + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_ServiceProposal_$1403_memory_ptr_$", + "typeString": "function (uint256) view external returns (struct IProposalStruct.ServiceProposal memory)" } }, - "id": 1106, + "id": 1283, "isConstant": false, "isLValue": false, "isPure": false, @@ -13724,291 +16167,255 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "852:57:6", + "src": "4733:42:4", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "816:93:6" + "src": "4699:76:4" }, { "expression": { "arguments": [ { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "expression": { + "id": 1288, + "name": "task", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1249, + "src": "4869:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", + "typeString": "struct TaskRegistry.TaskData storage pointer" + } }, - "id": 1123, + "id": 1289, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "leftExpression": { - "id": 1109, - "name": "success", + "memberLocation": "4874:6:4", + "memberName": "issuer", + "nodeType": "MemberAccess", + "referencedDeclaration": 866, + "src": "4869:11:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 1290, + "name": "proposal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1095, - "src": "940:7:6", + "referencedDeclaration": 1278, + "src": "4882:8:4", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_struct$_ServiceProposal_$1403_memory_ptr", + "typeString": "struct IProposalStruct.ServiceProposal memory" } }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1113, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 1110, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1097, - "src": "952:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 1111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "957:6:6", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "952:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 1112, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "967:1:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "952:16:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "arguments": [ - { - "id": 1116, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1097, - "src": "983:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "components": [ - { - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "990:4:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - }, - "typeName": { - "id": 1117, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "990:4:6", - "typeDescriptions": {} - } - } - ], - "id": 1119, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "989:6:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - ], - "expression": { - "id": 1114, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "972:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1115, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "976:6:6", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "972:10:6", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "972:24:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "952:44:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 1122, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "951:46:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "id": 1291, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4891:5:4", + "memberName": "price", + "nodeType": "MemberAccess", + "referencedDeclaration": 1398, + "src": "4882:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" }, - "src": "940:57:6", + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1285, + "name": "TransferHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "4838:14:4", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_type$_t_contract$_TransferHelper_$1617_$", + "typeString": "type(library TransferHelper)" } }, + "id": 1287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4853:15:4", + "memberName": "safeTransferETH", + "nodeType": "MemberAccess", + "referencedDeclaration": 1616, + "src": "4838:30:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4838:59:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1293, + "nodeType": "ExpressionStatement", + "src": "4838:59:4" + }, + { + "eventCall": { + "arguments": [ { - "hexValue": "5472616e7366657248656c7065723a3a736166655472616e736665723a207472616e73666572206661696c6564", - "id": 1124, + "id": 1295, + "name": "taskId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1241, + "src": "4939:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1296, + "name": "task", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1249, + "src": "4947:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", + "typeString": "struct TaskRegistry.TaskData storage pointer" + } + }, + "id": 1297, "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", + "isLValue": true, + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "1011:47:6", + "memberLocation": "4952:6:4", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 869, + "src": "4947:11:4", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_daea69421eeb1164e163c36f3d4349f0db3ec4e0d1381bd5bf4faf53496c2611", - "typeString": "literal_string \"TransferHelper::safeTransfer: transfer failed\"" - }, - "value": "TransferHelper::safeTransfer: transfer failed" + "typeIdentifier": "t_enum$_TaskStatus_$860", + "typeString": "enum TaskRegistry.TaskStatus" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, { - "typeIdentifier": "t_stringliteral_daea69421eeb1164e163c36f3d4349f0db3ec4e0d1381bd5bf4faf53496c2611", - "typeString": "literal_string \"TransferHelper::safeTransfer: transfer failed\"" + "typeIdentifier": "t_enum$_TaskStatus_$860", + "typeString": "enum TaskRegistry.TaskStatus" } ], - "id": 1108, - "name": "require", + "id": 1294, + "name": "TaskStatusChanged", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 + "overloadedDeclarations": [], + "referencedDeclaration": 948, + "src": "4921:17:4", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_enum$_TaskStatus_$860_$returns$__$", + "typeString": "function (uint256,enum TaskRegistry.TaskStatus)" + } + }, + "id": 1298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4921:38:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1299, + "nodeType": "EmitStatement", + "src": "4916:43:4" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1301, + "name": "taskId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1241, + "src": "4987:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } ], - "referencedDeclaration": -18, - "src": "919:7:6", + "id": 1300, + "name": "TaskCanceled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 958, + "src": "4974:12:4", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" } }, - "id": 1125, + "id": 1302, "isConstant": false, "isLValue": false, "isPure": false, @@ -14017,67 +16424,182 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "919:149:6", + "src": "4974:20:4", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1126, - "nodeType": "ExpressionStatement", - "src": "919:149:6" + "id": 1303, + "nodeType": "EmitStatement", + "src": "4969:25:4" } ] }, - "id": 1128, + "documentation": { + "id": 1239, + "nodeType": "StructuredDocumentation", + "src": "4260:138:4", + "text": " @dev Cancels a task that is in ASSIGNED status and refunds the payment.\n @param taskId The ID of the task to cancel." + }, + "functionSelector": "7eec20a8", + "id": 1305, "implemented": true, "kind": "function", - "modifiers": [], - "name": "safeTransfer", - "nameLocation": "646:12:6", + "modifiers": [ + { + "arguments": [ + { + "id": 1244, + "name": "taskId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1241, + "src": "4463:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1245, + "kind": "modifierInvocation", + "modifierName": { + "id": 1243, + "name": "onlyTaskIssuer", + "nameLocations": [ + "4448:14:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 910, + "src": "4448:14:4" + }, + "nodeType": "ModifierInvocation", + "src": "4448:22:4" + } + ], + "name": "cancelTask", + "nameLocation": "4412:10:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1092, + "id": 1242, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1087, + "id": 1241, "mutability": "mutable", - "name": "token", - "nameLocation": "676:5:6", + "name": "taskId", + "nameLocation": "4431:6:4", "nodeType": "VariableDeclaration", - "scope": 1128, - "src": "668:13:6", + "scope": 1305, + "src": "4423:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 1086, - "name": "address", + "id": 1240, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "668:7:6", - "stateMutability": "nonpayable", + "src": "4423:7:4", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "visibility": "internal" - }, + } + ], + "src": "4422:16:4" + }, + "returnParameters": { + "id": 1246, + "nodeType": "ParameterList", + "parameters": [], + "src": "4471:0:4" + }, + "scope": 1359, + "src": "4403:598:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1317, + "nodeType": "Block", + "src": "5090:43:4", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 1313, + "name": "issuerTasks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "5107:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(address => uint256[] storage ref)" + } + }, + "id": 1315, + "indexExpression": { + "id": 1314, + "name": "issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1307, + "src": "5119:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5107:19:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "functionReturnParameters": 1312, + "id": 1316, + "nodeType": "Return", + "src": "5100:26:4" + } + ] + }, + "functionSelector": "639241ab", + "id": 1318, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTasksByIssuer", + "nameLocation": "5016:16:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1308, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 1089, + "id": 1307, "mutability": "mutable", - "name": "to", - "nameLocation": "699:2:6", + "name": "issuer", + "nameLocation": "5041:6:4", "nodeType": "VariableDeclaration", - "scope": 1128, - "src": "691:10:6", + "scope": 1318, + "src": "5033:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14085,10 +16607,10 @@ "typeString": "address" }, "typeName": { - "id": 1088, + "id": 1306, "name": "address", "nodeType": "ElementaryTypeName", - "src": "691:7:6", + "src": "5033:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14096,16 +16618,131 @@ } }, "visibility": "internal" - }, + } + ], + "src": "5032:16:4" + }, + "returnParameters": { + "id": 1312, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 1091, + "id": 1311, "mutability": "mutable", - "name": "value", - "nameLocation": "719:5:6", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1318, + "src": "5072:16:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1309, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5072:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1310, + "nodeType": "ArrayTypeName", + "src": "5072:9:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "5071:18:4" + }, + "scope": 1359, + "src": "5007:126:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1330, + "nodeType": "Block", + "src": "5212:37:4", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 1326, + "name": "tasks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 883, + "src": "5229:5:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$878_storage_$", + "typeString": "mapping(uint256 => struct TaskRegistry.TaskData storage ref)" + } + }, + "id": 1328, + "indexExpression": { + "id": 1327, + "name": "taskId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1320, + "src": "5235:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5229:13:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaskData_$878_storage", + "typeString": "struct TaskRegistry.TaskData storage ref" + } + }, + "functionReturnParameters": 1325, + "id": 1329, + "nodeType": "Return", + "src": "5222:20:4" + } + ] + }, + "functionSelector": "1d65e77e", + "id": 1331, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTask", + "nameLocation": "5148:7:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1321, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1320, + "mutability": "mutable", + "name": "taskId", + "nameLocation": "5164:6:4", "nodeType": "VariableDeclaration", - "scope": 1128, - "src": "711:13:6", + "scope": 1331, + "src": "5156:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14113,10 +16750,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1090, + "id": 1319, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "711:7:6", + "src": "5156:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14125,659 +16762,305 @@ "visibility": "internal" } ], - "src": "658:72:6" + "src": "5155:16:4" }, "returnParameters": { - "id": 1093, + "id": 1325, "nodeType": "ParameterList", - "parameters": [], - "src": "740:0:6" + "parameters": [ + { + "constant": false, + "id": 1324, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1331, + "src": "5195:15:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaskData_$878_memory_ptr", + "typeString": "struct TaskRegistry.TaskData" + }, + "typeName": { + "id": 1323, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1322, + "name": "TaskData", + "nameLocations": [ + "5195:8:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 878, + "src": "5195:8:4" + }, + "referencedDeclaration": 878, + "src": "5195:8:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaskData_$878_storage_ptr", + "typeString": "struct TaskRegistry.TaskData" + } + }, + "visibility": "internal" + } + ], + "src": "5194:17:4" }, - "scope": 1200, - "src": "637:438:6", - "stateMutability": "nonpayable", + "scope": 1359, + "src": "5139:110:4", + "stateMutability": "view", "virtual": false, - "visibility": "internal" + "visibility": "external" }, { "body": { - "id": 1173, + "id": 1344, "nodeType": "Block", - "src": "1210:357:6", + "src": "5325:44:4", "statements": [ { - "assignments": [ - 1140, - 1142 - ], - "declarations": [ - { - "constant": false, - "id": 1140, - "mutability": "mutable", - "name": "success", - "nameLocation": "1304:7:6", - "nodeType": "VariableDeclaration", - "scope": 1173, - "src": "1299:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1139, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1299:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1142, - "mutability": "mutable", - "name": "data", - "nameLocation": "1326:4:6", - "nodeType": "VariableDeclaration", - "scope": 1173, - "src": "1313:17:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1141, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1313:5:6", + "expression": { + "expression": { + "baseExpression": { + "id": 1339, + "name": "tasks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 883, + "src": "5342:5:4", "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$878_storage_$", + "typeString": "mapping(uint256 => struct TaskRegistry.TaskData storage ref)" } }, - "visibility": "internal" - } - ], - "id": 1153, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30783233623837326464", - "id": 1147, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1368:10:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_599290589_by_1", - "typeString": "int_const 599290589" - }, - "value": "0x23b872dd" - }, - { - "id": 1148, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1132, - "src": "1380:4:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1149, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1134, - "src": "1386:2:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1150, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1136, - "src": "1390:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_599290589_by_1", - "typeString": "int_const 599290589" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 1145, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "1345:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1146, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "1349:18:6", - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "src": "1345:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 1151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1345:51:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 1143, - "name": "token", + "id": 1341, + "indexExpression": { + "id": 1340, + "name": "taskId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1130, - "src": "1334:5:6", + "referencedDeclaration": 1333, + "src": "5348:6:4", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 1144, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1340:4:6", - "memberName": "call", - "nodeType": "MemberAccess", - "src": "1334:10:6", - "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": 1152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1334:63:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1298:99:6" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1155, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1140, - "src": "1428:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 1156, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1142, - "src": "1440:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 1157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1445:6:6", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1440:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 1158, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1455:1:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1440:16:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "arguments": [ - { - "id": 1162, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1142, - "src": "1471:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "components": [ - { - "id": 1164, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1478:4:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - }, - "typeName": { - "id": 1163, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1478:4:6", - "typeDescriptions": {} - } - } - ], - "id": 1165, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1477:6:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - ], - "expression": { - "id": 1160, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "1460:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "1464:6:6", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "1460:10:6", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1460:24:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1440:44:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 1168, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1439:46:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1428:57:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472616e7366657246726f6d206661696c6564", - "id": 1170, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1499:51:6", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3f8faf98afe9344b6d4b0e75b0101259bf282914b3b5a9320c6918b6e27ede1c", - "typeString": "literal_string \"TransferHelper::transferFrom: transferFrom failed\"" - }, - "value": "TransferHelper::transferFrom: transferFrom failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3f8faf98afe9344b6d4b0e75b0101259bf282914b3b5a9320c6918b6e27ede1c", - "typeString": "literal_string \"TransferHelper::transferFrom: transferFrom failed\"" - } - ], - "id": 1154, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1407:7:6", + "nodeType": "IndexAccess", + "src": "5342:13:4", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_struct$_TaskData_$878_storage", + "typeString": "struct TaskRegistry.TaskData storage ref" } }, - "id": 1171, + "id": 1342, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1407:153:6", - "tryCall": false, + "memberLocation": "5356:6:4", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 869, + "src": "5342:20:4", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_enum$_TaskStatus_$860", + "typeString": "enum TaskRegistry.TaskStatus" } }, - "id": 1172, - "nodeType": "ExpressionStatement", - "src": "1407:153:6" + "functionReturnParameters": 1338, + "id": 1343, + "nodeType": "Return", + "src": "5335:27:4" } ] }, - "id": 1174, + "functionSelector": "5c622a0e", + "id": 1345, "implemented": true, "kind": "function", "modifiers": [], - "name": "safeTransferFrom", - "nameLocation": "1090:16:6", + "name": "getStatus", + "nameLocation": "5264:9:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 1137, + "id": 1334, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1130, + "id": 1333, "mutability": "mutable", - "name": "token", - "nameLocation": "1124:5:6", + "name": "taskId", + "nameLocation": "5282:6:4", "nodeType": "VariableDeclaration", - "scope": 1174, - "src": "1116:13:6", + "scope": 1345, + "src": "5274:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 1129, - "name": "address", + "id": 1332, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1116:7:6", - "stateMutability": "nonpayable", + "src": "5274:7:4", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "visibility": "internal" - }, + } + ], + "src": "5273:16:4" + }, + "returnParameters": { + "id": 1338, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 1132, + "id": 1337, "mutability": "mutable", - "name": "from", - "nameLocation": "1147:4:6", + "name": "", + "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1174, - "src": "1139:12:6", + "scope": 1345, + "src": "5313:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_enum$_TaskStatus_$860", + "typeString": "enum TaskRegistry.TaskStatus" }, "typeName": { - "id": 1131, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1139:7:6", - "stateMutability": "nonpayable", + "id": 1336, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1335, + "name": "TaskStatus", + "nameLocations": [ + "5313:10:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 860, + "src": "5313:10:4" + }, + "referencedDeclaration": 860, + "src": "5313:10:4", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_enum$_TaskStatus_$860", + "typeString": "enum TaskRegistry.TaskStatus" } }, "visibility": "internal" - }, + } + ], + "src": "5312:12:4" + }, + "scope": 1359, + "src": "5255:114:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1357, + "nodeType": "Block", + "src": "5448:46:4", + "statements": [ { - "constant": false, - "id": 1134, - "mutability": "mutable", - "name": "to", - "nameLocation": "1169:2:6", - "nodeType": "VariableDeclaration", - "scope": 1174, - "src": "1161:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1133, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1161:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, + "expression": { + "expression": { + "baseExpression": { + "id": 1352, + "name": "tasks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 883, + "src": "5465:5:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TaskData_$878_storage_$", + "typeString": "mapping(uint256 => struct TaskRegistry.TaskData storage ref)" + } + }, + "id": 1354, + "indexExpression": { + "id": 1353, + "name": "taskId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1347, + "src": "5471:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5465:13:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TaskData_$878_storage", + "typeString": "struct TaskRegistry.TaskData storage ref" + } + }, + "id": 1355, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5479:8:4", + "memberName": "assignee", + "nodeType": "MemberAccess", + "referencedDeclaration": 871, + "src": "5465:22:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1351, + "id": 1356, + "nodeType": "Return", + "src": "5458:29:4" + } + ] + }, + "functionSelector": "07b31818", + "id": 1358, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAssignee", + "nameLocation": "5388:11:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1348, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 1136, + "id": 1347, "mutability": "mutable", - "name": "value", - "nameLocation": "1189:5:6", + "name": "taskId", + "nameLocation": "5408:6:4", "nodeType": "VariableDeclaration", - "scope": 1174, - "src": "1181:13:6", + "scope": 1358, + "src": "5400:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14785,10 +17068,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1135, + "id": 1346, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1181:7:6", + "src": "5400:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14797,316 +17080,197 @@ "visibility": "internal" } ], - "src": "1106:94:6" + "src": "5399:16:4" }, "returnParameters": { - "id": 1138, + "id": 1351, "nodeType": "ParameterList", - "parameters": [], - "src": "1210:0:6" - }, - "scope": 1200, - "src": "1081:486:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1198, - "nodeType": "Block", - "src": "1634:153:6", - "statements": [ + "parameters": [ { - "assignments": [ - 1182, - null - ], - "declarations": [ - { - "constant": false, - "id": 1182, - "mutability": "mutable", - "name": "success", - "nameLocation": "1650:7:6", - "nodeType": "VariableDeclaration", - "scope": 1198, - "src": "1645:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1181, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1645:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - null - ], - "id": 1192, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30", - "id": 1189, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1695:1:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1188, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "1685:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 1187, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1689:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1685:12:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 1183, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "1663:2:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1666:4:6", - "memberName": "call", - "nodeType": "MemberAccess", - "src": "1663:7:6", - "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": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "id": 1185, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "1678:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "1663:21:6", - "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": 1191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1663:35:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } + "constant": false, + "id": 1350, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1358, + "src": "5439:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" }, - "nodeType": "VariableDeclarationStatement", - "src": "1644:54:6" - }, - { - "expression": { - "arguments": [ - { - "id": 1194, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1182, - "src": "1716:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "5472616e7366657248656c7065723a3a736166655472616e736665724554483a20455448207472616e73666572206661696c6564", - "id": 1195, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1725:54:6", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_43d7bec223ecf9eb06ea147e7d564bc71c2448662d62a4ea86ce71fc4518b350", - "typeString": "literal_string \"TransferHelper::safeTransferETH: ETH transfer failed\"" - }, - "value": "TransferHelper::safeTransferETH: ETH transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_43d7bec223ecf9eb06ea147e7d564bc71c2448662d62a4ea86ce71fc4518b350", - "typeString": "literal_string \"TransferHelper::safeTransferETH: ETH transfer failed\"" - } - ], - "id": 1193, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1708:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1708:72:6", - "tryCall": false, + "typeName": { + "id": 1349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5439:7:4", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 1197, - "nodeType": "ExpressionStatement", - "src": "1708:72:6" + "visibility": "internal" } - ] + ], + "src": "5438:9:4" }, - "id": 1199, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferETH", - "nameLocation": "1582:15:6", - "nodeType": "FunctionDefinition", + "scope": 1359, + "src": "5379:115:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1360, + "src": "380:5116:4", + "usedErrors": [ + 13, + 18 + ], + "usedEvents": [ + 24, + 941, + 948, + 954, + 958, + 965, + 971, + 977 + ] + } + ], + "src": "32:5465:4" + }, + "id": 4 + }, + "contracts/interfaces/IAgent.sol": { + "ast": { + "absolutePath": "contracts/interfaces/IAgent.sol", + "exportedSymbols": { + "IAgent": [ + 1390 + ] + }, + "id": 1391, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1361, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "32:24:5" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IAgent", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 1390, + "linearizedBaseContracts": [ + 1390 + ], + "name": "IAgent", + "nameLocation": "68:6:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "IAgent.Skill", + "id": 1366, + "members": [ + { + "constant": false, + "id": 1363, + "mutability": "mutable", + "name": "name", + "nameLocation": "111:4:5", + "nodeType": "VariableDeclaration", + "scope": 1366, + "src": "104:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1362, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "104:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1365, + "mutability": "mutable", + "name": "level", + "nameLocation": "133:5:5", + "nodeType": "VariableDeclaration", + "scope": 1366, + "src": "125:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1364, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "125:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Skill", + "nameLocation": "88:5:5", + "nodeType": "StructDefinition", + "scope": 1390, + "src": "81:64:5", + "visibility": "public" + }, + { + "anonymous": false, + "eventSelector": "fc577563f1b9a0461e24abef1e1fcc0d33d3d881f20b5df6dda59de4aae2c821", + "id": 1372, + "name": "ReputationUpdated", + "nameLocation": "157:17:5", + "nodeType": "EventDefinition", "parameters": { - "id": 1179, + "id": 1371, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1176, + "id": 1368, + "indexed": true, "mutability": "mutable", - "name": "to", - "nameLocation": "1606:2:6", + "name": "agent", + "nameLocation": "191:5:5", "nodeType": "VariableDeclaration", - "scope": 1199, - "src": "1598:10:6", + "scope": 1372, + "src": "175:21:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15114,10 +17278,10 @@ "typeString": "address" }, "typeName": { - "id": 1175, + "id": 1367, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1598:7:6", + "src": "175:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -15128,13 +17292,59 @@ }, { "constant": false, - "id": 1178, + "id": 1370, + "indexed": false, "mutability": "mutable", - "name": "value", - "nameLocation": "1618:5:6", + "name": "newReputation", + "nameLocation": "206:13:5", + "nodeType": "VariableDeclaration", + "scope": 1372, + "src": "198:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1369, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "198:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "174:46:5" + }, + "src": "151:70:5" + }, + { + "functionSelector": "f43970f3", + "id": 1377, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "updateReputation", + "nameLocation": "240:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1374, + "mutability": "mutable", + "name": "_reputation", + "nameLocation": "265:11:5", "nodeType": "VariableDeclaration", - "scope": 1199, - "src": "1610:13:6", + "scope": 1377, + "src": "257:19:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15142,10 +17352,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1177, + "id": 1373, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1610:7:6", + "src": "257:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15154,686 +17364,7444 @@ "visibility": "internal" } ], - "src": "1597:27:6" + "src": "256:21:5" }, "returnParameters": { - "id": 1180, + "id": 1376, "nodeType": "ParameterList", "parameters": [], - "src": "1634:0:6" + "src": "286:0:5" }, - "scope": 1200, - "src": "1573:214:6", + "scope": 1390, + "src": "231:56:5", "stateMutability": "nonpayable", "virtual": false, - "visibility": "internal" - } - ], - "scope": 1201, - "src": "168:1621:6", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "31:1758:6" - }, - "id": 6 - } - }, - "contracts": { - "@openzeppelin/contracts/access/Ownable.sol": { - "Ownable": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + "visibility": "external" }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + "functionSelector": "fdd76bb3", + "id": 1384, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getSkills", + "nameLocation": "301:9:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1378, + "nodeType": "ParameterList", + "parameters": [], + "src": "310:2:5" + }, + "returnParameters": { + "id": 1383, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1382, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1384, + "src": "336:14:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Skill_$1366_memory_ptr_$dyn_memory_ptr", + "typeString": "struct IAgent.Skill[]" + }, + "typeName": { + "baseType": { + "id": 1380, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1379, + "name": "Skill", + "nameLocations": [ + "336:5:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1366, + "src": "336:5:5" + }, + "referencedDeclaration": 1366, + "src": "336:5:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Skill_$1366_storage_ptr", + "typeString": "struct IAgent.Skill" + } + }, + "id": 1381, + "nodeType": "ArrayTypeName", + "src": "336:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Skill_$1366_storage_$dyn_storage_ptr", + "typeString": "struct IAgent.Skill[]" + } + }, + "visibility": "internal" + } + ], + "src": "335:16:5" + }, + "scope": 1390, + "src": "292:60:5", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, { - "internalType": "address", - "name": "newOwner", - "type": "address" + "functionSelector": "ffe6a18e", + "id": 1389, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReputation", + "nameLocation": "366:13:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1385, + "nodeType": "ParameterList", + "parameters": [], + "src": "379:2:5" + }, + "returnParameters": { + "id": 1388, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1387, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1389, + "src": "405:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1386, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "405:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "404:9:5" + }, + "scope": 1390, + "src": "357:57:5", + "stateMutability": "view", + "virtual": false, + "visibility": "external" } ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "scope": 1391, + "src": "58:358:5", + "usedErrors": [], + "usedEvents": [ + 1372 + ] } ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "owner()": "8da5cb5b", - "renounceOwnership()": "715018a6", - "transferOwnership(address)": "f2fde38b" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"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.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" - } + "src": "32:385:5" + }, + "id": 5 }, - "@openzeppelin/contracts/utils/Context.sol": { - "Context": { - "abi": [], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": {} + "contracts/interfaces/IProposalStruct.sol": { + "ast": { + "absolutePath": "contracts/interfaces/IProposalStruct.sol", + "exportedSymbols": { + "IProposalStruct": [ + 1404 + ] }, - "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" - } - }, - "contracts/AgentsRegistry.sol": { - "AgentsRegistry": { - "abi": [ + "id": 1405, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ { - "inputs": [ - { - "internalType": "contract ServiceRegistry", - "name": "_serviceRegistry", - "type": "address" - } + "id": 1392, + "literals": [ + "solidity", + "^", + "0.8", + ".20" ], - "stateMutability": "nonpayable", - "type": "constructor" + "nodeType": "PragmaDirective", + "src": "32:24:6" }, { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } + "abstract": false, + "baseContracts": [], + "canonicalName": "IProposalStruct", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": true, + "id": 1404, + "linearizedBaseContracts": [ + 1404 ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ + "name": "IProposalStruct", + "nameLocation": "67:15:6", + "nodeType": "ContractDefinition", + "nodes": [ { - "internalType": "address", - "name": "account", - "type": "address" + "canonicalName": "IProposalStruct.ServiceProposal", + "id": 1403, + "members": [ + { + "constant": false, + "id": 1394, + "mutability": "mutable", + "name": "issuer", + "nameLocation": "126:6:6", + "nodeType": "VariableDeclaration", + "scope": 1403, + "src": "118:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1393, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "118:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1396, + "mutability": "mutable", + "name": "serviceName", + "nameLocation": "147:11:6", + "nodeType": "VariableDeclaration", + "scope": 1403, + "src": "140:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1395, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "140:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1398, + "mutability": "mutable", + "name": "price", + "nameLocation": "174:5:6", + "nodeType": "VariableDeclaration", + "scope": 1403, + "src": "166:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1397, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "166:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1400, + "mutability": "mutable", + "name": "proposalId", + "nameLocation": "195:10:6", + "nodeType": "VariableDeclaration", + "scope": 1403, + "src": "187:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1399, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "187:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1402, + "mutability": "mutable", + "name": "isActive", + "nameLocation": "218:8:6", + "nodeType": "VariableDeclaration", + "scope": 1403, + "src": "213:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1401, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "213:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "name": "ServiceProposal", + "nameLocation": "94:15:6", + "nodeType": "StructDefinition", + "scope": 1404, + "src": "87:144:6", + "visibility": "public" } ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, + "scope": 1405, + "src": "57:176:6", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "32:201:6" + }, + "id": 6 + }, + "contracts/interfaces/ITask.sol": { + "ast": { + "absolutePath": "contracts/interfaces/ITask.sol", + "exportedSymbols": { + "ITask": [ + 1457 + ] + }, + "id": 1458, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "agent", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "agentUri", - "type": "string" - } + "id": 1406, + "literals": [ + "solidity", + "^", + "0.8", + ".20" ], - "name": "AgentRegistered", - "type": "event" + "nodeType": "PragmaDirective", + "src": "32:24:7" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + "abstract": false, + "baseContracts": [], + "canonicalName": "ITask", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 1457, + "linearizedBaseContracts": [ + 1457 ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "agent", - "type": "address" - }, + "name": "ITask", + "nameLocation": "68:5:7", + "nodeType": "ContractDefinition", + "nodes": [ { - "indexed": false, - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" + "canonicalName": "ITask.TaskType", + "id": 1410, + "members": [ + { + "id": 1407, + "name": "SIMPLE", + "nameLocation": "96:6:7", + "nodeType": "EnumValue", + "src": "96:6:7" + }, + { + "id": 1408, + "name": "COMPLEX", + "nameLocation": "104:7:7", + "nodeType": "EnumValue", + "src": "104:7:7" + }, + { + "id": 1409, + "name": "COMPOSITE", + "nameLocation": "113:9:7", + "nodeType": "EnumValue", + "src": "113:9:7" + } + ], + "name": "TaskType", + "nameLocation": "85:8:7", + "nodeType": "EnumDefinition", + "src": "80:44:7" }, { - "indexed": false, - "internalType": "string", - "name": "name", - "type": "string" + "canonicalName": "ITask.TaskStatus", + "id": 1415, + "members": [ + { + "id": 1411, + "name": "CREATED", + "nameLocation": "147:7:7", + "nodeType": "EnumValue", + "src": "147:7:7" + }, + { + "id": 1412, + "name": "ASSIGNED", + "nameLocation": "156:8:7", + "nodeType": "EnumValue", + "src": "156:8:7" + }, + { + "id": 1413, + "name": "COMPLETED", + "nameLocation": "166:9:7", + "nodeType": "EnumValue", + "src": "166:9:7" + }, + { + "id": 1414, + "name": "FAILED", + "nameLocation": "177:6:7", + "nodeType": "EnumValue", + "src": "177:6:7" + } + ], + "name": "TaskStatus", + "nameLocation": "134:10:7", + "nodeType": "EnumDefinition", + "src": "129:56:7" }, { - "indexed": false, - "internalType": "uint256", - "name": "price", - "type": "uint256" - } - ], - "name": "ProposalAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "agent", - "type": "address" + "anonymous": false, + "eventSelector": "927ecc698e7293785487e40c7eb8f2aefb6abc81d77df63ab5d5c883da1df93a", + "id": 1421, + "name": "TaskExecuted", + "nameLocation": "197:12:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 1420, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1417, + "indexed": true, + "mutability": "mutable", + "name": "taskId", + "nameLocation": "226:6:7", + "nodeType": "VariableDeclaration", + "scope": 1421, + "src": "210:22:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1416, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "210:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1419, + "indexed": false, + "mutability": "mutable", + "name": "success", + "nameLocation": "239:7:7", + "nodeType": "VariableDeclaration", + "scope": 1421, + "src": "234:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1418, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "234:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "209:38:7" + }, + "src": "191:57:7" }, { - "indexed": false, - "internalType": "uint256", - "name": "newReputation", - "type": "uint256" - } - ], - "name": "ReputationUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "agent", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "name", - "type": "uint256" - } - ], - "name": "ServiceAdded", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "agents", - "outputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "agentUri", - "type": "string" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "agent", - "type": "address" - }, - { - "internalType": "uint256", - "name": "reputation", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "isRegistered", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_agent", - "type": "address" - } - ], - "name": "getAgentData", - "outputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" + "anonymous": false, + "eventSelector": "d76ef80cfb1ce0c70d0cbc0ab1b9f2f298a78f9fca5c841be963ae9a5d721bb4", + "id": 1428, + "name": "TaskStatusChanged", + "nameLocation": "259:17:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 1427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1423, + "indexed": true, + "mutability": "mutable", + "name": "taskId", + "nameLocation": "293:6:7", + "nodeType": "VariableDeclaration", + "scope": 1428, + "src": "277:22:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "277:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1426, + "indexed": false, + "mutability": "mutable", + "name": "status", + "nameLocation": "312:6:7", + "nodeType": "VariableDeclaration", + "scope": 1428, + "src": "301:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TaskStatus_$1415", + "typeString": "enum ITask.TaskStatus" + }, + "typeName": { + "id": 1425, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1424, + "name": "TaskStatus", + "nameLocations": [ + "301:10:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1415, + "src": "301:10:7" + }, + "referencedDeclaration": 1415, + "src": "301:10:7", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TaskStatus_$1415", + "typeString": "enum ITask.TaskStatus" + } + }, + "visibility": "internal" + } + ], + "src": "276:43:7" + }, + "src": "253:67:7" }, { - "internalType": "string", - "name": "agentUri", - "type": "string" + "anonymous": false, + "eventSelector": "52476d55ecef5cf13caa64038f297fe6bbf865d9584a98b8722a15a6d5db128f", + "id": 1434, + "name": "TaskAssigned", + "nameLocation": "331:12:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 1433, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1430, + "indexed": true, + "mutability": "mutable", + "name": "taskId", + "nameLocation": "360:6:7", + "nodeType": "VariableDeclaration", + "scope": 1434, + "src": "344:22:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1429, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "344:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1432, + "indexed": false, + "mutability": "mutable", + "name": "assignee", + "nameLocation": "376:8:7", + "nodeType": "VariableDeclaration", + "scope": 1434, + "src": "368:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1431, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "368:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "343:42:7" + }, + "src": "325:61:7" }, { - "internalType": "address", - "name": "owner", - "type": "address" + "functionSelector": "ef17a55e", + "id": 1445, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "execute", + "nameLocation": "405:7:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1441, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1436, + "mutability": "mutable", + "name": "data", + "nameLocation": "428:4:7", + "nodeType": "VariableDeclaration", + "scope": 1445, + "src": "413:19:7", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1435, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "413:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1438, + "mutability": "mutable", + "name": "target", + "nameLocation": "442:6:7", + "nodeType": "VariableDeclaration", + "scope": 1445, + "src": "434:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1437, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "434:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1440, + "mutability": "mutable", + "name": "value", + "nameLocation": "458:5:7", + "nodeType": "VariableDeclaration", + "scope": 1445, + "src": "450:13:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1439, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "450:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "412:52:7" + }, + "returnParameters": { + "id": 1444, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1443, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1445, + "src": "483:4:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1442, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "483:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "482:6:7" + }, + "scope": 1457, + "src": "396:93:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" }, { - "internalType": "address", - "name": "agent", - "type": "address" + "functionSelector": "4e69d560", + "id": 1451, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getStatus", + "nameLocation": "503:9:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1446, + "nodeType": "ParameterList", + "parameters": [], + "src": "512:2:7" + }, + "returnParameters": { + "id": 1450, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1449, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1451, + "src": "538:10:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TaskStatus_$1415", + "typeString": "enum ITask.TaskStatus" + }, + "typeName": { + "id": 1448, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1447, + "name": "TaskStatus", + "nameLocations": [ + "538:10:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1415, + "src": "538:10:7" + }, + "referencedDeclaration": 1415, + "src": "538:10:7", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TaskStatus_$1415", + "typeString": "enum ITask.TaskStatus" + } + }, + "visibility": "internal" + } + ], + "src": "537:12:7" + }, + "scope": 1457, + "src": "494:56:7", + "stateMutability": "view", + "virtual": false, + "visibility": "external" }, { - "internalType": "uint256", - "name": "reputation", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - } - ], - "name": "getProposal", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "issuer", - "type": "address" - }, - { - "internalType": "string", - "name": "serviceName", - "type": "string" - }, - { - "internalType": "uint256", - "name": "price", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - } - ], - "internalType": "struct IProposalStruct.Proposal", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "agent", - "type": "address" - } - ], - "name": "getReputation", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" + "functionSelector": "aa92e29f", + "id": 1456, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAssignee", + "nameLocation": "564:11:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1452, + "nodeType": "ParameterList", + "parameters": [], + "src": "575:2:7" + }, + "returnParameters": { + "id": 1455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1454, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1456, + "src": "601:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1453, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "601:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "600:9:7" + }, + "scope": 1457, + "src": "555:55:7", + "stateMutability": "view", + "virtual": false, + "visibility": "external" } ], - "stateMutability": "view", - "type": "function" - }, + "scope": 1458, + "src": "58:554:7", + "usedErrors": [], + "usedEvents": [ + 1421, + 1428, + 1434 + ] + } + ], + "src": "32:581:7" + }, + "id": 7 + }, + "contracts/lib/TransferHelper.sol": { + "ast": { + "absolutePath": "contracts/lib/TransferHelper.sol", + "exportedSymbols": { + "TransferHelper": [ + 1617 + ] + }, + "id": 1618, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ { - "inputs": [ - { - "internalType": "address", - "name": "agent", - "type": "address" - } - ], - "name": "isRegistered", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } + "id": 1459, + "literals": [ + "solidity", + "^", + "0.8", + ".20" ], - "stateMutability": "view", - "type": "function" + "nodeType": "PragmaDirective", + "src": "31:24:8" }, { - "inputs": [], - "name": "nextProposalId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } + "abstract": false, + "baseContracts": [], + "canonicalName": "TransferHelper", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 1617, + "linearizedBaseContracts": [ + 1617 ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ + "name": "TransferHelper", + "nameLocation": "176:14:8", + "nodeType": "ContractDefinition", + "nodes": [ { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "proposals", - "outputs": [ - { - "internalType": "address", - "name": "issuer", - "type": "address" - }, - { - "internalType": "string", - "name": "serviceName", - "type": "string" - }, - { - "internalType": "uint256", - "name": "price", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "agent", - "type": "address" - }, - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "agentUri", - "type": "string" - }, - { - "internalType": "string", - "name": "serviceName", - "type": "string" - }, - { - "internalType": "uint256", - "name": "servicePrice", - "type": "uint256" - } - ], - "name": "registerAgent", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "serviceRegistry", - "outputs": [ - { - "internalType": "contract ServiceRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "agent", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_reputation", - "type": "uint256" - } - ], - "name": "updateReputation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": { - "@_247": { - "entryPoint": null, - "id": 247, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_50": { - "entryPoint": null, - "id": 50, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_transferOwnership_146": { - "entryPoint": 132, - "id": 146, - "parameterSlots": 1, - "returnSlots": 0 - }, - "abi_decode_tuple_t_contract$_ServiceRegistry_$682_fromMemory": { - "entryPoint": 212, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - } - }, - "generatedSources": [ - { - "ast": { - "nodeType": "YulBlock", - "src": "0:537:7", + "body": { + "id": 1501, + "nodeType": "Block", + "src": "299:332:8", "statements": [ { - "nodeType": "YulBlock", - "src": "6:3:7", - "statements": [] + "assignments": [ + 1469, + 1471 + ], + "declarations": [ + { + "constant": false, + "id": 1469, + "mutability": "mutable", + "name": "success", + "nameLocation": "380:7:8", + "nodeType": "VariableDeclaration", + "scope": 1501, + "src": "375:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1468, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "375:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1471, + "mutability": "mutable", + "name": "data", + "nameLocation": "402:4:8", + "nodeType": "VariableDeclaration", + "scope": 1501, + "src": "389:17:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1470, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "389:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1481, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30783039356561376233", + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "444:10:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_157198259_by_1", + "typeString": "int_const 157198259" + }, + "value": "0x095ea7b3" + }, + { + "id": 1477, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1463, + "src": "456:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1478, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1465, + "src": "460:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_157198259_by_1", + "typeString": "int_const 157198259" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1474, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "421:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "425:18:8", + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "421:22:8", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 1479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "421:45:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1472, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1461, + "src": "410:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "416:4:8", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "410:10:8", + "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": 1480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "410:57:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "374:93:8" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1483, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1469, + "src": "498:7:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1484, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1471, + "src": "510:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "515:6:8", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "510:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1486, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "525:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "510:16:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 1490, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1471, + "src": "541:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 1492, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "548:4:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 1491, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "548:4:8", + "typeDescriptions": {} + } + } + ], + "id": 1493, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "547:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "id": 1488, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "530:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1489, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "534:6:8", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "530:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "530:24:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "510:44:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 1496, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "509:46:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "498:57:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5472616e7366657248656c7065723a3a73616665417070726f76653a20617070726f7665206661696c6564", + "id": 1498, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "569:45:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b4dd1eb4be82119fd3a99acfb5dd4c57591eb0ea309359b1af3d65a4460c7123", + "typeString": "literal_string \"TransferHelper::safeApprove: approve failed\"" + }, + "value": "TransferHelper::safeApprove: approve failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b4dd1eb4be82119fd3a99acfb5dd4c57591eb0ea309359b1af3d65a4460c7123", + "typeString": "literal_string \"TransferHelper::safeApprove: approve failed\"" + } + ], + "id": 1482, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "477:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "477:147:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1500, + "nodeType": "ExpressionStatement", + "src": "477:147:8" + } + ] + }, + "id": 1502, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeApprove", + "nameLocation": "206:11:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1466, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1461, + "mutability": "mutable", + "name": "token", + "nameLocation": "235:5:8", + "nodeType": "VariableDeclaration", + "scope": 1502, + "src": "227:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1460, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "227:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1463, + "mutability": "mutable", + "name": "to", + "nameLocation": "258:2:8", + "nodeType": "VariableDeclaration", + "scope": 1502, + "src": "250:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "250:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1465, + "mutability": "mutable", + "name": "value", + "nameLocation": "278:5:8", + "nodeType": "VariableDeclaration", + "scope": 1502, + "src": "270:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1464, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "270:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "217:72:8" + }, + "returnParameters": { + "id": 1467, + "nodeType": "ParameterList", + "parameters": [], + "src": "299:0:8" + }, + "scope": 1617, + "src": "197:434:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1544, + "nodeType": "Block", + "src": "740:335:8", + "statements": [ + { + "assignments": [ + 1512, + 1514 + ], + "declarations": [ + { + "constant": false, + "id": 1512, + "mutability": "mutable", + "name": "success", + "nameLocation": "822:7:8", + "nodeType": "VariableDeclaration", + "scope": 1544, + "src": "817:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1511, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "817:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1514, + "mutability": "mutable", + "name": "data", + "nameLocation": "844:4:8", + "nodeType": "VariableDeclaration", + "scope": 1544, + "src": "831:17:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1513, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "831:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1524, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30786139303539636262", + "id": 1519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "886:10:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_2835717307_by_1", + "typeString": "int_const 2835717307" + }, + "value": "0xa9059cbb" + }, + { + "id": 1520, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1506, + "src": "898:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1521, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1508, + "src": "902:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_2835717307_by_1", + "typeString": "int_const 2835717307" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1517, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "863:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1518, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "867:18:8", + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "863:22:8", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 1522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "863:45:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1515, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1504, + "src": "852:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "858:4:8", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "852:10:8", + "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": 1523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "852:57:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "816:93:8" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1526, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1512, + "src": "940:7:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1527, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1514, + "src": "952:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "957:6:8", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "952:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1529, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "967:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "952:16:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 1533, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1514, + "src": "983:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 1535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "990:4:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 1534, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "990:4:8", + "typeDescriptions": {} + } + } + ], + "id": 1536, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "989:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "id": 1531, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "972:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1532, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "976:6:8", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "972:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "972:24:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "952:44:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 1539, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "951:46:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "940:57:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5472616e7366657248656c7065723a3a736166655472616e736665723a207472616e73666572206661696c6564", + "id": 1541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1011:47:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_daea69421eeb1164e163c36f3d4349f0db3ec4e0d1381bd5bf4faf53496c2611", + "typeString": "literal_string \"TransferHelper::safeTransfer: transfer failed\"" + }, + "value": "TransferHelper::safeTransfer: transfer failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_daea69421eeb1164e163c36f3d4349f0db3ec4e0d1381bd5bf4faf53496c2611", + "typeString": "literal_string \"TransferHelper::safeTransfer: transfer failed\"" + } + ], + "id": 1525, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "919:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "919:149:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1543, + "nodeType": "ExpressionStatement", + "src": "919:149:8" + } + ] + }, + "id": 1545, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransfer", + "nameLocation": "646:12:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1509, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1504, + "mutability": "mutable", + "name": "token", + "nameLocation": "676:5:8", + "nodeType": "VariableDeclaration", + "scope": 1545, + "src": "668:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1503, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "668:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1506, + "mutability": "mutable", + "name": "to", + "nameLocation": "699:2:8", + "nodeType": "VariableDeclaration", + "scope": 1545, + "src": "691:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1505, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "691:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1508, + "mutability": "mutable", + "name": "value", + "nameLocation": "719:5:8", + "nodeType": "VariableDeclaration", + "scope": 1545, + "src": "711:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1507, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "711:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "658:72:8" + }, + "returnParameters": { + "id": 1510, + "nodeType": "ParameterList", + "parameters": [], + "src": "740:0:8" + }, + "scope": 1617, + "src": "637:438:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1590, + "nodeType": "Block", + "src": "1210:357:8", + "statements": [ + { + "assignments": [ + 1557, + 1559 + ], + "declarations": [ + { + "constant": false, + "id": 1557, + "mutability": "mutable", + "name": "success", + "nameLocation": "1304:7:8", + "nodeType": "VariableDeclaration", + "scope": 1590, + "src": "1299:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1556, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1299:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1559, + "mutability": "mutable", + "name": "data", + "nameLocation": "1326:4:8", + "nodeType": "VariableDeclaration", + "scope": 1590, + "src": "1313:17:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1558, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1313:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1570, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30783233623837326464", + "id": 1564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1368:10:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_599290589_by_1", + "typeString": "int_const 599290589" + }, + "value": "0x23b872dd" + }, + { + "id": 1565, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1549, + "src": "1380:4:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1566, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1551, + "src": "1386:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1567, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1553, + "src": "1390:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_599290589_by_1", + "typeString": "int_const 599290589" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1562, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1345:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1349:18:8", + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "1345:22:8", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 1568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1345:51:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1560, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1547, + "src": "1334:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1340:4:8", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "1334:10:8", + "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": 1569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1334:63:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1298:99:8" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1572, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1557, + "src": "1428:7:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1573, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1559, + "src": "1440:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1445:6:8", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1440:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1455:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1440:16:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 1579, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1559, + "src": "1471:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 1581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1478:4:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 1580, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1478:4:8", + "typeDescriptions": {} + } + } + ], + "id": 1582, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1477:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "id": 1577, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1460:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1464:6:8", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "1460:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1460:24:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1440:44:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 1585, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1439:46:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1428:57:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472616e7366657246726f6d206661696c6564", + "id": 1587, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1499:51:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3f8faf98afe9344b6d4b0e75b0101259bf282914b3b5a9320c6918b6e27ede1c", + "typeString": "literal_string \"TransferHelper::transferFrom: transferFrom failed\"" + }, + "value": "TransferHelper::transferFrom: transferFrom failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3f8faf98afe9344b6d4b0e75b0101259bf282914b3b5a9320c6918b6e27ede1c", + "typeString": "literal_string \"TransferHelper::transferFrom: transferFrom failed\"" + } + ], + "id": 1571, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1407:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1407:153:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1589, + "nodeType": "ExpressionStatement", + "src": "1407:153:8" + } + ] + }, + "id": 1591, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "1090:16:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1554, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1547, + "mutability": "mutable", + "name": "token", + "nameLocation": "1124:5:8", + "nodeType": "VariableDeclaration", + "scope": 1591, + "src": "1116:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1546, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1116:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1549, + "mutability": "mutable", + "name": "from", + "nameLocation": "1147:4:8", + "nodeType": "VariableDeclaration", + "scope": 1591, + "src": "1139:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1548, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1139:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1551, + "mutability": "mutable", + "name": "to", + "nameLocation": "1169:2:8", + "nodeType": "VariableDeclaration", + "scope": 1591, + "src": "1161:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1550, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1161:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1553, + "mutability": "mutable", + "name": "value", + "nameLocation": "1189:5:8", + "nodeType": "VariableDeclaration", + "scope": 1591, + "src": "1181:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1552, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1181:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1106:94:8" + }, + "returnParameters": { + "id": 1555, + "nodeType": "ParameterList", + "parameters": [], + "src": "1210:0:8" + }, + "scope": 1617, + "src": "1081:486:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1615, + "nodeType": "Block", + "src": "1634:153:8", + "statements": [ + { + "assignments": [ + 1599, + null + ], + "declarations": [ + { + "constant": false, + "id": 1599, + "mutability": "mutable", + "name": "success", + "nameLocation": "1650:7:8", + "nodeType": "VariableDeclaration", + "scope": 1615, + "src": "1645:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1598, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1645:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 1609, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1606, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1695:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1605, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1685:9:8", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 1604, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1689:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 1607, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1685:12:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1600, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1593, + "src": "1663:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1666:4:8", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "1663:7:8", + "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": 1603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1602, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "1678:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "1663:21:8", + "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": 1608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1663:35:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1644:54:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1611, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1599, + "src": "1716:7:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5472616e7366657248656c7065723a3a736166655472616e736665724554483a20455448207472616e73666572206661696c6564", + "id": 1612, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1725:54:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_43d7bec223ecf9eb06ea147e7d564bc71c2448662d62a4ea86ce71fc4518b350", + "typeString": "literal_string \"TransferHelper::safeTransferETH: ETH transfer failed\"" + }, + "value": "TransferHelper::safeTransferETH: ETH transfer failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_43d7bec223ecf9eb06ea147e7d564bc71c2448662d62a4ea86ce71fc4518b350", + "typeString": "literal_string \"TransferHelper::safeTransferETH: ETH transfer failed\"" + } + ], + "id": 1610, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1708:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1708:72:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1614, + "nodeType": "ExpressionStatement", + "src": "1708:72:8" + } + ] + }, + "id": 1616, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferETH", + "nameLocation": "1582:15:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1593, + "mutability": "mutable", + "name": "to", + "nameLocation": "1606:2:8", + "nodeType": "VariableDeclaration", + "scope": 1616, + "src": "1598:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1598:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1595, + "mutability": "mutable", + "name": "value", + "nameLocation": "1618:5:8", + "nodeType": "VariableDeclaration", + "scope": 1616, + "src": "1610:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1610:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1597:27:8" + }, + "returnParameters": { + "id": 1597, + "nodeType": "ParameterList", + "parameters": [], + "src": "1634:0:8" + }, + "scope": 1617, + "src": "1573:214:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1618, + "src": "168:1621:8", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "31:1758:8" + }, + "id": 8 + } + }, + "contracts": { + "@openzeppelin/contracts/access/Ownable.sol": { + "Ownable": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "owner()": "8da5cb5b", + "renounceOwnership()": "715018a6", + "transferOwnership(address)": "f2fde38b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"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.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Context.sol": { + "Context": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "contracts/AgentsRegistry.sol": { + "AgentsRegistry": { + "abi": [ + { + "inputs": [ + { + "internalType": "contract ServiceRegistry", + "name": "_serviceRegistry", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "agent", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "agentUri", + "type": "string" + } + ], + "name": "AgentRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "agent", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "name": "ProposalAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "agent", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "ProposalRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "agent", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "name": "ProposalUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "agent", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newReputation", + "type": "uint256" + } + ], + "name": "ReputationUpdated", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "agent", + "type": "address" + }, + { + "internalType": "string", + "name": "serviceName", + "type": "string" + }, + { + "internalType": "uint256", + "name": "servicePrice", + "type": "uint256" + } + ], + "name": "addProposal", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "agent", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_rating", + "type": "uint256" + } + ], + "name": "addRating", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "agents", + "outputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "agentUri", + "type": "string" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "agent", + "type": "address" + }, + { + "internalType": "uint256", + "name": "reputation", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalRatings", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_agent", + "type": "address" + } + ], + "name": "getAgentData", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "agentUri", + "type": "string" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "agent", + "type": "address" + }, + { + "internalType": "uint256", + "name": "reputation", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalRatings", + "type": "uint256" + } + ], + "internalType": "struct AgentsRegistry.AgentData", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "getProposal", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "issuer", + "type": "address" + }, + { + "internalType": "string", + "name": "serviceName", + "type": "string" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "isActive", + "type": "bool" + } + ], + "internalType": "struct IProposalStruct.ServiceProposal", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "agent", + "type": "address" + } + ], + "name": "getReputation", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "nextProposalId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "proposals", + "outputs": [ + { + "internalType": "address", + "name": "issuer", + "type": "address" + }, + { + "internalType": "string", + "name": "serviceName", + "type": "string" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "isActive", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "agent", + "type": "address" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "agentUri", + "type": "string" + }, + { + "internalType": "string", + "name": "serviceName", + "type": "string" + }, + { + "internalType": "uint256", + "name": "servicePrice", + "type": "uint256" + } + ], + "name": "registerAgent", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "agent", + "type": "address" + }, + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "removeProposal", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "serviceRegistry", + "outputs": [ + { + "internalType": "contract ServiceRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_serviceRegistry", + "type": "address" + } + ], + "name": "setServiceRegistry", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_taskRegistry", + "type": "address" + } + ], + "name": "setTaskRegistry", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "taskRegistry", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_253": { + "entryPoint": null, + "id": 253, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_50": { + "entryPoint": null, + "id": 50, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_transferOwnership_146": { + "entryPoint": 137, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_tuple_t_contract$_ServiceRegistry_$844_fromMemory": { + "entryPoint": 217, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:537:9", + "statements": [ + { + "nodeType": "YulBlock", + "src": "6:3:9", + "statements": [] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "118:209:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "164:16:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "173:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "176:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "166:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "166:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "166:12:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "139:7:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "148:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "135:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "135:23:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "131:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "131:32:9" + }, + "nodeType": "YulIf", + "src": "128:52:9" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "189:29:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "208:9:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "202:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "202:16:9" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "193:5:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "281:16:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "290:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "293:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "283:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "283:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "283:12:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "240:5:9" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "251:5:9" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "266:3:9", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "271:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "262:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "262:11:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "275:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "258:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "258:19:9" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "247:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "247:31:9" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "237:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "237:42:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "230:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "230:50:9" + }, + "nodeType": "YulIf", + "src": "227:70:9" + }, + { + "nodeType": "YulAssignment", + "src": "306:15:9", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "316:5:9" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "306:6:9" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_contract$_ServiceRegistry_$844_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "84:9:9", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "95:7:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "107:6:9", + "type": "" + } + ], + "src": "14:313:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "433:102:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "443:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "455:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "466:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "451:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "451:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "443:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "485:9:9" + }, + { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "500:6:9" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "516:3:9", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "521:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "512:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "512:11:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "508:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "508:19:9" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "496:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "496:32:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "478:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "478:51:9" + }, + "nodeType": "YulExpressionStatement", + "src": "478:51:9" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "402:9:9", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "413:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "424:4:9", + "type": "" + } + ], + "src": "332:203:9" + } + ] + }, + "contents": "{\n { }\n function abi_decode_tuple_t_contract$_ServiceRegistry_$844_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n}", + "id": 9, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50604051620019a3380380620019a3833981016040819052610031916100d9565b338061005757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61006081610089565b50600180546001600160a01b0319166001600160a01b0392909216919091178155600555610109565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100eb57600080fd5b81516001600160a01b038116811461010257600080fd5b9392505050565b61188a80620001196000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80639e498f16116100a2578063cbcf252a11610071578063cbcf252a1461025e578063d7071b1f14610271578063f2fde38b14610284578063f3a1a46614610297578063fd66091e146102aa57600080fd5b80639e498f16146101f8578063aac9f15a1461020b578063b2d780691461022b578063c7f758a81461023e57600080fd5b80637b5c219d116100de5780637b5c219d146101715780638da5cb5b1461019457806398366dbd146101b95780639c89a0e2146101cc57600080fd5b8063013cf08b146101105780632ab09d141461013d57806370370a8114610154578063715018a614610167575b600080fd5b61012361011e366004611222565b6102cf565b604051610134959493929190611281565b60405180910390f35b61014660055481565b604051908152602001610134565b6101466101623660046112e0565b610395565b61016f610558565b005b61018461017f3660046112e0565b61056c565b6040519015158152602001610134565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610134565b6101466101c73660046113ad565b6106d1565b6101466101da36600461144e565b6001600160a01b031660009081526003602052604090206004015490565b6002546101a1906001600160a01b031681565b61021e61021936600461144e565b6109af565b6040516101349190611470565b61016f61023936600461144e565b610b81565b61025161024c366004611222565b610bf3565b60405161013491906114ec565b6001546101a1906001600160a01b031681565b61016f61027f36600461144e565b610d18565b61016f61029236600461144e565b610d8a565b6101466102a5366004611546565b610dc8565b6102bd6102b836600461144e565b611004565b6040516101349695949392919061159d565b600460205260009081526040902080546001820180546001600160a01b0390921692916102fb906115f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610327906115f1565b80156103745780601f1061034957610100808354040283529160200191610374565b820191906000526020600020905b81548152906001019060200180831161035757829003601f168201915b50505050600283015460038401546004909401549293909290915060ff1685565b6002546000906001600160a01b031633146103f75760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420746865205461736b526567697374727920636f6e747261637400000060448201526064015b60405180910390fd5b60648211156104485760405162461bcd60e51b815260206004820181905260248201527f526174696e67206d757374206265206265747765656e203020616e642031303060448201526064016103ee565b6001600160a01b0383166000908152600360205260408120600501805460019290610474908490611641565b90915550506001600160a01b038316600090815260036020526040902060050154826104a1600183611654565b6001600160a01b0386166000908152600360205260409020600401546104c79190611667565b6104d19190611641565b6104db919061167e565b6001600160a01b038416600081815260036020526040908190206004018390555190917ffc577563f1b9a0461e24abef1e1fcc0d33d3d881f20b5df6dda59de4aae2c8219161052c91815260200190565b60405180910390a2506001600160a01b0382166000908152600360205260409020600401545b92915050565b610560611157565b61056a6000611184565b565b6001600160a01b03808316600090815260036020526040812060020154909184911633146105dc5760405162461bcd60e51b815260206004820152601a60248201527f4e6f7420746865206f776e6572206f6620746865206167656e7400000000000060448201526064016103ee565b6000838152600460205260409020546001600160a01b038581169116146106455760405162461bcd60e51b815260206004820152601960248201527f5365727669636550726f706f73616c206e6f7420666f756e640000000000000060448201526064016103ee565b600083815260046020526040812080546001600160a01b03191681559061066f60018301826111d4565b506000600282018190556003820155600401805460ff191690556040518381526001600160a01b038516907f45204680e8152470a4bb058a5049426c93d82614d97945e5b6541e67aba4a8f29060200160405180910390a25060019392505050565b6001600160a01b038581166000908152600360208190526040822001549091161561073e5760405162461bcd60e51b815260206004820152601860248201527f4167656e7420616c72656164792072656769737465726564000000000000000060448201526064016103ee565b60015460405163b405166b60e01b81526001600160a01b039091169063b405166b9061076e9086906004016116a0565b602060405180830381865afa15801561078b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107af91906116b3565b6107f45760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b60448201526064016103ee565b6001600160a01b0386166000908152600360205260409020806108178782611724565b50600181016108268682611724565b506002810180546001600160a01b031990811633179091556003820180546001600160a01b038a81169184168217909255600060048086018290556040805160a08101825293845260208085018b81528583018b9052600554606087018190526080870186905285529290529091208251815494169390941692909217835590519091829160018201906108ba9082611724565b5060408201516002820155606082015160038201556080909101516004909101805460ff1916911515919091179055600580549060006108f9836117e4565b9190505550336001600160a01b0316886001600160a01b03167f2a562efb52e7cec209321f57200606311256da6d2a1b19d44db7837a3209de2889896040516109439291906117fd565b60405180910390a3876001600160a01b03167fe194e0bc2279adb185c748ae57db10fe2ef1005a1b5646f96235a881c88ddb798260600151878760405161098c9392919061182b565b60405180910390a260016005546109a39190611654565b98975050505050505050565b6109fa6040518060c00160405280606081526020016060815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081525090565b6001600160a01b03821660009081526003602052604090819020815160c081019092528054909190829082908290610a31906115f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5d906115f1565b8015610aaa5780601f10610a7f57610100808354040283529160200191610aaa565b820191906000526020600020905b815481529060010190602001808311610a8d57829003601f168201915b50505050508152602001600182018054610ac3906115f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610aef906115f1565b8015610b3c5780601f10610b1157610100808354040283529160200191610b3c565b820191906000526020600020905b815481529060010190602001808311610b1f57829003601f168201915b505050918352505060028201546001600160a01b0390811660208301526003830154166040820152600482015460608201526005909101546080909101529392505050565b610b89611157565b6001600160a01b038116610bd15760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016103ee565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610c306040518060a0016040528060006001600160a01b031681526020016060815260200160008152602001600081526020016000151581525090565b600082815260046020908152604091829020825160a0810190935280546001600160a01b031683526001810180549192840191610c6c906115f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610c98906115f1565b8015610ce55780601f10610cba57610100808354040283529160200191610ce5565b820191906000526020600020905b815481529060010190602001808311610cc857829003601f168201915b5050509183525050600282015460208201526003820154604082015260049091015460ff16151560609091015292915050565b610d20611157565b6001600160a01b038116610d685760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016103ee565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b610d92611157565b6001600160a01b038116610dbc57604051631e4fbdf760e01b8152600060048201526024016103ee565b610dc581611184565b50565b6001600160a01b0380841660009081526003602052604081206002015490918591163314610e385760405162461bcd60e51b815260206004820152601a60248201527f4e6f7420746865206f776e6572206f6620746865206167656e7400000000000060448201526064016103ee565b60015460405163b405166b60e01b81526001600160a01b039091169063b405166b90610e689087906004016116a0565b602060405180830381865afa158015610e85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea991906116b3565b610eee5760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b60448201526064016103ee565b6040805160a0810182526001600160a01b0387811682526020808301888152838501889052600554606085018190526001608086018190526000918252600490935294909420835181546001600160a01b031916931692909217825592519192839290820190610f5e9082611724565b5060408201516002820155606082015160038201556080909101516004909101805460ff191691151591909117905560058054906000610f9d836117e4565b9190505550856001600160a01b03167fe194e0bc2279adb185c748ae57db10fe2ef1005a1b5646f96235a881c88ddb7982606001518787604051610fe39392919061182b565b60405180910390a26001600554610ffa9190611654565b9695505050505050565b60036020526000908152604090208054819061101f906115f1565b80601f016020809104026020016040519081016040528092919081815260200182805461104b906115f1565b80156110985780601f1061106d57610100808354040283529160200191611098565b820191906000526020600020905b81548152906001019060200180831161107b57829003601f168201915b5050505050908060010180546110ad906115f1565b80601f01602080910402602001604051908101604052809291908181526020018280546110d9906115f1565b80156111265780601f106110fb57610100808354040283529160200191611126565b820191906000526020600020905b81548152906001019060200180831161110957829003601f168201915b5050505060028301546003840154600485015460059095015493946001600160a01b03928316949290911692509086565b6000546001600160a01b0316331461056a5760405163118cdaa760e01b81523360048201526024016103ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5080546111e0906115f1565b6000825580601f106111f0575050565b601f016020900490600052602060002090810190610dc591905b8082111561121e576000815560010161120a565b5090565b60006020828403121561123457600080fd5b5035919050565b6000815180845260005b8181101561126157602081850181015186830182015201611245565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038616815260a0602082018190526000906112a59083018761123b565b6040830195909552506060810192909252151560809091015292915050565b80356001600160a01b03811681146112db57600080fd5b919050565b600080604083850312156112f357600080fd5b6112fc836112c4565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261133157600080fd5b813567ffffffffffffffff8082111561134c5761134c61130a565b604051601f8301601f19908116603f011681019082821181831017156113745761137461130a565b8160405283815286602085880101111561138d57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a086880312156113c557600080fd5b6113ce866112c4565b9450602086013567ffffffffffffffff808211156113eb57600080fd5b6113f789838a01611320565b9550604088013591508082111561140d57600080fd5b61141989838a01611320565b9450606088013591508082111561142f57600080fd5b5061143c88828901611320565b95989497509295608001359392505050565b60006020828403121561146057600080fd5b611469826112c4565b9392505050565b602081526000825160c0602084015261148c60e084018261123b565b90506020840151601f198483030160408501526114a9828261123b565b915050604084015160018060a01b0380821660608601528060608701511660808601525050608084015160a084015260a084015160c08401528091505092915050565b602080825282516001600160a01b03168282015282015160a0604083015260009061151a60c084018261123b565b905060408401516060840152606084015160808401526080840151151560a08401528091505092915050565b60008060006060848603121561155b57600080fd5b611564846112c4565b9250602084013567ffffffffffffffff81111561158057600080fd5b61158c86828701611320565b925050604084013590509250925092565b60c0815260006115b060c083018961123b565b82810360208401526115c2818961123b565b6001600160a01b03978816604085015295909616606083015250608081019290925260a0909101529392505050565b600181811c9082168061160557607f821691505b60208210810361162557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156105525761055261162b565b818103818111156105525761055261162b565b80820281158282048414176105525761055261162b565b60008261169b57634e487b7160e01b600052601260045260246000fd5b500490565b602081526000611469602083018461123b565b6000602082840312156116c557600080fd5b8151801515811461146957600080fd5b601f82111561171f57600081815260208120601f850160051c810160208610156116fc5750805b601f850160051c820191505b8181101561171b57828155600101611708565b5050505b505050565b815167ffffffffffffffff81111561173e5761173e61130a565b6117528161174c84546115f1565b846116d5565b602080601f831160018114611787576000841561176f5750858301515b600019600386901b1c1916600185901b17855561171b565b600085815260208120601f198616915b828110156117b657888601518255948401946001909101908401611797565b50858210156117d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000600182016117f6576117f661162b565b5060010190565b604081526000611810604083018561123b565b8281036020840152611822818561123b565b95945050505050565b838152606060208201526000611844606083018561123b565b905082604083015294935050505056fea26469706673582212202255def4b16ca5ed4bfdfe6c197c6e8cff9a21c7a547e18a955c433c677b32a464736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x19A3 CODESIZE SUB DUP1 PUSH3 0x19A3 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x31 SWAP2 PUSH2 0xD9 JUMP JUMPDEST CALLER DUP1 PUSH2 0x57 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x60 DUP2 PUSH2 0x89 JUMP JUMPDEST POP PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x5 SSTORE PUSH2 0x109 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x102 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x188A DUP1 PUSH3 0x119 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x10B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9E498F16 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xCBCF252A GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xCBCF252A EQ PUSH2 0x25E JUMPI DUP1 PUSH4 0xD7071B1F EQ PUSH2 0x271 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x284 JUMPI DUP1 PUSH4 0xF3A1A466 EQ PUSH2 0x297 JUMPI DUP1 PUSH4 0xFD66091E EQ PUSH2 0x2AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9E498F16 EQ PUSH2 0x1F8 JUMPI DUP1 PUSH4 0xAAC9F15A EQ PUSH2 0x20B JUMPI DUP1 PUSH4 0xB2D78069 EQ PUSH2 0x22B JUMPI DUP1 PUSH4 0xC7F758A8 EQ PUSH2 0x23E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7B5C219D GT PUSH2 0xDE JUMPI DUP1 PUSH4 0x7B5C219D EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x194 JUMPI DUP1 PUSH4 0x98366DBD EQ PUSH2 0x1B9 JUMPI DUP1 PUSH4 0x9C89A0E2 EQ PUSH2 0x1CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0x110 JUMPI DUP1 PUSH4 0x2AB09D14 EQ PUSH2 0x13D JUMPI DUP1 PUSH4 0x70370A81 EQ PUSH2 0x154 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x167 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x123 PUSH2 0x11E CALLDATASIZE PUSH1 0x4 PUSH2 0x1222 JUMP JUMPDEST PUSH2 0x2CF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x134 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1281 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x146 PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x134 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x162 CALLDATASIZE PUSH1 0x4 PUSH2 0x12E0 JUMP JUMPDEST PUSH2 0x395 JUMP JUMPDEST PUSH2 0x16F PUSH2 0x558 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x184 PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x12E0 JUMP JUMPDEST PUSH2 0x56C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x134 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x134 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x1C7 CALLDATASIZE PUSH1 0x4 PUSH2 0x13AD JUMP JUMPDEST PUSH2 0x6D1 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x1DA CALLDATASIZE PUSH1 0x4 PUSH2 0x144E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x1A1 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x21E PUSH2 0x219 CALLDATASIZE PUSH1 0x4 PUSH2 0x144E JUMP JUMPDEST PUSH2 0x9AF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x134 SWAP2 SWAP1 PUSH2 0x1470 JUMP JUMPDEST PUSH2 0x16F PUSH2 0x239 CALLDATASIZE PUSH1 0x4 PUSH2 0x144E JUMP JUMPDEST PUSH2 0xB81 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x24C CALLDATASIZE PUSH1 0x4 PUSH2 0x1222 JUMP JUMPDEST PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x134 SWAP2 SWAP1 PUSH2 0x14EC JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x1A1 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x16F PUSH2 0x27F CALLDATASIZE PUSH1 0x4 PUSH2 0x144E JUMP JUMPDEST PUSH2 0xD18 JUMP JUMPDEST PUSH2 0x16F PUSH2 0x292 CALLDATASIZE PUSH1 0x4 PUSH2 0x144E JUMP JUMPDEST PUSH2 0xD8A JUMP JUMPDEST PUSH2 0x146 PUSH2 0x2A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1546 JUMP JUMPDEST PUSH2 0xDC8 JUMP JUMPDEST PUSH2 0x2BD PUSH2 0x2B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x144E JUMP JUMPDEST PUSH2 0x1004 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x134 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x159D JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 SWAP2 PUSH2 0x2FB SWAP1 PUSH2 0x15F1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x327 SWAP1 PUSH2 0x15F1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x374 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x349 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x374 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x357 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 SWAP1 SWAP5 ADD SLOAD SWAP3 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 POP PUSH1 0xFF AND DUP6 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3F7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F7420746865205461736B526567697374727920636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x64 DUP3 GT ISZERO PUSH2 0x448 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x526174696E67206D757374206265206265747765656E203020616E6420313030 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x5 ADD DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x474 SWAP1 DUP5 SWAP1 PUSH2 0x1641 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x5 ADD SLOAD DUP3 PUSH2 0x4A1 PUSH1 0x1 DUP4 PUSH2 0x1654 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH2 0x4C7 SWAP2 SWAP1 PUSH2 0x1667 JUMP JUMPDEST PUSH2 0x4D1 SWAP2 SWAP1 PUSH2 0x1641 JUMP JUMPDEST PUSH2 0x4DB SWAP2 SWAP1 PUSH2 0x167E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 PUSH1 0x4 ADD DUP4 SWAP1 SSTORE MLOAD SWAP1 SWAP2 PUSH32 0xFC577563F1B9A0461E24ABEF1E1FCC0D33D3D881F20B5DF6DDA59DE4AAE2C821 SWAP2 PUSH2 0x52C SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x560 PUSH2 0x1157 JUMP JUMPDEST PUSH2 0x56A PUSH1 0x0 PUSH2 0x1184 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 SWAP2 DUP5 SWAP2 AND CALLER EQ PUSH2 0x5DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F7420746865206F776E6572206F6620746865206167656E74000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EE JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND SWAP2 AND EQ PUSH2 0x645 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5365727669636550726F706F73616C206E6F7420666F756E6400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EE JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP2 SSTORE SWAP1 PUSH2 0x66F PUSH1 0x1 DUP4 ADD DUP3 PUSH2 0x11D4 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x2 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x3 DUP3 ADD SSTORE PUSH1 0x4 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH32 0x45204680E8152470A4BB058A5049426C93D82614D97945E5B6541E67ABA4A8F2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 ADD SLOAD SWAP1 SWAP2 AND ISZERO PUSH2 0x73E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4167656E7420616C726561647920726567697374657265640000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0x76E SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x16A0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x78B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0x16B3 JUMP JUMPDEST PUSH2 0x7F4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x14D95C9D9A58D9481B9BDD081C9959DA5CDD195C9959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 PUSH2 0x817 DUP8 DUP3 PUSH2 0x1724 JUMP JUMPDEST POP PUSH1 0x1 DUP2 ADD PUSH2 0x826 DUP7 DUP3 PUSH2 0x1724 JUMP JUMPDEST POP PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP2 DUP5 AND DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 PUSH1 0x4 DUP1 DUP7 ADD DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE SWAP4 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD DUP12 DUP2 MSTORE DUP6 DUP4 ADD DUP12 SWAP1 MSTORE PUSH1 0x5 SLOAD PUSH1 0x60 DUP8 ADD DUP2 SWAP1 MSTORE PUSH1 0x80 DUP8 ADD DUP7 SWAP1 MSTORE DUP6 MSTORE SWAP3 SWAP1 MSTORE SWAP1 SWAP2 KECCAK256 DUP3 MLOAD DUP2 SLOAD SWAP5 AND SWAP4 SWAP1 SWAP5 AND SWAP3 SWAP1 SWAP3 OR DUP4 SSTORE SWAP1 MLOAD SWAP1 SWAP2 DUP3 SWAP2 PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x8BA SWAP1 DUP3 PUSH2 0x1724 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x3 DUP3 ADD SSTORE PUSH1 0x80 SWAP1 SWAP2 ADD MLOAD PUSH1 0x4 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x5 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x8F9 DUP4 PUSH2 0x17E4 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x2A562EFB52E7CEC209321F57200606311256DA6D2A1B19D44DB7837A3209DE28 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH2 0x943 SWAP3 SWAP2 SWAP1 PUSH2 0x17FD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xE194E0BC2279ADB185C748AE57DB10FE2EF1005A1B5646F96235A881C88DDB79 DUP3 PUSH1 0x60 ADD MLOAD DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x98C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x182B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 PUSH1 0x5 SLOAD PUSH2 0x9A3 SWAP2 SWAP1 PUSH2 0x1654 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x9FA PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP2 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD SWAP1 SWAP2 SWAP1 DUP3 SWAP1 DUP3 SWAP1 DUP3 SWAP1 PUSH2 0xA31 SWAP1 PUSH2 0x15F1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA5D SWAP1 PUSH2 0x15F1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAAA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA7F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAAA JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA8D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH2 0xAC3 SWAP1 PUSH2 0x15F1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAEF SWAP1 PUSH2 0x15F1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB3C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB11 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB3C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB1F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x3 DUP4 ADD SLOAD AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x5 SWAP1 SWAP2 ADD SLOAD PUSH1 0x80 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xB89 PUSH2 0x1157 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xBD1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x496E76616C69642061646472657373 PUSH1 0x88 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EE JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xC30 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE PUSH1 0x1 DUP2 ADD DUP1 SLOAD SWAP2 SWAP3 DUP5 ADD SWAP2 PUSH2 0xC6C SWAP1 PUSH2 0x15F1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xC98 SWAP1 PUSH2 0x15F1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xCE5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xCBA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xCE5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xCC8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD20 PUSH2 0x1157 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xD68 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x496E76616C69642061646472657373 PUSH1 0x88 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EE JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xD92 PUSH2 0x1157 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xDBC JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3EE JUMP JUMPDEST PUSH2 0xDC5 DUP2 PUSH2 0x1184 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 SWAP2 DUP6 SWAP2 AND CALLER EQ PUSH2 0xE38 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F7420746865206F776E6572206F6620746865206167656E74000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0xE68 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x16A0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE85 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEA9 SWAP2 SWAP1 PUSH2 0x16B3 JUMP JUMPDEST PUSH2 0xEEE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x14D95C9D9A58D9481B9BDD081C9959DA5CDD195C9959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP9 DUP2 MSTORE DUP4 DUP6 ADD DUP9 SWAP1 MSTORE PUSH1 0x5 SLOAD PUSH1 0x60 DUP6 ADD DUP2 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x80 DUP7 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x4 SWAP1 SWAP4 MSTORE SWAP5 SWAP1 SWAP5 KECCAK256 DUP4 MLOAD DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP4 AND SWAP3 SWAP1 SWAP3 OR DUP3 SSTORE SWAP3 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP3 ADD SWAP1 PUSH2 0xF5E SWAP1 DUP3 PUSH2 0x1724 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x3 DUP3 ADD SSTORE PUSH1 0x80 SWAP1 SWAP2 ADD MLOAD PUSH1 0x4 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x5 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0xF9D DUP4 PUSH2 0x17E4 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xE194E0BC2279ADB185C748AE57DB10FE2EF1005A1B5646F96235A881C88DDB79 DUP3 PUSH1 0x60 ADD MLOAD DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0xFE3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x182B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 PUSH1 0x5 SLOAD PUSH2 0xFFA SWAP2 SWAP1 PUSH2 0x1654 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP2 SWAP1 PUSH2 0x101F SWAP1 PUSH2 0x15F1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x104B SWAP1 PUSH2 0x15F1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1098 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x106D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1098 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x107B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x10AD SWAP1 PUSH2 0x15F1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x10D9 SWAP1 PUSH2 0x15F1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1126 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x10FB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1126 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1109 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 DUP6 ADD SLOAD PUSH1 0x5 SWAP1 SWAP6 ADD SLOAD SWAP4 SWAP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP5 SWAP3 SWAP1 SWAP2 AND SWAP3 POP SWAP1 DUP7 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x56A JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3EE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x11E0 SWAP1 PUSH2 0x15F1 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x11F0 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0xDC5 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x121E JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x120A JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1261 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x1245 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP2 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x12A5 SWAP1 DUP4 ADD DUP8 PUSH2 0x123B JUMP JUMPDEST PUSH1 0x40 DUP4 ADD SWAP6 SWAP1 SWAP6 MSTORE POP PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x12DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12FC DUP4 PUSH2 0x12C4 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1331 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x134C JUMPI PUSH2 0x134C PUSH2 0x130A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x1374 JUMPI PUSH2 0x1374 PUSH2 0x130A JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0x138D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x13C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x13CE DUP7 PUSH2 0x12C4 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x13EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x13F7 DUP10 DUP4 DUP11 ADD PUSH2 0x1320 JUMP JUMPDEST SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x140D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1419 DUP10 DUP4 DUP11 ADD PUSH2 0x1320 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x142F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x143C DUP9 DUP3 DUP10 ADD PUSH2 0x1320 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP3 SWAP6 PUSH1 0x80 ADD CALLDATALOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1460 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1469 DUP3 PUSH2 0x12C4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH1 0xC0 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x148C PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x123B JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x14A9 DUP3 DUP3 PUSH2 0x123B JUMP JUMPDEST SWAP2 POP POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x60 DUP7 ADD MSTORE DUP1 PUSH1 0x60 DUP8 ADD MLOAD AND PUSH1 0x80 DUP7 ADD MSTORE POP POP PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0xC0 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 DUP3 ADD MSTORE DUP3 ADD MLOAD PUSH1 0xA0 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x0 SWAP1 PUSH2 0x151A PUSH1 0xC0 DUP5 ADD DUP3 PUSH2 0x123B JUMP JUMPDEST SWAP1 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0x80 DUP5 ADD MLOAD ISZERO ISZERO PUSH1 0xA0 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x155B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1564 DUP5 PUSH2 0x12C4 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1580 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x158C DUP7 DUP3 DUP8 ADD PUSH2 0x1320 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xC0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x15B0 PUSH1 0xC0 DUP4 ADD DUP10 PUSH2 0x123B JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x15C2 DUP2 DUP10 PUSH2 0x123B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 DUP9 AND PUSH1 0x40 DUP6 ADD MSTORE SWAP6 SWAP1 SWAP7 AND PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xA0 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1605 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1625 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x552 JUMPI PUSH2 0x552 PUSH2 0x162B JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x552 JUMPI PUSH2 0x552 PUSH2 0x162B JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x552 JUMPI PUSH2 0x552 PUSH2 0x162B JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x169B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1469 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x123B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1469 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x171F JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x16FC JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x171B JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1708 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x173E JUMPI PUSH2 0x173E PUSH2 0x130A JUMP JUMPDEST PUSH2 0x1752 DUP2 PUSH2 0x174C DUP5 SLOAD PUSH2 0x15F1 JUMP JUMPDEST DUP5 PUSH2 0x16D5 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1787 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x176F JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x171B JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x17B6 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x1797 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x17D4 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x17F6 JUMPI PUSH2 0x17F6 PUSH2 0x162B JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1810 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x123B JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x1822 DUP2 DUP6 PUSH2 0x123B JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1844 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x123B JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 SSTORE 0xDE DELEGATECALL 0xB1 PUSH13 0xA5ED4BFDFE6C197C6E8CFF9A21 0xC7 0xA5 SELFBALANCE 0xE1 DUP11 SWAP6 0x5C NUMBER EXTCODECOPY PUSH8 0x7B32A464736F6C63 NUMBER STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "362:6428:2:-:0;;;967:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1021:10;;1269:95:0;;1322:31;;-1:-1:-1;;;1322:31:0;;1350:1;1322:31;;;478:51:9;451:18;;1322:31:0;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;1043:15:2::1;:34:::0;;-1:-1:-1;;;;;;1043:34:2::1;-1:-1:-1::0;;;;;1043:34:2;;;::::1;::::0;;;::::1;::::0;;1087:14:::1;:18:::0;362:6428;;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:313:9:-;107:6;160:2;148:9;139:7;135:23;131:32;128:52;;;176:1;173;166:12;128:52;202:16;;-1:-1:-1;;;;;247:31:9;;237:42;;227:70;;293:1;290;283:12;227:70;316:5;14:313;-1:-1:-1;;;14:313:9:o;332:203::-;362:6428:2;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_checkOwner_84": { + "entryPoint": 4439, + "id": 84, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_msgSender_159": { + "entryPoint": null, + "id": 159, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_transferOwnership_146": { + "entryPoint": 4484, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@addProposal_513": { + "entryPoint": 3528, + "id": 513, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@addRating_624": { + "entryPoint": 917, + "id": 624, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@agents_210": { + "entryPoint": 4100, + "id": 210, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@getAgentData_656": { + "entryPoint": 2479, + "id": 656, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getProposal_669": { + "entryPoint": 3059, + "id": 669, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getReputation_637": { + "entryPoint": null, + "id": 637, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@nextProposalId_217": { + "entryPoint": null, + "id": 217, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@owner_67": { + "entryPoint": null, + "id": 67, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@proposals_215": { + "entryPoint": 719, + "id": 215, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@registerAgent_457": { + "entryPoint": 1745, + "id": 457, + "parameterSlots": 5, + "returnSlots": 1 + }, + "@removeProposal_549": { + "entryPoint": 1388, + "id": 549, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@renounceOwnership_98": { + "entryPoint": 1368, + "id": 98, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@serviceRegistry_203": { + "entryPoint": null, + "id": 203, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@setServiceRegistry_341": { + "entryPoint": 3352, + "id": 341, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setTaskRegistry_316": { + "entryPoint": 2945, + "id": 316, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@taskRegistry_205": { + "entryPoint": null, + "id": 205, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@transferOwnership_126": { + "entryPoint": 3466, + "id": 126, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_address": { + "entryPoint": 4804, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_string": { + "entryPoint": 4896, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 5198, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_string_memory_ptrt_string_memory_ptrt_string_memory_ptrt_uint256": { + "entryPoint": 5037, + "id": null, + "parameterSlots": 2, + "returnSlots": 5 + }, + "abi_decode_tuple_t_addresst_string_memory_ptrt_uint256": { + "entryPoint": 5446, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 4832, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 5811, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 4642, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_string": { + "entryPoint": 4667, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_string_memory_ptr_t_uint256_t_uint256_t_bool__to_t_address_t_string_memory_ptr_t_uint256_t_uint256_t_bool__fromStack_reversed": { + "entryPoint": 4737, + "id": null, + "parameterSlots": 6, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_contract$_ServiceRegistry_$844__to_t_address__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 5792, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6141, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256_t_uint256__to_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 5533, + "id": null, + "parameterSlots": 7, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_333080ba9ab8738c4a0b47b5b79d2c142d573a23f488baafda66363f88786955__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_3c17f52d7f382f39131bc893c7e27e69aa71bee31c68e2de3649b59b8bfebc2b__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_ab4f7bdcd44e35f2fe5cd34e07194c1c227455329229f7f3f1e8494de9e5c74c__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_add139ef5e0ce81551c750d068d2eb9f9e6c61a45817f3add2fc789b89b93829__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c137d625e69877210f78bfe5d3113cccc58db43b2ac3bb8f673d723a397aae3e__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_AgentData_$200_memory_ptr__to_t_struct$_AgentData_$200_memory_ptr__fromStack_reversed": { + "entryPoint": 5232, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_ServiceProposal_$1403_memory_ptr__to_t_struct$_ServiceProposal_$1403_memory_ptr__fromStack_reversed": { + "entryPoint": 5356, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_string_memory_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_uint256__fromStack_reversed": { + "entryPoint": 6187, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "array_dataslot_string_storage": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 5697, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_div_t_uint256": { + "entryPoint": 5758, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 5735, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 5716, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_string_storage": { + "entryPoint": 5845, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 5924, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 5617, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "increment_t_uint256": { + "entryPoint": 6116, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 5675, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 4874, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:14400:9", + "statements": [ + { + "nodeType": "YulBlock", + "src": "6:3:9", + "statements": [] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "84:110:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "130:16:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "139:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "142:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "132:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "132:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "132:12:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "105:7:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "114:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "101:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "101:23:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "126:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "97:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "97:32:9" + }, + "nodeType": "YulIf", + "src": "94:52:9" + }, + { + "nodeType": "YulAssignment", + "src": "155:33:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "178:9:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "165:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "165:23:9" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "155:6:9" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "50:9:9", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "61:7:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "73:6:9", + "type": "" + } + ], + "src": "14:180:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "249:373:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "259:26:9", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "279:5:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "273:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "273:12:9" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "263:6:9", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "301:3:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "306:6:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "294:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "294:19:9" + }, + "nodeType": "YulExpressionStatement", + "src": "294:19:9" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "322:10:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "331:1:9", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "326:1:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "393:110:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "407:14:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "417:4:9", + "type": "", + "value": "0x20" + }, + "variables": [ + { + "name": "_1", + "nodeType": "YulTypedName", + "src": "411:2:9", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "449:3:9" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "454:1:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "445:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "445:11:9" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "458:2:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "441:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "441:20:9" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "477:5:9" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "484:1:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "473:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "473:13:9" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "488:2:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "469:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "469:22:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "463:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "463:29:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "434:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "434:59:9" + }, + "nodeType": "YulExpressionStatement", + "src": "434:59:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "352:1:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "355:6:9" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "349:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "349:13:9" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "363:21:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "365:17:9", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "374:1:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "377:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "370:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "370:12:9" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "365:1:9" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "345:3:9", + "statements": [] + }, + "src": "341:162:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "527:3:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "532:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "523:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "523:16:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "541:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "519:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "519:27:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "548:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "512:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "512:38:9" + }, + "nodeType": "YulExpressionStatement", + "src": "512:38:9" + }, + { + "nodeType": "YulAssignment", + "src": "559:57:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "574:3:9" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "587:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "595:2:9", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "583:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "583:15:9" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "604:2:9", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "600:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "600:7:9" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "579:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "579:29:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "570:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "570:39:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "611:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "566:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "566:50:9" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "559:3:9" + } + ] + } + ] + }, + "name": "abi_encode_string", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "226:5:9", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "233:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "241:3:9", + "type": "" + } + ], + "src": "199:423:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "854:316:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "871:9:9" + }, + { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "886:6:9" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:3:9", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "907:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "898:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "898:11:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "911:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "894:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "894:19:9" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "882:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "882:32:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "864:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "864:51:9" + }, + "nodeType": "YulExpressionStatement", + "src": "864:51:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "935:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "946:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "931:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "931:18:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "951:3:9", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "924:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "924:31:9" + }, + "nodeType": "YulExpressionStatement", + "src": "924:31:9" + }, + { + "nodeType": "YulAssignment", + "src": "964:54:9", + "value": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "990:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1002:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1013:3:9", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "998:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "998:19:9" + } + ], + "functionName": { + "name": "abi_encode_string", + "nodeType": "YulIdentifier", + "src": "972:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "972:46:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "964:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1038:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1049:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1034:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "1034:18:9" + }, + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "1054:6:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1027:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "1027:34:9" + }, + "nodeType": "YulExpressionStatement", + "src": "1027:34:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1081:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1092:2:9", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1077:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "1077:18:9" + }, + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "1097:6:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1070:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "1070:34:9" + }, + "nodeType": "YulExpressionStatement", + "src": "1070:34:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1124:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1135:3:9", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1120:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "1120:19:9" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "1155:6:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1148:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "1148:14:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1141:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "1141:22:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1113:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "1113:51:9" + }, + "nodeType": "YulExpressionStatement", + "src": "1113:51:9" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_string_memory_ptr_t_uint256_t_uint256_t_bool__to_t_address_t_string_memory_ptr_t_uint256_t_uint256_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "791:9:9", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "802:6:9", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "810:6:9", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "818:6:9", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "826:6:9", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "834:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "845:4:9", + "type": "" + } + ], + "src": "627:543:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1276:76:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1286:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1298:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1309:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1294:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "1294:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1286:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1328:9:9" + }, + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1339:6:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1321:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "1321:25:9" + }, + "nodeType": "YulExpressionStatement", + "src": "1321:25:9" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1245:9:9", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1256:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1267:4:9", + "type": "" + } + ], + "src": "1175:177:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1406:124:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1416:29:9", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1438:6:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1425:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "1425:20:9" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1416:5:9" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1508:16:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1517:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1520:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1510:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "1510:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "1510:12:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1467:5:9" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1478:5:9" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1493:3:9", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1498:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1489:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "1489:11:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1502:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1485:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "1485:19:9" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1474:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "1474:31:9" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1464:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "1464:42:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1457:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "1457:50:9" + }, + "nodeType": "YulIf", + "src": "1454:70:9" + } + ] + }, + "name": "abi_decode_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1385:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1396:5:9", + "type": "" + } + ], + "src": "1357:173:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1622:167:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1668:16:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1677:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1680:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1670:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "1670:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "1670:12:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1643:7:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1652:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1639:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "1639:23:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1664:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1635:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "1635:32:9" + }, + "nodeType": "YulIf", + "src": "1632:52:9" + }, + { + "nodeType": "YulAssignment", + "src": "1693:39:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1722:9:9" + } + ], + "functionName": { + "name": "abi_decode_address", + "nodeType": "YulIdentifier", + "src": "1703:18:9" + }, + "nodeType": "YulFunctionCall", + "src": "1703:29:9" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1693:6:9" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1741:42:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1768:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1779:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1764:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "1764:18:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1751:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "1751:32:9" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1741:6:9" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1580:9:9", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1591:7:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1603:6:9", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1611:6:9", + "type": "" + } + ], + "src": "1535:254:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1889:92:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1899:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1911:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1922:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1907:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "1907:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1899:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1941:9:9" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1966:6:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1959:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "1959:14:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1952:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "1952:22:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1934:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "1934:41:9" + }, + "nodeType": "YulExpressionStatement", + "src": "1934:41:9" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1858:9:9", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1869:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1880:4:9", + "type": "" + } + ], + "src": "1794:187:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2087:102:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2097:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2109:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2120:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2105:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2105:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2097:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2139:9:9" + }, + { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2154:6:9" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2170:3:9", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2175:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "2166:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2166:11:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2179:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2162:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2162:19:9" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2150:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2150:32:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2132:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "2132:51:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2132:51:9" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2056:9:9", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2067:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "2078:4:9", + "type": "" + } + ], + "src": "1986:203:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2226:95:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2243:1:9", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2250:3:9", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2255:10:9", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "2246:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2246:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2236:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "2236:31:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2236:31:9" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2283:1:9", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2286:4:9", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2276:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "2276:15:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2276:15:9" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2307:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2310:4:9", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2300:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "2300:15:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2300:15:9" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "2194:127:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2379:666:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2428:16:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2437:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2440:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2430:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "2430:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2430:12:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2407:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2415:4:9", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2403:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2403:17:9" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2422:3:9" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2399:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2399:27:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2392:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "2392:35:9" + }, + "nodeType": "YulIf", + "src": "2389:55:9" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2453:30:9", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2476:6:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2463:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "2463:20:9" + }, + "variables": [ + { + "name": "_1", + "nodeType": "YulTypedName", + "src": "2457:2:9", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2492:28:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2502:18:9", + "type": "", + "value": "0xffffffffffffffff" + }, + "variables": [ + { + "name": "_2", + "nodeType": "YulTypedName", + "src": "2496:2:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2543:22:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "2545:16:9" + }, + "nodeType": "YulFunctionCall", + "src": "2545:18:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2545:18:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "2535:2:9" + }, + { + "name": "_2", + "nodeType": "YulIdentifier", + "src": "2539:2:9" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2532:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "2532:10:9" + }, + "nodeType": "YulIf", + "src": "2529:36:9" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2574:17:9", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2588:2:9", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "2584:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2584:7:9" + }, + "variables": [ + { + "name": "_3", + "nodeType": "YulTypedName", + "src": "2578:2:9", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2600:23:9", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2620:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2614:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "2614:9:9" + }, + "variables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "2604:6:9", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2632:71:9", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "2654:6:9" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "2678:2:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2682:4:9", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2674:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2674:13:9" + }, + { + "name": "_3", + "nodeType": "YulIdentifier", + "src": "2689:2:9" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2670:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2670:22:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2694:2:9", + "type": "", + "value": "63" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2666:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2666:31:9" + }, + { + "name": "_3", + "nodeType": "YulIdentifier", + "src": "2699:2:9" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2662:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2662:40:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2650:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2650:53:9" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "2636:10:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2762:22:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "2764:16:9" + }, + "nodeType": "YulFunctionCall", + "src": "2764:18:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2764:18:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "2721:10:9" + }, + { + "name": "_2", + "nodeType": "YulIdentifier", + "src": "2733:2:9" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2718:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "2718:18:9" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "2741:10:9" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "2753:6:9" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2738:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "2738:22:9" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "2715:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "2715:46:9" + }, + "nodeType": "YulIf", + "src": "2712:72:9" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2800:2:9", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "2804:10:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2793:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "2793:22:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2793:22:9" + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "2831:6:9" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "2839:2:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2824:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "2824:18:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2824:18:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2890:16:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2899:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2902:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2892:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "2892:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2892:12:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2865:6:9" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "2873:2:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2861:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2861:15:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2878:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2857:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2857:26:9" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2885:3:9" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2854:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "2854:35:9" + }, + "nodeType": "YulIf", + "src": "2851:55:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "2932:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2940:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2928:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2928:17:9" + }, + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2951:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2959:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2947:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2947:17:9" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "2966:2:9" + } + ], + "functionName": { + "name": "calldatacopy", + "nodeType": "YulIdentifier", + "src": "2915:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "2915:54:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2915:54:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "2993:6:9" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "3001:2:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2989:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2989:15:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3006:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2985:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2985:26:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3013:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2978:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "2978:37:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2978:37:9" + }, + { + "nodeType": "YulAssignment", + "src": "3024:15:9", + "value": { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "3033:6:9" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "3024:5:9" + } + ] + } + ] + }, + "name": "abi_decode_string", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2353:6:9", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2361:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2369:5:9", + "type": "" + } + ], + "src": "2326:719:9" }, { "body": { "nodeType": "YulBlock", - "src": "118:209:7", + "src": "3218:719:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "164:16:7", + "src": "3265:16:9", "statements": [ { "expression": { @@ -15841,14 +24809,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "173:1:7", + "src": "3274:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "176:1:7", + "src": "3277:1:9", "type": "", "value": "0" } @@ -15856,13 +24824,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "166:6:7" + "src": "3267:6:9" }, "nodeType": "YulFunctionCall", - "src": "166:12:7" + "src": "3267:12:9" }, "nodeType": "YulExpressionStatement", - "src": "166:12:7" + "src": "3267:12:9" } ] }, @@ -15871,67 +24839,131 @@ { "arguments": [ { - "name": "dataEnd", + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3239:7:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3248:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3235:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3235:23:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3260:3:9", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3231:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3231:33:9" + }, + "nodeType": "YulIf", + "src": "3228:53:9" + }, + { + "nodeType": "YulAssignment", + "src": "3290:39:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3319:9:9" + } + ], + "functionName": { + "name": "abi_decode_address", + "nodeType": "YulIdentifier", + "src": "3300:18:9" + }, + "nodeType": "YulFunctionCall", + "src": "3300:29:9" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3290:6:9" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3338:46:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", "nodeType": "YulIdentifier", - "src": "139:7:7" + "src": "3369:9:9" }, { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "148:9:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "3380:2:9", + "type": "", + "value": "32" } ], "functionName": { - "name": "sub", + "name": "add", "nodeType": "YulIdentifier", - "src": "135:3:7" + "src": "3365:3:9" }, "nodeType": "YulFunctionCall", - "src": "135:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "160:2:7", - "type": "", - "value": "32" + "src": "3365:18:9" } ], "functionName": { - "name": "slt", + "name": "calldataload", "nodeType": "YulIdentifier", - "src": "131:3:7" + "src": "3352:12:9" }, "nodeType": "YulFunctionCall", - "src": "131:32:7" + "src": "3352:32:9" }, - "nodeType": "YulIf", - "src": "128:52:7" + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3342:6:9", + "type": "" + } + ] }, { "nodeType": "YulVariableDeclaration", - "src": "189:29:7", + "src": "3393:28:9", "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "208:9:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "202:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "202:16:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "3403:18:9", + "type": "", + "value": "0xffffffffffffffff" }, "variables": [ { - "name": "value", + "name": "_1", "nodeType": "YulTypedName", - "src": "193:5:7", + "src": "3397:2:9", "type": "" } ] @@ -15939,7 +24971,7 @@ { "body": { "nodeType": "YulBlock", - "src": "281:16:7", + "src": "3448:16:9", "statements": [ { "expression": { @@ -15947,14 +24979,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "290:1:7", + "src": "3457:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "293:1:7", + "src": "3460:1:9", "type": "", "value": "0" } @@ -15962,607 +24994,138 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "283:6:7" + "src": "3450:6:9" }, "nodeType": "YulFunctionCall", - "src": "283:12:7" + "src": "3450:12:9" }, "nodeType": "YulExpressionStatement", - "src": "283:12:7" + "src": "3450:12:9" } ] }, "condition": { "arguments": [ { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "240:5:7" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "251:5:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "266:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "271:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "262:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "262:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "275:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "258:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "258:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "247:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "247:31:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "237:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "237:42:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "230:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "230:50:7" - }, - "nodeType": "YulIf", - "src": "227:70:7" - }, - { - "nodeType": "YulAssignment", - "src": "306:15:7", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "316:5:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "306:6:7" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_contract$_ServiceRegistry_$682_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "84:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "95:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "107:6:7", - "type": "" - } - ], - "src": "14:313:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "433:102:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "443:26:7", - "value": { - "arguments": [ - { - "name": "headStart", + "name": "offset", "nodeType": "YulIdentifier", - "src": "455:9:7" + "src": "3436:6:9" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "466:2:7", - "type": "", - "value": "32" + "name": "_1", + "nodeType": "YulIdentifier", + "src": "3444:2:9" } ], "functionName": { - "name": "add", + "name": "gt", "nodeType": "YulIdentifier", - "src": "451:3:7" + "src": "3433:2:9" }, "nodeType": "YulFunctionCall", - "src": "451:18:7" + "src": "3433:14:9" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "443:4:7" - } - ] + "nodeType": "YulIf", + "src": "3430:34:9" }, { - "expression": { + "nodeType": "YulAssignment", + "src": "3473:60:9", + "value": { "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "485:9:7" - }, { "arguments": [ { - "name": "value0", + "name": "headStart", "nodeType": "YulIdentifier", - "src": "500:6:7" + "src": "3505:9:9" }, { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "516:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "521:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "512:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "512:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "525:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "508:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "508:19:7" + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3516:6:9" } ], "functionName": { - "name": "and", + "name": "add", "nodeType": "YulIdentifier", - "src": "496:3:7" + "src": "3501:3:9" }, "nodeType": "YulFunctionCall", - "src": "496:32:7" + "src": "3501:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3525:7:9" } ], "functionName": { - "name": "mstore", + "name": "abi_decode_string", "nodeType": "YulIdentifier", - "src": "478:6:7" + "src": "3483:17:9" }, "nodeType": "YulFunctionCall", - "src": "478:51:7" + "src": "3483:50:9" }, - "nodeType": "YulExpressionStatement", - "src": "478:51:7" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "402:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "413:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "424:4:7", - "type": "" - } - ], - "src": "332:203:7" - } - ] - }, - "contents": "{\n { }\n function abi_decode_tuple_t_contract$_ServiceRegistry_$682_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n}", - "id": 7, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b5060405161132238038061132283398101604081905261002f916100d4565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e81610084565b50600180546001600160a01b0319166001600160a01b0392909216919091179055610104565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100e657600080fd5b81516001600160a01b03811681146100fd57600080fd5b9392505050565b61120f806101136000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063aac9f15a1161008c578063cbcf252a11610066578063cbcf252a146101ef578063f2fde38b14610202578063f5c91a0814610215578063fd66091e1461022857600080fd5b8063aac9f15a1461017c578063c3c5a547146101a0578063c7f758a8146101cf57600080fd5b8063013cf08b146100d45780632ab09d1414610100578063715018a6146101175780638da5cb5b1461012157806398366dbd146101465780639c89a0e214610169575b600080fd5b6100e76100e2366004610c9d565b61024d565b6040516100f79493929190610cfc565b60405180910390f35b61010960045481565b6040519081526020016100f7565b61011f61031b565b005b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100f7565b610159610154366004610df2565b61032f565b60405190151581526020016100f7565b610109610177366004610e93565b6106a5565b61018f61018a366004610e93565b61072e565b6040516100f7959493929190610eb5565b6101596101ae366004610e93565b6001600160a01b031660009081526002602052604090206005015460ff1690565b6101e26101dd366004610c9d565b61089f565b6040516100f79190610eff565b60015461012e906001600160a01b031681565b61011f610210366004610e93565b6109c3565b61011f610223366004610f4d565b610a01565b61023b610236366004610e93565b610aca565b6040516100f796959493929190610f77565b6003818154811061025d57600080fd5b6000918252602090912060049091020180546001820180546001600160a01b0390921693509061028c90610fcd565b80601f01602080910402602001604051908101604052809291908181526020018280546102b890610fcd565b80156103055780601f106102da57610100808354040283529160200191610305565b820191906000526020600020905b8154815290600101906020018083116102e857829003601f168201915b5050505050908060020154908060030154905084565b610323610c20565b61032d6000610c4d565b565b6001600160a01b03851660009081526002602052604081206005015460ff16156103a05760405162461bcd60e51b815260206004820152601860248201527f4167656e7420616c72656164792072656769737465726564000000000000000060448201526064015b60405180910390fd5b60015460405163b405166b60e01b81526001600160a01b039091169063b405166b906103d0908690600401611001565b602060405180830381865afa1580156103ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104119190611014565b6104565760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b6044820152606401610397565b6001600160a01b0386166000908152600260205260409020806104798782611085565b50600181016104888682611085565b506002810180546001600160a01b031990811633179091556003820180546001600160a01b038a811691841682179092556000600480860182905560058601805460ff191660019081179091556040805160808101825294855260208086018c81529186018b9052835460608701526006890180548085018255908652942085519490930290920180549390951692909516919091178355519092839291908201906105349082611085565b5060408201516002820155606090910151600391820155805460018101825560009190915281517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b600490920291820180546001600160a01b0319166001600160a01b03909216919091178155602083015183927fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c01906105d59082611085565b5060408201516002820155606090910151600390910155600480549060006105fc83611145565b9190505550336001600160a01b0316886001600160a01b03167f2a562efb52e7cec209321f57200606311256da6d2a1b19d44db7837a3209de28898960405161064692919061116c565b60405180910390a3876001600160a01b03167fe194e0bc2279adb185c748ae57db10fe2ef1005a1b5646f96235a881c88ddb798260600151878760405161068f9392919061119a565b60405180910390a2506001979650505050505050565b6001600160a01b038116600090815260026020526040812060050154829060ff166107095760405162461bcd60e51b81526020600482015260146024820152731059d95b9d081b9bdd081c9959da5cdd195c995960621b6044820152606401610397565b6001600160a01b03831660009081526002602052604090206004015491505b50919050565b6001600160a01b038082166000908152600260208190526040822090810154600382015460048301548354606096879695869586959194859460018601949283169390921691859061077f90610fcd565b80601f01602080910402602001604051908101604052809291908181526020018280546107ab90610fcd565b80156107f85780601f106107cd576101008083540402835291602001916107f8565b820191906000526020600020905b8154815290600101906020018083116107db57829003601f168201915b5050505050945083805461080b90610fcd565b80601f016020809104026020016040519081016040528092919081815260200182805461083790610fcd565b80156108845780601f1061085957610100808354040283529160200191610884565b820191906000526020600020905b81548152906001019060200180831161086757829003601f168201915b50505050509350955095509550955095505091939590929450565b6108d3604051806080016040528060006001600160a01b031681526020016060815260200160008152602001600081525090565b600382815481106108e6576108e66111c3565b6000918252602091829020604080516080810190915260049092020180546001600160a01b03168252600181018054929391929184019161092690610fcd565b80601f016020809104026020016040519081016040528092919081815260200182805461095290610fcd565b801561099f5780601f106109745761010080835404028352916020019161099f565b820191906000526020600020905b81548152906001019060200180831161098257829003601f168201915b50505050508152602001600282015481526020016003820154815250509050919050565b6109cb610c20565b6001600160a01b0381166109f557604051631e4fbdf760e01b815260006004820152602401610397565b6109fe81610c4d565b50565b610a09610c20565b6001600160a01b038216600090815260026020526040902060050154829060ff16610a6d5760405162461bcd60e51b81526020600482015260146024820152731059d95b9d081b9bdd081c9959da5cdd195c995960621b6044820152606401610397565b6001600160a01b03831660008181526002602052604090819020600401849055517ffc577563f1b9a0461e24abef1e1fcc0d33d3d881f20b5df6dda59de4aae2c82190610abd9085815260200190565b60405180910390a2505050565b600260205260009081526040902080548190610ae590610fcd565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1190610fcd565b8015610b5e5780601f10610b3357610100808354040283529160200191610b5e565b820191906000526020600020905b815481529060010190602001808311610b4157829003601f168201915b505050505090806001018054610b7390610fcd565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9f90610fcd565b8015610bec5780601f10610bc157610100808354040283529160200191610bec565b820191906000526020600020905b815481529060010190602001808311610bcf57829003601f168201915b5050505060028301546003840154600485015460059095015493946001600160a01b03928316949290911692509060ff1686565b6000546001600160a01b0316331461032d5760405163118cdaa760e01b8152336004820152602401610397565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610caf57600080fd5b5035919050565b6000815180845260005b81811015610cdc57602081850181015186830182015201610cc0565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0385168152608060208201819052600090610d2090830186610cb6565b6040830194909452506060015292915050565b80356001600160a01b0381168114610d4a57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610d7657600080fd5b813567ffffffffffffffff80821115610d9157610d91610d4f565b604051601f8301601f19908116603f01168101908282118183101715610db957610db9610d4f565b81604052838152866020858801011115610dd257600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a08688031215610e0a57600080fd5b610e1386610d33565b9450602086013567ffffffffffffffff80821115610e3057600080fd5b610e3c89838a01610d65565b95506040880135915080821115610e5257600080fd5b610e5e89838a01610d65565b94506060880135915080821115610e7457600080fd5b50610e8188828901610d65565b95989497509295608001359392505050565b600060208284031215610ea557600080fd5b610eae82610d33565b9392505050565b60a081526000610ec860a0830188610cb6565b8281036020840152610eda8188610cb6565b6001600160a01b03968716604085015294909516606083015250608001529392505050565b602080825282516001600160a01b03168282015282015160806040830152600090610f2d60a0840182610cb6565b905060408401516060840152606084015160808401528091505092915050565b60008060408385031215610f6057600080fd5b610f6983610d33565b946020939093013593505050565b60c081526000610f8a60c0830189610cb6565b8281036020840152610f9c8189610cb6565b6001600160a01b039788166040850152959096166060830152506080810192909252151560a0909101529392505050565b600181811c90821680610fe157607f821691505b60208210810361072857634e487b7160e01b600052602260045260246000fd5b602081526000610eae6020830184610cb6565b60006020828403121561102657600080fd5b81518015158114610eae57600080fd5b601f82111561108057600081815260208120601f850160051c8101602086101561105d5750805b601f850160051c820191505b8181101561107c57828155600101611069565b5050505b505050565b815167ffffffffffffffff81111561109f5761109f610d4f565b6110b3816110ad8454610fcd565b84611036565b602080601f8311600181146110e857600084156110d05750858301515b600019600386901b1c1916600185901b17855561107c565b600085815260208120601f198616915b82811015611117578886015182559484019460019091019084016110f8565b50858210156111355787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006001820161116557634e487b7160e01b600052601160045260246000fd5b5060010190565b60408152600061117f6040830185610cb6565b82810360208401526111918185610cb6565b95945050505050565b8381526060602082015260006111b36060830185610cb6565b9050826040830152949350505050565b634e487b7160e01b600052603260045260246000fdfea26469706673582212202fe5e950305276469a5e1b110d11d1a15beca558b7c205b065d06b11c61cfe7964736f6c63430008140033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1322 CODESIZE SUB DUP1 PUSH2 0x1322 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0xD4 JUMP JUMPDEST CALLER DUP1 PUSH2 0x55 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5E DUP2 PUSH2 0x84 JUMP JUMPDEST POP PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x104 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x120F DUP1 PUSH2 0x113 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xAAC9F15A GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xCBCF252A GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xCBCF252A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0xF5C91A08 EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0xFD66091E EQ PUSH2 0x228 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xAAC9F15A EQ PUSH2 0x17C JUMPI DUP1 PUSH4 0xC3C5A547 EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0xC7F758A8 EQ PUSH2 0x1CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x2AB09D14 EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x121 JUMPI DUP1 PUSH4 0x98366DBD EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x9C89A0E2 EQ PUSH2 0x169 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE7 PUSH2 0xE2 CALLDATASIZE PUSH1 0x4 PUSH2 0xC9D JUMP JUMPDEST PUSH2 0x24D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xCFC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x109 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF7 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x31B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF7 JUMP JUMPDEST PUSH2 0x159 PUSH2 0x154 CALLDATASIZE PUSH1 0x4 PUSH2 0xDF2 JUMP JUMPDEST PUSH2 0x32F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF7 JUMP JUMPDEST PUSH2 0x109 PUSH2 0x177 CALLDATASIZE PUSH1 0x4 PUSH2 0xE93 JUMP JUMPDEST PUSH2 0x6A5 JUMP JUMPDEST PUSH2 0x18F PUSH2 0x18A CALLDATASIZE PUSH1 0x4 PUSH2 0xE93 JUMP JUMPDEST PUSH2 0x72E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xEB5 JUMP JUMPDEST PUSH2 0x159 PUSH2 0x1AE CALLDATASIZE PUSH1 0x4 PUSH2 0xE93 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x5 ADD SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x1E2 PUSH2 0x1DD CALLDATASIZE PUSH1 0x4 PUSH2 0xC9D JUMP JUMPDEST PUSH2 0x89F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP2 SWAP1 PUSH2 0xEFF JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x12E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x210 CALLDATASIZE PUSH1 0x4 PUSH2 0xE93 JUMP JUMPDEST PUSH2 0x9C3 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x223 CALLDATASIZE PUSH1 0x4 PUSH2 0xF4D JUMP JUMPDEST PUSH2 0xA01 JUMP JUMPDEST PUSH2 0x23B PUSH2 0x236 CALLDATASIZE PUSH1 0x4 PUSH2 0xE93 JUMP JUMPDEST PUSH2 0xACA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF77 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x25D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x4 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP4 POP SWAP1 PUSH2 0x28C SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2B8 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x305 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2DA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x305 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2E8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 POP DUP5 JUMP JUMPDEST PUSH2 0x323 PUSH2 0xC20 JUMP JUMPDEST PUSH2 0x32D PUSH1 0x0 PUSH2 0xC4D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x5 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x3A0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4167656E7420616C726561647920726567697374657265640000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0x3D0 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1001 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3ED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x411 SWAP2 SWAP1 PUSH2 0x1014 JUMP JUMPDEST PUSH2 0x456 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x14D95C9D9A58D9481B9BDD081C9959DA5CDD195C9959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x397 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 PUSH2 0x479 DUP8 DUP3 PUSH2 0x1085 JUMP JUMPDEST POP PUSH1 0x1 DUP2 ADD PUSH2 0x488 DUP7 DUP3 PUSH2 0x1085 JUMP JUMPDEST POP PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP2 DUP5 AND DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 PUSH1 0x4 DUP1 DUP7 ADD DUP3 SWAP1 SSTORE PUSH1 0x5 DUP7 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE SWAP5 DUP6 MSTORE PUSH1 0x20 DUP1 DUP7 ADD DUP13 DUP2 MSTORE SWAP2 DUP7 ADD DUP12 SWAP1 MSTORE DUP4 SLOAD PUSH1 0x60 DUP8 ADD MSTORE PUSH1 0x6 DUP10 ADD DUP1 SLOAD DUP1 DUP6 ADD DUP3 SSTORE SWAP1 DUP7 MSTORE SWAP5 KECCAK256 DUP6 MLOAD SWAP5 SWAP1 SWAP4 MUL SWAP1 SWAP3 ADD DUP1 SLOAD SWAP4 SWAP1 SWAP6 AND SWAP3 SWAP1 SWAP6 AND SWAP2 SWAP1 SWAP2 OR DUP4 SSTORE MLOAD SWAP1 SWAP3 DUP4 SWAP3 SWAP2 SWAP1 DUP3 ADD SWAP1 PUSH2 0x534 SWAP1 DUP3 PUSH2 0x1085 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SSTORE PUSH1 0x60 SWAP1 SWAP2 ADD MLOAD PUSH1 0x3 SWAP2 DUP3 ADD SSTORE DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B PUSH1 0x4 SWAP1 SWAP3 MUL SWAP2 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x20 DUP4 ADD MLOAD DUP4 SWAP3 PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85C ADD SWAP1 PUSH2 0x5D5 SWAP1 DUP3 PUSH2 0x1085 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SSTORE PUSH1 0x60 SWAP1 SWAP2 ADD MLOAD PUSH1 0x3 SWAP1 SWAP2 ADD SSTORE PUSH1 0x4 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x5FC DUP4 PUSH2 0x1145 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x2A562EFB52E7CEC209321F57200606311256DA6D2A1B19D44DB7837A3209DE28 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH2 0x646 SWAP3 SWAP2 SWAP1 PUSH2 0x116C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xE194E0BC2279ADB185C748AE57DB10FE2EF1005A1B5646F96235A881C88DDB79 DUP3 PUSH1 0x60 ADD MLOAD DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x68F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x119A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP PUSH1 0x1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x5 ADD SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH2 0x709 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x1059D95B9D081B9BDD081C9959DA5CDD195C9959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x397 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD SWAP2 POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SWAP1 DUP2 ADD SLOAD PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x4 DUP4 ADD SLOAD DUP4 SLOAD PUSH1 0x60 SWAP7 DUP8 SWAP7 SWAP6 DUP7 SWAP6 DUP7 SWAP6 SWAP2 SWAP5 DUP6 SWAP5 PUSH1 0x1 DUP7 ADD SWAP5 SWAP3 DUP4 AND SWAP4 SWAP1 SWAP3 AND SWAP2 DUP6 SWAP1 PUSH2 0x77F SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x7AB SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7F8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x7CD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x7F8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x7DB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP5 POP DUP4 DUP1 SLOAD PUSH2 0x80B SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x837 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x884 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x859 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x884 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x867 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP4 POP SWAP6 POP SWAP6 POP SWAP6 POP SWAP6 POP SWAP6 POP POP SWAP2 SWAP4 SWAP6 SWAP1 SWAP3 SWAP5 POP JUMP JUMPDEST PUSH2 0x8D3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x8E6 JUMPI PUSH2 0x8E6 PUSH2 0x11C3 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x4 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE PUSH1 0x1 DUP2 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x926 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x952 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x99F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x974 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x99F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x982 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9CB PUSH2 0xC20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x9F5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x397 JUMP JUMPDEST PUSH2 0x9FE DUP2 PUSH2 0xC4D JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xA09 PUSH2 0xC20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x5 ADD SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH2 0xA6D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x1059D95B9D081B9BDD081C9959DA5CDD195C9959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x397 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 PUSH1 0x4 ADD DUP5 SWAP1 SSTORE MLOAD PUSH32 0xFC577563F1B9A0461E24ABEF1E1FCC0D33D3D881F20B5DF6DDA59DE4AAE2C821 SWAP1 PUSH2 0xABD SWAP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP2 SWAP1 PUSH2 0xAE5 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xB11 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB5E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB33 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB5E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB41 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0xB73 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xB9F SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0xBEC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBC1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xBEC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xBCF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 DUP6 ADD SLOAD PUSH1 0x5 SWAP1 SWAP6 ADD SLOAD SWAP4 SWAP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP5 SWAP3 SWAP1 SWAP2 AND SWAP3 POP SWAP1 PUSH1 0xFF AND DUP7 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x32D JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x397 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xCDC JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0xCC0 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xD20 SWAP1 DUP4 ADD DUP7 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x60 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xD76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xD91 JUMPI PUSH2 0xD91 PUSH2 0xD4F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xDB9 JUMPI PUSH2 0xDB9 PUSH2 0xD4F JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0xDD2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xE0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE13 DUP7 PUSH2 0xD33 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xE30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE3C DUP10 DUP4 DUP11 ADD PUSH2 0xD65 JUMP JUMPDEST SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xE52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE5E DUP10 DUP4 DUP11 ADD PUSH2 0xD65 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xE74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE81 DUP9 DUP3 DUP10 ADD PUSH2 0xD65 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP3 SWAP6 PUSH1 0x80 ADD CALLDATALOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEAE DUP3 PUSH2 0xD33 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP2 MSTORE PUSH1 0x0 PUSH2 0xEC8 PUSH1 0xA0 DUP4 ADD DUP9 PUSH2 0xCB6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xEDA DUP2 DUP9 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP7 DUP8 AND PUSH1 0x40 DUP6 ADD MSTORE SWAP5 SWAP1 SWAP6 AND PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 DUP3 ADD MSTORE DUP3 ADD MLOAD PUSH1 0x80 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x0 SWAP1 PUSH2 0xF2D PUSH1 0xA0 DUP5 ADD DUP3 PUSH2 0xCB6 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x80 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF69 DUP4 PUSH2 0xD33 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0xC0 DUP2 MSTORE PUSH1 0x0 PUSH2 0xF8A PUSH1 0xC0 DUP4 ADD DUP10 PUSH2 0xCB6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xF9C DUP2 DUP10 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 DUP9 AND PUSH1 0x40 DUP6 ADD MSTORE SWAP6 SWAP1 SWAP7 AND PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE ISZERO ISZERO PUSH1 0xA0 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xFE1 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x728 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xEAE PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1026 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xEAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1080 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x105D JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x107C JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1069 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x109F JUMPI PUSH2 0x109F PUSH2 0xD4F JUMP JUMPDEST PUSH2 0x10B3 DUP2 PUSH2 0x10AD DUP5 SLOAD PUSH2 0xFCD JUMP JUMPDEST DUP5 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x10E8 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x10D0 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x107C JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1117 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x10F8 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x1135 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x1165 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x117F PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0xCB6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x1191 DUP2 DUP6 PUSH2 0xCB6 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x11B3 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0xCB6 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2F 0xE5 0xE9 POP ADDRESS MSTORE PUSH23 0x469A5E1B110D11D1A15BECA558B7C205B065D06B11C61C INVALID PUSH26 0x64736F6C63430008140033000000000000000000000000000000 ", - "sourceMap": "362:3969:2:-:0;;;922:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;976:10;;1269:95:0;;1322:31;;-1:-1:-1;;;1322:31:0;;1350:1;1322:31;;;478:51:7;451:18;;1322:31:0;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;998:15:2::1;:34:::0;;-1:-1:-1;;;;;;998:34:2::1;-1:-1:-1::0;;;;;998:34:2;;;::::1;::::0;;;::::1;::::0;;362:3969;;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:313:7:-;107:6;160:2;148:9;139:7;135:23;131:32;128:52;;;176:1;173;166:12;128:52;202:16;;-1:-1:-1;;;;;247:31:7;;237:42;;227:70;;293:1;290;283:12;227:70;316:5;14:313;-1:-1:-1;;;14:313:7:o;332:203::-;362:3969:2;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@_checkOwner_84": { - "entryPoint": 3104, - "id": 84, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_msgSender_159": { - "entryPoint": null, - "id": 159, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_transferOwnership_146": { - "entryPoint": 3149, - "id": 146, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@agents_212": { - "entryPoint": 2762, - "id": 212, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@getAgentData_492": { - "entryPoint": 1838, - "id": 492, - "parameterSlots": 1, - "returnSlots": 5 - }, - "@getProposal_505": { - "entryPoint": 2207, - "id": 505, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getReputation_443": { - "entryPoint": 1701, - "id": 443, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@isRegistered_456": { - "entryPoint": null, - "id": 456, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@nextProposalId_218": { - "entryPoint": null, - "id": 218, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@owner_67": { - "entryPoint": null, - "id": 67, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@proposals_216": { - "entryPoint": 589, - "id": 216, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@registerAgent_402": { - "entryPoint": 815, - "id": 402, - "parameterSlots": 5, - "returnSlots": 1 - }, - "@renounceOwnership_98": { - "entryPoint": 795, - "id": 98, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@serviceRegistry_207": { - "entryPoint": null, - "id": 207, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@transferOwnership_126": { - "entryPoint": 2499, - "id": 126, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@updateReputation_427": { - "entryPoint": 2561, - "id": 427, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_decode_address": { - "entryPoint": 3379, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_decode_string": { - "entryPoint": 3429, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_address": { - "entryPoint": 3731, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_addresst_string_memory_ptrt_string_memory_ptrt_string_memory_ptrt_uint256": { - "entryPoint": 3570, - "id": null, - "parameterSlots": 2, - "returnSlots": 5 - }, - "abi_decode_tuple_t_addresst_uint256": { - "entryPoint": 3917, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_bool_fromMemory": { - "entryPoint": 4116, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint256": { - "entryPoint": 3229, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_string": { - "entryPoint": 3254, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_string_memory_ptr_t_uint256_t_uint256__to_t_address_t_string_memory_ptr_t_uint256_t_uint256__fromStack_reversed": { - "entryPoint": 3324, - "id": null, - "parameterSlots": 5, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_contract$_ServiceRegistry_$682__to_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 4097, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 4460, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256__to_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256__fromStack_reversed": { - "entryPoint": 3765, - "id": null, - "parameterSlots": 6, - "returnSlots": 1 - }, - "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256_t_bool__to_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256_t_bool__fromStack_reversed": { - "entryPoint": 3959, - "id": null, - "parameterSlots": 7, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_3c17f52d7f382f39131bc893c7e27e69aa71bee31c68e2de3649b59b8bfebc2b__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_6b24a63f053c9f60b33a6142346432678adff778fb93a8ecec9013d5a898e395__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_struct$_Proposal_$1039_memory_ptr__to_t_struct$_Proposal_$1039_memory_ptr__fromStack_reversed": { - "entryPoint": 3839, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_string_memory_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_uint256__fromStack_reversed": { - "entryPoint": 4506, - "id": null, - "parameterSlots": 4, - "returnSlots": 1 - }, - "array_dataslot_string_storage": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "clean_up_bytearray_end_slots_string_storage": { - "entryPoint": 4150, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { - "entryPoint": 4229, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "extract_byte_array_length": { - "entryPoint": 4045, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "extract_used_part_and_set_length_of_short_byte_array": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "increment_t_uint256": { - "entryPoint": 4421, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "panic_error_0x32": { - "entryPoint": 4547, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x41": { - "entryPoint": 3407, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nodeType": "YulBlock", - "src": "0:11535:7", - "statements": [ - { - "nodeType": "YulBlock", - "src": "6:3:7", - "statements": [] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "84:110:7", - "statements": [ + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3473:6:9" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3542:48:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3575:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3586:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3571:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3571:18:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3558:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "3558:32:9" + }, + "variables": [ + { + "name": "offset_1", + "nodeType": "YulTypedName", + "src": "3546:8:9", + "type": "" + } + ] + }, { "body": { "nodeType": "YulBlock", - "src": "130:16:7", + "src": "3619:16:9", "statements": [ { "expression": { @@ -16570,14 +25133,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "139:1:7", + "src": "3628:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "142:1:7", + "src": "3631:1:9", "type": "", "value": "0" } @@ -16585,186 +25148,130 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "132:6:7" + "src": "3621:6:9" }, "nodeType": "YulFunctionCall", - "src": "132:12:7" + "src": "3621:12:9" }, "nodeType": "YulExpressionStatement", - "src": "132:12:7" + "src": "3621:12:9" } ] }, "condition": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "105:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "114:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "101:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "101:23:7" + "name": "offset_1", + "nodeType": "YulIdentifier", + "src": "3605:8:9" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "126:2:7", - "type": "", - "value": "32" + "name": "_1", + "nodeType": "YulIdentifier", + "src": "3615:2:9" } ], "functionName": { - "name": "slt", + "name": "gt", "nodeType": "YulIdentifier", - "src": "97:3:7" + "src": "3602:2:9" }, "nodeType": "YulFunctionCall", - "src": "97:32:7" + "src": "3602:16:9" }, "nodeType": "YulIf", - "src": "94:52:7" + "src": "3599:36:9" }, { "nodeType": "YulAssignment", - "src": "155:33:7", + "src": "3644:62:9", "value": { "arguments": [ { - "name": "headStart", + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3676:9:9" + }, + { + "name": "offset_1", + "nodeType": "YulIdentifier", + "src": "3687:8:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3672:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3672:24:9" + }, + { + "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "178:9:7" + "src": "3698:7:9" } ], "functionName": { - "name": "calldataload", + "name": "abi_decode_string", "nodeType": "YulIdentifier", - "src": "165:12:7" + "src": "3654:17:9" }, "nodeType": "YulFunctionCall", - "src": "165:23:7" + "src": "3654:52:9" }, "variableNames": [ { - "name": "value0", + "name": "value2", "nodeType": "YulIdentifier", - "src": "155:6:7" + "src": "3644:6:9" } ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "50:9:7", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "61:7:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "73:6:7", - "type": "" - } - ], - "src": "14:180:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "249:373:7", - "statements": [ + }, { "nodeType": "YulVariableDeclaration", - "src": "259:26:7", + "src": "3715:48:9", "value": { "arguments": [ { - "name": "value", - "nodeType": "YulIdentifier", - "src": "279:5:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "273:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "273:12:7" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "263:6:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "301:3:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "306:6:7" + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3748:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3759:2:9", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3744:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3744:18:9" } ], "functionName": { - "name": "mstore", + "name": "calldataload", "nodeType": "YulIdentifier", - "src": "294:6:7" + "src": "3731:12:9" }, "nodeType": "YulFunctionCall", - "src": "294:19:7" - }, - "nodeType": "YulExpressionStatement", - "src": "294:19:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "322:10:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "331:1:7", - "type": "", - "value": "0" + "src": "3731:32:9" }, "variables": [ { - "name": "i", + "name": "offset_2", "nodeType": "YulTypedName", - "src": "326:1:7", + "src": "3719:8:9", "type": "" } ] @@ -16772,388 +25279,350 @@ { "body": { "nodeType": "YulBlock", - "src": "393:110:7", + "src": "3792:16:9", "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "407:14:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "417:4:7", - "type": "", - "value": "0x20" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "411:2:7", - "type": "" - } - ] - }, { "expression": { "arguments": [ { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "449:3:7" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "454:1:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "445:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "445:11:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "458:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "441:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "441:20:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "3801:1:9", + "type": "", + "value": "0" }, { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "477:5:7" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "484:1:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "473:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "473:13:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "488:2:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "469:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "469:22:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "463:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "463:29:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "3804:1:9", + "type": "", + "value": "0" } ], "functionName": { - "name": "mstore", + "name": "revert", "nodeType": "YulIdentifier", - "src": "434:6:7" + "src": "3794:6:9" }, "nodeType": "YulFunctionCall", - "src": "434:59:7" + "src": "3794:12:9" }, "nodeType": "YulExpressionStatement", - "src": "434:59:7" + "src": "3794:12:9" } ] }, "condition": { "arguments": [ { - "name": "i", + "name": "offset_2", "nodeType": "YulIdentifier", - "src": "352:1:7" + "src": "3778:8:9" }, { - "name": "length", + "name": "_1", "nodeType": "YulIdentifier", - "src": "355:6:7" + "src": "3788:2:9" } ], "functionName": { - "name": "lt", + "name": "gt", "nodeType": "YulIdentifier", - "src": "349:2:7" + "src": "3775:2:9" }, "nodeType": "YulFunctionCall", - "src": "349:13:7" + "src": "3775:16:9" }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "363:21:7", - "statements": [ + "nodeType": "YulIf", + "src": "3772:36:9" + }, + { + "nodeType": "YulAssignment", + "src": "3817:62:9", + "value": { + "arguments": [ { - "nodeType": "YulAssignment", - "src": "365:17:7", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "374:1:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "377:4:7", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", + "arguments": [ + { + "name": "headStart", "nodeType": "YulIdentifier", - "src": "370:3:7" + "src": "3849:9:9" }, - "nodeType": "YulFunctionCall", - "src": "370:12:7" - }, - "variableNames": [ { - "name": "i", + "name": "offset_2", "nodeType": "YulIdentifier", - "src": "365:1:7" + "src": "3860:8:9" } - ] + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3845:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3845:24:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3871:7:9" } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "345:3:7", - "statements": [] + ], + "functionName": { + "name": "abi_decode_string", + "nodeType": "YulIdentifier", + "src": "3827:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "3827:52:9" }, - "src": "341:162:7" + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "3817:6:9" + } + ] }, { - "expression": { + "nodeType": "YulAssignment", + "src": "3888:43:9", + "value": { "arguments": [ { "arguments": [ { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "527:3:7" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "532:6:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "523:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "523:16:7" + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3915:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "541:4:7", + "src": "3926:3:9", "type": "", - "value": "0x20" + "value": "128" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "519:3:7" + "src": "3911:3:9" }, "nodeType": "YulFunctionCall", - "src": "519:27:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "548:1:7", - "type": "", - "value": "0" + "src": "3911:19:9" } ], "functionName": { - "name": "mstore", + "name": "calldataload", "nodeType": "YulIdentifier", - "src": "512:6:7" + "src": "3898:12:9" }, "nodeType": "YulFunctionCall", - "src": "512:38:7" + "src": "3898:33:9" }, - "nodeType": "YulExpressionStatement", - "src": "512:38:7" - }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "3888:6:9" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_string_memory_ptrt_string_memory_ptrt_string_memory_ptrt_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3152:9:9", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3163:7:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3175:6:9", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3183:6:9", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3191:6:9", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "3199:6:9", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "3207:6:9", + "type": "" + } + ], + "src": "3050:887:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4012:116:9", + "statements": [ { - "nodeType": "YulAssignment", - "src": "559:57:7", - "value": { + "body": { + "nodeType": "YulBlock", + "src": "4058:16:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4067:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4070:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4060:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "4060:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "4060:12:9" + } + ] + }, + "condition": { "arguments": [ { "arguments": [ { - "name": "pos", + "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "574:3:7" + "src": "4033:7:9" }, { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "587:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "595:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "583:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "583:15:7" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "604:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "600:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "600:7:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "579:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "579:29:7" + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4042:9:9" } ], "functionName": { - "name": "add", + "name": "sub", "nodeType": "YulIdentifier", - "src": "570:3:7" + "src": "4029:3:9" }, "nodeType": "YulFunctionCall", - "src": "570:39:7" + "src": "4029:23:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "611:4:7", + "src": "4054:2:9", "type": "", - "value": "0x20" + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4025:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4025:32:9" + }, + "nodeType": "YulIf", + "src": "4022:52:9" + }, + { + "nodeType": "YulAssignment", + "src": "4083:39:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4112:9:9" } ], "functionName": { - "name": "add", + "name": "abi_decode_address", "nodeType": "YulIdentifier", - "src": "566:3:7" + "src": "4093:18:9" }, "nodeType": "YulFunctionCall", - "src": "566:50:7" + "src": "4093:29:9" }, "variableNames": [ { - "name": "end", + "name": "value0", "nodeType": "YulIdentifier", - "src": "559:3:7" + "src": "4083:6:9" } ] } ] }, - "name": "abi_encode_string", + "name": "abi_decode_tuple_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", "nodeType": "YulTypedName", - "src": "226:5:7", + "src": "3978:9:9", "type": "" }, { - "name": "pos", + "name": "dataEnd", "nodeType": "YulTypedName", - "src": "233:3:7", + "src": "3989:7:9", "type": "" } ], "returnVariables": [ { - "name": "end", + "name": "value0", "nodeType": "YulTypedName", - "src": "241:3:7", + "src": "4001:6:9", "type": "" } ], - "src": "199:423:7" + "src": "3942:186:9" }, { "body": { "nodeType": "YulBlock", - "src": "832:256:7", + "src": "4286:751:9", "statements": [ { "expression": { @@ -17161,78 +25630,54 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "849:9:7" + "src": "4303:9:9" }, { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "864:6:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "880:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "885:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "876:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "876:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "889:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "872:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "872:19:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "860:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "860:32:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "4314:2:9", + "type": "", + "value": "32" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "842:6:7" + "src": "4296:6:9" }, "nodeType": "YulFunctionCall", - "src": "842:51:7" + "src": "4296:21:9" }, "nodeType": "YulExpressionStatement", - "src": "842:51:7" + "src": "4296:21:9" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4326:33:9", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4352:6:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4346:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "4346:13:9" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "4330:12:9", + "type": "" + } + ] }, { "expression": { @@ -17242,12 +25687,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "913:9:7" + "src": "4379:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "924:2:7", + "src": "4390:2:9", "type": "", "value": "32" } @@ -17255,122 +25700,126 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "909:3:7" + "src": "4375:3:9" }, "nodeType": "YulFunctionCall", - "src": "909:18:7" + "src": "4375:18:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "929:3:7", + "src": "4395:4:9", "type": "", - "value": "128" + "value": "0xc0" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "902:6:7" + "src": "4368:6:9" }, "nodeType": "YulFunctionCall", - "src": "902:31:7" + "src": "4368:32:9" }, "nodeType": "YulExpressionStatement", - "src": "902:31:7" + "src": "4368:32:9" }, { - "nodeType": "YulAssignment", - "src": "942:54:7", + "nodeType": "YulVariableDeclaration", + "src": "4409:66:9", "value": { "arguments": [ { - "name": "value1", + "name": "memberValue0", "nodeType": "YulIdentifier", - "src": "968:6:7" + "src": "4441:12:9" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "980:9:7" + "src": "4459:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "991:3:7", + "src": "4470:3:9", "type": "", - "value": "128" + "value": "224" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "976:3:7" + "src": "4455:3:9" }, "nodeType": "YulFunctionCall", - "src": "976:19:7" + "src": "4455:19:9" } ], "functionName": { "name": "abi_encode_string", "nodeType": "YulIdentifier", - "src": "950:17:7" + "src": "4423:17:9" }, "nodeType": "YulFunctionCall", - "src": "950:46:7" + "src": "4423:52:9" }, - "variableNames": [ + "variables": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "942:4:7" + "name": "tail_1", + "nodeType": "YulTypedName", + "src": "4413:6:9", + "type": "" } ] }, { - "expression": { + "nodeType": "YulVariableDeclaration", + "src": "4484:44:9", + "value": { "arguments": [ { "arguments": [ { - "name": "headStart", + "name": "value0", "nodeType": "YulIdentifier", - "src": "1016:9:7" + "src": "4516:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1027:2:7", + "src": "4524:2:9", "type": "", - "value": "64" + "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1012:3:7" + "src": "4512:3:9" }, "nodeType": "YulFunctionCall", - "src": "1012:18:7" - }, - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "1032:6:7" + "src": "4512:15:9" } ], "functionName": { - "name": "mstore", + "name": "mload", "nodeType": "YulIdentifier", - "src": "1005:6:7" + "src": "4506:5:9" }, "nodeType": "YulFunctionCall", - "src": "1005:34:7" + "src": "4506:22:9" }, - "nodeType": "YulExpressionStatement", - "src": "1005:34:7" + "variables": [ + { + "name": "memberValue0_1", + "nodeType": "YulTypedName", + "src": "4488:14:9", + "type": "" + } + ] }, { "expression": { @@ -17380,215 +25829,217 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "1059:9:7" + "src": "4548:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1070:2:7", + "src": "4559:2:9", "type": "", - "value": "96" + "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1055:3:7" + "src": "4544:3:9" }, "nodeType": "YulFunctionCall", - "src": "1055:18:7" + "src": "4544:18:9" }, { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "1075:6:7" + "arguments": [ + { + "arguments": [ + { + "name": "tail_1", + "nodeType": "YulIdentifier", + "src": "4572:6:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4580:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4568:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4568:22:9" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4596:2:9", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4592:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4592:7:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4564:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4564:36:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "1048:6:7" + "src": "4537:6:9" }, "nodeType": "YulFunctionCall", - "src": "1048:34:7" + "src": "4537:64:9" }, "nodeType": "YulExpressionStatement", - "src": "1048:34:7" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_string_memory_ptr_t_uint256_t_uint256__to_t_address_t_string_memory_ptr_t_uint256_t_uint256__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "777:9:7", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "788:6:7", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "796:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "804:6:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "812:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "823:4:7", - "type": "" - } - ], - "src": "627:461:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1194:76:7", - "statements": [ + "src": "4537:64:9" + }, { - "nodeType": "YulAssignment", - "src": "1204:26:7", + "nodeType": "YulVariableDeclaration", + "src": "4610:55:9", "value": { "arguments": [ { - "name": "headStart", + "name": "memberValue0_1", "nodeType": "YulIdentifier", - "src": "1216:9:7" + "src": "4642:14:9" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1227:2:7", - "type": "", - "value": "32" + "name": "tail_1", + "nodeType": "YulIdentifier", + "src": "4658:6:9" } ], "functionName": { - "name": "add", + "name": "abi_encode_string", "nodeType": "YulIdentifier", - "src": "1212:3:7" + "src": "4624:17:9" }, "nodeType": "YulFunctionCall", - "src": "1212:18:7" + "src": "4624:41:9" }, - "variableNames": [ + "variables": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "1204:4:7" + "name": "tail_2", + "nodeType": "YulTypedName", + "src": "4614:6:9", + "type": "" } ] }, { - "expression": { + "nodeType": "YulVariableDeclaration", + "src": "4674:44:9", + "value": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1246:9:7" - }, - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1257:6:7" + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4706:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4714:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4702:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4702:15:9" } ], "functionName": { - "name": "mstore", + "name": "mload", "nodeType": "YulIdentifier", - "src": "1239:6:7" + "src": "4696:5:9" }, "nodeType": "YulFunctionCall", - "src": "1239:25:7" + "src": "4696:22:9" }, - "nodeType": "YulExpressionStatement", - "src": "1239:25:7" - } - ] - }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1163:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1174:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "1185:4:7", - "type": "" - } - ], - "src": "1093:177:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1376:102:7", - "statements": [ + "variables": [ + { + "name": "memberValue0_2", + "nodeType": "YulTypedName", + "src": "4678:14:9", + "type": "" + } + ] + }, { - "nodeType": "YulAssignment", - "src": "1386:26:7", + "nodeType": "YulVariableDeclaration", + "src": "4727:29:9", "value": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1398:9:7" + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4745:3:9", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4750:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "4741:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4741:11:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1409:2:7", + "src": "4754:1:9", "type": "", - "value": "32" + "value": "1" } ], "functionName": { - "name": "add", + "name": "sub", "nodeType": "YulIdentifier", - "src": "1394:3:7" + "src": "4737:3:9" }, "nodeType": "YulFunctionCall", - "src": "1394:18:7" + "src": "4737:19:9" }, - "variableNames": [ + "variables": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "1386:4:7" + "name": "_1", + "nodeType": "YulTypedName", + "src": "4731:2:9", + "type": "" } ] }, @@ -17596,973 +26047,762 @@ "expression": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1428:9:7" + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4776:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4787:2:9", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4772:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4772:18:9" }, { "arguments": [ { - "name": "value0", + "name": "memberValue0_2", "nodeType": "YulIdentifier", - "src": "1443:6:7" + "src": "4796:14:9" }, { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1459:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1464:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "1455:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1455:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1468:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "1451:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1451:19:7" + "name": "_1", + "nodeType": "YulIdentifier", + "src": "4812:2:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "1439:3:7" + "src": "4792:3:9" }, "nodeType": "YulFunctionCall", - "src": "1439:32:7" + "src": "4792:23:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "1421:6:7" + "src": "4765:6:9" }, "nodeType": "YulFunctionCall", - "src": "1421:51:7" + "src": "4765:51:9" }, "nodeType": "YulExpressionStatement", - "src": "1421:51:7" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1345:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1356:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "1367:4:7", - "type": "" - } - ], - "src": "1275:203:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1532:124:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1542:29:7", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1564:6:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "1551:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "1551:20:7" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1542:5:7" - } - ] + "src": "4765:51:9" }, { - "body": { - "nodeType": "YulBlock", - "src": "1634:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1643:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1646:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1636:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "1636:12:7" - }, - "nodeType": "YulExpressionStatement", - "src": "1636:12:7" - } - ] - }, - "condition": { + "expression": { "arguments": [ { "arguments": [ { - "name": "value", + "name": "headStart", "nodeType": "YulIdentifier", - "src": "1593:5:7" + "src": "4836:9:9" }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4847:3:9", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4832:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4832:19:9" + }, + { + "arguments": [ { "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1604:5:7" - }, { "arguments": [ { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1619:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1624:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "1615:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "1615:11:7" + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4867:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1628:1:7", + "src": "4875:2:9", "type": "", - "value": "1" + "value": "96" } ], "functionName": { - "name": "sub", + "name": "add", "nodeType": "YulIdentifier", - "src": "1611:3:7" + "src": "4863:3:9" }, "nodeType": "YulFunctionCall", - "src": "1611:19:7" + "src": "4863:15:9" } ], "functionName": { - "name": "and", + "name": "mload", "nodeType": "YulIdentifier", - "src": "1600:3:7" + "src": "4857:5:9" }, "nodeType": "YulFunctionCall", - "src": "1600:31:7" + "src": "4857:22:9" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "4881:2:9" } ], "functionName": { - "name": "eq", + "name": "and", "nodeType": "YulIdentifier", - "src": "1590:2:7" + "src": "4853:3:9" }, "nodeType": "YulFunctionCall", - "src": "1590:42:7" + "src": "4853:31:9" } ], "functionName": { - "name": "iszero", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "1583:6:7" + "src": "4825:6:9" }, "nodeType": "YulFunctionCall", - "src": "1583:50:7" + "src": "4825:60:9" }, - "nodeType": "YulIf", - "src": "1580:70:7" - } - ] - }, - "name": "abi_decode_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1511:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1522:5:7", - "type": "" - } - ], - "src": "1483:173:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1693:95:7", - "statements": [ + "nodeType": "YulExpressionStatement", + "src": "4825:60:9" + }, { "expression": { "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1710:1:7", - "type": "", - "value": "0" - }, { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1717:3:7", - "type": "", - "value": "224" + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4905:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1722:10:7", + "src": "4916:3:9", "type": "", - "value": "0x4e487b71" + "value": "160" } ], "functionName": { - "name": "shl", + "name": "add", + "nodeType": "YulIdentifier", + "src": "4901:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4901:19:9" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4932:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4940:3:9", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4928:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4928:16:9" + } + ], + "functionName": { + "name": "mload", "nodeType": "YulIdentifier", - "src": "1713:3:7" + "src": "4922:5:9" }, "nodeType": "YulFunctionCall", - "src": "1713:20:7" + "src": "4922:23:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "1703:6:7" + "src": "4894:6:9" }, "nodeType": "YulFunctionCall", - "src": "1703:31:7" + "src": "4894:52:9" }, "nodeType": "YulExpressionStatement", - "src": "1703:31:7" + "src": "4894:52:9" }, { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1750:1:7", - "type": "", - "value": "4" + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4966:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4977:4:9", + "type": "", + "value": "0xc0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4962:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4962:20:9" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1753:4:7", - "type": "", - "value": "0x41" + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4994:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5002:3:9", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4990:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4990:16:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4984:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "4984:23:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "1743:6:7" + "src": "4955:6:9" }, "nodeType": "YulFunctionCall", - "src": "1743:15:7" + "src": "4955:53:9" }, "nodeType": "YulExpressionStatement", - "src": "1743:15:7" + "src": "4955:53:9" }, + { + "nodeType": "YulAssignment", + "src": "5017:14:9", + "value": { + "name": "tail_2", + "nodeType": "YulIdentifier", + "src": "5025:6:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5017:4:9" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_struct$_AgentData_$200_memory_ptr__to_t_struct$_AgentData_$200_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4255:9:9", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4266:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4277:4:9", + "type": "" + } + ], + "src": "4133:904:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5209:500:9", + "statements": [ { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1774:1:7", - "type": "", - "value": "0" + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5226:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1777:4:7", + "src": "5237:2:9", "type": "", - "value": "0x24" + "value": "32" } ], "functionName": { - "name": "revert", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "1767:6:7" + "src": "5219:6:9" }, "nodeType": "YulFunctionCall", - "src": "1767:15:7" + "src": "5219:21:9" }, "nodeType": "YulExpressionStatement", - "src": "1767:15:7" - } - ] - }, - "name": "panic_error_0x41", - "nodeType": "YulFunctionDefinition", - "src": "1661:127:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1846:666:7", - "statements": [ + "src": "5219:21:9" + }, { - "body": { - "nodeType": "YulBlock", - "src": "1895:16:7", - "statements": [ + "expression": { + "arguments": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1904:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1907:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", + "arguments": [ + { + "name": "headStart", "nodeType": "YulIdentifier", - "src": "1897:6:7" + "src": "5260:9:9" }, - "nodeType": "YulFunctionCall", - "src": "1897:12:7" + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5271:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5256:3:9" }, - "nodeType": "YulExpressionStatement", - "src": "1897:12:7" - } - ] - }, - "condition": { - "arguments": [ + "nodeType": "YulFunctionCall", + "src": "5256:18:9" + }, { "arguments": [ { "arguments": [ { - "name": "offset", + "name": "value0", "nodeType": "YulIdentifier", - "src": "1874:6:7" + "src": "5286:6:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5280:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "5280:13:9" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5303:3:9", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5308:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "5299:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "5299:11:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1882:4:7", + "src": "5312:1:9", "type": "", - "value": "0x1f" + "value": "1" } ], "functionName": { - "name": "add", + "name": "sub", "nodeType": "YulIdentifier", - "src": "1870:3:7" + "src": "5295:3:9" }, "nodeType": "YulFunctionCall", - "src": "1870:17:7" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "1889:3:7" + "src": "5295:19:9" } ], "functionName": { - "name": "slt", + "name": "and", "nodeType": "YulIdentifier", - "src": "1866:3:7" + "src": "5276:3:9" }, "nodeType": "YulFunctionCall", - "src": "1866:27:7" + "src": "5276:39:9" } ], "functionName": { - "name": "iszero", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "1859:6:7" + "src": "5249:6:9" }, "nodeType": "YulFunctionCall", - "src": "1859:35:7" + "src": "5249:67:9" }, - "nodeType": "YulIf", - "src": "1856:55:7" + "nodeType": "YulExpressionStatement", + "src": "5249:67:9" }, { "nodeType": "YulVariableDeclaration", - "src": "1920:30:7", + "src": "5325:42:9", "value": { "arguments": [ { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1943:6:7" + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5355:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5363:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5351:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "5351:15:9" } ], "functionName": { - "name": "calldataload", + "name": "mload", "nodeType": "YulIdentifier", - "src": "1930:12:7" + "src": "5345:5:9" }, "nodeType": "YulFunctionCall", - "src": "1930:20:7" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "1924:2:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "1959:28:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1969:18:7", - "type": "", - "value": "0xffffffffffffffff" + "src": "5345:22:9" }, "variables": [ { - "name": "_2", + "name": "memberValue0", "nodeType": "YulTypedName", - "src": "1963:2:7", + "src": "5329:12:9", "type": "" } ] }, { - "body": { - "nodeType": "YulBlock", - "src": "2010:22:7", - "statements": [ + "expression": { + "arguments": [ { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", + "arguments": [ + { + "name": "headStart", "nodeType": "YulIdentifier", - "src": "2012:16:7" + "src": "5387:9:9" }, - "nodeType": "YulFunctionCall", - "src": "2012:18:7" + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5398:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5383:3:9" }, - "nodeType": "YulExpressionStatement", - "src": "2012:18:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "2002:2:7" + "nodeType": "YulFunctionCall", + "src": "5383:18:9" }, - { - "name": "_2", - "nodeType": "YulIdentifier", - "src": "2006:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "1999:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "1999:10:7" - }, - "nodeType": "YulIf", - "src": "1996:36:7" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2041:17:7", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2055:2:7", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "2051:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2051:7:7" - }, - "variables": [ - { - "name": "_3", - "nodeType": "YulTypedName", - "src": "2045:2:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2067:23:7", - "value": { - "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "2087:2:7", + "src": "5403:4:9", "type": "", - "value": "64" + "value": "0xa0" } ], "functionName": { - "name": "mload", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "2081:5:7" + "src": "5376:6:9" }, "nodeType": "YulFunctionCall", - "src": "2081:9:7" + "src": "5376:32:9" }, - "variables": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "2071:6:7", - "type": "" - } - ] + "nodeType": "YulExpressionStatement", + "src": "5376:32:9" }, { "nodeType": "YulVariableDeclaration", - "src": "2099:71:7", + "src": "5417:66:9", "value": { "arguments": [ { - "name": "memPtr", + "name": "memberValue0", "nodeType": "YulIdentifier", - "src": "2121:6:7" + "src": "5449:12:9" }, { "arguments": [ { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "2145:2:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2149:4:7", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2141:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2141:13:7" - }, - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "2156:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "2137:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2137:22:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2161:2:7", - "type": "", - "value": "63" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2133:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "2133:31:7" + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5467:9:9" }, { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "2166:2:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "5478:3:9", + "type": "", + "value": "192" } ], "functionName": { - "name": "and", + "name": "add", "nodeType": "YulIdentifier", - "src": "2129:3:7" + "src": "5463:3:9" }, "nodeType": "YulFunctionCall", - "src": "2129:40:7" + "src": "5463:19:9" } ], "functionName": { - "name": "add", + "name": "abi_encode_string", "nodeType": "YulIdentifier", - "src": "2117:3:7" + "src": "5431:17:9" }, "nodeType": "YulFunctionCall", - "src": "2117:53:7" + "src": "5431:52:9" }, "variables": [ { - "name": "newFreePtr", + "name": "tail_1", "nodeType": "YulTypedName", - "src": "2103:10:7", + "src": "5421:6:9", "type": "" } ] }, { - "body": { - "nodeType": "YulBlock", - "src": "2229:22:7", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "2231:16:7" - }, - "nodeType": "YulFunctionCall", - "src": "2231:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2231:18:7" - } - ] - }, - "condition": { + "expression": { "arguments": [ { "arguments": [ { - "name": "newFreePtr", + "name": "headStart", "nodeType": "YulIdentifier", - "src": "2188:10:7" + "src": "5503:9:9" }, { - "name": "_2", - "nodeType": "YulIdentifier", - "src": "2200:2:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "5514:2:9", + "type": "", + "value": "96" } ], "functionName": { - "name": "gt", + "name": "add", "nodeType": "YulIdentifier", - "src": "2185:2:7" + "src": "5499:3:9" }, "nodeType": "YulFunctionCall", - "src": "2185:18:7" + "src": "5499:18:9" }, { "arguments": [ { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "2208:10:7" - }, - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "2220:6:7" + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5529:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5537:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5525:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "5525:15:9" } ], "functionName": { - "name": "lt", + "name": "mload", "nodeType": "YulIdentifier", - "src": "2205:2:7" + "src": "5519:5:9" }, "nodeType": "YulFunctionCall", - "src": "2205:22:7" - } - ], - "functionName": { - "name": "or", - "nodeType": "YulIdentifier", - "src": "2182:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "2182:46:7" - }, - "nodeType": "YulIf", - "src": "2179:72:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2267:2:7", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "2271:10:7" + "src": "5519:22:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "2260:6:7" + "src": "5492:6:9" }, "nodeType": "YulFunctionCall", - "src": "2260:22:7" + "src": "5492:50:9" }, "nodeType": "YulExpressionStatement", - "src": "2260:22:7" + "src": "5492:50:9" }, { "expression": { "arguments": [ { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "2298:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "2306:2:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2291:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "2291:18:7" - }, - "nodeType": "YulExpressionStatement", - "src": "2291:18:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2357:16:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2366:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2369:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", + "arguments": [ + { + "name": "headStart", "nodeType": "YulIdentifier", - "src": "2359:6:7" + "src": "5562:9:9" }, - "nodeType": "YulFunctionCall", - "src": "2359:12:7" + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5573:3:9", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5558:3:9" }, - "nodeType": "YulExpressionStatement", - "src": "2359:12:7" - } - ] - }, - "condition": { - "arguments": [ + "nodeType": "YulFunctionCall", + "src": "5558:19:9" + }, { "arguments": [ { "arguments": [ { - "name": "offset", + "name": "value0", "nodeType": "YulIdentifier", - "src": "2332:6:7" + "src": "5589:6:9" }, { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "2340:2:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "5597:2:9", + "type": "", + "value": "96" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2328:3:7" + "src": "5585:3:9" }, "nodeType": "YulFunctionCall", - "src": "2328:15:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2345:4:7", - "type": "", - "value": "0x20" + "src": "5585:15:9" } ], "functionName": { - "name": "add", + "name": "mload", "nodeType": "YulIdentifier", - "src": "2324:3:7" + "src": "5579:5:9" }, "nodeType": "YulFunctionCall", - "src": "2324:26:7" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "2352:3:7" + "src": "5579:22:9" } ], "functionName": { - "name": "gt", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "2321:2:7" + "src": "5551:6:9" }, "nodeType": "YulFunctionCall", - "src": "2321:35:7" + "src": "5551:51:9" }, - "nodeType": "YulIf", - "src": "2318:55:7" + "nodeType": "YulExpressionStatement", + "src": "5551:51:9" }, { "expression": { @@ -18570,180 +26810,293 @@ { "arguments": [ { - "name": "memPtr", + "name": "headStart", "nodeType": "YulIdentifier", - "src": "2399:6:7" + "src": "5622:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2407:4:7", + "src": "5633:4:9", "type": "", - "value": "0x20" + "value": "0xa0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2395:3:7" + "src": "5618:3:9" }, "nodeType": "YulFunctionCall", - "src": "2395:17:7" + "src": "5618:20:9" }, { "arguments": [ { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "2418:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2426:4:7", - "type": "", - "value": "0x20" + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5664:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5672:3:9", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5660:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "5660:16:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5654:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "5654:23:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5647:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "5647:31:9" } ], "functionName": { - "name": "add", + "name": "iszero", "nodeType": "YulIdentifier", - "src": "2414:3:7" + "src": "5640:6:9" }, "nodeType": "YulFunctionCall", - "src": "2414:17:7" - }, + "src": "5640:39:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5611:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "5611:69:9" + }, + "nodeType": "YulExpressionStatement", + "src": "5611:69:9" + }, + { + "nodeType": "YulAssignment", + "src": "5689:14:9", + "value": { + "name": "tail_1", + "nodeType": "YulIdentifier", + "src": "5697:6:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5689:4:9" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_struct$_ServiceProposal_$1403_memory_ptr__to_t_struct$_ServiceProposal_$1403_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5178:9:9", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5189:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5200:4:9", + "type": "" + } + ], + "src": "5042:667:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5838:102:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5848:26:9", + "value": { + "arguments": [ { - "name": "_1", + "name": "headStart", "nodeType": "YulIdentifier", - "src": "2433:2:7" + "src": "5860:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5871:2:9", + "type": "", + "value": "32" } ], "functionName": { - "name": "calldatacopy", + "name": "add", "nodeType": "YulIdentifier", - "src": "2382:12:7" + "src": "5856:3:9" }, "nodeType": "YulFunctionCall", - "src": "2382:54:7" + "src": "5856:18:9" }, - "nodeType": "YulExpressionStatement", - "src": "2382:54:7" + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5848:4:9" + } + ] }, { "expression": { "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5890:9:9" + }, { "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5905:6:9" + }, { "arguments": [ { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "2460:6:7" + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5921:3:9", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5926:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "5917:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "5917:11:9" }, { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "2468:2:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "5930:1:9", + "type": "", + "value": "1" } ], "functionName": { - "name": "add", + "name": "sub", "nodeType": "YulIdentifier", - "src": "2456:3:7" + "src": "5913:3:9" }, "nodeType": "YulFunctionCall", - "src": "2456:15:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2473:4:7", - "type": "", - "value": "0x20" + "src": "5913:19:9" } ], "functionName": { - "name": "add", + "name": "and", "nodeType": "YulIdentifier", - "src": "2452:3:7" + "src": "5901:3:9" }, "nodeType": "YulFunctionCall", - "src": "2452:26:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2480:1:7", - "type": "", - "value": "0" + "src": "5901:32:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "2445:6:7" + "src": "5883:6:9" }, "nodeType": "YulFunctionCall", - "src": "2445:37:7" + "src": "5883:51:9" }, "nodeType": "YulExpressionStatement", - "src": "2445:37:7" - }, - { - "nodeType": "YulAssignment", - "src": "2491:15:7", - "value": { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "2500:6:7" - }, - "variableNames": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "2491:5:7" - } - ] + "src": "5883:51:9" } ] }, - "name": "abi_decode_string", + "name": "abi_encode_tuple_t_contract$_ServiceRegistry_$844__to_t_address__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", + "name": "headStart", "nodeType": "YulTypedName", - "src": "1820:6:7", + "src": "5807:9:9", "type": "" }, { - "name": "end", + "name": "value0", "nodeType": "YulTypedName", - "src": "1828:3:7", + "src": "5818:6:9", "type": "" } ], "returnVariables": [ { - "name": "array", + "name": "tail", "nodeType": "YulTypedName", - "src": "1836:5:7", + "src": "5829:4:9", "type": "" } ], - "src": "1793:719:7" + "src": "5714:226:9" }, { "body": { "nodeType": "YulBlock", - "src": "2685:719:7", + "src": "6059:350:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "2732:16:7", + "src": "6105:16:9", "statements": [ { "expression": { @@ -18751,14 +27104,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "2741:1:7", + "src": "6114:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2744:1:7", + "src": "6117:1:9", "type": "", "value": "0" } @@ -18766,13 +27119,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "2734:6:7" + "src": "6107:6:9" }, "nodeType": "YulFunctionCall", - "src": "2734:12:7" + "src": "6107:12:9" }, "nodeType": "YulExpressionStatement", - "src": "2734:12:7" + "src": "6107:12:9" } ] }, @@ -18783,71 +27136,71 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "2706:7:7" + "src": "6080:7:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "2715:9:7" + "src": "6089:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "2702:3:7" + "src": "6076:3:9" }, "nodeType": "YulFunctionCall", - "src": "2702:23:7" + "src": "6076:23:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2727:3:7", + "src": "6101:2:9", "type": "", - "value": "160" + "value": "96" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "2698:3:7" + "src": "6072:3:9" }, "nodeType": "YulFunctionCall", - "src": "2698:33:7" + "src": "6072:32:9" }, "nodeType": "YulIf", - "src": "2695:53:7" + "src": "6069:52:9" }, { "nodeType": "YulAssignment", - "src": "2757:39:7", + "src": "6130:39:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "2786:9:7" + "src": "6159:9:9" } ], "functionName": { "name": "abi_decode_address", "nodeType": "YulIdentifier", - "src": "2767:18:7" + "src": "6140:18:9" }, "nodeType": "YulFunctionCall", - "src": "2767:29:7" + "src": "6140:29:9" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "2757:6:7" + "src": "6130:6:9" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "2805:46:7", + "src": "6178:46:9", "value": { "arguments": [ { @@ -18855,12 +27208,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "2836:9:7" + "src": "6209:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2847:2:7", + "src": "6220:2:9", "type": "", "value": "32" } @@ -18868,44 +27221,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2832:3:7" + "src": "6205:3:9" }, "nodeType": "YulFunctionCall", - "src": "2832:18:7" + "src": "6205:18:9" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "2819:12:7" + "src": "6192:12:9" }, "nodeType": "YulFunctionCall", - "src": "2819:32:7" + "src": "6192:32:9" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", - "src": "2809:6:7", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "2860:28:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2870:18:7", - "type": "", - "value": "0xffffffffffffffff" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "2864:2:7", + "src": "6182:6:9", "type": "" } ] @@ -18913,7 +27247,7 @@ { "body": { "nodeType": "YulBlock", - "src": "2915:16:7", + "src": "6267:16:9", "statements": [ { "expression": { @@ -18921,14 +27255,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "2924:1:7", + "src": "6276:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2927:1:7", + "src": "6279:1:9", "type": "", "value": "0" } @@ -18936,13 +27270,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "2917:6:7" + "src": "6269:6:9" }, "nodeType": "YulFunctionCall", - "src": "2917:12:7" + "src": "6269:12:9" }, "nodeType": "YulExpressionStatement", - "src": "2917:12:7" + "src": "6269:12:9" } ] }, @@ -18951,243 +27285,462 @@ { "name": "offset", "nodeType": "YulIdentifier", - "src": "2903:6:7" + "src": "6239:6:9" }, { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "2911:2:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "6247:18:9", + "type": "", + "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "2900:2:7" + "src": "6236:2:9" }, "nodeType": "YulFunctionCall", - "src": "2900:14:7" + "src": "6236:30:9" }, "nodeType": "YulIf", - "src": "2897:34:7" + "src": "6233:50:9" + }, + { + "nodeType": "YulAssignment", + "src": "6292:60:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6324:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6335:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6320:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "6320:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6344:7:9" + } + ], + "functionName": { + "name": "abi_decode_string", + "nodeType": "YulIdentifier", + "src": "6302:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "6302:50:9" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6292:6:9" + } + ] }, { "nodeType": "YulAssignment", - "src": "2940:60:7", + "src": "6361:42:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6388:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6399:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6384:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "6384:18:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "6371:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "6371:32:9" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "6361:6:9" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_string_memory_ptrt_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6009:9:9", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6020:7:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6032:6:9", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6040:6:9", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6048:6:9", + "type": "" + } + ], + "src": "5945:464:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6695:446:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6712:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6723:3:9", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6705:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "6705:22:9" + }, + "nodeType": "YulExpressionStatement", + "src": "6705:22:9" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6736:60:9", "value": { "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6768:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6780:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6791:3:9", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6776:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "6776:19:9" + } + ], + "functionName": { + "name": "abi_encode_string", + "nodeType": "YulIdentifier", + "src": "6750:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "6750:46:9" + }, + "variables": [ + { + "name": "tail_1", + "nodeType": "YulTypedName", + "src": "6740:6:9", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6816:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6827:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6812:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "6812:18:9" + }, { "arguments": [ { - "name": "headStart", + "name": "tail_1", "nodeType": "YulIdentifier", - "src": "2972:9:7" + "src": "6836:6:9" }, { - "name": "offset", + "name": "headStart", "nodeType": "YulIdentifier", - "src": "2983:6:7" + "src": "6844:9:9" } ], "functionName": { - "name": "add", + "name": "sub", "nodeType": "YulIdentifier", - "src": "2968:3:7" + "src": "6832:3:9" }, "nodeType": "YulFunctionCall", - "src": "2968:22:7" + "src": "6832:22:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6805:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "6805:50:9" + }, + "nodeType": "YulExpressionStatement", + "src": "6805:50:9" + }, + { + "nodeType": "YulAssignment", + "src": "6864:41:9", + "value": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6890:6:9" }, { - "name": "dataEnd", + "name": "tail_1", "nodeType": "YulIdentifier", - "src": "2992:7:7" + "src": "6898:6:9" } ], "functionName": { - "name": "abi_decode_string", + "name": "abi_encode_string", "nodeType": "YulIdentifier", - "src": "2950:17:7" + "src": "6872:17:9" }, "nodeType": "YulFunctionCall", - "src": "2950:50:7" + "src": "6872:33:9" }, "variableNames": [ { - "name": "value1", + "name": "tail", "nodeType": "YulIdentifier", - "src": "2940:6:7" + "src": "6864:4:9" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "3009:48:7", + "src": "6914:29:9", "value": { "arguments": [ { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3042:9:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "6932:3:9", + "type": "", + "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3053:2:7", + "src": "6937:1:9", "type": "", - "value": "64" + "value": "1" } ], "functionName": { - "name": "add", + "name": "shl", "nodeType": "YulIdentifier", - "src": "3038:3:7" + "src": "6928:3:9" }, "nodeType": "YulFunctionCall", - "src": "3038:18:7" + "src": "6928:11:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6941:1:9", + "type": "", + "value": "1" } ], "functionName": { - "name": "calldataload", + "name": "sub", "nodeType": "YulIdentifier", - "src": "3025:12:7" + "src": "6924:3:9" }, "nodeType": "YulFunctionCall", - "src": "3025:32:7" + "src": "6924:19:9" }, "variables": [ { - "name": "offset_1", + "name": "_1", "nodeType": "YulTypedName", - "src": "3013:8:7", + "src": "6918:2:9", "type": "" } ] }, { - "body": { - "nodeType": "YulBlock", - "src": "3086:16:7", - "statements": [ + "expression": { + "arguments": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3095:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3098:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", + "arguments": [ + { + "name": "headStart", "nodeType": "YulIdentifier", - "src": "3088:6:7" + "src": "6963:9:9" }, - "nodeType": "YulFunctionCall", - "src": "3088:12:7" + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6974:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6959:3:9" }, - "nodeType": "YulExpressionStatement", - "src": "3088:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset_1", - "nodeType": "YulIdentifier", - "src": "3072:8:7" + "nodeType": "YulFunctionCall", + "src": "6959:18:9" }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "3082:2:7" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "3069:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "3069:16:7" - }, - "nodeType": "YulIf", - "src": "3066:36:7" - }, - { - "nodeType": "YulAssignment", - "src": "3111:62:7", - "value": { - "arguments": [ { "arguments": [ { - "name": "headStart", + "name": "value2", "nodeType": "YulIdentifier", - "src": "3143:9:7" + "src": "6983:6:9" }, { - "name": "offset_1", + "name": "_1", "nodeType": "YulIdentifier", - "src": "3154:8:7" + "src": "6991:2:9" } ], "functionName": { - "name": "add", + "name": "and", "nodeType": "YulIdentifier", - "src": "3139:3:7" + "src": "6979:3:9" }, "nodeType": "YulFunctionCall", - "src": "3139:24:7" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3165:7:7" + "src": "6979:15:9" } ], "functionName": { - "name": "abi_decode_string", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "3121:17:7" + "src": "6952:6:9" }, "nodeType": "YulFunctionCall", - "src": "3121:52:7" + "src": "6952:43:9" }, - "variableNames": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "3111:6:7" - } - ] + "nodeType": "YulExpressionStatement", + "src": "6952:43:9" }, { - "nodeType": "YulVariableDeclaration", - "src": "3182:48:7", - "value": { + "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3215:9:7" + "src": "7015:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3226:2:7", + "src": "7026:2:9", "type": "", "value": "96" } @@ -19195,357 +27748,326 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3211:3:7" + "src": "7011:3:9" }, "nodeType": "YulFunctionCall", - "src": "3211:18:7" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "3198:12:7" - }, - "nodeType": "YulFunctionCall", - "src": "3198:32:7" - }, - "variables": [ - { - "name": "offset_2", - "nodeType": "YulTypedName", - "src": "3186:8:7", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3259:16:7", - "statements": [ + "src": "7011:18:9" + }, { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3268:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3271:1:7", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", + "arguments": [ + { + "name": "value3", "nodeType": "YulIdentifier", - "src": "3261:6:7" + "src": "7035:6:9" }, - "nodeType": "YulFunctionCall", - "src": "3261:12:7" + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "7043:2:9" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "7031:3:9" }, - "nodeType": "YulExpressionStatement", - "src": "3261:12:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset_2", - "nodeType": "YulIdentifier", - "src": "3245:8:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "3255:2:7" + "nodeType": "YulFunctionCall", + "src": "7031:15:9" } ], "functionName": { - "name": "gt", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "3242:2:7" + "src": "7004:6:9" }, "nodeType": "YulFunctionCall", - "src": "3242:16:7" + "src": "7004:43:9" }, - "nodeType": "YulIf", - "src": "3239:36:7" + "nodeType": "YulExpressionStatement", + "src": "7004:43:9" }, { - "nodeType": "YulAssignment", - "src": "3284:62:7", - "value": { + "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3316:9:7" + "src": "7067:9:9" }, { - "name": "offset_2", - "nodeType": "YulIdentifier", - "src": "3327:8:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "7078:3:9", + "type": "", + "value": "128" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3312:3:7" + "src": "7063:3:9" }, "nodeType": "YulFunctionCall", - "src": "3312:24:7" + "src": "7063:19:9" }, { - "name": "dataEnd", + "name": "value4", "nodeType": "YulIdentifier", - "src": "3338:7:7" + "src": "7084:6:9" } ], "functionName": { - "name": "abi_decode_string", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "3294:17:7" + "src": "7056:6:9" }, "nodeType": "YulFunctionCall", - "src": "3294:52:7" + "src": "7056:35:9" }, - "variableNames": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "3284:6:7" - } - ] + "nodeType": "YulExpressionStatement", + "src": "7056:35:9" }, { - "nodeType": "YulAssignment", - "src": "3355:43:7", - "value": { + "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3382:9:7" + "src": "7111:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3393:3:7", + "src": "7122:3:9", "type": "", - "value": "128" + "value": "160" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3378:3:7" + "src": "7107:3:9" }, "nodeType": "YulFunctionCall", - "src": "3378:19:7" + "src": "7107:19:9" + }, + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "7128:6:9" } ], "functionName": { - "name": "calldataload", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "3365:12:7" + "src": "7100:6:9" }, "nodeType": "YulFunctionCall", - "src": "3365:33:7" + "src": "7100:35:9" }, - "variableNames": [ - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "3355:6:7" - } - ] + "nodeType": "YulExpressionStatement", + "src": "7100:35:9" } ] }, - "name": "abi_decode_tuple_t_addresst_string_memory_ptrt_string_memory_ptrt_string_memory_ptrt_uint256", + "name": "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256_t_uint256__to_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256_t_uint256__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "2619:9:7", + "src": "6624:9:9", "type": "" }, { - "name": "dataEnd", + "name": "value5", "nodeType": "YulTypedName", - "src": "2630:7:7", + "src": "6635:6:9", "type": "" - } - ], - "returnVariables": [ + }, { - "name": "value0", + "name": "value4", "nodeType": "YulTypedName", - "src": "2642:6:7", + "src": "6643:6:9", "type": "" }, { - "name": "value1", + "name": "value3", "nodeType": "YulTypedName", - "src": "2650:6:7", + "src": "6651:6:9", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "2658:6:7", + "src": "6659:6:9", "type": "" }, { - "name": "value3", + "name": "value1", "nodeType": "YulTypedName", - "src": "2666:6:7", + "src": "6667:6:9", "type": "" }, { - "name": "value4", + "name": "value0", "nodeType": "YulTypedName", - "src": "2674:6:7", + "src": "6675:6:9", "type": "" } ], - "src": "2517:887:7" + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6686:4:9", + "type": "" + } + ], + "src": "6414:727:9" }, { "body": { "nodeType": "YulBlock", - "src": "3504:92:7", + "src": "7201:325:9", "statements": [ { "nodeType": "YulAssignment", - "src": "3514:26:7", + "src": "7211:22:9", "value": { "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3526:9:7" - }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3537:2:7", + "src": "7225:1:9", "type": "", - "value": "32" + "value": "1" + }, + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7228:4:9" } ], "functionName": { - "name": "add", + "name": "shr", "nodeType": "YulIdentifier", - "src": "3522:3:7" + "src": "7221:3:9" }, "nodeType": "YulFunctionCall", - "src": "3522:18:7" + "src": "7221:12:9" }, "variableNames": [ { - "name": "tail", + "name": "length", "nodeType": "YulIdentifier", - "src": "3514:4:7" + "src": "7211:6:9" } ] }, { - "expression": { + "nodeType": "YulVariableDeclaration", + "src": "7242:38:9", + "value": { "arguments": [ { - "name": "headStart", + "name": "data", "nodeType": "YulIdentifier", - "src": "3556:9:7" + "src": "7272:4:9" }, { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3581:6:7" - } - ], - "functionName": { - "name": "iszero", + "kind": "number", + "nodeType": "YulLiteral", + "src": "7278:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "7268:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "7268:12:9" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "7246:18:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7319:31:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7321:27:9", + "value": { + "arguments": [ + { + "name": "length", "nodeType": "YulIdentifier", - "src": "3574:6:7" + "src": "7335:6:9" }, - "nodeType": "YulFunctionCall", - "src": "3574:14:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "3567:6:7" + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7343:4:9", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "7331:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "7331:17:9" }, - "nodeType": "YulFunctionCall", - "src": "3567:22:7" + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7321:6:9" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "7299:18:9" } ], "functionName": { - "name": "mstore", + "name": "iszero", "nodeType": "YulIdentifier", - "src": "3549:6:7" + "src": "7292:6:9" }, "nodeType": "YulFunctionCall", - "src": "3549:41:7" + "src": "7292:26:9" }, - "nodeType": "YulExpressionStatement", - "src": "3549:41:7" - } - ] - }, - "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3473:9:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "3484:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "3495:4:7", - "type": "" - } - ], - "src": "3409:187:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3671:116:7", - "statements": [ + "nodeType": "YulIf", + "src": "7289:61:9" + }, { "body": { "nodeType": "YulBlock", - "src": "3717:16:7", + "src": "7409:111:9", "statements": [ { "expression": { @@ -19553,132 +28075,175 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "3726:1:7", + "src": "7430:1:9", "type": "", "value": "0" }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7437:3:9", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7442:10:9", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "7433:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "7433:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7423:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "7423:31:9" + }, + "nodeType": "YulExpressionStatement", + "src": "7423:31:9" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7474:1:9", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7477:4:9", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7467:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "7467:15:9" + }, + "nodeType": "YulExpressionStatement", + "src": "7467:15:9" + }, + { + "expression": { + "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "3729:1:7", + "src": "7502:1:9", "type": "", "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7505:4:9", + "type": "", + "value": "0x24" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "3719:6:7" + "src": "7495:6:9" }, "nodeType": "YulFunctionCall", - "src": "3719:12:7" + "src": "7495:15:9" }, "nodeType": "YulExpressionStatement", - "src": "3719:12:7" + "src": "7495:15:9" } ] }, "condition": { "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "7365:18:9" + }, { "arguments": [ { - "name": "dataEnd", + "name": "length", "nodeType": "YulIdentifier", - "src": "3692:7:7" + "src": "7388:6:9" }, { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3701:9:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "7396:2:9", + "type": "", + "value": "32" } ], "functionName": { - "name": "sub", + "name": "lt", "nodeType": "YulIdentifier", - "src": "3688:3:7" + "src": "7385:2:9" }, "nodeType": "YulFunctionCall", - "src": "3688:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3713:2:7", - "type": "", - "value": "32" + "src": "7385:14:9" } ], "functionName": { - "name": "slt", + "name": "eq", "nodeType": "YulIdentifier", - "src": "3684:3:7" + "src": "7362:2:9" }, "nodeType": "YulFunctionCall", - "src": "3684:32:7" + "src": "7362:38:9" }, "nodeType": "YulIf", - "src": "3681:52:7" - }, - { - "nodeType": "YulAssignment", - "src": "3742:39:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3771:9:7" - } - ], - "functionName": { - "name": "abi_decode_address", - "nodeType": "YulIdentifier", - "src": "3752:18:7" - }, - "nodeType": "YulFunctionCall", - "src": "3752:29:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3742:6:7" - } - ] + "src": "7359:161:9" } ] }, - "name": "abi_decode_tuple_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3637:9:7", - "type": "" - }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ { - "name": "dataEnd", + "name": "data", "nodeType": "YulTypedName", - "src": "3648:7:7", + "src": "7181:4:9", "type": "" } ], "returnVariables": [ { - "name": "value0", + "name": "length", "nodeType": "YulTypedName", - "src": "3660:6:7", + "src": "7190:6:9", "type": "" } ], - "src": "3601:186:7" + "src": "7146:380:9" }, { "body": { "nodeType": "YulBlock", - "src": "4045:402:7", + "src": "7705:179:9", "statements": [ { "expression": { @@ -19686,77 +28251,71 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4062:9:7" + "src": "7722:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4073:3:7", + "src": "7733:2:9", "type": "", - "value": "160" + "value": "32" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "4055:6:7" + "src": "7715:6:9" }, "nodeType": "YulFunctionCall", - "src": "4055:22:7" + "src": "7715:21:9" }, "nodeType": "YulExpressionStatement", - "src": "4055:22:7" + "src": "7715:21:9" }, { - "nodeType": "YulVariableDeclaration", - "src": "4086:60:7", - "value": { + "expression": { "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4118:6:7" - }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4130:9:7" + "src": "7756:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4141:3:7", + "src": "7767:2:9", "type": "", - "value": "160" + "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4126:3:7" + "src": "7752:3:9" }, "nodeType": "YulFunctionCall", - "src": "4126:19:7" + "src": "7752:18:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7772:2:9", + "type": "", + "value": "29" } ], "functionName": { - "name": "abi_encode_string", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "4100:17:7" + "src": "7745:6:9" }, "nodeType": "YulFunctionCall", - "src": "4100:46:7" + "src": "7745:30:9" }, - "variables": [ - { - "name": "tail_1", - "nodeType": "YulTypedName", - "src": "4090:6:7", - "type": "" - } - ] + "nodeType": "YulExpressionStatement", + "src": "7745:30:9" }, { "expression": { @@ -19766,143 +28325,131 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4166:9:7" + "src": "7795:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4177:2:7", + "src": "7806:2:9", "type": "", - "value": "32" + "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4162:3:7" + "src": "7791:3:9" }, "nodeType": "YulFunctionCall", - "src": "4162:18:7" + "src": "7791:18:9" }, { - "arguments": [ - { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "4186:6:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4194:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "4182:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4182:22:7" + "hexValue": "4e6f7420746865205461736b526567697374727920636f6e7472616374", + "kind": "string", + "nodeType": "YulLiteral", + "src": "7811:31:9", + "type": "", + "value": "Not the TaskRegistry contract" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "4155:6:7" + "src": "7784:6:9" }, "nodeType": "YulFunctionCall", - "src": "4155:50:7" + "src": "7784:59:9" }, "nodeType": "YulExpressionStatement", - "src": "4155:50:7" + "src": "7784:59:9" }, { "nodeType": "YulAssignment", - "src": "4214:41:7", + "src": "7852:26:9", "value": { "arguments": [ { - "name": "value1", + "name": "headStart", "nodeType": "YulIdentifier", - "src": "4240:6:7" + "src": "7864:9:9" }, { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "4248:6:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "7875:2:9", + "type": "", + "value": "96" } ], "functionName": { - "name": "abi_encode_string", + "name": "add", "nodeType": "YulIdentifier", - "src": "4222:17:7" + "src": "7860:3:9" }, "nodeType": "YulFunctionCall", - "src": "4222:33:7" + "src": "7860:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "4214:4:7" + "src": "7852:4:9" } ] - }, + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_ab4f7bdcd44e35f2fe5cd34e07194c1c227455329229f7f3f1e8494de9e5c74c__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7682:9:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7696:4:9", + "type": "" + } + ], + "src": "7531:353:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8063:182:9", + "statements": [ { - "nodeType": "YulVariableDeclaration", - "src": "4264:29:7", - "value": { + "expression": { "arguments": [ { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4282:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4287:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "4278:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4278:11:7" + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8080:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4291:1:7", + "src": "8091:2:9", "type": "", - "value": "1" + "value": "32" } ], "functionName": { - "name": "sub", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "4274:3:7" + "src": "8073:6:9" }, "nodeType": "YulFunctionCall", - "src": "4274:19:7" + "src": "8073:21:9" }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "4268:2:7", - "type": "" - } - ] + "nodeType": "YulExpressionStatement", + "src": "8073:21:9" }, { "expression": { @@ -19912,56 +28459,42 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4313:9:7" + "src": "8114:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4324:2:7", + "src": "8125:2:9", "type": "", - "value": "64" + "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4309:3:7" + "src": "8110:3:9" }, "nodeType": "YulFunctionCall", - "src": "4309:18:7" + "src": "8110:18:9" }, { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "4333:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "4341:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "4329:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4329:15:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "8130:2:9", + "type": "", + "value": "32" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "4302:6:7" + "src": "8103:6:9" }, "nodeType": "YulFunctionCall", - "src": "4302:43:7" + "src": "8103:30:9" }, "nodeType": "YulExpressionStatement", - "src": "4302:43:7" + "src": "8103:30:9" }, { "expression": { @@ -19971,139 +28504,87 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4365:9:7" + "src": "8153:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4376:2:7", + "src": "8164:2:9", "type": "", - "value": "96" + "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4361:3:7" + "src": "8149:3:9" }, "nodeType": "YulFunctionCall", - "src": "4361:18:7" + "src": "8149:18:9" }, { - "arguments": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "4385:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "4393:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "4381:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4381:15:7" + "hexValue": "526174696e67206d757374206265206265747765656e203020616e6420313030", + "kind": "string", + "nodeType": "YulLiteral", + "src": "8169:34:9", + "type": "", + "value": "Rating must be between 0 and 100" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "4354:6:7" + "src": "8142:6:9" }, "nodeType": "YulFunctionCall", - "src": "4354:43:7" + "src": "8142:62:9" }, "nodeType": "YulExpressionStatement", - "src": "4354:43:7" + "src": "8142:62:9" }, { - "expression": { + "nodeType": "YulAssignment", + "src": "8213:26:9", + "value": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4417:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4428:3:7", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4413:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4413:19:7" + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8225:9:9" }, { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "4434:6:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "8236:2:9", + "type": "", + "value": "96" } ], "functionName": { - "name": "mstore", + "name": "add", "nodeType": "YulIdentifier", - "src": "4406:6:7" + "src": "8221:3:9" }, "nodeType": "YulFunctionCall", - "src": "4406:35:7" + "src": "8221:18:9" }, - "nodeType": "YulExpressionStatement", - "src": "4406:35:7" + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8213:4:9" + } + ] } ] }, - "name": "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256__to_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256__fromStack_reversed", + "name": "abi_encode_tuple_t_stringliteral_c137d625e69877210f78bfe5d3113cccc58db43b2ac3bb8f673d723a397aae3e__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "3982:9:7", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "3993:6:7", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "4001:6:7", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "4009:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "4017:6:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "4025:6:7", + "src": "8040:9:9", "type": "" } ], @@ -20111,637 +28592,521 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "4036:4:7", + "src": "8054:4:9", "type": "" } ], - "src": "3792:655:7" + "src": "7889:356:9" }, { "body": { "nodeType": "YulBlock", - "src": "4605:423:7", + "src": "8282:95:9", "statements": [ { "expression": { "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4622:9:7" - }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4633:2:7", + "src": "8299:1:9", "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4615:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "4615:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4615:21:7" - }, - { - "expression": { - "arguments": [ + "value": "0" + }, { "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4656:9:7" - }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4667:2:7", + "src": "8306:3:9", "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4652:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4652:18:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4682:6:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "4676:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "4676:13:7" + "value": "224" }, { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4699:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4704:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "4695:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4695:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4708:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "4691:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4691:19:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "8311:10:9", + "type": "", + "value": "0x4e487b71" } ], "functionName": { - "name": "and", + "name": "shl", "nodeType": "YulIdentifier", - "src": "4672:3:7" + "src": "8302:3:9" }, "nodeType": "YulFunctionCall", - "src": "4672:39:7" + "src": "8302:20:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "4645:6:7" + "src": "8292:6:9" }, "nodeType": "YulFunctionCall", - "src": "4645:67:7" + "src": "8292:31:9" }, "nodeType": "YulExpressionStatement", - "src": "4645:67:7" + "src": "8292:31:9" }, { - "nodeType": "YulVariableDeclaration", - "src": "4721:42:7", - "value": { + "expression": { "arguments": [ { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4751:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4759:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4747:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4747:15:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "8339:1:9", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8342:4:9", + "type": "", + "value": "0x11" } ], "functionName": { - "name": "mload", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "4741:5:7" + "src": "8332:6:9" }, "nodeType": "YulFunctionCall", - "src": "4741:22:7" + "src": "8332:15:9" }, - "variables": [ - { - "name": "memberValue0", - "nodeType": "YulTypedName", - "src": "4725:12:7", - "type": "" - } - ] + "nodeType": "YulExpressionStatement", + "src": "8332:15:9" }, { "expression": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4783:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4794:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4779:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4779:18:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "8363:1:9", + "type": "", + "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4799:4:7", + "src": "8366:4:9", "type": "", - "value": "0x80" + "value": "0x24" } ], "functionName": { - "name": "mstore", + "name": "revert", "nodeType": "YulIdentifier", - "src": "4772:6:7" + "src": "8356:6:9" }, "nodeType": "YulFunctionCall", - "src": "4772:32:7" + "src": "8356:15:9" }, "nodeType": "YulExpressionStatement", - "src": "4772:32:7" - }, + "src": "8356:15:9" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "8250:127:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8430:77:9", + "statements": [ { - "nodeType": "YulVariableDeclaration", - "src": "4813:66:7", + "nodeType": "YulAssignment", + "src": "8440:16:9", "value": { "arguments": [ { - "name": "memberValue0", + "name": "x", "nodeType": "YulIdentifier", - "src": "4845:12:7" + "src": "8451:1:9" }, { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4863:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4874:3:7", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4859:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4859:19:7" + "name": "y", + "nodeType": "YulIdentifier", + "src": "8454:1:9" } ], "functionName": { - "name": "abi_encode_string", + "name": "add", "nodeType": "YulIdentifier", - "src": "4827:17:7" + "src": "8447:3:9" }, "nodeType": "YulFunctionCall", - "src": "4827:52:7" + "src": "8447:9:9" }, - "variables": [ + "variableNames": [ { - "name": "tail_1", - "nodeType": "YulTypedName", - "src": "4817:6:7", - "type": "" + "name": "sum", + "nodeType": "YulIdentifier", + "src": "8440:3:9" } ] }, { - "expression": { - "arguments": [ + "body": { + "nodeType": "YulBlock", + "src": "8479:22:9", + "statements": [ { - "arguments": [ - { - "name": "headStart", + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "4899:9:7" + "src": "8481:16:9" }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4910:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4895:3:7" + "nodeType": "YulFunctionCall", + "src": "8481:18:9" }, - "nodeType": "YulFunctionCall", - "src": "4895:18:7" + "nodeType": "YulExpressionStatement", + "src": "8481:18:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8471:1:9" }, { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4925:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4933:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4921:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4921:15:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "4915:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "4915:22:7" + "name": "sum", + "nodeType": "YulIdentifier", + "src": "8474:3:9" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8468:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "8468:10:9" + }, + "nodeType": "YulIf", + "src": "8465:36:9" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "8413:1:9", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "8416:1:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "8422:3:9", + "type": "" + } + ], + "src": "8382:125:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8561:79:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8571:17:9", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8583:1:9" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8586:1:9" } ], "functionName": { - "name": "mstore", + "name": "sub", "nodeType": "YulIdentifier", - "src": "4888:6:7" + "src": "8579:3:9" }, "nodeType": "YulFunctionCall", - "src": "4888:50:7" + "src": "8579:9:9" }, - "nodeType": "YulExpressionStatement", - "src": "4888:50:7" + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "8571:4:9" + } + ] }, { - "expression": { - "arguments": [ + "body": { + "nodeType": "YulBlock", + "src": "8612:22:9", + "statements": [ { - "arguments": [ - { - "name": "headStart", + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "4958:9:7" + "src": "8614:16:9" }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4969:4:7", - "type": "", - "value": "0x80" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4954:3:7" + "nodeType": "YulFunctionCall", + "src": "8614:18:9" }, - "nodeType": "YulFunctionCall", - "src": "4954:20:7" + "nodeType": "YulExpressionStatement", + "src": "8614:18:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "8603:4:9" }, { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4986:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4994:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4982:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "4982:15:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "4976:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "4976:22:7" + "name": "x", + "nodeType": "YulIdentifier", + "src": "8609:1:9" } ], "functionName": { - "name": "mstore", + "name": "gt", "nodeType": "YulIdentifier", - "src": "4947:6:7" + "src": "8600:2:9" }, "nodeType": "YulFunctionCall", - "src": "4947:52:7" - }, - "nodeType": "YulExpressionStatement", - "src": "4947:52:7" - }, - { - "nodeType": "YulAssignment", - "src": "5008:14:7", - "value": { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "5016:6:7" + "src": "8600:11:9" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "5008:4:7" - } - ] + "nodeType": "YulIf", + "src": "8597:37:9" } ] }, - "name": "abi_encode_tuple_t_struct$_Proposal_$1039_memory_ptr__to_t_struct$_Proposal_$1039_memory_ptr__fromStack_reversed", + "name": "checked_sub_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "x", "nodeType": "YulTypedName", - "src": "4574:9:7", + "src": "8543:1:9", "type": "" }, { - "name": "value0", + "name": "y", "nodeType": "YulTypedName", - "src": "4585:6:7", + "src": "8546:1:9", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "diff", "nodeType": "YulTypedName", - "src": "4596:4:7", + "src": "8552:4:9", "type": "" } ], - "src": "4452:576:7" + "src": "8512:128:9" }, { "body": { "nodeType": "YulBlock", - "src": "5157:102:7", + "src": "8697:116:9", "statements": [ { "nodeType": "YulAssignment", - "src": "5167:26:7", + "src": "8707:20:9", "value": { "arguments": [ { - "name": "headStart", + "name": "x", "nodeType": "YulIdentifier", - "src": "5179:9:7" + "src": "8722:1:9" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5190:2:7", - "type": "", - "value": "32" + "name": "y", + "nodeType": "YulIdentifier", + "src": "8725:1:9" } ], "functionName": { - "name": "add", + "name": "mul", "nodeType": "YulIdentifier", - "src": "5175:3:7" + "src": "8718:3:9" }, "nodeType": "YulFunctionCall", - "src": "5175:18:7" + "src": "8718:9:9" }, "variableNames": [ { - "name": "tail", + "name": "product", "nodeType": "YulIdentifier", - "src": "5167:4:7" + "src": "8707:7:9" } ] }, { - "expression": { - "arguments": [ + "body": { + "nodeType": "YulBlock", + "src": "8785:22:9", + "statements": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5209:9:7" - }, + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "8787:16:9" + }, + "nodeType": "YulFunctionCall", + "src": "8787:18:9" + }, + "nodeType": "YulExpressionStatement", + "src": "8787:18:9" + } + ] + }, + "condition": { + "arguments": [ { "arguments": [ { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5224:6:7" + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8756:1:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8749:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "8749:9:9" }, { "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8763:1:9" + }, { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5240:3:7", - "type": "", - "value": "160" + "name": "product", + "nodeType": "YulIdentifier", + "src": "8770:7:9" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5245:1:7", - "type": "", - "value": "1" + "name": "x", + "nodeType": "YulIdentifier", + "src": "8779:1:9" } ], "functionName": { - "name": "shl", + "name": "div", "nodeType": "YulIdentifier", - "src": "5236:3:7" + "src": "8766:3:9" }, "nodeType": "YulFunctionCall", - "src": "5236:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5249:1:7", - "type": "", - "value": "1" + "src": "8766:15:9" } ], "functionName": { - "name": "sub", + "name": "eq", "nodeType": "YulIdentifier", - "src": "5232:3:7" + "src": "8760:2:9" }, "nodeType": "YulFunctionCall", - "src": "5232:19:7" + "src": "8760:22:9" } ], "functionName": { - "name": "and", + "name": "or", "nodeType": "YulIdentifier", - "src": "5220:3:7" + "src": "8746:2:9" }, "nodeType": "YulFunctionCall", - "src": "5220:32:7" + "src": "8746:37:9" } ], "functionName": { - "name": "mstore", + "name": "iszero", "nodeType": "YulIdentifier", - "src": "5202:6:7" + "src": "8739:6:9" }, "nodeType": "YulFunctionCall", - "src": "5202:51:7" + "src": "8739:45:9" }, - "nodeType": "YulExpressionStatement", - "src": "5202:51:7" + "nodeType": "YulIf", + "src": "8736:71:9" } ] }, - "name": "abi_encode_tuple_t_contract$_ServiceRegistry_$682__to_t_address__fromStack_reversed", + "name": "checked_mul_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "x", "nodeType": "YulTypedName", - "src": "5126:9:7", + "src": "8676:1:9", "type": "" }, { - "name": "value0", + "name": "y", "nodeType": "YulTypedName", - "src": "5137:6:7", + "src": "8679:1:9", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "product", "nodeType": "YulTypedName", - "src": "5148:4:7", + "src": "8685:7:9", "type": "" } ], - "src": "5033:226:7" + "src": "8645:168:9" }, { "body": { "nodeType": "YulBlock", - "src": "5351:167:7", + "src": "8864:171:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "5397:16:7", + "src": "8895:111:9", "statements": [ { "expression": { @@ -20749,183 +29114,190 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "5406:1:7", + "src": "8916:1:9", "type": "", "value": "0" }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8923:3:9", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8928:10:9", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "8919:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "8919:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8909:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "8909:31:9" + }, + "nodeType": "YulExpressionStatement", + "src": "8909:31:9" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8960:1:9", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8963:4:9", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8953:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "8953:15:9" + }, + "nodeType": "YulExpressionStatement", + "src": "8953:15:9" + }, + { + "expression": { + "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "5409:1:7", + "src": "8988:1:9", "type": "", "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8991:4:9", + "type": "", + "value": "0x24" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "5399:6:7" + "src": "8981:6:9" }, "nodeType": "YulFunctionCall", - "src": "5399:12:7" + "src": "8981:15:9" }, "nodeType": "YulExpressionStatement", - "src": "5399:12:7" + "src": "8981:15:9" } ] }, "condition": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "5372:7:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5381:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "5368:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5368:23:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5393:2:7", - "type": "", - "value": "64" + "name": "y", + "nodeType": "YulIdentifier", + "src": "8884:1:9" } ], "functionName": { - "name": "slt", + "name": "iszero", "nodeType": "YulIdentifier", - "src": "5364:3:7" + "src": "8877:6:9" }, "nodeType": "YulFunctionCall", - "src": "5364:32:7" + "src": "8877:9:9" }, "nodeType": "YulIf", - "src": "5361:52:7" + "src": "8874:132:9" }, { "nodeType": "YulAssignment", - "src": "5422:39:7", + "src": "9015:14:9", "value": { "arguments": [ { - "name": "headStart", + "name": "x", "nodeType": "YulIdentifier", - "src": "5451:9:7" - } - ], - "functionName": { - "name": "abi_decode_address", - "nodeType": "YulIdentifier", - "src": "5432:18:7" - }, - "nodeType": "YulFunctionCall", - "src": "5432:29:7" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5422:6:7" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "5470:42:7", - "value": { - "arguments": [ + "src": "9024:1:9" + }, { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5497:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5508:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5493:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5493:18:7" + "name": "y", + "nodeType": "YulIdentifier", + "src": "9027:1:9" } ], "functionName": { - "name": "calldataload", + "name": "div", "nodeType": "YulIdentifier", - "src": "5480:12:7" + "src": "9020:3:9" }, "nodeType": "YulFunctionCall", - "src": "5480:32:7" + "src": "9020:9:9" }, "variableNames": [ { - "name": "value1", + "name": "r", "nodeType": "YulIdentifier", - "src": "5470:6:7" + "src": "9015:1:9" } ] } ] }, - "name": "abi_decode_tuple_t_addresst_uint256", + "name": "checked_div_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "x", "nodeType": "YulTypedName", - "src": "5309:9:7", + "src": "8849:1:9", "type": "" }, { - "name": "dataEnd", + "name": "y", "nodeType": "YulTypedName", - "src": "5320:7:7", + "src": "8852:1:9", "type": "" } ], "returnVariables": [ { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5332:6:7", - "type": "" - }, - { - "name": "value1", + "name": "r", "nodeType": "YulTypedName", - "src": "5340:6:7", + "src": "8858:1:9", "type": "" } ], - "src": "5264:254:7" + "src": "8818:217:9" }, { "body": { "nodeType": "YulBlock", - "src": "5798:462:7", + "src": "9214:176:9", "statements": [ { "expression": { @@ -20933,77 +29305,71 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "5815:9:7" + "src": "9231:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5826:3:7", + "src": "9242:2:9", "type": "", - "value": "192" + "value": "32" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "5808:6:7" + "src": "9224:6:9" }, "nodeType": "YulFunctionCall", - "src": "5808:22:7" + "src": "9224:21:9" }, "nodeType": "YulExpressionStatement", - "src": "5808:22:7" + "src": "9224:21:9" }, { - "nodeType": "YulVariableDeclaration", - "src": "5839:60:7", - "value": { + "expression": { "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5871:6:7" - }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "5883:9:7" + "src": "9265:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5894:3:7", + "src": "9276:2:9", "type": "", - "value": "192" + "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5879:3:7" + "src": "9261:3:9" }, "nodeType": "YulFunctionCall", - "src": "5879:19:7" + "src": "9261:18:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9281:2:9", + "type": "", + "value": "26" } ], "functionName": { - "name": "abi_encode_string", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "5853:17:7" + "src": "9254:6:9" }, "nodeType": "YulFunctionCall", - "src": "5853:46:7" + "src": "9254:30:9" }, - "variables": [ - { - "name": "tail_1", - "nodeType": "YulTypedName", - "src": "5843:6:7", - "type": "" - } - ] + "nodeType": "YulExpressionStatement", + "src": "9254:30:9" }, { "expression": { @@ -21013,261 +29379,131 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "5919:9:7" + "src": "9304:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5930:2:7", + "src": "9315:2:9", "type": "", - "value": "32" + "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5915:3:7" + "src": "9300:3:9" }, "nodeType": "YulFunctionCall", - "src": "5915:18:7" + "src": "9300:18:9" }, { - "arguments": [ - { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "5939:6:7" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5947:9:7" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "5935:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "5935:22:7" + "hexValue": "4e6f7420746865206f776e6572206f6620746865206167656e74", + "kind": "string", + "nodeType": "YulLiteral", + "src": "9320:28:9", + "type": "", + "value": "Not the owner of the agent" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "5908:6:7" + "src": "9293:6:9" }, "nodeType": "YulFunctionCall", - "src": "5908:50:7" + "src": "9293:56:9" }, "nodeType": "YulExpressionStatement", - "src": "5908:50:7" + "src": "9293:56:9" }, { "nodeType": "YulAssignment", - "src": "5967:41:7", + "src": "9358:26:9", "value": { "arguments": [ { - "name": "value1", + "name": "headStart", "nodeType": "YulIdentifier", - "src": "5993:6:7" + "src": "9370:9:9" }, { - "name": "tail_1", - "nodeType": "YulIdentifier", - "src": "6001:6:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "9381:2:9", + "type": "", + "value": "96" } ], "functionName": { - "name": "abi_encode_string", + "name": "add", "nodeType": "YulIdentifier", - "src": "5975:17:7" + "src": "9366:3:9" }, "nodeType": "YulFunctionCall", - "src": "5975:33:7" + "src": "9366:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "5967:4:7" + "src": "9358:4:9" } ] - }, + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_333080ba9ab8738c4a0b47b5b79d2c142d573a23f488baafda66363f88786955__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9191:9:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "9205:4:9", + "type": "" + } + ], + "src": "9040:350:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9569:175:9", + "statements": [ { - "nodeType": "YulVariableDeclaration", - "src": "6017:29:7", - "value": { + "expression": { "arguments": [ { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6035:3:7", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6040:1:7", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "6031:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6031:11:7" + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9586:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6044:1:7", + "src": "9597:2:9", "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "6027:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6027:19:7" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "6021:2:7", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6066:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6077:2:7", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6062:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6062:18:7" - }, - { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "6086:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "6094:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "6082:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6082:15:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6055:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6055:43:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6055:43:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6118:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6129:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6114:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6114:18:7" - }, - { - "arguments": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "6138:6:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "6146:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "6134:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6134:15:7" + "value": "32" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6107:6:7" + "src": "9579:6:9" }, "nodeType": "YulFunctionCall", - "src": "6107:43:7" + "src": "9579:21:9" }, "nodeType": "YulExpressionStatement", - "src": "6107:43:7" + "src": "9579:21:9" }, { "expression": { @@ -21277,40 +29513,42 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6170:9:7" + "src": "9620:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6181:3:7", + "src": "9631:2:9", "type": "", - "value": "128" + "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6166:3:7" + "src": "9616:3:9" }, "nodeType": "YulFunctionCall", - "src": "6166:19:7" + "src": "9616:18:9" }, { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "6187:6:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "9636:2:9", + "type": "", + "value": "25" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6159:6:7" + "src": "9609:6:9" }, "nodeType": "YulFunctionCall", - "src": "6159:35:7" + "src": "9609:30:9" }, "nodeType": "YulExpressionStatement", - "src": "6159:35:7" + "src": "9609:30:9" }, { "expression": { @@ -21320,435 +29558,104 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6214:9:7" + "src": "9659:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6225:3:7", + "src": "9670:2:9", "type": "", - "value": "160" + "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6210:3:7" + "src": "9655:3:9" }, "nodeType": "YulFunctionCall", - "src": "6210:19:7" + "src": "9655:18:9" }, { - "arguments": [ - { - "arguments": [ - { - "name": "value5", - "nodeType": "YulIdentifier", - "src": "6245:6:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "6238:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6238:14:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "6231:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6231:22:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6203:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6203:51:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6203:51:7" - } - ] - }, - "name": "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256_t_bool__to_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256_t_bool__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "5727:9:7", - "type": "" - }, - { - "name": "value5", - "nodeType": "YulTypedName", - "src": "5738:6:7", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "5746:6:7", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "5754:6:7", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "5762:6:7", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "5770:6:7", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5778:6:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "5789:4:7", - "type": "" - } - ], - "src": "5523:737:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6320:325:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "6330:22:7", - "value": { - "arguments": [ - { - "kind": "number", + "hexValue": "5365727669636550726f706f73616c206e6f7420666f756e64", + "kind": "string", "nodeType": "YulLiteral", - "src": "6344:1:7", + "src": "9675:27:9", "type": "", - "value": "1" - }, - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "6347:4:7" + "value": "ServiceProposal not found" } ], "functionName": { - "name": "shr", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "6340:3:7" + "src": "9648:6:9" }, "nodeType": "YulFunctionCall", - "src": "6340:12:7" + "src": "9648:55:9" }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6330:6:7" - } - ] + "nodeType": "YulExpressionStatement", + "src": "9648:55:9" }, { - "nodeType": "YulVariableDeclaration", - "src": "6361:38:7", + "nodeType": "YulAssignment", + "src": "9712:26:9", "value": { "arguments": [ { - "name": "data", + "name": "headStart", "nodeType": "YulIdentifier", - "src": "6391:4:7" + "src": "9724:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6397:1:7", + "src": "9735:2:9", "type": "", - "value": "1" + "value": "96" } ], "functionName": { - "name": "and", + "name": "add", "nodeType": "YulIdentifier", - "src": "6387:3:7" + "src": "9720:3:9" }, "nodeType": "YulFunctionCall", - "src": "6387:12:7" + "src": "9720:18:9" }, - "variables": [ + "variableNames": [ { - "name": "outOfPlaceEncoding", - "nodeType": "YulTypedName", - "src": "6365:18:7", - "type": "" + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9712:4:9" } ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6438:31:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "6440:27:7", - "value": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6454:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6462:4:7", - "type": "", - "value": "0x7f" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "6450:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6450:17:7" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6440:6:7" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulIdentifier", - "src": "6418:18:7" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "6411:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6411:26:7" - }, - "nodeType": "YulIf", - "src": "6408:61:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6528:111:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6549:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6556:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6561:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "6552:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "6552:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6542:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6542:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6542:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6593:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6596:4:7", - "type": "", - "value": "0x22" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6586:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6586:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6586:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6621:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6624:4:7", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "6614:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "6614:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "6614:15:7" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulIdentifier", - "src": "6484:18:7" - }, - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6507:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6515:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "6504:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "6504:14:7" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "6481:2:7" - }, - "nodeType": "YulFunctionCall", - "src": "6481:38:7" - }, - "nodeType": "YulIf", - "src": "6478:161:7" } ] }, - "name": "extract_byte_array_length", + "name": "abi_encode_tuple_t_stringliteral_add139ef5e0ce81551c750d068d2eb9f9e6c61a45817f3add2fc789b89b93829__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "data", + "name": "headStart", "nodeType": "YulTypedName", - "src": "6300:4:7", + "src": "9546:9:9", "type": "" } ], "returnVariables": [ { - "name": "length", + "name": "tail", "nodeType": "YulTypedName", - "src": "6309:6:7", + "src": "9560:4:9", "type": "" } ], - "src": "6265:380:7" + "src": "9395:349:9" }, { "body": { "nodeType": "YulBlock", - "src": "6824:174:7", + "src": "9923:174:9", "statements": [ { "expression": { @@ -21756,12 +29663,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6841:9:7" + "src": "9940:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6852:2:7", + "src": "9951:2:9", "type": "", "value": "32" } @@ -21769,13 +29676,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6834:6:7" + "src": "9933:6:9" }, "nodeType": "YulFunctionCall", - "src": "6834:21:7" + "src": "9933:21:9" }, "nodeType": "YulExpressionStatement", - "src": "6834:21:7" + "src": "9933:21:9" }, { "expression": { @@ -21785,12 +29692,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6875:9:7" + "src": "9974:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6886:2:7", + "src": "9985:2:9", "type": "", "value": "32" } @@ -21798,15 +29705,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6871:3:7" + "src": "9970:3:9" }, "nodeType": "YulFunctionCall", - "src": "6871:18:7" + "src": "9970:18:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6891:2:7", + "src": "9990:2:9", "type": "", "value": "24" } @@ -21814,13 +29721,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6864:6:7" + "src": "9963:6:9" }, "nodeType": "YulFunctionCall", - "src": "6864:30:7" + "src": "9963:30:9" }, "nodeType": "YulExpressionStatement", - "src": "6864:30:7" + "src": "9963:30:9" }, { "expression": { @@ -21830,12 +29737,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6914:9:7" + "src": "10013:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6925:2:7", + "src": "10024:2:9", "type": "", "value": "64" } @@ -21843,16 +29750,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6910:3:7" + "src": "10009:3:9" }, "nodeType": "YulFunctionCall", - "src": "6910:18:7" + "src": "10009:18:9" }, { "hexValue": "4167656e7420616c72656164792072656769737465726564", "kind": "string", "nodeType": "YulLiteral", - "src": "6930:26:7", + "src": "10029:26:9", "type": "", "value": "Agent already registered" } @@ -21860,28 +29767,28 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6903:6:7" + "src": "10002:6:9" }, "nodeType": "YulFunctionCall", - "src": "6903:54:7" + "src": "10002:54:9" }, "nodeType": "YulExpressionStatement", - "src": "6903:54:7" + "src": "10002:54:9" }, { "nodeType": "YulAssignment", - "src": "6966:26:7", + "src": "10065:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6978:9:7" + "src": "10077:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6989:2:7", + "src": "10088:2:9", "type": "", "value": "96" } @@ -21889,16 +29796,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6974:3:7" + "src": "10073:3:9" }, "nodeType": "YulFunctionCall", - "src": "6974:18:7" + "src": "10073:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "6966:4:7" + "src": "10065:4:9" } ] } @@ -21910,7 +29817,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "6801:9:7", + "src": "9900:9:9", "type": "" } ], @@ -21918,16 +29825,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "6815:4:7", + "src": "9914:4:9", "type": "" } ], - "src": "6650:348:7" + "src": "9749:348:9" }, { "body": { "nodeType": "YulBlock", - "src": "7124:99:7", + "src": "10223:99:9", "statements": [ { "expression": { @@ -21935,12 +29842,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "7141:9:7" + "src": "10240:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7152:2:7", + "src": "10251:2:9", "type": "", "value": "32" } @@ -21948,35 +29855,35 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "7134:6:7" + "src": "10233:6:9" }, "nodeType": "YulFunctionCall", - "src": "7134:21:7" + "src": "10233:21:9" }, "nodeType": "YulExpressionStatement", - "src": "7134:21:7" + "src": "10233:21:9" }, { "nodeType": "YulAssignment", - "src": "7164:53:7", + "src": "10263:53:9", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "7190:6:7" + "src": "10289:6:9" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "7202:9:7" + "src": "10301:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7213:2:7", + "src": "10312:2:9", "type": "", "value": "32" } @@ -21984,25 +29891,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7198:3:7" + "src": "10297:3:9" }, "nodeType": "YulFunctionCall", - "src": "7198:18:7" + "src": "10297:18:9" } ], "functionName": { "name": "abi_encode_string", "nodeType": "YulIdentifier", - "src": "7172:17:7" + "src": "10271:17:9" }, "nodeType": "YulFunctionCall", - "src": "7172:45:7" + "src": "10271:45:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "7164:4:7" + "src": "10263:4:9" } ] } @@ -22014,13 +29921,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "7093:9:7", + "src": "10192:9:9", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "7104:6:7", + "src": "10203:6:9", "type": "" } ], @@ -22028,21 +29935,21 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "7115:4:7", + "src": "10214:4:9", "type": "" } ], - "src": "7003:220:7" + "src": "10102:220:9" }, { "body": { "nodeType": "YulBlock", - "src": "7306:199:7", + "src": "10405:199:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "7352:16:7", + "src": "10451:16:9", "statements": [ { "expression": { @@ -22050,14 +29957,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "7361:1:7", + "src": "10460:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7364:1:7", + "src": "10463:1:9", "type": "", "value": "0" } @@ -22065,13 +29972,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "7354:6:7" + "src": "10453:6:9" }, "nodeType": "YulFunctionCall", - "src": "7354:12:7" + "src": "10453:12:9" }, "nodeType": "YulExpressionStatement", - "src": "7354:12:7" + "src": "10453:12:9" } ] }, @@ -22082,26 +29989,26 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "7327:7:7" + "src": "10426:7:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "7336:9:7" + "src": "10435:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "7323:3:7" + "src": "10422:3:9" }, "nodeType": "YulFunctionCall", - "src": "7323:23:7" + "src": "10422:23:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7348:2:7", + "src": "10447:2:9", "type": "", "value": "32" } @@ -22109,38 +30016,38 @@ "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "7319:3:7" + "src": "10418:3:9" }, "nodeType": "YulFunctionCall", - "src": "7319:32:7" + "src": "10418:32:9" }, "nodeType": "YulIf", - "src": "7316:52:7" + "src": "10415:52:9" }, { "nodeType": "YulVariableDeclaration", - "src": "7377:29:7", + "src": "10476:29:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "7396:9:7" + "src": "10495:9:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "7390:5:7" + "src": "10489:5:9" }, "nodeType": "YulFunctionCall", - "src": "7390:16:7" + "src": "10489:16:9" }, "variables": [ { "name": "value", "nodeType": "YulTypedName", - "src": "7381:5:7", + "src": "10480:5:9", "type": "" } ] @@ -22148,7 +30055,7 @@ { "body": { "nodeType": "YulBlock", - "src": "7459:16:7", + "src": "10558:16:9", "statements": [ { "expression": { @@ -22156,14 +30063,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "7468:1:7", + "src": "10567:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7471:1:7", + "src": "10570:1:9", "type": "", "value": "0" } @@ -22171,13 +30078,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "7461:6:7" + "src": "10560:6:9" }, "nodeType": "YulFunctionCall", - "src": "7461:12:7" + "src": "10560:12:9" }, "nodeType": "YulExpressionStatement", - "src": "7461:12:7" + "src": "10560:12:9" } ] }, @@ -22188,7 +30095,7 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "7428:5:7" + "src": "10527:5:9" }, { "arguments": [ @@ -22197,60 +30104,60 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "7449:5:7" + "src": "10548:5:9" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "7442:6:7" + "src": "10541:6:9" }, "nodeType": "YulFunctionCall", - "src": "7442:13:7" + "src": "10541:13:9" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "7435:6:7" + "src": "10534:6:9" }, "nodeType": "YulFunctionCall", - "src": "7435:21:7" + "src": "10534:21:9" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "7425:2:7" + "src": "10524:2:9" }, "nodeType": "YulFunctionCall", - "src": "7425:32:7" + "src": "10524:32:9" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "7418:6:7" + "src": "10517:6:9" }, "nodeType": "YulFunctionCall", - "src": "7418:40:7" + "src": "10517:40:9" }, "nodeType": "YulIf", - "src": "7415:60:7" + "src": "10514:60:9" }, { "nodeType": "YulAssignment", - "src": "7484:15:7", + "src": "10583:15:9", "value": { "name": "value", "nodeType": "YulIdentifier", - "src": "7494:5:7" + "src": "10593:5:9" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "7484:6:7" + "src": "10583:6:9" } ] } @@ -22262,13 +30169,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "7272:9:7", + "src": "10371:9:9", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "7283:7:7", + "src": "10382:7:9", "type": "" } ], @@ -22276,16 +30183,16 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "7295:6:7", + "src": "10394:6:9", "type": "" } ], - "src": "7228:277:7" + "src": "10327:277:9" }, { "body": { "nodeType": "YulBlock", - "src": "7684:172:7", + "src": "10783:172:9", "statements": [ { "expression": { @@ -22293,12 +30200,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "7701:9:7" + "src": "10800:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7712:2:7", + "src": "10811:2:9", "type": "", "value": "32" } @@ -22306,13 +30213,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "7694:6:7" + "src": "10793:6:9" }, "nodeType": "YulFunctionCall", - "src": "7694:21:7" + "src": "10793:21:9" }, "nodeType": "YulExpressionStatement", - "src": "7694:21:7" + "src": "10793:21:9" }, { "expression": { @@ -22322,12 +30229,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "7735:9:7" + "src": "10834:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7746:2:7", + "src": "10845:2:9", "type": "", "value": "32" } @@ -22335,15 +30242,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7731:3:7" + "src": "10830:3:9" }, "nodeType": "YulFunctionCall", - "src": "7731:18:7" + "src": "10830:18:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7751:2:7", + "src": "10850:2:9", "type": "", "value": "22" } @@ -22351,13 +30258,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "7724:6:7" + "src": "10823:6:9" }, "nodeType": "YulFunctionCall", - "src": "7724:30:7" + "src": "10823:30:9" }, "nodeType": "YulExpressionStatement", - "src": "7724:30:7" + "src": "10823:30:9" }, { "expression": { @@ -22367,12 +30274,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "7774:9:7" + "src": "10873:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7785:2:7", + "src": "10884:2:9", "type": "", "value": "64" } @@ -22380,16 +30287,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7770:3:7" + "src": "10869:3:9" }, "nodeType": "YulFunctionCall", - "src": "7770:18:7" + "src": "10869:18:9" }, { "hexValue": "53657276696365206e6f742072656769737465726564", "kind": "string", "nodeType": "YulLiteral", - "src": "7790:24:7", + "src": "10889:24:9", "type": "", "value": "Service not registered" } @@ -22397,28 +30304,28 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "7763:6:7" + "src": "10862:6:9" }, "nodeType": "YulFunctionCall", - "src": "7763:52:7" + "src": "10862:52:9" }, "nodeType": "YulExpressionStatement", - "src": "7763:52:7" + "src": "10862:52:9" }, { "nodeType": "YulAssignment", - "src": "7824:26:7", + "src": "10923:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "7836:9:7" + "src": "10935:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7847:2:7", + "src": "10946:2:9", "type": "", "value": "96" } @@ -22426,16 +30333,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7832:3:7" + "src": "10931:3:9" }, "nodeType": "YulFunctionCall", - "src": "7832:18:7" + "src": "10931:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "7824:4:7" + "src": "10923:4:9" } ] } @@ -22447,7 +30354,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "7661:9:7", + "src": "10760:9:9", "type": "" } ], @@ -22455,16 +30362,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "7675:4:7", + "src": "10774:4:9", "type": "" } ], - "src": "7510:346:7" + "src": "10609:346:9" }, { "body": { "nodeType": "YulBlock", - "src": "7917:65:7", + "src": "11016:65:9", "statements": [ { "expression": { @@ -22472,43 +30379,43 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "7934:1:7", + "src": "11033:1:9", "type": "", "value": "0" }, { "name": "ptr", "nodeType": "YulIdentifier", - "src": "7937:3:7" + "src": "11036:3:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "7927:6:7" + "src": "11026:6:9" }, "nodeType": "YulFunctionCall", - "src": "7927:14:7" + "src": "11026:14:9" }, "nodeType": "YulExpressionStatement", - "src": "7927:14:7" + "src": "11026:14:9" }, { "nodeType": "YulAssignment", - "src": "7950:26:7", + "src": "11049:26:9", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "7968:1:7", + "src": "11067:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7971:4:7", + "src": "11070:4:9", "type": "", "value": "0x20" } @@ -22516,16 +30423,16 @@ "functionName": { "name": "keccak256", "nodeType": "YulIdentifier", - "src": "7958:9:7" + "src": "11057:9:9" }, "nodeType": "YulFunctionCall", - "src": "7958:18:7" + "src": "11057:18:9" }, "variableNames": [ { "name": "data", "nodeType": "YulIdentifier", - "src": "7950:4:7" + "src": "11049:4:9" } ] } @@ -22537,7 +30444,7 @@ { "name": "ptr", "nodeType": "YulTypedName", - "src": "7900:3:7", + "src": "10999:3:9", "type": "" } ], @@ -22545,29 +30452,29 @@ { "name": "data", "nodeType": "YulTypedName", - "src": "7908:4:7", + "src": "11007:4:9", "type": "" } ], - "src": "7861:121:7" + "src": "10960:121:9" }, { "body": { "nodeType": "YulBlock", - "src": "8068:464:7", + "src": "11167:464:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "8101:425:7", + "src": "11200:425:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "8115:11:7", + "src": "11214:11:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "8125:1:7", + "src": "11224:1:9", "type": "", "value": "0" }, @@ -22575,7 +30482,7 @@ { "name": "_1", "nodeType": "YulTypedName", - "src": "8119:2:7", + "src": "11218:2:9", "type": "" } ] @@ -22586,39 +30493,39 @@ { "name": "_1", "nodeType": "YulIdentifier", - "src": "8146:2:7" + "src": "11245:2:9" }, { "name": "array", "nodeType": "YulIdentifier", - "src": "8150:5:7" + "src": "11249:5:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "8139:6:7" + "src": "11238:6:9" }, "nodeType": "YulFunctionCall", - "src": "8139:17:7" + "src": "11238:17:9" }, "nodeType": "YulExpressionStatement", - "src": "8139:17:7" + "src": "11238:17:9" }, { "nodeType": "YulVariableDeclaration", - "src": "8169:31:7", + "src": "11268:31:9", "value": { "arguments": [ { "name": "_1", "nodeType": "YulIdentifier", - "src": "8191:2:7" + "src": "11290:2:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8195:4:7", + "src": "11294:4:9", "type": "", "value": "0x20" } @@ -22626,36 +30533,36 @@ "functionName": { "name": "keccak256", "nodeType": "YulIdentifier", - "src": "8181:9:7" + "src": "11280:9:9" }, "nodeType": "YulFunctionCall", - "src": "8181:19:7" + "src": "11280:19:9" }, "variables": [ { "name": "data", "nodeType": "YulTypedName", - "src": "8173:4:7", + "src": "11272:4:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "8213:57:7", + "src": "11312:57:9", "value": { "arguments": [ { "name": "data", "nodeType": "YulIdentifier", - "src": "8236:4:7" + "src": "11335:4:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "8246:1:7", + "src": "11345:1:9", "type": "", "value": "5" }, @@ -22664,12 +30571,12 @@ { "name": "startIndex", "nodeType": "YulIdentifier", - "src": "8253:10:7" + "src": "11352:10:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8265:2:7", + "src": "11364:2:9", "type": "", "value": "31" } @@ -22677,34 +30584,34 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8249:3:7" + "src": "11348:3:9" }, "nodeType": "YulFunctionCall", - "src": "8249:19:7" + "src": "11348:19:9" } ], "functionName": { "name": "shr", "nodeType": "YulIdentifier", - "src": "8242:3:7" + "src": "11341:3:9" }, "nodeType": "YulFunctionCall", - "src": "8242:27:7" + "src": "11341:27:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8232:3:7" + "src": "11331:3:9" }, "nodeType": "YulFunctionCall", - "src": "8232:38:7" + "src": "11331:38:9" }, "variables": [ { "name": "deleteStart", "nodeType": "YulTypedName", - "src": "8217:11:7", + "src": "11316:11:9", "type": "" } ] @@ -22712,21 +30619,21 @@ { "body": { "nodeType": "YulBlock", - "src": "8307:23:7", + "src": "11406:23:9", "statements": [ { "nodeType": "YulAssignment", - "src": "8309:19:7", + "src": "11408:19:9", "value": { "name": "data", "nodeType": "YulIdentifier", - "src": "8324:4:7" + "src": "11423:4:9" }, "variableNames": [ { "name": "deleteStart", "nodeType": "YulIdentifier", - "src": "8309:11:7" + "src": "11408:11:9" } ] } @@ -22737,12 +30644,12 @@ { "name": "startIndex", "nodeType": "YulIdentifier", - "src": "8289:10:7" + "src": "11388:10:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8301:4:7", + "src": "11400:4:9", "type": "", "value": "0x20" } @@ -22750,30 +30657,30 @@ "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "8286:2:7" + "src": "11385:2:9" }, "nodeType": "YulFunctionCall", - "src": "8286:20:7" + "src": "11385:20:9" }, "nodeType": "YulIf", - "src": "8283:47:7" + "src": "11382:47:9" }, { "nodeType": "YulVariableDeclaration", - "src": "8343:41:7", + "src": "11442:41:9", "value": { "arguments": [ { "name": "data", "nodeType": "YulIdentifier", - "src": "8357:4:7" + "src": "11456:4:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "8367:1:7", + "src": "11466:1:9", "type": "", "value": "5" }, @@ -22782,12 +30689,12 @@ { "name": "len", "nodeType": "YulIdentifier", - "src": "8374:3:7" + "src": "11473:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8379:2:7", + "src": "11478:2:9", "type": "", "value": "31" } @@ -22795,51 +30702,51 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8370:3:7" + "src": "11469:3:9" }, "nodeType": "YulFunctionCall", - "src": "8370:12:7" + "src": "11469:12:9" } ], "functionName": { "name": "shr", "nodeType": "YulIdentifier", - "src": "8363:3:7" + "src": "11462:3:9" }, "nodeType": "YulFunctionCall", - "src": "8363:20:7" + "src": "11462:20:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8353:3:7" + "src": "11452:3:9" }, "nodeType": "YulFunctionCall", - "src": "8353:31:7" + "src": "11452:31:9" }, "variables": [ { "name": "_2", "nodeType": "YulTypedName", - "src": "8347:2:7", + "src": "11446:2:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "8397:24:7", + "src": "11496:24:9", "value": { "name": "deleteStart", "nodeType": "YulIdentifier", - "src": "8410:11:7" + "src": "11509:11:9" }, "variables": [ { "name": "start", "nodeType": "YulTypedName", - "src": "8401:5:7", + "src": "11500:5:9", "type": "" } ] @@ -22847,7 +30754,7 @@ { "body": { "nodeType": "YulBlock", - "src": "8495:21:7", + "src": "11594:21:9", "statements": [ { "expression": { @@ -22855,24 +30762,24 @@ { "name": "start", "nodeType": "YulIdentifier", - "src": "8504:5:7" + "src": "11603:5:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "8511:2:7" + "src": "11610:2:9" } ], "functionName": { "name": "sstore", "nodeType": "YulIdentifier", - "src": "8497:6:7" + "src": "11596:6:9" }, "nodeType": "YulFunctionCall", - "src": "8497:17:7" + "src": "11596:17:9" }, "nodeType": "YulExpressionStatement", - "src": "8497:17:7" + "src": "11596:17:9" } ] }, @@ -22881,41 +30788,41 @@ { "name": "start", "nodeType": "YulIdentifier", - "src": "8445:5:7" + "src": "11544:5:9" }, { "name": "_2", "nodeType": "YulIdentifier", - "src": "8452:2:7" + "src": "11551:2:9" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "8442:2:7" + "src": "11541:2:9" }, "nodeType": "YulFunctionCall", - "src": "8442:13:7" + "src": "11541:13:9" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", - "src": "8456:26:7", + "src": "11555:26:9", "statements": [ { "nodeType": "YulAssignment", - "src": "8458:22:7", + "src": "11557:22:9", "value": { "arguments": [ { "name": "start", "nodeType": "YulIdentifier", - "src": "8471:5:7" + "src": "11570:5:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8478:1:7", + "src": "11577:1:9", "type": "", "value": "1" } @@ -22923,16 +30830,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8467:3:7" + "src": "11566:3:9" }, "nodeType": "YulFunctionCall", - "src": "8467:13:7" + "src": "11566:13:9" }, "variableNames": [ { "name": "start", "nodeType": "YulIdentifier", - "src": "8458:5:7" + "src": "11557:5:9" } ] } @@ -22940,10 +30847,10 @@ }, "pre": { "nodeType": "YulBlock", - "src": "8438:3:7", + "src": "11537:3:9", "statements": [] }, - "src": "8434:82:7" + "src": "11533:82:9" } ] }, @@ -22952,12 +30859,12 @@ { "name": "len", "nodeType": "YulIdentifier", - "src": "8084:3:7" + "src": "11183:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8089:2:7", + "src": "11188:2:9", "type": "", "value": "31" } @@ -22965,13 +30872,13 @@ "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "8081:2:7" + "src": "11180:2:9" }, "nodeType": "YulFunctionCall", - "src": "8081:11:7" + "src": "11180:11:9" }, "nodeType": "YulIf", - "src": "8078:448:7" + "src": "11177:448:9" } ] }, @@ -22981,32 +30888,32 @@ { "name": "array", "nodeType": "YulTypedName", - "src": "8040:5:7", + "src": "11139:5:9", "type": "" }, { "name": "len", "nodeType": "YulTypedName", - "src": "8047:3:7", + "src": "11146:3:9", "type": "" }, { "name": "startIndex", "nodeType": "YulTypedName", - "src": "8052:10:7", + "src": "11151:10:9", "type": "" } ], - "src": "7987:545:7" + "src": "11086:545:9" }, { "body": { "nodeType": "YulBlock", - "src": "8622:81:7", + "src": "11721:81:9", "statements": [ { "nodeType": "YulAssignment", - "src": "8632:65:7", + "src": "11731:65:9", "value": { "arguments": [ { @@ -23014,7 +30921,7 @@ { "name": "data", "nodeType": "YulIdentifier", - "src": "8647:4:7" + "src": "11746:4:9" }, { "arguments": [ @@ -23025,30 +30932,30 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "8665:1:7", + "src": "11764:1:9", "type": "", "value": "3" }, { "name": "len", "nodeType": "YulIdentifier", - "src": "8668:3:7" + "src": "11767:3:9" } ], "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "8661:3:7" + "src": "11760:3:9" }, "nodeType": "YulFunctionCall", - "src": "8661:11:7" + "src": "11760:11:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "8678:1:7", + "src": "11777:1:9", "type": "", "value": "0" } @@ -23056,75 +30963,75 @@ "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "8674:3:7" + "src": "11773:3:9" }, "nodeType": "YulFunctionCall", - "src": "8674:6:7" + "src": "11773:6:9" } ], "functionName": { "name": "shr", "nodeType": "YulIdentifier", - "src": "8657:3:7" + "src": "11756:3:9" }, "nodeType": "YulFunctionCall", - "src": "8657:24:7" + "src": "11756:24:9" } ], "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "8653:3:7" + "src": "11752:3:9" }, "nodeType": "YulFunctionCall", - "src": "8653:29:7" + "src": "11752:29:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "8643:3:7" + "src": "11742:3:9" }, "nodeType": "YulFunctionCall", - "src": "8643:40:7" + "src": "11742:40:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "8689:1:7", + "src": "11788:1:9", "type": "", "value": "1" }, { "name": "len", "nodeType": "YulIdentifier", - "src": "8692:3:7" + "src": "11791:3:9" } ], "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "8685:3:7" + "src": "11784:3:9" }, "nodeType": "YulFunctionCall", - "src": "8685:11:7" + "src": "11784:11:9" } ], "functionName": { "name": "or", "nodeType": "YulIdentifier", - "src": "8640:2:7" + "src": "11739:2:9" }, "nodeType": "YulFunctionCall", - "src": "8640:57:7" + "src": "11739:57:9" }, "variableNames": [ { "name": "used", "nodeType": "YulIdentifier", - "src": "8632:4:7" + "src": "11731:4:9" } ] } @@ -23136,13 +31043,13 @@ { "name": "data", "nodeType": "YulTypedName", - "src": "8599:4:7", + "src": "11698:4:9", "type": "" }, { "name": "len", "nodeType": "YulTypedName", - "src": "8605:3:7", + "src": "11704:3:9", "type": "" } ], @@ -23150,41 +31057,41 @@ { "name": "used", "nodeType": "YulTypedName", - "src": "8613:4:7", + "src": "11712:4:9", "type": "" } ], - "src": "8537:166:7" + "src": "11636:166:9" }, { "body": { "nodeType": "YulBlock", - "src": "8804:1256:7", + "src": "11903:1256:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "8814:24:7", + "src": "11913:24:9", "value": { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", - "src": "8834:3:7" + "src": "11933:3:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "8828:5:7" + "src": "11927:5:9" }, "nodeType": "YulFunctionCall", - "src": "8828:10:7" + "src": "11927:10:9" }, "variables": [ { "name": "newLen", "nodeType": "YulTypedName", - "src": "8818:6:7", + "src": "11917:6:9", "type": "" } ] @@ -23192,7 +31099,7 @@ { "body": { "nodeType": "YulBlock", - "src": "8881:22:7", + "src": "11980:22:9", "statements": [ { "expression": { @@ -23200,13 +31107,13 @@ "functionName": { "name": "panic_error_0x41", "nodeType": "YulIdentifier", - "src": "8883:16:7" + "src": "11982:16:9" }, "nodeType": "YulFunctionCall", - "src": "8883:18:7" + "src": "11982:18:9" }, "nodeType": "YulExpressionStatement", - "src": "8883:18:7" + "src": "11982:18:9" } ] }, @@ -23215,12 +31122,12 @@ { "name": "newLen", "nodeType": "YulIdentifier", - "src": "8853:6:7" + "src": "11952:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8861:18:7", + "src": "11960:18:9", "type": "", "value": "0xffffffffffffffff" } @@ -23228,13 +31135,13 @@ "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "8850:2:7" + "src": "11949:2:9" }, "nodeType": "YulFunctionCall", - "src": "8850:30:7" + "src": "11949:30:9" }, "nodeType": "YulIf", - "src": "8847:56:7" + "src": "11946:56:9" }, { "expression": { @@ -23242,7 +31149,7 @@ { "name": "slot", "nodeType": "YulIdentifier", - "src": "8956:4:7" + "src": "12055:4:9" }, { "arguments": [ @@ -23251,50 +31158,50 @@ { "name": "slot", "nodeType": "YulIdentifier", - "src": "8994:4:7" + "src": "12093:4:9" } ], "functionName": { "name": "sload", "nodeType": "YulIdentifier", - "src": "8988:5:7" + "src": "12087:5:9" }, "nodeType": "YulFunctionCall", - "src": "8988:11:7" + "src": "12087:11:9" } ], "functionName": { "name": "extract_byte_array_length", "nodeType": "YulIdentifier", - "src": "8962:25:7" + "src": "12061:25:9" }, "nodeType": "YulFunctionCall", - "src": "8962:38:7" + "src": "12061:38:9" }, { "name": "newLen", "nodeType": "YulIdentifier", - "src": "9002:6:7" + "src": "12101:6:9" } ], "functionName": { "name": "clean_up_bytearray_end_slots_string_storage", "nodeType": "YulIdentifier", - "src": "8912:43:7" + "src": "12011:43:9" }, "nodeType": "YulFunctionCall", - "src": "8912:97:7" + "src": "12011:97:9" }, "nodeType": "YulExpressionStatement", - "src": "8912:97:7" + "src": "12011:97:9" }, { "nodeType": "YulVariableDeclaration", - "src": "9018:18:7", + "src": "12117:18:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "9035:1:7", + "src": "12134:1:9", "type": "", "value": "0" }, @@ -23302,18 +31209,18 @@ { "name": "srcOffset", "nodeType": "YulTypedName", - "src": "9022:9:7", + "src": "12121:9:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "9045:23:7", + "src": "12144:23:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "9064:4:7", + "src": "12163:4:9", "type": "", "value": "0x20" }, @@ -23321,24 +31228,24 @@ { "name": "srcOffset_1", "nodeType": "YulTypedName", - "src": "9049:11:7", + "src": "12148:11:9", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "9077:24:7", + "src": "12176:24:9", "value": { "name": "srcOffset_1", "nodeType": "YulIdentifier", - "src": "9090:11:7" + "src": "12189:11:9" }, "variableNames": [ { "name": "srcOffset", "nodeType": "YulIdentifier", - "src": "9077:9:7" + "src": "12176:9:9" } ] }, @@ -23347,24 +31254,24 @@ { "body": { "nodeType": "YulBlock", - "src": "9147:656:7", + "src": "12246:656:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "9161:35:7", + "src": "12260:35:9", "value": { "arguments": [ { "name": "newLen", "nodeType": "YulIdentifier", - "src": "9180:6:7" + "src": "12279:6:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "9192:2:7", + "src": "12291:2:9", "type": "", "value": "31" } @@ -23372,64 +31279,64 @@ "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "9188:3:7" + "src": "12287:3:9" }, "nodeType": "YulFunctionCall", - "src": "9188:7:7" + "src": "12287:7:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "9176:3:7" + "src": "12275:3:9" }, "nodeType": "YulFunctionCall", - "src": "9176:20:7" + "src": "12275:20:9" }, "variables": [ { "name": "loopEnd", "nodeType": "YulTypedName", - "src": "9165:7:7", + "src": "12264:7:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "9209:49:7", + "src": "12308:49:9", "value": { "arguments": [ { "name": "slot", "nodeType": "YulIdentifier", - "src": "9253:4:7" + "src": "12352:4:9" } ], "functionName": { "name": "array_dataslot_string_storage", "nodeType": "YulIdentifier", - "src": "9223:29:7" + "src": "12322:29:9" }, "nodeType": "YulFunctionCall", - "src": "9223:35:7" + "src": "12322:35:9" }, "variables": [ { "name": "dstPtr", "nodeType": "YulTypedName", - "src": "9213:6:7", + "src": "12312:6:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "9271:10:7", + "src": "12370:10:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "9280:1:7", + "src": "12379:1:9", "type": "", "value": "0" }, @@ -23437,7 +31344,7 @@ { "name": "i", "nodeType": "YulTypedName", - "src": "9275:1:7", + "src": "12374:1:9", "type": "" } ] @@ -23445,7 +31352,7 @@ { "body": { "nodeType": "YulBlock", - "src": "9358:172:7", + "src": "12457:172:9", "statements": [ { "expression": { @@ -23453,7 +31360,7 @@ { "name": "dstPtr", "nodeType": "YulIdentifier", - "src": "9383:6:7" + "src": "12482:6:9" }, { "arguments": [ @@ -23462,57 +31369,57 @@ { "name": "src", "nodeType": "YulIdentifier", - "src": "9401:3:7" + "src": "12500:3:9" }, { "name": "srcOffset", "nodeType": "YulIdentifier", - "src": "9406:9:7" + "src": "12505:9:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "9397:3:7" + "src": "12496:3:9" }, "nodeType": "YulFunctionCall", - "src": "9397:19:7" + "src": "12496:19:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "9391:5:7" + "src": "12490:5:9" }, "nodeType": "YulFunctionCall", - "src": "9391:26:7" + "src": "12490:26:9" } ], "functionName": { "name": "sstore", "nodeType": "YulIdentifier", - "src": "9376:6:7" + "src": "12475:6:9" }, "nodeType": "YulFunctionCall", - "src": "9376:42:7" + "src": "12475:42:9" }, "nodeType": "YulExpressionStatement", - "src": "9376:42:7" + "src": "12475:42:9" }, { "nodeType": "YulAssignment", - "src": "9435:24:7", + "src": "12534:24:9", "value": { "arguments": [ { "name": "dstPtr", "nodeType": "YulIdentifier", - "src": "9449:6:7" + "src": "12548:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9457:1:7", + "src": "12556:1:9", "type": "", "value": "1" } @@ -23520,48 +31427,48 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "9445:3:7" + "src": "12544:3:9" }, "nodeType": "YulFunctionCall", - "src": "9445:14:7" + "src": "12544:14:9" }, "variableNames": [ { "name": "dstPtr", "nodeType": "YulIdentifier", - "src": "9435:6:7" + "src": "12534:6:9" } ] }, { "nodeType": "YulAssignment", - "src": "9476:40:7", + "src": "12575:40:9", "value": { "arguments": [ { "name": "srcOffset", "nodeType": "YulIdentifier", - "src": "9493:9:7" + "src": "12592:9:9" }, { "name": "srcOffset_1", "nodeType": "YulIdentifier", - "src": "9504:11:7" + "src": "12603:11:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "9489:3:7" + "src": "12588:3:9" }, "nodeType": "YulFunctionCall", - "src": "9489:27:7" + "src": "12588:27:9" }, "variableNames": [ { "name": "srcOffset", "nodeType": "YulIdentifier", - "src": "9476:9:7" + "src": "12575:9:9" } ] } @@ -23572,56 +31479,56 @@ { "name": "i", "nodeType": "YulIdentifier", - "src": "9305:1:7" + "src": "12404:1:9" }, { "name": "loopEnd", "nodeType": "YulIdentifier", - "src": "9308:7:7" + "src": "12407:7:9" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "9302:2:7" + "src": "12401:2:9" }, "nodeType": "YulFunctionCall", - "src": "9302:14:7" + "src": "12401:14:9" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", - "src": "9317:28:7", + "src": "12416:28:9", "statements": [ { "nodeType": "YulAssignment", - "src": "9319:24:7", + "src": "12418:24:9", "value": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", - "src": "9328:1:7" + "src": "12427:1:9" }, { "name": "srcOffset_1", "nodeType": "YulIdentifier", - "src": "9331:11:7" + "src": "12430:11:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "9324:3:7" + "src": "12423:3:9" }, "nodeType": "YulFunctionCall", - "src": "9324:19:7" + "src": "12423:19:9" }, "variableNames": [ { "name": "i", "nodeType": "YulIdentifier", - "src": "9319:1:7" + "src": "12418:1:9" } ] } @@ -23629,19 +31536,19 @@ }, "pre": { "nodeType": "YulBlock", - "src": "9298:3:7", + "src": "12397:3:9", "statements": [] }, - "src": "9294:236:7" + "src": "12393:236:9" }, { "body": { "nodeType": "YulBlock", - "src": "9578:166:7", + "src": "12677:166:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "9596:43:7", + "src": "12695:43:9", "value": { "arguments": [ { @@ -23649,36 +31556,36 @@ { "name": "src", "nodeType": "YulIdentifier", - "src": "9623:3:7" + "src": "12722:3:9" }, { "name": "srcOffset", "nodeType": "YulIdentifier", - "src": "9628:9:7" + "src": "12727:9:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "9619:3:7" + "src": "12718:3:9" }, "nodeType": "YulFunctionCall", - "src": "9619:19:7" + "src": "12718:19:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "9613:5:7" + "src": "12712:5:9" }, "nodeType": "YulFunctionCall", - "src": "9613:26:7" + "src": "12712:26:9" }, "variables": [ { "name": "lastValue", "nodeType": "YulTypedName", - "src": "9600:9:7", + "src": "12699:9:9", "type": "" } ] @@ -23689,14 +31596,14 @@ { "name": "dstPtr", "nodeType": "YulIdentifier", - "src": "9663:6:7" + "src": "12762:6:9" }, { "arguments": [ { "name": "lastValue", "nodeType": "YulIdentifier", - "src": "9675:9:7" + "src": "12774:9:9" }, { "arguments": [ @@ -23709,28 +31616,28 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "9702:1:7", + "src": "12801:1:9", "type": "", "value": "3" }, { "name": "newLen", "nodeType": "YulIdentifier", - "src": "9705:6:7" + "src": "12804:6:9" } ], "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "9698:3:7" + "src": "12797:3:9" }, "nodeType": "YulFunctionCall", - "src": "9698:14:7" + "src": "12797:14:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9714:3:7", + "src": "12813:3:9", "type": "", "value": "248" } @@ -23738,17 +31645,17 @@ "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "9694:3:7" + "src": "12793:3:9" }, "nodeType": "YulFunctionCall", - "src": "9694:24:7" + "src": "12793:24:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "9724:1:7", + "src": "12823:1:9", "type": "", "value": "0" } @@ -23756,49 +31663,49 @@ "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "9720:3:7" + "src": "12819:3:9" }, "nodeType": "YulFunctionCall", - "src": "9720:6:7" + "src": "12819:6:9" } ], "functionName": { "name": "shr", "nodeType": "YulIdentifier", - "src": "9690:3:7" + "src": "12789:3:9" }, "nodeType": "YulFunctionCall", - "src": "9690:37:7" + "src": "12789:37:9" } ], "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "9686:3:7" + "src": "12785:3:9" }, "nodeType": "YulFunctionCall", - "src": "9686:42:7" + "src": "12785:42:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "9671:3:7" + "src": "12770:3:9" }, "nodeType": "YulFunctionCall", - "src": "9671:58:7" + "src": "12770:58:9" } ], "functionName": { "name": "sstore", "nodeType": "YulIdentifier", - "src": "9656:6:7" + "src": "12755:6:9" }, "nodeType": "YulFunctionCall", - "src": "9656:74:7" + "src": "12755:74:9" }, "nodeType": "YulExpressionStatement", - "src": "9656:74:7" + "src": "12755:74:9" } ] }, @@ -23807,24 +31714,24 @@ { "name": "loopEnd", "nodeType": "YulIdentifier", - "src": "9549:7:7" + "src": "12648:7:9" }, { "name": "newLen", "nodeType": "YulIdentifier", - "src": "9558:6:7" + "src": "12657:6:9" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "9546:2:7" + "src": "12645:2:9" }, "nodeType": "YulFunctionCall", - "src": "9546:19:7" + "src": "12645:19:9" }, "nodeType": "YulIf", - "src": "9543:201:7" + "src": "12642:201:9" }, { "expression": { @@ -23832,7 +31739,7 @@ { "name": "slot", "nodeType": "YulIdentifier", - "src": "9764:4:7" + "src": "12863:4:9" }, { "arguments": [ @@ -23841,28 +31748,28 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "9778:1:7", + "src": "12877:1:9", "type": "", "value": "1" }, { "name": "newLen", "nodeType": "YulIdentifier", - "src": "9781:6:7" + "src": "12880:6:9" } ], "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "9774:3:7" + "src": "12873:3:9" }, "nodeType": "YulFunctionCall", - "src": "9774:14:7" + "src": "12873:14:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9790:1:7", + "src": "12889:1:9", "type": "", "value": "1" } @@ -23870,31 +31777,31 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "9770:3:7" + "src": "12869:3:9" }, "nodeType": "YulFunctionCall", - "src": "9770:22:7" + "src": "12869:22:9" } ], "functionName": { "name": "sstore", "nodeType": "YulIdentifier", - "src": "9757:6:7" + "src": "12856:6:9" }, "nodeType": "YulFunctionCall", - "src": "9757:36:7" + "src": "12856:36:9" }, "nodeType": "YulExpressionStatement", - "src": "9757:36:7" + "src": "12856:36:9" } ] }, "nodeType": "YulCase", - "src": "9140:663:7", + "src": "12239:663:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "9145:1:7", + "src": "12244:1:9", "type": "", "value": "1" } @@ -23902,15 +31809,15 @@ { "body": { "nodeType": "YulBlock", - "src": "9820:234:7", + "src": "12919:234:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "9834:14:7", + "src": "12933:14:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "9847:1:7", + "src": "12946:1:9", "type": "", "value": "0" }, @@ -23918,7 +31825,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "9838:5:7", + "src": "12937:5:9", "type": "" } ] @@ -23926,11 +31833,11 @@ { "body": { "nodeType": "YulBlock", - "src": "9883:67:7", + "src": "12982:67:9", "statements": [ { "nodeType": "YulAssignment", - "src": "9901:35:7", + "src": "13000:35:9", "value": { "arguments": [ { @@ -23938,36 +31845,36 @@ { "name": "src", "nodeType": "YulIdentifier", - "src": "9920:3:7" + "src": "13019:3:9" }, { "name": "srcOffset", "nodeType": "YulIdentifier", - "src": "9925:9:7" + "src": "13024:9:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "9916:3:7" + "src": "13015:3:9" }, "nodeType": "YulFunctionCall", - "src": "9916:19:7" + "src": "13015:19:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "9910:5:7" + "src": "13009:5:9" }, "nodeType": "YulFunctionCall", - "src": "9910:26:7" + "src": "13009:26:9" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "9901:5:7" + "src": "13000:5:9" } ] } @@ -23976,10 +31883,10 @@ "condition": { "name": "newLen", "nodeType": "YulIdentifier", - "src": "9864:6:7" + "src": "12963:6:9" }, "nodeType": "YulIf", - "src": "9861:89:7" + "src": "12960:89:9" }, { "expression": { @@ -23987,45 +31894,45 @@ { "name": "slot", "nodeType": "YulIdentifier", - "src": "9970:4:7" + "src": "13069:4:9" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "10029:5:7" + "src": "13128:5:9" }, { "name": "newLen", "nodeType": "YulIdentifier", - "src": "10036:6:7" + "src": "13135:6:9" } ], "functionName": { "name": "extract_used_part_and_set_length_of_short_byte_array", "nodeType": "YulIdentifier", - "src": "9976:52:7" + "src": "13075:52:9" }, "nodeType": "YulFunctionCall", - "src": "9976:67:7" + "src": "13075:67:9" } ], "functionName": { "name": "sstore", "nodeType": "YulIdentifier", - "src": "9963:6:7" + "src": "13062:6:9" }, "nodeType": "YulFunctionCall", - "src": "9963:81:7" + "src": "13062:81:9" }, "nodeType": "YulExpressionStatement", - "src": "9963:81:7" + "src": "13062:81:9" } ] }, "nodeType": "YulCase", - "src": "9812:242:7", + "src": "12911:242:9", "value": "default" } ], @@ -24034,12 +31941,12 @@ { "name": "newLen", "nodeType": "YulIdentifier", - "src": "9120:6:7" + "src": "12219:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9128:2:7", + "src": "12227:2:9", "type": "", "value": "31" } @@ -24047,13 +31954,13 @@ "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "9117:2:7" + "src": "12216:2:9" }, "nodeType": "YulFunctionCall", - "src": "9117:14:7" + "src": "12216:14:9" }, "nodeType": "YulSwitch", - "src": "9110:944:7" + "src": "12209:944:9" } ] }, @@ -24063,132 +31970,41 @@ { "name": "slot", "nodeType": "YulTypedName", - "src": "8789:4:7", + "src": "11888:4:9", "type": "" }, { "name": "src", "nodeType": "YulTypedName", - "src": "8795:3:7", + "src": "11894:3:9", "type": "" } ], - "src": "8708:1352:7" + "src": "11807:1352:9" }, { "body": { "nodeType": "YulBlock", - "src": "10112:185:7", + "src": "13211:88:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "10151:111:7", + "src": "13242:22:9", "statements": [ { "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10172:1:7", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10179:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10184:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "10175:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "10175:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "10165:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "10165:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10165:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10216:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10219:4:7", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "10209:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "10209:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "10209:15:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10244:1:7", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10247:4:7", - "type": "", - "value": "0x24" - } - ], + "arguments": [], "functionName": { - "name": "revert", + "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "10237:6:7" + "src": "13244:16:9" }, "nodeType": "YulFunctionCall", - "src": "10237:15:7" + "src": "13244:18:9" }, "nodeType": "YulExpressionStatement", - "src": "10237:15:7" + "src": "13244:18:9" } ] }, @@ -24197,14 +32013,14 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "10128:5:7" + "src": "13227:5:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "10139:1:7", + "src": "13238:1:9", "type": "", "value": "0" } @@ -24212,37 +32028,37 @@ "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "10135:3:7" + "src": "13234:3:9" }, "nodeType": "YulFunctionCall", - "src": "10135:6:7" + "src": "13234:6:9" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "10125:2:7" + "src": "13224:2:9" }, "nodeType": "YulFunctionCall", - "src": "10125:17:7" + "src": "13224:17:9" }, "nodeType": "YulIf", - "src": "10122:140:7" + "src": "13221:43:9" }, { "nodeType": "YulAssignment", - "src": "10271:20:7", + "src": "13273:20:9", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "10282:5:7" + "src": "13284:5:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "10289:1:7", + "src": "13291:1:9", "type": "", "value": "1" } @@ -24250,16 +32066,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "10278:3:7" + "src": "13280:3:9" }, "nodeType": "YulFunctionCall", - "src": "10278:13:7" + "src": "13280:13:9" }, "variableNames": [ { "name": "ret", "nodeType": "YulIdentifier", - "src": "10271:3:7" + "src": "13273:3:9" } ] } @@ -24271,7 +32087,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "10094:5:7", + "src": "13193:5:9", "type": "" } ], @@ -24279,16 +32095,16 @@ { "name": "ret", "nodeType": "YulTypedName", - "src": "10104:3:7", + "src": "13203:3:9", "type": "" } ], - "src": "10065:232:7" + "src": "13164:135:9" }, { "body": { "nodeType": "YulBlock", - "src": "10471:214:7", + "src": "13473:214:9", "statements": [ { "expression": { @@ -24296,12 +32112,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "10488:9:7" + "src": "13490:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "10499:2:7", + "src": "13501:2:9", "type": "", "value": "64" } @@ -24309,35 +32125,35 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "10481:6:7" + "src": "13483:6:9" }, "nodeType": "YulFunctionCall", - "src": "10481:21:7" + "src": "13483:21:9" }, "nodeType": "YulExpressionStatement", - "src": "10481:21:7" + "src": "13483:21:9" }, { "nodeType": "YulVariableDeclaration", - "src": "10511:59:7", + "src": "13513:59:9", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "10543:6:7" + "src": "13545:6:9" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "10555:9:7" + "src": "13557:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "10566:2:7", + "src": "13568:2:9", "type": "", "value": "64" } @@ -24345,25 +32161,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "10551:3:7" + "src": "13553:3:9" }, "nodeType": "YulFunctionCall", - "src": "10551:18:7" + "src": "13553:18:9" } ], "functionName": { "name": "abi_encode_string", "nodeType": "YulIdentifier", - "src": "10525:17:7" + "src": "13527:17:9" }, "nodeType": "YulFunctionCall", - "src": "10525:45:7" + "src": "13527:45:9" }, "variables": [ { "name": "tail_1", "nodeType": "YulTypedName", - "src": "10515:6:7", + "src": "13517:6:9", "type": "" } ] @@ -24376,12 +32192,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "10590:9:7" + "src": "13592:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "10601:2:7", + "src": "13603:2:9", "type": "", "value": "32" } @@ -24389,73 +32205,73 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "10586:3:7" + "src": "13588:3:9" }, "nodeType": "YulFunctionCall", - "src": "10586:18:7" + "src": "13588:18:9" }, { "arguments": [ { "name": "tail_1", "nodeType": "YulIdentifier", - "src": "10610:6:7" + "src": "13612:6:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "10618:9:7" + "src": "13620:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "10606:3:7" + "src": "13608:3:9" }, "nodeType": "YulFunctionCall", - "src": "10606:22:7" + "src": "13608:22:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "10579:6:7" + "src": "13581:6:9" }, "nodeType": "YulFunctionCall", - "src": "10579:50:7" + "src": "13581:50:9" }, "nodeType": "YulExpressionStatement", - "src": "10579:50:7" + "src": "13581:50:9" }, { "nodeType": "YulAssignment", - "src": "10638:41:7", + "src": "13640:41:9", "value": { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "10664:6:7" + "src": "13666:6:9" }, { "name": "tail_1", "nodeType": "YulIdentifier", - "src": "10672:6:7" + "src": "13674:6:9" } ], "functionName": { "name": "abi_encode_string", "nodeType": "YulIdentifier", - "src": "10646:17:7" + "src": "13648:17:9" }, "nodeType": "YulFunctionCall", - "src": "10646:33:7" + "src": "13648:33:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "10638:4:7" + "src": "13640:4:9" } ] } @@ -24467,19 +32283,19 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "10432:9:7", + "src": "13434:9:9", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "10443:6:7", + "src": "13445:6:9", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "10451:6:7", + "src": "13453:6:9", "type": "" } ], @@ -24487,16 +32303,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "10462:4:7", + "src": "13464:4:9", "type": "" } ], - "src": "10302:383:7" + "src": "13304:383:9" }, { "body": { "nodeType": "YulBlock", - "src": "10867:185:7", + "src": "13869:185:9", "statements": [ { "expression": { @@ -24504,24 +32320,24 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "10884:9:7" + "src": "13886:9:9" }, { "name": "value0", "nodeType": "YulIdentifier", - "src": "10895:6:7" + "src": "13897:6:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "10877:6:7" + "src": "13879:6:9" }, "nodeType": "YulFunctionCall", - "src": "10877:25:7" + "src": "13879:25:9" }, "nodeType": "YulExpressionStatement", - "src": "10877:25:7" + "src": "13879:25:9" }, { "expression": { @@ -24531,12 +32347,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "10922:9:7" + "src": "13924:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "10933:2:7", + "src": "13935:2:9", "type": "", "value": "32" } @@ -24544,15 +32360,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "10918:3:7" + "src": "13920:3:9" }, "nodeType": "YulFunctionCall", - "src": "10918:18:7" + "src": "13920:18:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "10938:2:7", + "src": "13940:2:9", "type": "", "value": "96" } @@ -24560,35 +32376,35 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "10911:6:7" + "src": "13913:6:9" }, "nodeType": "YulFunctionCall", - "src": "10911:30:7" + "src": "13913:30:9" }, "nodeType": "YulExpressionStatement", - "src": "10911:30:7" + "src": "13913:30:9" }, { "nodeType": "YulAssignment", - "src": "10950:53:7", + "src": "13952:53:9", "value": { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "10976:6:7" + "src": "13978:6:9" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "10988:9:7" + "src": "13990:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "10999:2:7", + "src": "14001:2:9", "type": "", "value": "96" } @@ -24596,25 +32412,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "10984:3:7" + "src": "13986:3:9" }, "nodeType": "YulFunctionCall", - "src": "10984:18:7" + "src": "13986:18:9" } ], "functionName": { "name": "abi_encode_string", "nodeType": "YulIdentifier", - "src": "10958:17:7" + "src": "13960:17:9" }, "nodeType": "YulFunctionCall", - "src": "10958:45:7" + "src": "13960:45:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "10950:4:7" + "src": "13952:4:9" } ] }, @@ -24626,12 +32442,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "11023:9:7" + "src": "14025:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "11034:2:7", + "src": "14036:2:9", "type": "", "value": "64" } @@ -24639,27 +32455,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "11019:3:7" + "src": "14021:3:9" }, "nodeType": "YulFunctionCall", - "src": "11019:18:7" + "src": "14021:18:9" }, { "name": "value2", "nodeType": "YulIdentifier", - "src": "11039:6:7" + "src": "14041:6:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "11012:6:7" + "src": "14014:6:9" }, "nodeType": "YulFunctionCall", - "src": "11012:34:7" + "src": "14014:34:9" }, "nodeType": "YulExpressionStatement", - "src": "11012:34:7" + "src": "14014:34:9" } ] }, @@ -24669,25 +32485,25 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "10820:9:7", + "src": "13822:9:9", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "10831:6:7", + "src": "13833:6:9", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "10839:6:7", + "src": "13841:6:9", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "10847:6:7", + "src": "13849:6:9", "type": "" } ], @@ -24695,16 +32511,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "10858:4:7", + "src": "13860:4:9", "type": "" } ], - "src": "10690:362:7" + "src": "13692:362:9" }, { "body": { "nodeType": "YulBlock", - "src": "11231:170:7", + "src": "14233:165:9", "statements": [ { "expression": { @@ -24712,12 +32528,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "11248:9:7" + "src": "14250:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "11259:2:7", + "src": "14261:2:9", "type": "", "value": "32" } @@ -24725,58 +32541,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "11241:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11241:21:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11241:21:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11282:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11293:2:7", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11278:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11278:18:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11298:2:7", - "type": "", - "value": "20" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11271:6:7" + "src": "14243:6:9" }, "nodeType": "YulFunctionCall", - "src": "11271:30:7" + "src": "14243:21:9" }, "nodeType": "YulExpressionStatement", - "src": "11271:30:7" + "src": "14243:21:9" }, { "expression": { @@ -24786,247 +32557,180 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "11321:9:7" + "src": "14284:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "11332:2:7", + "src": "14295:2:9", "type": "", - "value": "64" + "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "11317:3:7" + "src": "14280:3:9" }, "nodeType": "YulFunctionCall", - "src": "11317:18:7" + "src": "14280:18:9" }, { - "hexValue": "4167656e74206e6f742072656769737465726564", - "kind": "string", + "kind": "number", "nodeType": "YulLiteral", - "src": "11337:22:7", + "src": "14300:2:9", "type": "", - "value": "Agent not registered" + "value": "15" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "11310:6:7" + "src": "14273:6:9" }, "nodeType": "YulFunctionCall", - "src": "11310:50:7" + "src": "14273:30:9" }, "nodeType": "YulExpressionStatement", - "src": "11310:50:7" + "src": "14273:30:9" }, - { - "nodeType": "YulAssignment", - "src": "11369:26:7", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11381:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11392:2:7", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11377:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11377:18:7" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "11369:4:7" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_6b24a63f053c9f60b33a6142346432678adff778fb93a8ecec9013d5a898e395__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "11208:9:7", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "11222:4:7", - "type": "" - } - ], - "src": "11057:344:7" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11438:95:7", - "statements": [ { "expression": { "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11455:1:7", - "type": "", - "value": "0" - }, { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11462:3:7", - "type": "", - "value": "224" + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14323:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "11467:10:7", + "src": "14334:2:9", "type": "", - "value": "0x4e487b71" + "value": "64" } ], "functionName": { - "name": "shl", + "name": "add", "nodeType": "YulIdentifier", - "src": "11458:3:7" + "src": "14319:3:9" }, "nodeType": "YulFunctionCall", - "src": "11458:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11448:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11448:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11448:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11495:1:7", - "type": "", - "value": "4" + "src": "14319:18:9" }, { - "kind": "number", + "hexValue": "496e76616c69642061646472657373", + "kind": "string", "nodeType": "YulLiteral", - "src": "11498:4:7", + "src": "14339:17:9", "type": "", - "value": "0x32" + "value": "Invalid address" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "11488:6:7" + "src": "14312:6:9" }, "nodeType": "YulFunctionCall", - "src": "11488:15:7" + "src": "14312:45:9" }, "nodeType": "YulExpressionStatement", - "src": "11488:15:7" + "src": "14312:45:9" }, { - "expression": { + "nodeType": "YulAssignment", + "src": "14366:26:9", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11519:1:7", - "type": "", - "value": "0" + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14378:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "11522:4:7", + "src": "14389:2:9", "type": "", - "value": "0x24" + "value": "96" } ], "functionName": { - "name": "revert", + "name": "add", "nodeType": "YulIdentifier", - "src": "11512:6:7" + "src": "14374:3:9" }, "nodeType": "YulFunctionCall", - "src": "11512:15:7" + "src": "14374:18:9" }, - "nodeType": "YulExpressionStatement", - "src": "11512:15:7" + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14366:4:9" + } + ] } ] }, - "name": "panic_error_0x32", + "name": "abi_encode_tuple_t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", - "src": "11406:127:7" + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14210:9:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "14224:4:9", + "type": "" + } + ], + "src": "14059:339:9" } ] }, - "contents": "{\n { }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n let _1 := 0x20\n mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n }\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_address_t_string_memory_ptr_t_uint256_t_uint256__to_t_address_t_string_memory_ptr_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), 128)\n tail := abi_encode_string(value1, add(headStart, 128))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_string(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0xffffffffffffffff\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(memPtr, 0x20), add(offset, 0x20), _1)\n mstore(add(add(memPtr, _1), 0x20), 0)\n array := memPtr\n }\n function abi_decode_tuple_t_addresst_string_memory_ptrt_string_memory_ptrt_string_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value1 := abi_decode_string(add(headStart, offset), dataEnd)\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _1) { revert(0, 0) }\n value2 := abi_decode_string(add(headStart, offset_1), dataEnd)\n let offset_2 := calldataload(add(headStart, 96))\n if gt(offset_2, _1) { revert(0, 0) }\n value3 := abi_decode_string(add(headStart, offset_2), dataEnd)\n value4 := calldataload(add(headStart, 128))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256__to_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, 160)\n let tail_1 := abi_encode_string(value0, add(headStart, 160))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n tail := abi_encode_string(value1, tail_1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_struct$_Proposal_$1039_memory_ptr__to_t_struct$_Proposal_$1039_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), and(mload(value0), sub(shl(160, 1), 1)))\n let memberValue0 := mload(add(value0, 32))\n mstore(add(headStart, 64), 0x80)\n let tail_1 := abi_encode_string(memberValue0, add(headStart, 160))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n mstore(add(headStart, 0x80), mload(add(value0, 96)))\n tail := tail_1\n }\n function abi_encode_tuple_t_contract$_ServiceRegistry_$682__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256_t_bool__to_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256_t_bool__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, 192)\n let tail_1 := abi_encode_string(value0, add(headStart, 192))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n tail := abi_encode_string(value1, tail_1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), iszero(iszero(value5)))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_stringliteral_3c17f52d7f382f39131bc893c7e27e69aa71bee31c68e2de3649b59b8bfebc2b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Agent already registered\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Service not registered\")\n tail := add(headStart, 96)\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n ret := add(value, 1)\n }\n function abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, 64)\n let tail_1 := abi_encode_string(value0, add(headStart, 64))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n tail := abi_encode_string(value1, tail_1)\n }\n function abi_encode_tuple_t_uint256_t_string_memory_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), 96)\n tail := abi_encode_string(value1, add(headStart, 96))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_stringliteral_6b24a63f053c9f60b33a6142346432678adff778fb93a8ecec9013d5a898e395__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"Agent not registered\")\n tail := add(headStart, 96)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n}", - "id": 7, + "contents": "{\n { }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n let _1 := 0x20\n mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n }\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_address_t_string_memory_ptr_t_uint256_t_uint256_t_bool__to_t_address_t_string_memory_ptr_t_uint256_t_uint256_t_bool__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), 160)\n tail := abi_encode_string(value1, add(headStart, 160))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), iszero(iszero(value4)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_string(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0xffffffffffffffff\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(memPtr, 0x20), add(offset, 0x20), _1)\n mstore(add(add(memPtr, _1), 0x20), 0)\n array := memPtr\n }\n function abi_decode_tuple_t_addresst_string_memory_ptrt_string_memory_ptrt_string_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value1 := abi_decode_string(add(headStart, offset), dataEnd)\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _1) { revert(0, 0) }\n value2 := abi_decode_string(add(headStart, offset_1), dataEnd)\n let offset_2 := calldataload(add(headStart, 96))\n if gt(offset_2, _1) { revert(0, 0) }\n value3 := abi_decode_string(add(headStart, offset_2), dataEnd)\n value4 := calldataload(add(headStart, 128))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_encode_tuple_t_struct$_AgentData_$200_memory_ptr__to_t_struct$_AgentData_$200_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let memberValue0 := mload(value0)\n mstore(add(headStart, 32), 0xc0)\n let tail_1 := abi_encode_string(memberValue0, add(headStart, 224))\n let memberValue0_1 := mload(add(value0, 32))\n mstore(add(headStart, 64), add(sub(tail_1, headStart), not(31)))\n let tail_2 := abi_encode_string(memberValue0_1, tail_1)\n let memberValue0_2 := mload(add(value0, 64))\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 96), and(memberValue0_2, _1))\n mstore(add(headStart, 128), and(mload(add(value0, 96)), _1))\n mstore(add(headStart, 160), mload(add(value0, 128)))\n mstore(add(headStart, 0xc0), mload(add(value0, 160)))\n tail := tail_2\n }\n function abi_encode_tuple_t_struct$_ServiceProposal_$1403_memory_ptr__to_t_struct$_ServiceProposal_$1403_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), and(mload(value0), sub(shl(160, 1), 1)))\n let memberValue0 := mload(add(value0, 32))\n mstore(add(headStart, 64), 0xa0)\n let tail_1 := abi_encode_string(memberValue0, add(headStart, 192))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n mstore(add(headStart, 128), mload(add(value0, 96)))\n mstore(add(headStart, 0xa0), iszero(iszero(mload(add(value0, 128)))))\n tail := tail_1\n }\n function abi_encode_tuple_t_contract$_ServiceRegistry_$844__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_addresst_string_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_string(add(headStart, offset), dataEnd)\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256_t_uint256__to_t_string_memory_ptr_t_string_memory_ptr_t_address_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, 192)\n let tail_1 := abi_encode_string(value0, add(headStart, 192))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n tail := abi_encode_string(value1, tail_1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), value5)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_stringliteral_ab4f7bdcd44e35f2fe5cd34e07194c1c227455329229f7f3f1e8494de9e5c74c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"Not the TaskRegistry contract\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_c137d625e69877210f78bfe5d3113cccc58db43b2ac3bb8f673d723a397aae3e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Rating must be between 0 and 100\")\n tail := add(headStart, 96)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n r := div(x, y)\n }\n function abi_encode_tuple_t_stringliteral_333080ba9ab8738c4a0b47b5b79d2c142d573a23f488baafda66363f88786955__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"Not the owner of the agent\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_add139ef5e0ce81551c750d068d2eb9f9e6c61a45817f3add2fc789b89b93829__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"ServiceProposal not found\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3c17f52d7f382f39131bc893c7e27e69aa71bee31c68e2de3649b59b8bfebc2b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Agent already registered\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Service not registered\")\n tail := add(headStart, 96)\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, 64)\n let tail_1 := abi_encode_string(value0, add(headStart, 64))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n tail := abi_encode_string(value1, tail_1)\n }\n function abi_encode_tuple_t_uint256_t_string_memory_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), 96)\n tail := abi_encode_string(value1, add(headStart, 96))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"Invalid address\")\n tail := add(headStart, 96)\n }\n}", + "id": 9, "language": "Yul", "name": "#utility.yul" } ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063aac9f15a1161008c578063cbcf252a11610066578063cbcf252a146101ef578063f2fde38b14610202578063f5c91a0814610215578063fd66091e1461022857600080fd5b8063aac9f15a1461017c578063c3c5a547146101a0578063c7f758a8146101cf57600080fd5b8063013cf08b146100d45780632ab09d1414610100578063715018a6146101175780638da5cb5b1461012157806398366dbd146101465780639c89a0e214610169575b600080fd5b6100e76100e2366004610c9d565b61024d565b6040516100f79493929190610cfc565b60405180910390f35b61010960045481565b6040519081526020016100f7565b61011f61031b565b005b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100f7565b610159610154366004610df2565b61032f565b60405190151581526020016100f7565b610109610177366004610e93565b6106a5565b61018f61018a366004610e93565b61072e565b6040516100f7959493929190610eb5565b6101596101ae366004610e93565b6001600160a01b031660009081526002602052604090206005015460ff1690565b6101e26101dd366004610c9d565b61089f565b6040516100f79190610eff565b60015461012e906001600160a01b031681565b61011f610210366004610e93565b6109c3565b61011f610223366004610f4d565b610a01565b61023b610236366004610e93565b610aca565b6040516100f796959493929190610f77565b6003818154811061025d57600080fd5b6000918252602090912060049091020180546001820180546001600160a01b0390921693509061028c90610fcd565b80601f01602080910402602001604051908101604052809291908181526020018280546102b890610fcd565b80156103055780601f106102da57610100808354040283529160200191610305565b820191906000526020600020905b8154815290600101906020018083116102e857829003601f168201915b5050505050908060020154908060030154905084565b610323610c20565b61032d6000610c4d565b565b6001600160a01b03851660009081526002602052604081206005015460ff16156103a05760405162461bcd60e51b815260206004820152601860248201527f4167656e7420616c72656164792072656769737465726564000000000000000060448201526064015b60405180910390fd5b60015460405163b405166b60e01b81526001600160a01b039091169063b405166b906103d0908690600401611001565b602060405180830381865afa1580156103ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104119190611014565b6104565760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b6044820152606401610397565b6001600160a01b0386166000908152600260205260409020806104798782611085565b50600181016104888682611085565b506002810180546001600160a01b031990811633179091556003820180546001600160a01b038a811691841682179092556000600480860182905560058601805460ff191660019081179091556040805160808101825294855260208086018c81529186018b9052835460608701526006890180548085018255908652942085519490930290920180549390951692909516919091178355519092839291908201906105349082611085565b5060408201516002820155606090910151600391820155805460018101825560009190915281517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b600490920291820180546001600160a01b0319166001600160a01b03909216919091178155602083015183927fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c01906105d59082611085565b5060408201516002820155606090910151600390910155600480549060006105fc83611145565b9190505550336001600160a01b0316886001600160a01b03167f2a562efb52e7cec209321f57200606311256da6d2a1b19d44db7837a3209de28898960405161064692919061116c565b60405180910390a3876001600160a01b03167fe194e0bc2279adb185c748ae57db10fe2ef1005a1b5646f96235a881c88ddb798260600151878760405161068f9392919061119a565b60405180910390a2506001979650505050505050565b6001600160a01b038116600090815260026020526040812060050154829060ff166107095760405162461bcd60e51b81526020600482015260146024820152731059d95b9d081b9bdd081c9959da5cdd195c995960621b6044820152606401610397565b6001600160a01b03831660009081526002602052604090206004015491505b50919050565b6001600160a01b038082166000908152600260208190526040822090810154600382015460048301548354606096879695869586959194859460018601949283169390921691859061077f90610fcd565b80601f01602080910402602001604051908101604052809291908181526020018280546107ab90610fcd565b80156107f85780601f106107cd576101008083540402835291602001916107f8565b820191906000526020600020905b8154815290600101906020018083116107db57829003601f168201915b5050505050945083805461080b90610fcd565b80601f016020809104026020016040519081016040528092919081815260200182805461083790610fcd565b80156108845780601f1061085957610100808354040283529160200191610884565b820191906000526020600020905b81548152906001019060200180831161086757829003601f168201915b50505050509350955095509550955095505091939590929450565b6108d3604051806080016040528060006001600160a01b031681526020016060815260200160008152602001600081525090565b600382815481106108e6576108e66111c3565b6000918252602091829020604080516080810190915260049092020180546001600160a01b03168252600181018054929391929184019161092690610fcd565b80601f016020809104026020016040519081016040528092919081815260200182805461095290610fcd565b801561099f5780601f106109745761010080835404028352916020019161099f565b820191906000526020600020905b81548152906001019060200180831161098257829003601f168201915b50505050508152602001600282015481526020016003820154815250509050919050565b6109cb610c20565b6001600160a01b0381166109f557604051631e4fbdf760e01b815260006004820152602401610397565b6109fe81610c4d565b50565b610a09610c20565b6001600160a01b038216600090815260026020526040902060050154829060ff16610a6d5760405162461bcd60e51b81526020600482015260146024820152731059d95b9d081b9bdd081c9959da5cdd195c995960621b6044820152606401610397565b6001600160a01b03831660008181526002602052604090819020600401849055517ffc577563f1b9a0461e24abef1e1fcc0d33d3d881f20b5df6dda59de4aae2c82190610abd9085815260200190565b60405180910390a2505050565b600260205260009081526040902080548190610ae590610fcd565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1190610fcd565b8015610b5e5780601f10610b3357610100808354040283529160200191610b5e565b820191906000526020600020905b815481529060010190602001808311610b4157829003601f168201915b505050505090806001018054610b7390610fcd565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9f90610fcd565b8015610bec5780601f10610bc157610100808354040283529160200191610bec565b820191906000526020600020905b815481529060010190602001808311610bcf57829003601f168201915b5050505060028301546003840154600485015460059095015493946001600160a01b03928316949290911692509060ff1686565b6000546001600160a01b0316331461032d5760405163118cdaa760e01b8152336004820152602401610397565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610caf57600080fd5b5035919050565b6000815180845260005b81811015610cdc57602081850181015186830182015201610cc0565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0385168152608060208201819052600090610d2090830186610cb6565b6040830194909452506060015292915050565b80356001600160a01b0381168114610d4a57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610d7657600080fd5b813567ffffffffffffffff80821115610d9157610d91610d4f565b604051601f8301601f19908116603f01168101908282118183101715610db957610db9610d4f565b81604052838152866020858801011115610dd257600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a08688031215610e0a57600080fd5b610e1386610d33565b9450602086013567ffffffffffffffff80821115610e3057600080fd5b610e3c89838a01610d65565b95506040880135915080821115610e5257600080fd5b610e5e89838a01610d65565b94506060880135915080821115610e7457600080fd5b50610e8188828901610d65565b95989497509295608001359392505050565b600060208284031215610ea557600080fd5b610eae82610d33565b9392505050565b60a081526000610ec860a0830188610cb6565b8281036020840152610eda8188610cb6565b6001600160a01b03968716604085015294909516606083015250608001529392505050565b602080825282516001600160a01b03168282015282015160806040830152600090610f2d60a0840182610cb6565b905060408401516060840152606084015160808401528091505092915050565b60008060408385031215610f6057600080fd5b610f6983610d33565b946020939093013593505050565b60c081526000610f8a60c0830189610cb6565b8281036020840152610f9c8189610cb6565b6001600160a01b039788166040850152959096166060830152506080810192909252151560a0909101529392505050565b600181811c90821680610fe157607f821691505b60208210810361072857634e487b7160e01b600052602260045260246000fd5b602081526000610eae6020830184610cb6565b60006020828403121561102657600080fd5b81518015158114610eae57600080fd5b601f82111561108057600081815260208120601f850160051c8101602086101561105d5750805b601f850160051c820191505b8181101561107c57828155600101611069565b5050505b505050565b815167ffffffffffffffff81111561109f5761109f610d4f565b6110b3816110ad8454610fcd565b84611036565b602080601f8311600181146110e857600084156110d05750858301515b600019600386901b1c1916600185901b17855561107c565b600085815260208120601f198616915b82811015611117578886015182559484019460019091019084016110f8565b50858210156111355787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006001820161116557634e487b7160e01b600052601160045260246000fd5b5060010190565b60408152600061117f6040830185610cb6565b82810360208401526111918185610cb6565b95945050505050565b8381526060602082015260006111b36060830185610cb6565b9050826040830152949350505050565b634e487b7160e01b600052603260045260246000fdfea26469706673582212202fe5e950305276469a5e1b110d11d1a15beca558b7c205b065d06b11c61cfe7964736f6c63430008140033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xAAC9F15A GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xCBCF252A GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xCBCF252A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0xF5C91A08 EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0xFD66091E EQ PUSH2 0x228 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xAAC9F15A EQ PUSH2 0x17C JUMPI DUP1 PUSH4 0xC3C5A547 EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0xC7F758A8 EQ PUSH2 0x1CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x2AB09D14 EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x121 JUMPI DUP1 PUSH4 0x98366DBD EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x9C89A0E2 EQ PUSH2 0x169 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE7 PUSH2 0xE2 CALLDATASIZE PUSH1 0x4 PUSH2 0xC9D JUMP JUMPDEST PUSH2 0x24D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xCFC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x109 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF7 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x31B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF7 JUMP JUMPDEST PUSH2 0x159 PUSH2 0x154 CALLDATASIZE PUSH1 0x4 PUSH2 0xDF2 JUMP JUMPDEST PUSH2 0x32F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF7 JUMP JUMPDEST PUSH2 0x109 PUSH2 0x177 CALLDATASIZE PUSH1 0x4 PUSH2 0xE93 JUMP JUMPDEST PUSH2 0x6A5 JUMP JUMPDEST PUSH2 0x18F PUSH2 0x18A CALLDATASIZE PUSH1 0x4 PUSH2 0xE93 JUMP JUMPDEST PUSH2 0x72E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xEB5 JUMP JUMPDEST PUSH2 0x159 PUSH2 0x1AE CALLDATASIZE PUSH1 0x4 PUSH2 0xE93 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x5 ADD SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x1E2 PUSH2 0x1DD CALLDATASIZE PUSH1 0x4 PUSH2 0xC9D JUMP JUMPDEST PUSH2 0x89F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP2 SWAP1 PUSH2 0xEFF JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x12E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x210 CALLDATASIZE PUSH1 0x4 PUSH2 0xE93 JUMP JUMPDEST PUSH2 0x9C3 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x223 CALLDATASIZE PUSH1 0x4 PUSH2 0xF4D JUMP JUMPDEST PUSH2 0xA01 JUMP JUMPDEST PUSH2 0x23B PUSH2 0x236 CALLDATASIZE PUSH1 0x4 PUSH2 0xE93 JUMP JUMPDEST PUSH2 0xACA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF77 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x25D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x4 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP4 POP SWAP1 PUSH2 0x28C SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2B8 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x305 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2DA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x305 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2E8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 POP DUP5 JUMP JUMPDEST PUSH2 0x323 PUSH2 0xC20 JUMP JUMPDEST PUSH2 0x32D PUSH1 0x0 PUSH2 0xC4D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x5 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x3A0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4167656E7420616C726561647920726567697374657265640000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0x3D0 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1001 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3ED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x411 SWAP2 SWAP1 PUSH2 0x1014 JUMP JUMPDEST PUSH2 0x456 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x14D95C9D9A58D9481B9BDD081C9959DA5CDD195C9959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x397 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 PUSH2 0x479 DUP8 DUP3 PUSH2 0x1085 JUMP JUMPDEST POP PUSH1 0x1 DUP2 ADD PUSH2 0x488 DUP7 DUP3 PUSH2 0x1085 JUMP JUMPDEST POP PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP2 DUP5 AND DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 PUSH1 0x4 DUP1 DUP7 ADD DUP3 SWAP1 SSTORE PUSH1 0x5 DUP7 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE SWAP5 DUP6 MSTORE PUSH1 0x20 DUP1 DUP7 ADD DUP13 DUP2 MSTORE SWAP2 DUP7 ADD DUP12 SWAP1 MSTORE DUP4 SLOAD PUSH1 0x60 DUP8 ADD MSTORE PUSH1 0x6 DUP10 ADD DUP1 SLOAD DUP1 DUP6 ADD DUP3 SSTORE SWAP1 DUP7 MSTORE SWAP5 KECCAK256 DUP6 MLOAD SWAP5 SWAP1 SWAP4 MUL SWAP1 SWAP3 ADD DUP1 SLOAD SWAP4 SWAP1 SWAP6 AND SWAP3 SWAP1 SWAP6 AND SWAP2 SWAP1 SWAP2 OR DUP4 SSTORE MLOAD SWAP1 SWAP3 DUP4 SWAP3 SWAP2 SWAP1 DUP3 ADD SWAP1 PUSH2 0x534 SWAP1 DUP3 PUSH2 0x1085 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SSTORE PUSH1 0x60 SWAP1 SWAP2 ADD MLOAD PUSH1 0x3 SWAP2 DUP3 ADD SSTORE DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B PUSH1 0x4 SWAP1 SWAP3 MUL SWAP2 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x20 DUP4 ADD MLOAD DUP4 SWAP3 PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85C ADD SWAP1 PUSH2 0x5D5 SWAP1 DUP3 PUSH2 0x1085 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SSTORE PUSH1 0x60 SWAP1 SWAP2 ADD MLOAD PUSH1 0x3 SWAP1 SWAP2 ADD SSTORE PUSH1 0x4 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x5FC DUP4 PUSH2 0x1145 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x2A562EFB52E7CEC209321F57200606311256DA6D2A1B19D44DB7837A3209DE28 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH2 0x646 SWAP3 SWAP2 SWAP1 PUSH2 0x116C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xE194E0BC2279ADB185C748AE57DB10FE2EF1005A1B5646F96235A881C88DDB79 DUP3 PUSH1 0x60 ADD MLOAD DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x68F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x119A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP PUSH1 0x1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x5 ADD SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH2 0x709 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x1059D95B9D081B9BDD081C9959DA5CDD195C9959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x397 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD SWAP2 POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SWAP1 DUP2 ADD SLOAD PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x4 DUP4 ADD SLOAD DUP4 SLOAD PUSH1 0x60 SWAP7 DUP8 SWAP7 SWAP6 DUP7 SWAP6 DUP7 SWAP6 SWAP2 SWAP5 DUP6 SWAP5 PUSH1 0x1 DUP7 ADD SWAP5 SWAP3 DUP4 AND SWAP4 SWAP1 SWAP3 AND SWAP2 DUP6 SWAP1 PUSH2 0x77F SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x7AB SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7F8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x7CD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x7F8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x7DB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP5 POP DUP4 DUP1 SLOAD PUSH2 0x80B SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x837 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x884 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x859 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x884 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x867 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP4 POP SWAP6 POP SWAP6 POP SWAP6 POP SWAP6 POP SWAP6 POP POP SWAP2 SWAP4 SWAP6 SWAP1 SWAP3 SWAP5 POP JUMP JUMPDEST PUSH2 0x8D3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x8E6 JUMPI PUSH2 0x8E6 PUSH2 0x11C3 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x4 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE PUSH1 0x1 DUP2 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x926 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x952 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x99F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x974 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x99F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x982 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9CB PUSH2 0xC20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x9F5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x397 JUMP JUMPDEST PUSH2 0x9FE DUP2 PUSH2 0xC4D JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xA09 PUSH2 0xC20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x5 ADD SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH2 0xA6D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x1059D95B9D081B9BDD081C9959DA5CDD195C9959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x397 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 PUSH1 0x4 ADD DUP5 SWAP1 SSTORE MLOAD PUSH32 0xFC577563F1B9A0461E24ABEF1E1FCC0D33D3D881F20B5DF6DDA59DE4AAE2C821 SWAP1 PUSH2 0xABD SWAP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP2 SWAP1 PUSH2 0xAE5 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xB11 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB5E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB33 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB5E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB41 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0xB73 SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xB9F SWAP1 PUSH2 0xFCD JUMP JUMPDEST DUP1 ISZERO PUSH2 0xBEC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBC1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xBEC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xBCF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 DUP6 ADD SLOAD PUSH1 0x5 SWAP1 SWAP6 ADD SLOAD SWAP4 SWAP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP5 SWAP3 SWAP1 SWAP2 AND SWAP3 POP SWAP1 PUSH1 0xFF AND DUP7 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x32D JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x397 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xCDC JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0xCC0 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xD20 SWAP1 DUP4 ADD DUP7 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x60 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xD76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xD91 JUMPI PUSH2 0xD91 PUSH2 0xD4F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xDB9 JUMPI PUSH2 0xDB9 PUSH2 0xD4F JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0xDD2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xE0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE13 DUP7 PUSH2 0xD33 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xE30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE3C DUP10 DUP4 DUP11 ADD PUSH2 0xD65 JUMP JUMPDEST SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xE52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE5E DUP10 DUP4 DUP11 ADD PUSH2 0xD65 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xE74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE81 DUP9 DUP3 DUP10 ADD PUSH2 0xD65 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP3 SWAP6 PUSH1 0x80 ADD CALLDATALOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEAE DUP3 PUSH2 0xD33 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP2 MSTORE PUSH1 0x0 PUSH2 0xEC8 PUSH1 0xA0 DUP4 ADD DUP9 PUSH2 0xCB6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xEDA DUP2 DUP9 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP7 DUP8 AND PUSH1 0x40 DUP6 ADD MSTORE SWAP5 SWAP1 SWAP6 AND PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 DUP3 ADD MSTORE DUP3 ADD MLOAD PUSH1 0x80 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x0 SWAP1 PUSH2 0xF2D PUSH1 0xA0 DUP5 ADD DUP3 PUSH2 0xCB6 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x80 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF69 DUP4 PUSH2 0xD33 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0xC0 DUP2 MSTORE PUSH1 0x0 PUSH2 0xF8A PUSH1 0xC0 DUP4 ADD DUP10 PUSH2 0xCB6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xF9C DUP2 DUP10 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 DUP9 AND PUSH1 0x40 DUP6 ADD MSTORE SWAP6 SWAP1 SWAP7 AND PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE ISZERO ISZERO PUSH1 0xA0 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xFE1 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x728 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xEAE PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1026 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xEAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1080 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x105D JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x107C JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1069 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x109F JUMPI PUSH2 0x109F PUSH2 0xD4F JUMP JUMPDEST PUSH2 0x10B3 DUP2 PUSH2 0x10AD DUP5 SLOAD PUSH2 0xFCD JUMP JUMPDEST DUP5 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x10E8 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x10D0 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x107C JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1117 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x10F8 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x1135 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x1165 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x117F PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0xCB6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x1191 DUP2 DUP6 PUSH2 0xCB6 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x11B3 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0xCB6 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2F 0xE5 0xE9 POP ADDRESS MSTORE PUSH23 0x469A5E1B110D11D1A15BECA558B7C205B065D06B11C61C INVALID PUSH26 0x64736F6C63430008140033000000000000000000000000000000 ", - "sourceMap": "362:3969:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;721:27;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;754:29;;;;;;;;;1239:25:7;;;1227:2;1212:18;754:29:2;1093:177:7;2293:101:0;;;:::i;:::-;;1638:85;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;1638:85;;;-1:-1:-1;;;;;1439:32:7;;;1421:51;;1409:2;1394:18;1638:85:0;1275:203:7;1988:1021:2;;;;;;:::i;:::-;;:::i;:::-;;;3574:14:7;;3567:22;3549:41;;3537:2;3522:18;1988:1021:2;3409:187:7;3231:140:2;;;;;;:::i;:::-;;:::i;3855:341::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;3377:116::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3460:13:2;3437:4;3460:13;;;:6;:13;;;;;:26;;;;;;3377:116;4203:126;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;628:38::-;;;;;-1:-1:-1;;;;;628:38:2;;;2543:215:0;;;;;;:::i;:::-;;:::i;3015:210:2:-;;;;;;:::i;:::-;;:::i;672:43::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;721:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;721:27:2;;;;-1:-1:-1;721:27:2;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1988:1021:2:-;-1:-1:-1;;;;;2208:13:2;;2183:4;2208:13;;;:6;:13;;;;;:26;;;;;2207:27;2199:64;;;;-1:-1:-1;;;2199:64:2;;6852:2:7;2199:64:2;;;6834:21:7;6891:2;6871:18;;;6864:30;6930:26;6910:18;;;6903:54;6974:18;;2199:64:2;;;;;;;;;2281:15;;:48;;-1:-1:-1;;;2281:48:2;;-1:-1:-1;;;;;2281:15:2;;;;:35;;:48;;2317:11;;2281:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2273:83;;;;-1:-1:-1;;;2273:83:2;;7712:2:7;2273:83:2;;;7694:21:7;7751:2;7731:18;;;7724:30;-1:-1:-1;;;7770:18:7;;;7763:52;7832:18;;2273:83:2;7510:346:7;2273:83:2;-1:-1:-1;;;;;2405:13:2;;2375:27;2405:13;;;:6;:13;;;;;;2428:21;2445:4;2405:13;2428:21;:::i;:::-;-1:-1:-1;2459:18:2;;;:29;2480:8;2459:18;:29;:::i;:::-;-1:-1:-1;2498:15:2;;;:28;;-1:-1:-1;;;;;;2498:28:2;;;2516:10;2498:28;;;;2536:15;;;:23;;-1:-1:-1;;;;;2536:23:2;;;;;;;;;;;2498:15;2569:20;;;;:24;;;2603:22;;;:29;;-1:-1:-1;;2603:29:2;2498:28;2603:29;;;;;;2669:58;;;;;;;;;;;;;;;;;;;;;;;;2712:14;;2669:58;;;;2737:19;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2669:58;;;;2737:34;;;;;;;;;:::i;:::-;-1:-1:-1;2737:34:2;;;;;;;;;;;;;;;;;;2781:24;;;;;;;-1:-1:-1;2781:24:2;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2781:24:2;-1:-1:-1;;;;;2781:24:2;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2781:24:2;;;;;;;;;;;;;;;;;;2816:14;:16;;;-1:-1:-1;2816:16:2;;;:::i;:::-;;;;;;2870:10;-1:-1:-1;;;;;2847:50:2;2863:5;-1:-1:-1;;;;;2847:50:2;;2882:4;2888:8;2847:50;;;;;;;:::i;:::-;;;;;;;;2926:5;-1:-1:-1;;;;;2912:68:2;;2933:8;:19;;;2954:11;2967:12;2912:68;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;2998:4:2;;1988:1021;-1:-1:-1;;;;;;;1988:1021:2:o;3231:140::-;-1:-1:-1;;;;;847:13:2;;3314:7;847:13;;;:6;:13;;;;;:26;;;3298:5;;847:26;;839:59;;;;-1:-1:-1;;;839:59:2;;11259:2:7;839:59:2;;;11241:21:7;11298:2;11278:18;;;11271:30;-1:-1:-1;;;11317:18:7;;;11310:50;11377:18;;839:59:2;11057:344:7;839:59:2;-1:-1:-1;;;;;3340:13:2;::::1;;::::0;;;:6:::1;:13;::::0;;;;:24:::1;;::::0;;-1:-1:-1;908:1:2::1;3231:140:::0;;;;:::o;3855:341::-;-1:-1:-1;;;;;4091:14:2;;;3985:13;4091:14;;;:6;:14;;;;;;;4149:10;;;;4161;;;;4173:15;;;;4115:74;;3925:18;;;;3985:13;;;;;4091:14;;;;4134:13;;;;4149:10;;;;4161;;;;4091:14;;4115:74;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3855:341;;;;;;;:::o;4203:126::-;4267:15;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4267:15:2;4301:9;4311:10;4301:21;;;;;;;;:::i;:::-;;;;;;;;;;4294:28;;;;;;;;;4301:21;;;;;4294:28;;-1:-1:-1;;;;;4294:28:2;;;;;;;;;;4301:21;;4294:28;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4203:126;;;:::o;2543:215:0:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:0;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:0;;2700:1:::1;2672:31;::::0;::::1;1421:51:7::0;1394:18;;2672:31:0::1;1275:203:7::0;2623:91:0::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;3015:210:2:-;1531:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;847:13:2;::::1;;::::0;;;:6:::1;:13;::::0;;;;:26:::1;;::::0;3111:5;;847:26:::1;;839:59;;;::::0;-1:-1:-1;;;839:59:2;;11259:2:7;839:59:2::1;::::0;::::1;11241:21:7::0;11298:2;11278:18;;;11271:30;-1:-1:-1;;;11317:18:7;;;11310:50;11377:18;;839:59:2::1;11057:344:7::0;839:59:2::1;-1:-1:-1::0;;;;;3128:13:2;::::2;;::::0;;;:6:::2;:13;::::0;;;;;;:24:::2;;:38:::0;;;3181:37;::::2;::::0;::::2;::::0;3155:11;1239:25:7;;1227:2;1212:18;;1093:177;3181:37:2::2;;;;;;;;1554:1:0::1;3015:210:2::0;;:::o;672:43::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;672:43:2;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;672:43:2;;;;;;;;;-1:-1:-1;672:43:2;;;;:::o;1796:162:0:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;735:10:1;1855:23:0;1851:101;;1901:40;;-1:-1:-1;;;1901:40:0;;735:10:1;1901:40:0;;;1421:51:7;1394:18;;1901:40:0;1275:203:7;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:180:7:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:7;;14:180;-1:-1:-1;14:180:7:o;199:423::-;241:3;279:5;273:12;306:6;301:3;294:19;331:1;341:162;355:6;352:1;349:13;341:162;;;417:4;473:13;;;469:22;;463:29;445:11;;;441:20;;434:59;370:12;341:162;;;345:3;548:1;541:4;532:6;527:3;523:16;519:27;512:38;611:4;604:2;600:7;595:2;587:6;583:15;579:29;574:3;570:39;566:50;559:57;;;199:423;;;;:::o;627:461::-;-1:-1:-1;;;;;860:32:7;;842:51;;929:3;924:2;909:18;;902:31;;;-1:-1:-1;;950:46:7;;976:19;;968:6;950:46;:::i;:::-;1027:2;1012:18;;1005:34;;;;-1:-1:-1;1070:2:7;1055:18;1048:34;942:54;627:461;-1:-1:-1;;627:461:7:o;1483:173::-;1551:20;;-1:-1:-1;;;;;1600:31:7;;1590:42;;1580:70;;1646:1;1643;1636:12;1580:70;1483:173;;;:::o;1661:127::-;1722:10;1717:3;1713:20;1710:1;1703:31;1753:4;1750:1;1743:15;1777:4;1774:1;1767:15;1793:719;1836:5;1889:3;1882:4;1874:6;1870:17;1866:27;1856:55;;1907:1;1904;1897:12;1856:55;1943:6;1930:20;1969:18;2006:2;2002;1999:10;1996:36;;;2012:18;;:::i;:::-;2087:2;2081:9;2055:2;2141:13;;-1:-1:-1;;2137:22:7;;;2161:2;2133:31;2129:40;2117:53;;;2185:18;;;2205:22;;;2182:46;2179:72;;;2231:18;;:::i;:::-;2271:10;2267:2;2260:22;2306:2;2298:6;2291:18;2352:3;2345:4;2340:2;2332:6;2328:15;2324:26;2321:35;2318:55;;;2369:1;2366;2359:12;2318:55;2433:2;2426:4;2418:6;2414:17;2407:4;2399:6;2395:17;2382:54;2480:1;2473:4;2468:2;2460:6;2456:15;2452:26;2445:37;2500:6;2491:15;;;;;;1793:719;;;;:::o;2517:887::-;2642:6;2650;2658;2666;2674;2727:3;2715:9;2706:7;2702:23;2698:33;2695:53;;;2744:1;2741;2734:12;2695:53;2767:29;2786:9;2767:29;:::i;:::-;2757:39;;2847:2;2836:9;2832:18;2819:32;2870:18;2911:2;2903:6;2900:14;2897:34;;;2927:1;2924;2917:12;2897:34;2950:50;2992:7;2983:6;2972:9;2968:22;2950:50;:::i;:::-;2940:60;;3053:2;3042:9;3038:18;3025:32;3009:48;;3082:2;3072:8;3069:16;3066:36;;;3098:1;3095;3088:12;3066:36;3121:52;3165:7;3154:8;3143:9;3139:24;3121:52;:::i;:::-;3111:62;;3226:2;3215:9;3211:18;3198:32;3182:48;;3255:2;3245:8;3242:16;3239:36;;;3271:1;3268;3261:12;3239:36;;3294:52;3338:7;3327:8;3316:9;3312:24;3294:52;:::i;:::-;2517:887;;;;-1:-1:-1;2517:887:7;;3393:3;3378:19;3365:33;;2517:887;-1:-1:-1;;;2517:887:7:o;3601:186::-;3660:6;3713:2;3701:9;3692:7;3688:23;3684:32;3681:52;;;3729:1;3726;3719:12;3681:52;3752:29;3771:9;3752:29;:::i;:::-;3742:39;3601:186;-1:-1:-1;;;3601:186:7:o;3792:655::-;4073:3;4062:9;4055:22;4036:4;4100:46;4141:3;4130:9;4126:19;4118:6;4100:46;:::i;:::-;4194:9;4186:6;4182:22;4177:2;4166:9;4162:18;4155:50;4222:33;4248:6;4240;4222:33;:::i;:::-;-1:-1:-1;;;;;4329:15:7;;;4324:2;4309:18;;4302:43;4381:15;;;;4376:2;4361:18;;4354:43;-1:-1:-1;4428:3:7;4413:19;4406:35;4214:41;3792:655;-1:-1:-1;;;3792:655:7:o;4452:576::-;4633:2;4615:21;;;4676:13;;-1:-1:-1;;;;;4672:39:7;4652:18;;;4645:67;4747:15;;4741:22;4799:4;4794:2;4779:18;;4772:32;-1:-1:-1;;4827:52:7;4699:3;4859:19;;4741:22;4827:52;:::i;:::-;4813:66;;4933:2;4925:6;4921:15;4915:22;4910:2;4899:9;4895:18;4888:50;4994:2;4986:6;4982:15;4976:22;4969:4;4958:9;4954:20;4947:52;5016:6;5008:14;;;4452:576;;;;:::o;5264:254::-;5332:6;5340;5393:2;5381:9;5372:7;5368:23;5364:32;5361:52;;;5409:1;5406;5399:12;5361:52;5432:29;5451:9;5432:29;:::i;:::-;5422:39;5508:2;5493:18;;;;5480:32;;-1:-1:-1;;;5264:254:7:o;5523:737::-;5826:3;5815:9;5808:22;5789:4;5853:46;5894:3;5883:9;5879:19;5871:6;5853:46;:::i;:::-;5947:9;5939:6;5935:22;5930:2;5919:9;5915:18;5908:50;5975:33;6001:6;5993;5975:33;:::i;:::-;-1:-1:-1;;;;;6082:15:7;;;6077:2;6062:18;;6055:43;6134:15;;;;6129:2;6114:18;;6107:43;-1:-1:-1;6181:3:7;6166:19;;6159:35;;;;6238:14;6231:22;6035:3;6210:19;;;6203:51;6134:15;5967:41;-1:-1:-1;;;5523:737:7:o;6265:380::-;6344:1;6340:12;;;;6387;;;6408:61;;6462:4;6454:6;6450:17;6440:27;;6408:61;6515:2;6507:6;6504:14;6484:18;6481:38;6478:161;;6561:10;6556:3;6552:20;6549:1;6542:31;6596:4;6593:1;6586:15;6624:4;6621:1;6614:15;7003:220;7152:2;7141:9;7134:21;7115:4;7172:45;7213:2;7202:9;7198:18;7190:6;7172:45;:::i;7228:277::-;7295:6;7348:2;7336:9;7327:7;7323:23;7319:32;7316:52;;;7364:1;7361;7354:12;7316:52;7396:9;7390:16;7449:5;7442:13;7435:21;7428:5;7425:32;7415:60;;7471:1;7468;7461:12;7987:545;8089:2;8084:3;8081:11;8078:448;;;8125:1;8150:5;8146:2;8139:17;8195:4;8191:2;8181:19;8265:2;8253:10;8249:19;8246:1;8242:27;8236:4;8232:38;8301:4;8289:10;8286:20;8283:47;;;-1:-1:-1;8324:4:7;8283:47;8379:2;8374:3;8370:12;8367:1;8363:20;8357:4;8353:31;8343:41;;8434:82;8452:2;8445:5;8442:13;8434:82;;;8497:17;;;8478:1;8467:13;8434:82;;;8438:3;;;8078:448;7987:545;;;:::o;8708:1352::-;8834:3;8828:10;8861:18;8853:6;8850:30;8847:56;;;8883:18;;:::i;:::-;8912:97;9002:6;8962:38;8994:4;8988:11;8962:38;:::i;:::-;8956:4;8912:97;:::i;:::-;9064:4;;9128:2;9117:14;;9145:1;9140:663;;;;9847:1;9864:6;9861:89;;;-1:-1:-1;9916:19:7;;;9910:26;9861:89;-1:-1:-1;;8665:1:7;8661:11;;;8657:24;8653:29;8643:40;8689:1;8685:11;;;8640:57;9963:81;;9110:944;;9140:663;7934:1;7927:14;;;7971:4;7958:18;;-1:-1:-1;;9176:20:7;;;9294:236;9308:7;9305:1;9302:14;9294:236;;;9397:19;;;9391:26;9376:42;;9489:27;;;;9457:1;9445:14;;;;9324:19;;9294:236;;;9298:3;9558:6;9549:7;9546:19;9543:201;;;9619:19;;;9613:26;-1:-1:-1;;9702:1:7;9698:14;;;9714:3;9694:24;9690:37;9686:42;9671:58;9656:74;;9543:201;-1:-1:-1;;;;;9790:1:7;9774:14;;;9770:22;9757:36;;-1:-1:-1;8708:1352:7:o;10065:232::-;10104:3;10125:17;;;10122:140;;10184:10;10179:3;10175:20;10172:1;10165:31;10219:4;10216:1;10209:15;10247:4;10244:1;10237:15;10122:140;-1:-1:-1;10289:1:7;10278:13;;10065:232::o;10302:383::-;10499:2;10488:9;10481:21;10462:4;10525:45;10566:2;10555:9;10551:18;10543:6;10525:45;:::i;:::-;10618:9;10610:6;10606:22;10601:2;10590:9;10586:18;10579:50;10646:33;10672:6;10664;10646:33;:::i;:::-;10638:41;10302:383;-1:-1:-1;;;;;10302:383:7:o;10690:362::-;10895:6;10884:9;10877:25;10938:2;10933;10922:9;10918:18;10911:30;10858:4;10958:45;10999:2;10988:9;10984:18;10976:6;10958:45;:::i;:::-;10950:53;;11039:6;11034:2;11023:9;11019:18;11012:34;10690:362;;;;;;:::o;11406:127::-;11467:10;11462:3;11458:20;11455:1;11448:31;11498:4;11495:1;11488:15;11522:4;11519:1;11512:15" + "object": "608060405234801561001057600080fd5b506004361061010b5760003560e01c80639e498f16116100a2578063cbcf252a11610071578063cbcf252a1461025e578063d7071b1f14610271578063f2fde38b14610284578063f3a1a46614610297578063fd66091e146102aa57600080fd5b80639e498f16146101f8578063aac9f15a1461020b578063b2d780691461022b578063c7f758a81461023e57600080fd5b80637b5c219d116100de5780637b5c219d146101715780638da5cb5b1461019457806398366dbd146101b95780639c89a0e2146101cc57600080fd5b8063013cf08b146101105780632ab09d141461013d57806370370a8114610154578063715018a614610167575b600080fd5b61012361011e366004611222565b6102cf565b604051610134959493929190611281565b60405180910390f35b61014660055481565b604051908152602001610134565b6101466101623660046112e0565b610395565b61016f610558565b005b61018461017f3660046112e0565b61056c565b6040519015158152602001610134565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610134565b6101466101c73660046113ad565b6106d1565b6101466101da36600461144e565b6001600160a01b031660009081526003602052604090206004015490565b6002546101a1906001600160a01b031681565b61021e61021936600461144e565b6109af565b6040516101349190611470565b61016f61023936600461144e565b610b81565b61025161024c366004611222565b610bf3565b60405161013491906114ec565b6001546101a1906001600160a01b031681565b61016f61027f36600461144e565b610d18565b61016f61029236600461144e565b610d8a565b6101466102a5366004611546565b610dc8565b6102bd6102b836600461144e565b611004565b6040516101349695949392919061159d565b600460205260009081526040902080546001820180546001600160a01b0390921692916102fb906115f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610327906115f1565b80156103745780601f1061034957610100808354040283529160200191610374565b820191906000526020600020905b81548152906001019060200180831161035757829003601f168201915b50505050600283015460038401546004909401549293909290915060ff1685565b6002546000906001600160a01b031633146103f75760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420746865205461736b526567697374727920636f6e747261637400000060448201526064015b60405180910390fd5b60648211156104485760405162461bcd60e51b815260206004820181905260248201527f526174696e67206d757374206265206265747765656e203020616e642031303060448201526064016103ee565b6001600160a01b0383166000908152600360205260408120600501805460019290610474908490611641565b90915550506001600160a01b038316600090815260036020526040902060050154826104a1600183611654565b6001600160a01b0386166000908152600360205260409020600401546104c79190611667565b6104d19190611641565b6104db919061167e565b6001600160a01b038416600081815260036020526040908190206004018390555190917ffc577563f1b9a0461e24abef1e1fcc0d33d3d881f20b5df6dda59de4aae2c8219161052c91815260200190565b60405180910390a2506001600160a01b0382166000908152600360205260409020600401545b92915050565b610560611157565b61056a6000611184565b565b6001600160a01b03808316600090815260036020526040812060020154909184911633146105dc5760405162461bcd60e51b815260206004820152601a60248201527f4e6f7420746865206f776e6572206f6620746865206167656e7400000000000060448201526064016103ee565b6000838152600460205260409020546001600160a01b038581169116146106455760405162461bcd60e51b815260206004820152601960248201527f5365727669636550726f706f73616c206e6f7420666f756e640000000000000060448201526064016103ee565b600083815260046020526040812080546001600160a01b03191681559061066f60018301826111d4565b506000600282018190556003820155600401805460ff191690556040518381526001600160a01b038516907f45204680e8152470a4bb058a5049426c93d82614d97945e5b6541e67aba4a8f29060200160405180910390a25060019392505050565b6001600160a01b038581166000908152600360208190526040822001549091161561073e5760405162461bcd60e51b815260206004820152601860248201527f4167656e7420616c72656164792072656769737465726564000000000000000060448201526064016103ee565b60015460405163b405166b60e01b81526001600160a01b039091169063b405166b9061076e9086906004016116a0565b602060405180830381865afa15801561078b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107af91906116b3565b6107f45760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b60448201526064016103ee565b6001600160a01b0386166000908152600360205260409020806108178782611724565b50600181016108268682611724565b506002810180546001600160a01b031990811633179091556003820180546001600160a01b038a81169184168217909255600060048086018290556040805160a08101825293845260208085018b81528583018b9052600554606087018190526080870186905285529290529091208251815494169390941692909217835590519091829160018201906108ba9082611724565b5060408201516002820155606082015160038201556080909101516004909101805460ff1916911515919091179055600580549060006108f9836117e4565b9190505550336001600160a01b0316886001600160a01b03167f2a562efb52e7cec209321f57200606311256da6d2a1b19d44db7837a3209de2889896040516109439291906117fd565b60405180910390a3876001600160a01b03167fe194e0bc2279adb185c748ae57db10fe2ef1005a1b5646f96235a881c88ddb798260600151878760405161098c9392919061182b565b60405180910390a260016005546109a39190611654565b98975050505050505050565b6109fa6040518060c00160405280606081526020016060815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081525090565b6001600160a01b03821660009081526003602052604090819020815160c081019092528054909190829082908290610a31906115f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5d906115f1565b8015610aaa5780601f10610a7f57610100808354040283529160200191610aaa565b820191906000526020600020905b815481529060010190602001808311610a8d57829003601f168201915b50505050508152602001600182018054610ac3906115f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610aef906115f1565b8015610b3c5780601f10610b1157610100808354040283529160200191610b3c565b820191906000526020600020905b815481529060010190602001808311610b1f57829003601f168201915b505050918352505060028201546001600160a01b0390811660208301526003830154166040820152600482015460608201526005909101546080909101529392505050565b610b89611157565b6001600160a01b038116610bd15760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016103ee565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610c306040518060a0016040528060006001600160a01b031681526020016060815260200160008152602001600081526020016000151581525090565b600082815260046020908152604091829020825160a0810190935280546001600160a01b031683526001810180549192840191610c6c906115f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610c98906115f1565b8015610ce55780601f10610cba57610100808354040283529160200191610ce5565b820191906000526020600020905b815481529060010190602001808311610cc857829003601f168201915b5050509183525050600282015460208201526003820154604082015260049091015460ff16151560609091015292915050565b610d20611157565b6001600160a01b038116610d685760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016103ee565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b610d92611157565b6001600160a01b038116610dbc57604051631e4fbdf760e01b8152600060048201526024016103ee565b610dc581611184565b50565b6001600160a01b0380841660009081526003602052604081206002015490918591163314610e385760405162461bcd60e51b815260206004820152601a60248201527f4e6f7420746865206f776e6572206f6620746865206167656e7400000000000060448201526064016103ee565b60015460405163b405166b60e01b81526001600160a01b039091169063b405166b90610e689087906004016116a0565b602060405180830381865afa158015610e85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea991906116b3565b610eee5760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b60448201526064016103ee565b6040805160a0810182526001600160a01b0387811682526020808301888152838501889052600554606085018190526001608086018190526000918252600490935294909420835181546001600160a01b031916931692909217825592519192839290820190610f5e9082611724565b5060408201516002820155606082015160038201556080909101516004909101805460ff191691151591909117905560058054906000610f9d836117e4565b9190505550856001600160a01b03167fe194e0bc2279adb185c748ae57db10fe2ef1005a1b5646f96235a881c88ddb7982606001518787604051610fe39392919061182b565b60405180910390a26001600554610ffa9190611654565b9695505050505050565b60036020526000908152604090208054819061101f906115f1565b80601f016020809104026020016040519081016040528092919081815260200182805461104b906115f1565b80156110985780601f1061106d57610100808354040283529160200191611098565b820191906000526020600020905b81548152906001019060200180831161107b57829003601f168201915b5050505050908060010180546110ad906115f1565b80601f01602080910402602001604051908101604052809291908181526020018280546110d9906115f1565b80156111265780601f106110fb57610100808354040283529160200191611126565b820191906000526020600020905b81548152906001019060200180831161110957829003601f168201915b5050505060028301546003840154600485015460059095015493946001600160a01b03928316949290911692509086565b6000546001600160a01b0316331461056a5760405163118cdaa760e01b81523360048201526024016103ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5080546111e0906115f1565b6000825580601f106111f0575050565b601f016020900490600052602060002090810190610dc591905b8082111561121e576000815560010161120a565b5090565b60006020828403121561123457600080fd5b5035919050565b6000815180845260005b8181101561126157602081850181015186830182015201611245565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038616815260a0602082018190526000906112a59083018761123b565b6040830195909552506060810192909252151560809091015292915050565b80356001600160a01b03811681146112db57600080fd5b919050565b600080604083850312156112f357600080fd5b6112fc836112c4565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261133157600080fd5b813567ffffffffffffffff8082111561134c5761134c61130a565b604051601f8301601f19908116603f011681019082821181831017156113745761137461130a565b8160405283815286602085880101111561138d57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a086880312156113c557600080fd5b6113ce866112c4565b9450602086013567ffffffffffffffff808211156113eb57600080fd5b6113f789838a01611320565b9550604088013591508082111561140d57600080fd5b61141989838a01611320565b9450606088013591508082111561142f57600080fd5b5061143c88828901611320565b95989497509295608001359392505050565b60006020828403121561146057600080fd5b611469826112c4565b9392505050565b602081526000825160c0602084015261148c60e084018261123b565b90506020840151601f198483030160408501526114a9828261123b565b915050604084015160018060a01b0380821660608601528060608701511660808601525050608084015160a084015260a084015160c08401528091505092915050565b602080825282516001600160a01b03168282015282015160a0604083015260009061151a60c084018261123b565b905060408401516060840152606084015160808401526080840151151560a08401528091505092915050565b60008060006060848603121561155b57600080fd5b611564846112c4565b9250602084013567ffffffffffffffff81111561158057600080fd5b61158c86828701611320565b925050604084013590509250925092565b60c0815260006115b060c083018961123b565b82810360208401526115c2818961123b565b6001600160a01b03978816604085015295909616606083015250608081019290925260a0909101529392505050565b600181811c9082168061160557607f821691505b60208210810361162557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156105525761055261162b565b818103818111156105525761055261162b565b80820281158282048414176105525761055261162b565b60008261169b57634e487b7160e01b600052601260045260246000fd5b500490565b602081526000611469602083018461123b565b6000602082840312156116c557600080fd5b8151801515811461146957600080fd5b601f82111561171f57600081815260208120601f850160051c810160208610156116fc5750805b601f850160051c820191505b8181101561171b57828155600101611708565b5050505b505050565b815167ffffffffffffffff81111561173e5761173e61130a565b6117528161174c84546115f1565b846116d5565b602080601f831160018114611787576000841561176f5750858301515b600019600386901b1c1916600185901b17855561171b565b600085815260208120601f198616915b828110156117b657888601518255948401946001909101908401611797565b50858210156117d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000600182016117f6576117f661162b565b5060010190565b604081526000611810604083018561123b565b8281036020840152611822818561123b565b95945050505050565b838152606060208201526000611844606083018561123b565b905082604083015294935050505056fea26469706673582212202255def4b16ca5ed4bfdfe6c197c6e8cff9a21c7a547e18a955c433c677b32a464736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x10B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9E498F16 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xCBCF252A GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xCBCF252A EQ PUSH2 0x25E JUMPI DUP1 PUSH4 0xD7071B1F EQ PUSH2 0x271 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x284 JUMPI DUP1 PUSH4 0xF3A1A466 EQ PUSH2 0x297 JUMPI DUP1 PUSH4 0xFD66091E EQ PUSH2 0x2AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9E498F16 EQ PUSH2 0x1F8 JUMPI DUP1 PUSH4 0xAAC9F15A EQ PUSH2 0x20B JUMPI DUP1 PUSH4 0xB2D78069 EQ PUSH2 0x22B JUMPI DUP1 PUSH4 0xC7F758A8 EQ PUSH2 0x23E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7B5C219D GT PUSH2 0xDE JUMPI DUP1 PUSH4 0x7B5C219D EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x194 JUMPI DUP1 PUSH4 0x98366DBD EQ PUSH2 0x1B9 JUMPI DUP1 PUSH4 0x9C89A0E2 EQ PUSH2 0x1CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0x110 JUMPI DUP1 PUSH4 0x2AB09D14 EQ PUSH2 0x13D JUMPI DUP1 PUSH4 0x70370A81 EQ PUSH2 0x154 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x167 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x123 PUSH2 0x11E CALLDATASIZE PUSH1 0x4 PUSH2 0x1222 JUMP JUMPDEST PUSH2 0x2CF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x134 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1281 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x146 PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x134 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x162 CALLDATASIZE PUSH1 0x4 PUSH2 0x12E0 JUMP JUMPDEST PUSH2 0x395 JUMP JUMPDEST PUSH2 0x16F PUSH2 0x558 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x184 PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x12E0 JUMP JUMPDEST PUSH2 0x56C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x134 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x134 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x1C7 CALLDATASIZE PUSH1 0x4 PUSH2 0x13AD JUMP JUMPDEST PUSH2 0x6D1 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x1DA CALLDATASIZE PUSH1 0x4 PUSH2 0x144E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x1A1 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x21E PUSH2 0x219 CALLDATASIZE PUSH1 0x4 PUSH2 0x144E JUMP JUMPDEST PUSH2 0x9AF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x134 SWAP2 SWAP1 PUSH2 0x1470 JUMP JUMPDEST PUSH2 0x16F PUSH2 0x239 CALLDATASIZE PUSH1 0x4 PUSH2 0x144E JUMP JUMPDEST PUSH2 0xB81 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x24C CALLDATASIZE PUSH1 0x4 PUSH2 0x1222 JUMP JUMPDEST PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x134 SWAP2 SWAP1 PUSH2 0x14EC JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x1A1 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x16F PUSH2 0x27F CALLDATASIZE PUSH1 0x4 PUSH2 0x144E JUMP JUMPDEST PUSH2 0xD18 JUMP JUMPDEST PUSH2 0x16F PUSH2 0x292 CALLDATASIZE PUSH1 0x4 PUSH2 0x144E JUMP JUMPDEST PUSH2 0xD8A JUMP JUMPDEST PUSH2 0x146 PUSH2 0x2A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1546 JUMP JUMPDEST PUSH2 0xDC8 JUMP JUMPDEST PUSH2 0x2BD PUSH2 0x2B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x144E JUMP JUMPDEST PUSH2 0x1004 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x134 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x159D JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 SWAP2 PUSH2 0x2FB SWAP1 PUSH2 0x15F1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x327 SWAP1 PUSH2 0x15F1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x374 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x349 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x374 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x357 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 SWAP1 SWAP5 ADD SLOAD SWAP3 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 POP PUSH1 0xFF AND DUP6 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3F7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F7420746865205461736B526567697374727920636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x64 DUP3 GT ISZERO PUSH2 0x448 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x526174696E67206D757374206265206265747765656E203020616E6420313030 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x5 ADD DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x474 SWAP1 DUP5 SWAP1 PUSH2 0x1641 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x5 ADD SLOAD DUP3 PUSH2 0x4A1 PUSH1 0x1 DUP4 PUSH2 0x1654 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH2 0x4C7 SWAP2 SWAP1 PUSH2 0x1667 JUMP JUMPDEST PUSH2 0x4D1 SWAP2 SWAP1 PUSH2 0x1641 JUMP JUMPDEST PUSH2 0x4DB SWAP2 SWAP1 PUSH2 0x167E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 PUSH1 0x4 ADD DUP4 SWAP1 SSTORE MLOAD SWAP1 SWAP2 PUSH32 0xFC577563F1B9A0461E24ABEF1E1FCC0D33D3D881F20B5DF6DDA59DE4AAE2C821 SWAP2 PUSH2 0x52C SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x560 PUSH2 0x1157 JUMP JUMPDEST PUSH2 0x56A PUSH1 0x0 PUSH2 0x1184 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 SWAP2 DUP5 SWAP2 AND CALLER EQ PUSH2 0x5DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F7420746865206F776E6572206F6620746865206167656E74000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EE JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND SWAP2 AND EQ PUSH2 0x645 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5365727669636550726F706F73616C206E6F7420666F756E6400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EE JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP2 SSTORE SWAP1 PUSH2 0x66F PUSH1 0x1 DUP4 ADD DUP3 PUSH2 0x11D4 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x2 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x3 DUP3 ADD SSTORE PUSH1 0x4 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH32 0x45204680E8152470A4BB058A5049426C93D82614D97945E5B6541E67ABA4A8F2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 ADD SLOAD SWAP1 SWAP2 AND ISZERO PUSH2 0x73E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4167656E7420616C726561647920726567697374657265640000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0x76E SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x16A0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x78B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0x16B3 JUMP JUMPDEST PUSH2 0x7F4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x14D95C9D9A58D9481B9BDD081C9959DA5CDD195C9959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 PUSH2 0x817 DUP8 DUP3 PUSH2 0x1724 JUMP JUMPDEST POP PUSH1 0x1 DUP2 ADD PUSH2 0x826 DUP7 DUP3 PUSH2 0x1724 JUMP JUMPDEST POP PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP2 DUP5 AND DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 PUSH1 0x4 DUP1 DUP7 ADD DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE SWAP4 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD DUP12 DUP2 MSTORE DUP6 DUP4 ADD DUP12 SWAP1 MSTORE PUSH1 0x5 SLOAD PUSH1 0x60 DUP8 ADD DUP2 SWAP1 MSTORE PUSH1 0x80 DUP8 ADD DUP7 SWAP1 MSTORE DUP6 MSTORE SWAP3 SWAP1 MSTORE SWAP1 SWAP2 KECCAK256 DUP3 MLOAD DUP2 SLOAD SWAP5 AND SWAP4 SWAP1 SWAP5 AND SWAP3 SWAP1 SWAP3 OR DUP4 SSTORE SWAP1 MLOAD SWAP1 SWAP2 DUP3 SWAP2 PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x8BA SWAP1 DUP3 PUSH2 0x1724 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x3 DUP3 ADD SSTORE PUSH1 0x80 SWAP1 SWAP2 ADD MLOAD PUSH1 0x4 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x5 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x8F9 DUP4 PUSH2 0x17E4 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x2A562EFB52E7CEC209321F57200606311256DA6D2A1B19D44DB7837A3209DE28 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH2 0x943 SWAP3 SWAP2 SWAP1 PUSH2 0x17FD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xE194E0BC2279ADB185C748AE57DB10FE2EF1005A1B5646F96235A881C88DDB79 DUP3 PUSH1 0x60 ADD MLOAD DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x98C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x182B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 PUSH1 0x5 SLOAD PUSH2 0x9A3 SWAP2 SWAP1 PUSH2 0x1654 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x9FA PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP2 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD SWAP1 SWAP2 SWAP1 DUP3 SWAP1 DUP3 SWAP1 DUP3 SWAP1 PUSH2 0xA31 SWAP1 PUSH2 0x15F1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA5D SWAP1 PUSH2 0x15F1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAAA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA7F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAAA JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA8D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH2 0xAC3 SWAP1 PUSH2 0x15F1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAEF SWAP1 PUSH2 0x15F1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB3C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB11 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB3C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB1F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x3 DUP4 ADD SLOAD AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x5 SWAP1 SWAP2 ADD SLOAD PUSH1 0x80 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xB89 PUSH2 0x1157 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xBD1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x496E76616C69642061646472657373 PUSH1 0x88 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EE JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xC30 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE PUSH1 0x1 DUP2 ADD DUP1 SLOAD SWAP2 SWAP3 DUP5 ADD SWAP2 PUSH2 0xC6C SWAP1 PUSH2 0x15F1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xC98 SWAP1 PUSH2 0x15F1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xCE5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xCBA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xCE5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xCC8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD20 PUSH2 0x1157 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xD68 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x496E76616C69642061646472657373 PUSH1 0x88 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EE JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xD92 PUSH2 0x1157 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xDBC JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3EE JUMP JUMPDEST PUSH2 0xDC5 DUP2 PUSH2 0x1184 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 SWAP2 DUP6 SWAP2 AND CALLER EQ PUSH2 0xE38 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F7420746865206F776E6572206F6620746865206167656E74000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0xE68 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x16A0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE85 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEA9 SWAP2 SWAP1 PUSH2 0x16B3 JUMP JUMPDEST PUSH2 0xEEE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x14D95C9D9A58D9481B9BDD081C9959DA5CDD195C9959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3EE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP9 DUP2 MSTORE DUP4 DUP6 ADD DUP9 SWAP1 MSTORE PUSH1 0x5 SLOAD PUSH1 0x60 DUP6 ADD DUP2 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x80 DUP7 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x4 SWAP1 SWAP4 MSTORE SWAP5 SWAP1 SWAP5 KECCAK256 DUP4 MLOAD DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP4 AND SWAP3 SWAP1 SWAP3 OR DUP3 SSTORE SWAP3 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP3 ADD SWAP1 PUSH2 0xF5E SWAP1 DUP3 PUSH2 0x1724 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x3 DUP3 ADD SSTORE PUSH1 0x80 SWAP1 SWAP2 ADD MLOAD PUSH1 0x4 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x5 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0xF9D DUP4 PUSH2 0x17E4 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xE194E0BC2279ADB185C748AE57DB10FE2EF1005A1B5646F96235A881C88DDB79 DUP3 PUSH1 0x60 ADD MLOAD DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0xFE3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x182B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 PUSH1 0x5 SLOAD PUSH2 0xFFA SWAP2 SWAP1 PUSH2 0x1654 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP2 SWAP1 PUSH2 0x101F SWAP1 PUSH2 0x15F1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x104B SWAP1 PUSH2 0x15F1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1098 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x106D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1098 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x107B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x10AD SWAP1 PUSH2 0x15F1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x10D9 SWAP1 PUSH2 0x15F1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1126 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x10FB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1126 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1109 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 DUP6 ADD SLOAD PUSH1 0x5 SWAP1 SWAP6 ADD SLOAD SWAP4 SWAP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP5 SWAP3 SWAP1 SWAP2 AND SWAP3 POP SWAP1 DUP7 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x56A JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3EE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x11E0 SWAP1 PUSH2 0x15F1 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x11F0 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0xDC5 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x121E JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x120A JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1261 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x1245 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP2 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x12A5 SWAP1 DUP4 ADD DUP8 PUSH2 0x123B JUMP JUMPDEST PUSH1 0x40 DUP4 ADD SWAP6 SWAP1 SWAP6 MSTORE POP PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x12DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12FC DUP4 PUSH2 0x12C4 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1331 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x134C JUMPI PUSH2 0x134C PUSH2 0x130A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x1374 JUMPI PUSH2 0x1374 PUSH2 0x130A JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0x138D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x13C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x13CE DUP7 PUSH2 0x12C4 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x13EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x13F7 DUP10 DUP4 DUP11 ADD PUSH2 0x1320 JUMP JUMPDEST SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x140D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1419 DUP10 DUP4 DUP11 ADD PUSH2 0x1320 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x142F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x143C DUP9 DUP3 DUP10 ADD PUSH2 0x1320 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP3 SWAP6 PUSH1 0x80 ADD CALLDATALOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1460 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1469 DUP3 PUSH2 0x12C4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH1 0xC0 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x148C PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x123B JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x14A9 DUP3 DUP3 PUSH2 0x123B JUMP JUMPDEST SWAP2 POP POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x60 DUP7 ADD MSTORE DUP1 PUSH1 0x60 DUP8 ADD MLOAD AND PUSH1 0x80 DUP7 ADD MSTORE POP POP PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0xC0 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 DUP3 ADD MSTORE DUP3 ADD MLOAD PUSH1 0xA0 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x0 SWAP1 PUSH2 0x151A PUSH1 0xC0 DUP5 ADD DUP3 PUSH2 0x123B JUMP JUMPDEST SWAP1 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0x80 DUP5 ADD MLOAD ISZERO ISZERO PUSH1 0xA0 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x155B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1564 DUP5 PUSH2 0x12C4 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1580 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x158C DUP7 DUP3 DUP8 ADD PUSH2 0x1320 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xC0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x15B0 PUSH1 0xC0 DUP4 ADD DUP10 PUSH2 0x123B JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x15C2 DUP2 DUP10 PUSH2 0x123B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 DUP9 AND PUSH1 0x40 DUP6 ADD MSTORE SWAP6 SWAP1 SWAP7 AND PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xA0 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1605 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1625 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x552 JUMPI PUSH2 0x552 PUSH2 0x162B JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x552 JUMPI PUSH2 0x552 PUSH2 0x162B JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x552 JUMPI PUSH2 0x552 PUSH2 0x162B JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x169B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1469 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x123B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1469 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x171F JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x16FC JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x171B JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1708 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x173E JUMPI PUSH2 0x173E PUSH2 0x130A JUMP JUMPDEST PUSH2 0x1752 DUP2 PUSH2 0x174C DUP5 SLOAD PUSH2 0x15F1 JUMP JUMPDEST DUP5 PUSH2 0x16D5 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1787 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x176F JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x171B JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x17B6 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x1797 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x17D4 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x17F6 JUMPI PUSH2 0x17F6 PUSH2 0x162B JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1810 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x123B JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x1822 DUP2 DUP6 PUSH2 0x123B JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1844 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x123B JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 SSTORE 0xDE DELEGATECALL 0xB1 PUSH13 0xA5ED4BFDFE6C197C6E8CFF9A21 0xC7 0xA5 SELFBALANCE 0xE1 DUP11 SWAP6 0x5C NUMBER EXTCODECOPY PUSH8 0x7B32A464736F6C63 NUMBER STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "362:6428:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;728:52;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;786:29;;;;;;;;;1321:25:9;;;1309:2;1294:18;786:29:2;1175:177:9;5673:531:2;;;;;;:::i;:::-;;:::i;2293:101:0:-;;;:::i;:::-;;5360:307:2;;;;;;:::i;:::-;;:::i;:::-;;;1959:14:9;;1952:22;1934:41;;1922:2;1907:18;5360:307:2;1794:187:9;1638:85:0;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;1638:85;;;-1:-1:-1;;;;;2150:32:9;;;2132:51;;2120:2;2105:18;1638:85:0;1986:203:9;2857:995:2;;;;;;:::i;:::-;;:::i;6210:118::-;;;;;;:::i;:::-;-1:-1:-1;;;;;6297:13:2;6271:7;6297:13;;;:6;:13;;;;;:24;;;;6210:118;645:27;;;;;-1:-1:-1;;;;;645:27:2;;;6487:161;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1698:177::-;;;;;;:::i;:::-;;:::i;6655:133::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;601:38::-;;;;;-1:-1:-1;;;;;601:38:2;;;2035:209;;;;;;:::i;:::-;;:::i;2543:215:0:-;;;;;;:::i;:::-;;:::i;4360:542:2:-;;;;;;:::i;:::-;;:::i;679:43::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;728:52::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;728:52:2;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;728:52:2;;;;;;;;;;;;;;;;;;;-1:-1:-1;728:52:2;;;:::o;5673:531::-;5781:12;;5740:7;;-1:-1:-1;;;;;5781:12:2;5767:10;:26;5759:68;;;;-1:-1:-1;;;5759:68:2;;7733:2:9;5759:68:2;;;7715:21:9;7772:2;7752:18;;;7745:30;7811:31;7791:18;;;7784:59;7860:18;;5759:68:2;;;;;;;;;5872:3;5861:7;:14;;5837:75;;;;-1:-1:-1;;;5837:75:2;;8091:2:9;5837:75:2;;;8073:21:9;;;8110:18;;;8103:30;8169:34;8149:18;;;8142:62;8221:18;;5837:75:2;7889:356:9;5837:75:2;-1:-1:-1;;;;;5922:13:2;;;;;;:6;:13;;;;;:26;;:31;;5952:1;;5922:13;:31;;5952:1;;5922:31;:::i;:::-;;;;-1:-1:-1;;;;;;;6064:13:2;;;;;;:6;:13;;;;;:26;;;6053:7;6019:30;6048:1;6064:26;6019:30;:::i;:::-;-1:-1:-1;;;;;5991:13:2;;;;;;:6;:13;;;;;:24;;;:59;;;;:::i;:::-;:69;;;;:::i;:::-;5990:100;;;;:::i;:::-;-1:-1:-1;;;;;5963:13:2;;;;;;:6;:13;;;;;;;:24;;:127;;;6105:50;5963:13;;6105:50;;;;1321:25:9;;1309:2;1294:18;;1175:177;6105:50:2;;;;;;;;-1:-1:-1;;;;;;6173:13:2;;;;;;:6;:13;;;;;:24;;;5673:531;;;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;5360:307:2:-;-1:-1:-1;;;;;879:13:2;;;5459:4;879:13;;;:6;:13;;;;;:19;;;5459:4;;5443:5;;879:19;902:10;879:33;871:72;;;;-1:-1:-1;;;871:72:2;;9242:2:9;871:72:2;;;9224:21:9;9281:2;9261:18;;;9254:30;9320:28;9300:18;;;9293:56;9366:18;;871:72:2;9040:350:9;871:72:2;5483:21:::1;::::0;;;:9:::1;:21;::::0;;;;:28;-1:-1:-1;;;;;5483:37:2;;::::1;:28:::0;::::1;:37;5475:75;;;::::0;-1:-1:-1;;;5475:75:2;;9597:2:9;5475:75:2::1;::::0;::::1;9579:21:9::0;9636:2;9616:18;;;9609:30;9675:27;9655:18;;;9648:55;9720:18;;5475:75:2::1;9395:349:9::0;5475:75:2::1;5568:21;::::0;;;:9:::1;:21;::::0;;;;5561:28;;-1:-1:-1;;;;;;5561:28:2::1;::::0;;5568:21;5561:28:::1;::::0;;::::1;5568:21:::0;5561:28:::1;:::i;:::-;-1:-1:-1::0;5561:28:2::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;;::::0;;-1:-1:-1;;5561:28:2::1;::::0;;5604:34:::1;::::0;1321:25:9;;;-1:-1:-1;;;;;5604:34:2;::::1;::::0;::::1;::::0;1309:2:9;1294:18;5604:34:2::1;;;;;;;-1:-1:-1::0;5656:4:2::1;::::0;5360:307;-1:-1:-1;;;5360:307:2:o;2857:995::-;-1:-1:-1;;;;;3079:13:2;;;3052:7;3079:13;;;:6;:13;;;;;;;:19;;3052:7;;3079:19;:33;3071:70;;;;-1:-1:-1;;;3071:70:2;;9951:2:9;3071:70:2;;;9933:21:9;9990:2;9970:18;;;9963:30;10029:26;10009:18;;;10002:54;10073:18;;3071:70:2;9749:348:9;3071:70:2;3159:15;;:48;;-1:-1:-1;;;3159:48:2;;-1:-1:-1;;;;;3159:15:2;;;;:35;;:48;;3195:11;;3159:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3151:83;;;;-1:-1:-1;;;3151:83:2;;10811:2:9;3151:83:2;;;10793:21:9;10850:2;10830:18;;;10823:30;-1:-1:-1;;;10869:18:9;;;10862:52;10931:18;;3151:83:2;10609:346:9;3151:83:2;-1:-1:-1;;;;;3283:13:2;;3253:27;3283:13;;;:6;:13;;;;;;3306:21;3323:4;3283:13;3306:21;:::i;:::-;-1:-1:-1;3337:18:2;;;:29;3358:8;3337:18;:29;:::i;:::-;-1:-1:-1;3376:15:2;;;:28;;-1:-1:-1;;;;;;3376:28:2;;;3394:10;3376:28;;;;3414:15;;;:23;;-1:-1:-1;;;;;3414:23:2;;;;;;;;;;;3376:15;3447:20;;;;:24;;;3516:72;;;;;;;;;;;;;;;;;;;;;;;;3566:14;;3516:72;;;;;;;;;;;;3598:25;;;;;;;;:36;;;;;;;;;;;;;;;;;;3516:72;;;;3376:28;3598:36;;;;;;;:::i;:::-;-1:-1:-1;3598:36:2;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3598:36:2;;;;;;;;;;3645:14;:16;;;-1:-1:-1;3645:16:2;;;:::i;:::-;;;;;;3699:10;-1:-1:-1;;;;;3676:50:2;3692:5;-1:-1:-1;;;;;3676:50:2;;3711:4;3717:8;3676:50;;;;;;;:::i;:::-;;;;;;;;3755:5;-1:-1:-1;;;;;3741:68:2;;3762:8;:19;;;3783:11;3796:12;3741:68;;;;;;;;:::i;:::-;;;;;;;;3844:1;3827:14;;:18;;;;:::i;:::-;3820:25;2857:995;-1:-1:-1;;;;;;;;2857:995:2:o;6487:161::-;6548:16;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6548:16:2;-1:-1:-1;;;;;6606:14:2;;6581:22;6606:14;;;:6;:14;;;;;;;6630:11;;;;;;;;;;6606:14;;6630:11;6606:14;;6630:11;;6606:14;;6630:11;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6630:11:2;;;-1:-1:-1;;6630:11:2;;;;-1:-1:-1;;;;;6630:11:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6487:161;-1:-1:-1;;;6487:161:2:o;1698:177::-;1531:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;1783:27:2;::::1;1775:55;;;::::0;-1:-1:-1;;;1775:55:2;;14261:2:9;1775:55:2::1;::::0;::::1;14243:21:9::0;14300:2;14280:18;;;14273:30;-1:-1:-1;;;14319:18:9;;;14312:45;14374:18;;1775:55:2::1;14059:339:9::0;1775:55:2::1;1840:12;:28:::0;;-1:-1:-1;;;;;;1840:28:2::1;-1:-1:-1::0;;;;;1840:28:2;;;::::1;::::0;;;::::1;::::0;;1698:177::o;6655:133::-;6719:22;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6719:22:2;6760:21;;;;:9;:21;;;;;;;;;6753:28;;;;;;;;;;-1:-1:-1;;;;;6753:28:2;;;;;;;;6760:21;;6753:28;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6753:28:2;;;-1:-1:-1;;6753:28:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6655:133;-1:-1:-1;;6655:133:2:o;2035:209::-;1531:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;2126:30:2;::::1;2118:58;;;::::0;-1:-1:-1;;;2118:58:2;;14261:2:9;2118:58:2::1;::::0;::::1;14243:21:9::0;14300:2;14280:18;;;14273:30;-1:-1:-1;;;14319:18:9;;;14312:45;14374:18;;2118:58:2::1;14059:339:9::0;2118:58:2::1;2186:15;:51:::0;;-1:-1:-1;;;;;;2186:51:2::1;-1:-1:-1::0;;;;;2186:51:2;;;::::1;::::0;;;::::1;::::0;;2035:209::o;2543:215:0:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:0;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:0;;2700:1:::1;2672:31;::::0;::::1;2132:51:9::0;2105:18;;2672:31:0::1;1986:203:9::0;2623:91:0::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;4360:542:2:-;-1:-1:-1;;;;;879:13:2;;;4485:7;879:13;;;:6;:13;;;;;:19;;;4485:7;;4469:5;;879:19;902:10;879:33;871:72;;;;-1:-1:-1;;;871:72:2;;9242:2:9;871:72:2;;;9224:21:9;9281:2;9261:18;;;9254:30;9320:28;9300:18;;;9293:56;9366:18;;871:72:2;9040:350:9;871:72:2;4512:15:::1;::::0;:48:::1;::::0;-1:-1:-1;;;4512:48:2;;-1:-1:-1;;;;;4512:15:2;;::::1;::::0;:35:::1;::::0;:48:::1;::::0;4548:11;;4512:48:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4504:83;;;::::0;-1:-1:-1;;;4504:83:2;;10811:2:9;4504:83:2::1;::::0;::::1;10793:21:9::0;10850:2;10830:18;;;10823:30;-1:-1:-1;;;10869:18:9;;;10862:52;10931:18;;4504:83:2::1;10609:346:9::0;4504:83:2::1;4632:71;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;4632:71:2;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;;4682:14:::1;::::0;4632:71;;;;;;4698:4:::1;4632:71:::0;;;;;;-1:-1:-1;4713:25:2;;;:9:::1;:25:::0;;;;;;;:36;;;;-1:-1:-1;;;;;;4713:36:2::1;::::0;::::1;::::0;;;::::1;::::0;;;;4632:71;;;;4713:36;;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;4713:36:2::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;-1:-1:-1;;4713:36:2::1;::::0;::::1;;::::0;;;::::1;::::0;;4760:14:::1;:16:::0;;;-1:-1:-1;4760:16:2::1;::::0;::::1;:::i;:::-;;;;;;4805:5;-1:-1:-1::0;;;;;4791:68:2::1;;4812:8;:19;;;4833:11;4846:12;4791:68;;;;;;;;:::i;:::-;;;;;;;;4894:1;4877:14;;:18;;;;:::i;:::-;4870:25:::0;4360:542;-1:-1:-1;;;;;;4360:542:2:o;679:43::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;679:43:2;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;679:43:2;;;;;;;;;-1:-1:-1;679:43:2;;:::o;1796:162:0:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;735:10:1;1855:23:0;1851:101;;1901:40;;-1:-1:-1;;;1901:40:0;;735:10:1;1901:40:0;;;2132:51:9;2105:18;;1901:40:0;1986:203:9;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:9:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:9;;14:180;-1:-1:-1;14:180:9:o;199:423::-;241:3;279:5;273:12;306:6;301:3;294:19;331:1;341:162;355:6;352:1;349:13;341:162;;;417:4;473:13;;;469:22;;463:29;445:11;;;441:20;;434:59;370:12;341:162;;;345:3;548:1;541:4;532:6;527:3;523:16;519:27;512:38;611:4;604:2;600:7;595:2;587:6;583:15;579:29;574:3;570:39;566:50;559:57;;;199:423;;;;:::o;627:543::-;-1:-1:-1;;;;;882:32:9;;864:51;;902:3;946:2;931:18;;924:31;;;-1:-1:-1;;972:46:9;;998:19;;990:6;972:46;:::i;:::-;1049:2;1034:18;;1027:34;;;;-1:-1:-1;1092:2:9;1077:18;;1070:34;;;;1148:14;1141:22;1135:3;1120:19;;;1113:51;964:54;627:543;-1:-1:-1;;627:543:9:o;1357:173::-;1425:20;;-1:-1:-1;;;;;1474:31:9;;1464:42;;1454:70;;1520:1;1517;1510:12;1454:70;1357:173;;;:::o;1535:254::-;1603:6;1611;1664:2;1652:9;1643:7;1639:23;1635:32;1632:52;;;1680:1;1677;1670:12;1632:52;1703:29;1722:9;1703:29;:::i;:::-;1693:39;1779:2;1764:18;;;;1751:32;;-1:-1:-1;;;1535:254:9:o;2194:127::-;2255:10;2250:3;2246:20;2243:1;2236:31;2286:4;2283:1;2276:15;2310:4;2307:1;2300:15;2326:719;2369:5;2422:3;2415:4;2407:6;2403:17;2399:27;2389:55;;2440:1;2437;2430:12;2389:55;2476:6;2463:20;2502:18;2539:2;2535;2532:10;2529:36;;;2545:18;;:::i;:::-;2620:2;2614:9;2588:2;2674:13;;-1:-1:-1;;2670:22:9;;;2694:2;2666:31;2662:40;2650:53;;;2718:18;;;2738:22;;;2715:46;2712:72;;;2764:18;;:::i;:::-;2804:10;2800:2;2793:22;2839:2;2831:6;2824:18;2885:3;2878:4;2873:2;2865:6;2861:15;2857:26;2854:35;2851:55;;;2902:1;2899;2892:12;2851:55;2966:2;2959:4;2951:6;2947:17;2940:4;2932:6;2928:17;2915:54;3013:1;3006:4;3001:2;2993:6;2989:15;2985:26;2978:37;3033:6;3024:15;;;;;;2326:719;;;;:::o;3050:887::-;3175:6;3183;3191;3199;3207;3260:3;3248:9;3239:7;3235:23;3231:33;3228:53;;;3277:1;3274;3267:12;3228:53;3300:29;3319:9;3300:29;:::i;:::-;3290:39;;3380:2;3369:9;3365:18;3352:32;3403:18;3444:2;3436:6;3433:14;3430:34;;;3460:1;3457;3450:12;3430:34;3483:50;3525:7;3516:6;3505:9;3501:22;3483:50;:::i;:::-;3473:60;;3586:2;3575:9;3571:18;3558:32;3542:48;;3615:2;3605:8;3602:16;3599:36;;;3631:1;3628;3621:12;3599:36;3654:52;3698:7;3687:8;3676:9;3672:24;3654:52;:::i;:::-;3644:62;;3759:2;3748:9;3744:18;3731:32;3715:48;;3788:2;3778:8;3775:16;3772:36;;;3804:1;3801;3794:12;3772:36;;3827:52;3871:7;3860:8;3849:9;3845:24;3827:52;:::i;:::-;3050:887;;;;-1:-1:-1;3050:887:9;;3926:3;3911:19;3898:33;;3050:887;-1:-1:-1;;;3050:887:9:o;3942:186::-;4001:6;4054:2;4042:9;4033:7;4029:23;4025:32;4022:52;;;4070:1;4067;4060:12;4022:52;4093:29;4112:9;4093:29;:::i;:::-;4083:39;3942:186;-1:-1:-1;;;3942:186:9:o;4133:904::-;4314:2;4303:9;4296:21;4277:4;4352:6;4346:13;4395:4;4390:2;4379:9;4375:18;4368:32;4423:52;4470:3;4459:9;4455:19;4441:12;4423:52;:::i;:::-;4409:66;;4524:2;4516:6;4512:15;4506:22;4596:2;4592:7;4580:9;4572:6;4568:22;4564:36;4559:2;4548:9;4544:18;4537:64;4624:41;4658:6;4642:14;4624:41;:::i;:::-;4610:55;;;4714:2;4706:6;4702:15;4696:22;4754:1;4750;4745:3;4741:11;4737:19;4812:2;4796:14;4792:23;4787:2;4776:9;4772:18;4765:51;4881:2;4875;4867:6;4863:15;4857:22;4853:31;4847:3;4836:9;4832:19;4825:60;;;4940:3;4932:6;4928:16;4922:23;4916:3;4905:9;4901:19;4894:52;5002:3;4994:6;4990:16;4984:23;4977:4;4966:9;4962:20;4955:53;5025:6;5017:14;;;4133:904;;;;:::o;5042:667::-;5237:2;5219:21;;;5280:13;;-1:-1:-1;;;;;5276:39:9;5256:18;;;5249:67;5351:15;;5345:22;5303:3;5398:2;5383:18;;5376:32;-1:-1:-1;;5431:52:9;5478:3;5463:19;;5345:22;5431:52;:::i;:::-;5417:66;;5537:2;5529:6;5525:15;5519:22;5514:2;5503:9;5499:18;5492:50;5597:2;5589:6;5585:15;5579:22;5573:3;5562:9;5558:19;5551:51;5672:3;5664:6;5660:16;5654:23;5647:31;5640:39;5633:4;5622:9;5618:20;5611:69;5697:6;5689:14;;;5042:667;;;;:::o;5945:464::-;6032:6;6040;6048;6101:2;6089:9;6080:7;6076:23;6072:32;6069:52;;;6117:1;6114;6107:12;6069:52;6140:29;6159:9;6140:29;:::i;:::-;6130:39;;6220:2;6209:9;6205:18;6192:32;6247:18;6239:6;6236:30;6233:50;;;6279:1;6276;6269:12;6233:50;6302;6344:7;6335:6;6324:9;6320:22;6302:50;:::i;:::-;6292:60;;;6399:2;6388:9;6384:18;6371:32;6361:42;;5945:464;;;;;:::o;6414:727::-;6723:3;6712:9;6705:22;6686:4;6750:46;6791:3;6780:9;6776:19;6768:6;6750:46;:::i;:::-;6844:9;6836:6;6832:22;6827:2;6816:9;6812:18;6805:50;6872:33;6898:6;6890;6872:33;:::i;:::-;-1:-1:-1;;;;;6979:15:9;;;6974:2;6959:18;;6952:43;7031:15;;;;7026:2;7011:18;;7004:43;-1:-1:-1;7078:3:9;7063:19;;7056:35;;;;6932:3;7107:19;;;7100:35;7031:15;6864:41;-1:-1:-1;;;6414:727:9:o;7146:380::-;7225:1;7221:12;;;;7268;;;7289:61;;7343:4;7335:6;7331:17;7321:27;;7289:61;7396:2;7388:6;7385:14;7365:18;7362:38;7359:161;;7442:10;7437:3;7433:20;7430:1;7423:31;7477:4;7474:1;7467:15;7505:4;7502:1;7495:15;7359:161;;7146:380;;;:::o;8250:127::-;8311:10;8306:3;8302:20;8299:1;8292:31;8342:4;8339:1;8332:15;8366:4;8363:1;8356:15;8382:125;8447:9;;;8468:10;;;8465:36;;;8481:18;;:::i;8512:128::-;8579:9;;;8600:11;;;8597:37;;;8614:18;;:::i;8645:168::-;8718:9;;;8749;;8766:15;;;8760:22;;8746:37;8736:71;;8787:18;;:::i;8818:217::-;8858:1;8884;8874:132;;8928:10;8923:3;8919:20;8916:1;8909:31;8963:4;8960:1;8953:15;8991:4;8988:1;8981:15;8874:132;-1:-1:-1;9020:9:9;;8818:217::o;10102:220::-;10251:2;10240:9;10233:21;10214:4;10271:45;10312:2;10301:9;10297:18;10289:6;10271:45;:::i;10327:277::-;10394:6;10447:2;10435:9;10426:7;10422:23;10418:32;10415:52;;;10463:1;10460;10453:12;10415:52;10495:9;10489:16;10548:5;10541:13;10534:21;10527:5;10524:32;10514:60;;10570:1;10567;10560:12;11086:545;11188:2;11183:3;11180:11;11177:448;;;11224:1;11249:5;11245:2;11238:17;11294:4;11290:2;11280:19;11364:2;11352:10;11348:19;11345:1;11341:27;11335:4;11331:38;11400:4;11388:10;11385:20;11382:47;;;-1:-1:-1;11423:4:9;11382:47;11478:2;11473:3;11469:12;11466:1;11462:20;11456:4;11452:31;11442:41;;11533:82;11551:2;11544:5;11541:13;11533:82;;;11596:17;;;11577:1;11566:13;11533:82;;;11537:3;;;11177:448;11086:545;;;:::o;11807:1352::-;11933:3;11927:10;11960:18;11952:6;11949:30;11946:56;;;11982:18;;:::i;:::-;12011:97;12101:6;12061:38;12093:4;12087:11;12061:38;:::i;:::-;12055:4;12011:97;:::i;:::-;12163:4;;12227:2;12216:14;;12244:1;12239:663;;;;12946:1;12963:6;12960:89;;;-1:-1:-1;13015:19:9;;;13009:26;12960:89;-1:-1:-1;;11764:1:9;11760:11;;;11756:24;11752:29;11742:40;11788:1;11784:11;;;11739:57;13062:81;;12209:944;;12239:663;11033:1;11026:14;;;11070:4;11057:18;;-1:-1:-1;;12275:20:9;;;12393:236;12407:7;12404:1;12401:14;12393:236;;;12496:19;;;12490:26;12475:42;;12588:27;;;;12556:1;12544:14;;;;12423:19;;12393:236;;;12397:3;12657:6;12648:7;12645:19;12642:201;;;12718:19;;;12712:26;-1:-1:-1;;12801:1:9;12797:14;;;12813:3;12793:24;12789:37;12785:42;12770:58;12755:74;;12642:201;-1:-1:-1;;;;;12889:1:9;12873:14;;;12869:22;12856:36;;-1:-1:-1;11807:1352:9:o;13164:135::-;13203:3;13224:17;;;13221:43;;13244:18;;:::i;:::-;-1:-1:-1;13291:1:9;13280:13;;13164:135::o;13304:383::-;13501:2;13490:9;13483:21;13464:4;13527:45;13568:2;13557:9;13553:18;13545:6;13527:45;:::i;:::-;13620:9;13612:6;13608:22;13603:2;13592:9;13588:18;13581:50;13648:33;13674:6;13666;13648:33;:::i;:::-;13640:41;13304:383;-1:-1:-1;;;;;13304:383:9:o;13692:362::-;13897:6;13886:9;13879:25;13940:2;13935;13924:9;13920:18;13913:30;13860:4;13960:45;14001:2;13990:9;13986:18;13978:6;13960:45;:::i;:::-;13952:53;;14041:6;14036:2;14025:9;14021:18;14014:34;13692:362;;;;;;:::o" }, "methodIdentifiers": { + "addProposal(address,string,uint256)": "f3a1a466", + "addRating(address,uint256)": "70370a81", "agents(address)": "fd66091e", "getAgentData(address)": "aac9f15a", "getProposal(uint256)": "c7f758a8", "getReputation(address)": "9c89a0e2", - "isRegistered(address)": "c3c5a547", "nextProposalId()": "2ab09d14", "owner()": "8da5cb5b", "proposals(uint256)": "013cf08b", "registerAgent(address,string,string,string,uint256)": "98366dbd", + "removeProposal(address,uint256)": "7b5c219d", "renounceOwnership()": "715018a6", "serviceRegistry()": "cbcf252a", - "transferOwnership(address)": "f2fde38b", - "updateReputation(address,uint256)": "f5c91a08" + "setServiceRegistry(address)": "d7071b1f", + "setTaskRegistry(address)": "b2d78069", + "taskRegistry()": "9e498f16", + "transferOwnership(address)": "f2fde38b" } }, - "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ServiceRegistry\",\"name\":\"_serviceRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"agentUri\",\"type\":\"string\"}],\"name\":\"AgentRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"ProposalAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newReputation\",\"type\":\"uint256\"}],\"name\":\"ReputationUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"name\",\"type\":\"uint256\"}],\"name\":\"ServiceAdded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"agents\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"agentUri\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reputation\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isRegistered\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"getAgentData\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"agentUri\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reputation\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"getProposal\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"serviceName\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"internalType\":\"struct IProposalStruct.Proposal\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"}],\"name\":\"getReputation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"}],\"name\":\"isRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextProposalId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"serviceName\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"agentUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"serviceName\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"servicePrice\",\"type\":\"uint256\"}],\"name\":\"registerAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"serviceRegistry\",\"outputs\":[{\"internalType\":\"contract ServiceRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_reputation\",\"type\":\"uint256\"}],\"name\":\"updateReputation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"leonprou\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"getAgentData(address)\":{\"details\":\"get agent data\",\"params\":{\"_agent\":\"The address of the agent\"},\"returns\":{\"agent\":\"The agent contract address\",\"agentUri\":\"The URI pointing to the agent's metadata\",\"name\":\"The name of the agent\",\"owner\":\"The owner address of the agent\",\"reputation\":\"The reputation score of the agent\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"registerAgent(address,string,string,string,uint256)\":{\"details\":\"Registers a new agent with the given details.\",\"params\":{\"agent\":\"The address of the agent.\",\"agentUri\":\"The URI pointing to the agent's metadata.\",\"name\":\"The name of the agent.\",\"serviceName\":\"The name of the service.\",\"servicePrice\":\"The price of the service.\"},\"returns\":{\"_0\":\"true if the agent was registered successfully, false otherwise. Requirements: - The agent must not already be registered. - The caller will be set as the owner of the agent. Emits an {AgentRegistered} event.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"AgentsRegistry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A smart contract that stores information about the agents, and the services proposals provided by the agents.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/AgentsRegistry.sol\":\"AgentsRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/AgentsRegistry.sol\":{\"keccak256\":\"0xa8ac31890b6bd6c348b34a7e8e2a364f56a45ca1b6bf91ba4ac30f7b9a9d5479\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79850d07565e9a9685acf093c2c78a766a5d1b6e5b4f7dff0a4f058ca878fcfe\",\"dweb:/ipfs/QmdsQpZhWhbUsNt9RtdW6JbXB6uQU3SgehGFxUs1J6uhHH\"]},\"contracts/ServiceRegistry.sol\":{\"keccak256\":\"0xa86b05303aaeee4c1437e7857fb03fe70473bed68f68c50dbabc261bfa6cdca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://069be2bed01b0f80d688a4b5da526051507245c340745a58f2bd78fbf3700373\",\"dweb:/ipfs/QmWU9yZSLZNJvZaXNRPem7AySUL94aTaCAR1TGTdcnPmmA\"]},\"contracts/interfaces/IProposalStruct.sol\":{\"keccak256\":\"0x9d05f54eb20cbe5f8e11fb0b8229714378d8b9956771d308ca8550d27728fd10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://665b3367f5eabd0a4e09ec1f77c992391617be5410b02755811ebb278a457320\",\"dweb:/ipfs/QmNWdoe8B2y92uKvCZECJNPobKL8ieEww2H3AkHEddoojf\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ServiceRegistry\",\"name\":\"_serviceRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"agentUri\",\"type\":\"string\"}],\"name\":\"AgentRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"ProposalAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"ProposalUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newReputation\",\"type\":\"uint256\"}],\"name\":\"ReputationUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"serviceName\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"servicePrice\",\"type\":\"uint256\"}],\"name\":\"addProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_rating\",\"type\":\"uint256\"}],\"name\":\"addRating\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"agents\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"agentUri\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reputation\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalRatings\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_agent\",\"type\":\"address\"}],\"name\":\"getAgentData\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"agentUri\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reputation\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalRatings\",\"type\":\"uint256\"}],\"internalType\":\"struct AgentsRegistry.AgentData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"getProposal\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"serviceName\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"}],\"internalType\":\"struct IProposalStruct.ServiceProposal\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"}],\"name\":\"getReputation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextProposalId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"serviceName\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"agentUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"serviceName\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"servicePrice\",\"type\":\"uint256\"}],\"name\":\"registerAgent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"removeProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"serviceRegistry\",\"outputs\":[{\"internalType\":\"contract ServiceRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_serviceRegistry\",\"type\":\"address\"}],\"name\":\"setServiceRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_taskRegistry\",\"type\":\"address\"}],\"name\":\"setTaskRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"taskRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"leonprou\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addProposal(address,string,uint256)\":{\"details\":\"Adds a new proposal for an agent.\",\"params\":{\"agent\":\"The address of the agent.\",\"serviceName\":\"The name of the service.\",\"servicePrice\":\"The price of the service.\"},\"returns\":{\"_0\":\"true if the proposal was added successfully, false otherwise. Requirements: - The caller must be the owner of the agent. - The agent must be registered. - The service must be registered. Emits a {ProposalAdded} event.\"}},\"getAgentData(address)\":{\"details\":\"Returns the data of an agent.\",\"params\":{\"_agent\":\"The address of the agent.\"},\"returns\":{\"_0\":\"AgentData The data of the agent.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"registerAgent(address,string,string,string,uint256)\":{\"details\":\"Registers a new agent with the given details.\",\"params\":{\"agent\":\"The address of the agent.\",\"agentUri\":\"The URI pointing to the agent's metadata.\",\"name\":\"The name of the agent.\",\"serviceName\":\"The name of the service.\",\"servicePrice\":\"The price of the service.\"},\"returns\":{\"_0\":\"true if the agent was registered successfully, false otherwise. Requirements: - The agent must not already be registered. - The caller will be set as the owner of the agent. Emits an {AgentRegistered} event.\"}},\"removeProposal(address,uint256)\":{\"details\":\"Removes a proposal for an agent.\",\"params\":{\"agent\":\"The address of the agent.\",\"proposalId\":\"The ID of the proposal to remove.\"},\"returns\":{\"_0\":\"true if the proposal was removed successfully, false otherwise. Requirements: - The caller must be the owner of the agent. - The agent must be registered. - The proposal must exist. Emits a {ProposalRemoved} event.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setServiceRegistry(address)\":{\"details\":\"Sets the address of the ServiceRegistry contract.\",\"params\":{\"_serviceRegistry\":\"The address of the ServiceRegistry contract.\"}},\"setTaskRegistry(address)\":{\"details\":\"Sets the address of the TaskRegistry contract.\",\"params\":{\"_taskRegistry\":\"The address of the TaskRegistry contract.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"AgentsRegistry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A smart contract that stores information about the agents, and the services proposals provided by the agents.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/AgentsRegistry.sol\":\"AgentsRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/AgentsRegistry.sol\":{\"keccak256\":\"0x07f5115ea2dcfe7c0381855050bc78f01136fd6afb262b5aa737f7ee6cb46710\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cabafa7ed0a571aa40e9de621c5b8667c064991c4e92102c61f538f970391338\",\"dweb:/ipfs/QmT7CUvFwh6wQe1N3WP3KpiRZkozPmBjmXFPZSh5vSqtTW\"]},\"contracts/ServiceRegistry.sol\":{\"keccak256\":\"0xb367bc3088ecb4af04c654422f9e91de35d5c452d25c8864f3e889453fcb0407\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c797fc6a3ee833460e6fe4c3904d7e49b68c4a676af701300218ee9783ab0eea\",\"dweb:/ipfs/QmaCpR7npnQ1RGt3qukufy7gxyi6kymHhHNgE32jMNJk3F\"]},\"contracts/interfaces/IProposalStruct.sol\":{\"keccak256\":\"0xbad0d64e6949e412f091cc0ae54bb69e309e3daba7af543b06e45b844345348b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbdafaad17f053b7ec71589121f142080b467f2346c34ca5a18e2077f06788f4\",\"dweb:/ipfs/Qmdbjv7ZH6uCtvzi9qTXyd9CWx8jtEwjy9WFDYbXZfSYjn\"]}},\"version\":1}" } }, "contracts/ServiceRegistry.sol": { @@ -25337,9 +33041,9 @@ "parameterSlots": 1, "returnSlots": 0 }, - "@_550": { + "@_714": { "entryPoint": null, - "id": 550, + "id": 714, "parameterSlots": 0, "returnSlots": 0 }, @@ -25360,32 +33064,32 @@ { "ast": { "nodeType": "YulBlock", - "src": "0:219:7", + "src": "0:219:9", "statements": [ { "nodeType": "YulBlock", - "src": "6:3:7", + "src": "6:3:9", "statements": [] }, { "body": { "nodeType": "YulBlock", - "src": "115:102:7", + "src": "115:102:9", "statements": [ { "nodeType": "YulAssignment", - "src": "125:26:7", + "src": "125:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "137:9:7" + "src": "137:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "148:2:7", + "src": "148:2:9", "type": "", "value": "32" } @@ -25393,16 +33097,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "133:3:7" + "src": "133:3:9" }, "nodeType": "YulFunctionCall", - "src": "133:18:7" + "src": "133:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "125:4:7" + "src": "125:4:9" } ] }, @@ -25412,14 +33116,14 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "167:9:7" + "src": "167:9:9" }, { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "182:6:7" + "src": "182:6:9" }, { "arguments": [ @@ -25428,14 +33132,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "198:3:7", + "src": "198:3:9", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "203:1:7", + "src": "203:1:9", "type": "", "value": "1" } @@ -25443,15 +33147,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "194:3:7" + "src": "194:3:9" }, "nodeType": "YulFunctionCall", - "src": "194:11:7" + "src": "194:11:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "207:1:7", + "src": "207:1:9", "type": "", "value": "1" } @@ -25459,31 +33163,31 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "190:3:7" + "src": "190:3:9" }, "nodeType": "YulFunctionCall", - "src": "190:19:7" + "src": "190:19:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "178:3:7" + "src": "178:3:9" }, "nodeType": "YulFunctionCall", - "src": "178:32:7" + "src": "178:32:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "160:6:7" + "src": "160:6:9" }, "nodeType": "YulFunctionCall", - "src": "160:51:7" + "src": "160:51:9" }, "nodeType": "YulExpressionStatement", - "src": "160:51:7" + "src": "160:51:9" } ] }, @@ -25493,13 +33197,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "84:9:7", + "src": "84:9:9", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "95:6:7", + "src": "95:6:9", "type": "" } ], @@ -25507,29 +33211,29 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "106:4:7", + "src": "106:4:9", "type": "" } ], - "src": "14:203:7" + "src": "14:203:9" } ] }, "contents": "{\n { }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n}", - "id": 7, + "id": 9, "language": "Yul", "name": "#utility.yul" } ], "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610e34806100a56000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80637f3ed719116100665780637f3ed719146101005780638da5cb5b14610113578063b405166b1461012e578063ef57d88414610151578063f2fde38b1461016457600080fd5b806306237526146100985780633017ba09146100b4578063715018a6146100d6578063794758be146100e0575b600080fd5b6100a160025481565b6040519081526020015b60405180910390f35b6100c76100c2366004610a54565b610177565b6040516100ab93929190610ae1565b6100de61033c565b005b6100f36100ee366004610a54565b610350565b6040516100ab9190610b24565b6100de61010e366004610b85565b61055a565b6000546040516001600160a01b0390911681526020016100ab565b61014161013c366004610a54565b6106c6565b60405190151581526020016100ab565b6100f361015f366004610b85565b610745565b6100de610172366004610c0d565b6108f6565b805160208183018101805160018252928201919093012091528054819061019d90610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546101c990610c3d565b80156102165780601f106101eb57610100808354040283529160200191610216565b820191906000526020600020905b8154815290600101906020018083116101f957829003601f168201915b50505050509080600101805461022b90610c3d565b80601f016020809104026020016040519081016040528092919081815260200182805461025790610c3d565b80156102a45780601f10610279576101008083540402835291602001916102a4565b820191906000526020600020905b81548152906001019060200180831161028757829003601f168201915b5050505050908060020180546102b990610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546102e590610c3d565b80156103325780601f1061030757610100808354040283529160200191610332565b820191906000526020600020905b81548152906001019060200180831161031557829003601f168201915b5050505050905083565b610344610934565b61034e6000610961565b565b61037460405180606001604052806060815260200160608152602001606081525090565b6001826040516103849190610c77565b90815260200160405180910390206040518060600160405290816000820180546103ad90610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990610c3d565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050815260200160018201805461043f90610c3d565b80601f016020809104026020016040519081016040528092919081815260200182805461046b90610c3d565b80156104b85780601f1061048d576101008083540402835291602001916104b8565b820191906000526020600020905b81548152906001019060200180831161049b57829003601f168201915b505050505081526020016002820180546104d190610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546104fd90610c3d565b801561054a5780601f1061051f5761010080835404028352916020019161054a565b820191906000526020600020905b81548152906001019060200180831161052d57829003601f168201915b5050505050815250509050919050565b610562610934565b60405163b405166b60e01b8152309063b405166b90610585908690600401610c93565b602060405180830381865afa1580156105a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c69190610ca6565b6106105760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b60448201526064015b60405180910390fd5b60405180606001604052808481526020018381526020018281525060018460405161063b9190610c77565b908152604051908190036020019020815181906106589082610d17565b506020820151600182019061066d9082610d17565b50604082015160028201906106829082610d17565b509050507f4cd09e35844ccdf25aac9862af453cedf05d8a8b765f2763be8373b55215df8d8383836040516106b993929190610ae1565b60405180910390a1505050565b60008082511161070f5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073657276696365206e616d6560601b6044820152606401610607565b60006001836040516107219190610c77565b908152604051908190036020019020805461073b90610c3d565b9050119050919050565b61076960405180606001604052806060815260200160608152602001606081525090565b610771610934565b60405163b405166b60e01b8152309063b405166b90610794908790600401610c93565b602060405180830381865afa1580156107b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d59190610ca6565b156108225760405162461bcd60e51b815260206004820152601a60248201527f5365727669636520616c726561647920726567697374657265640000000000006044820152606401610607565b60006040518060600160405280868152602001858152602001848152509050806001866040516108529190610c77565b9081526040519081900360200190208151819061086f9082610d17565b50602082015160018201906108849082610d17565b50604082015160028201906108999082610d17565b509050507fc182fe36565be4905be53a8ed353f07898b528f1625e778edf77c136748064868585856040516108d093929190610ae1565b60405180910390a1600280549060006108e883610dd7565b909155509095945050505050565b6108fe610934565b6001600160a01b03811661092857604051631e4fbdf760e01b815260006004820152602401610607565b61093181610961565b50565b6000546001600160a01b0316331461034e5760405163118cdaa760e01b8152336004820152602401610607565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126109d857600080fd5b813567ffffffffffffffff808211156109f3576109f36109b1565b604051601f8301601f19908116603f01168101908282118183101715610a1b57610a1b6109b1565b81604052838152866020858801011115610a3457600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215610a6657600080fd5b813567ffffffffffffffff811115610a7d57600080fd5b610a89848285016109c7565b949350505050565b60005b83811015610aac578181015183820152602001610a94565b50506000910152565b60008151808452610acd816020860160208601610a91565b601f01601f19169290920160200192915050565b606081526000610af46060830186610ab5565b8281036020840152610b068186610ab5565b90508281036040840152610b1a8185610ab5565b9695505050505050565b602081526000825160606020840152610b406080840182610ab5565b90506020840151601f1980858403016040860152610b5e8383610ab5565b9250604086015191508085840301606086015250610b7c8282610ab5565b95945050505050565b600080600060608486031215610b9a57600080fd5b833567ffffffffffffffff80821115610bb257600080fd5b610bbe878388016109c7565b94506020860135915080821115610bd457600080fd5b610be0878388016109c7565b93506040860135915080821115610bf657600080fd5b50610c03868287016109c7565b9150509250925092565b600060208284031215610c1f57600080fd5b81356001600160a01b0381168114610c3657600080fd5b9392505050565b600181811c90821680610c5157607f821691505b602082108103610c7157634e487b7160e01b600052602260045260246000fd5b50919050565b60008251610c89818460208701610a91565b9190910192915050565b602081526000610c366020830184610ab5565b600060208284031215610cb857600080fd5b81518015158114610c3657600080fd5b601f821115610d1257600081815260208120601f850160051c81016020861015610cef5750805b601f850160051c820191505b81811015610d0e57828155600101610cfb565b5050505b505050565b815167ffffffffffffffff811115610d3157610d316109b1565b610d4581610d3f8454610c3d565b84610cc8565b602080601f831160018114610d7a5760008415610d625750858301515b600019600386901b1c1916600185901b178555610d0e565b600085815260208120601f198616915b82811015610da957888601518255948401946001909101908401610d8a565b5085821015610dc75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060018201610df757634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220d9d13b31a10bf6dfe0cb147d4236389d36ab889b339ea5d17d968e4d3ba1034564736f6c63430008140033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER DUP1 PUSH2 0x37 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x40 DUP2 PUSH2 0x46 JUMP JUMPDEST POP PUSH2 0x96 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xE34 DUP1 PUSH2 0xA5 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x93 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F3ED719 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x7F3ED719 EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x113 JUMPI DUP1 PUSH4 0xB405166B EQ PUSH2 0x12E JUMPI DUP1 PUSH4 0xEF57D884 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x164 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6237526 EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x3017BA09 EQ PUSH2 0xB4 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xD6 JUMPI DUP1 PUSH4 0x794758BE EQ PUSH2 0xE0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA1 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC7 PUSH2 0xC2 CALLDATASIZE PUSH1 0x4 PUSH2 0xA54 JUMP JUMPDEST PUSH2 0x177 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x33C JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF3 PUSH2 0xEE CALLDATASIZE PUSH1 0x4 PUSH2 0xA54 JUMP JUMPDEST PUSH2 0x350 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAB SWAP2 SWAP1 PUSH2 0xB24 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x10E CALLDATASIZE PUSH1 0x4 PUSH2 0xB85 JUMP JUMPDEST PUSH2 0x55A JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAB JUMP JUMPDEST PUSH2 0x141 PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0xA54 JUMP JUMPDEST PUSH2 0x6C6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAB JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0xB85 JUMP JUMPDEST PUSH2 0x745 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0xC0D JUMP JUMPDEST PUSH2 0x8F6 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP2 DUP4 ADD DUP2 ADD DUP1 MLOAD PUSH1 0x1 DUP3 MSTORE SWAP3 DUP3 ADD SWAP2 SWAP1 SWAP4 ADD KECCAK256 SWAP2 MSTORE DUP1 SLOAD DUP2 SWAP1 PUSH2 0x19D SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1C9 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x216 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1EB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x216 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1F9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x22B SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x257 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2A4 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x279 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2A4 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x287 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0x2B9 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2E5 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x332 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x307 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x332 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x315 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH2 0x344 PUSH2 0x934 JUMP JUMPDEST PUSH2 0x34E PUSH1 0x0 PUSH2 0x961 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x374 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x40 MLOAD PUSH2 0x384 SWAP2 SWAP1 PUSH2 0xC77 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x3AD SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3D9 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x426 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3FB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x426 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x409 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH2 0x43F SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x46B SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x48D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4B8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x49B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD DUP1 SLOAD PUSH2 0x4D1 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4FD SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x54A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x51F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x54A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x52D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x562 PUSH2 0x934 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0x585 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xC93 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5C6 SWAP2 SWAP1 PUSH2 0xCA6 JUMP JUMPDEST PUSH2 0x610 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x14D95C9D9A58D9481B9BDD081C9959DA5CDD195C9959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE POP PUSH1 0x1 DUP5 PUSH1 0x40 MLOAD PUSH2 0x63B SWAP2 SWAP1 PUSH2 0xC77 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP2 MLOAD DUP2 SWAP1 PUSH2 0x658 SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x66D SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SWAP1 PUSH2 0x682 SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP SWAP1 POP POP PUSH32 0x4CD09E35844CCDF25AAC9862AF453CEDF05D8A8B765F2763BE8373B55215DF8D DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x6B9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT PUSH2 0x70F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x496E76616C69642073657276696365206E616D65 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x607 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP4 PUSH1 0x40 MLOAD PUSH2 0x721 SWAP2 SWAP1 PUSH2 0xC77 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x73B SWAP1 PUSH2 0xC3D JUMP JUMPDEST SWAP1 POP GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x769 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x771 PUSH2 0x934 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0x794 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0xC93 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7D5 SWAP2 SWAP1 PUSH2 0xCA6 JUMP JUMPDEST ISZERO PUSH2 0x822 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5365727669636520616C72656164792072656769737465726564000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x607 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x1 DUP7 PUSH1 0x40 MLOAD PUSH2 0x852 SWAP2 SWAP1 PUSH2 0xC77 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP2 MLOAD DUP2 SWAP1 PUSH2 0x86F SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x884 SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SWAP1 PUSH2 0x899 SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP SWAP1 POP POP PUSH32 0xC182FE36565BE4905BE53A8ED353F07898B528F1625E778EDF77C13674806486 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x8D0 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x8E8 DUP4 PUSH2 0xDD7 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8FE PUSH2 0x934 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x928 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x607 JUMP JUMPDEST PUSH2 0x931 DUP2 PUSH2 0x961 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x34E JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x607 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x9D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x9F3 JUMPI PUSH2 0x9F3 PUSH2 0x9B1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xA1B JUMPI PUSH2 0xA1B PUSH2 0x9B1 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0xA34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA89 DUP5 DUP3 DUP6 ADD PUSH2 0x9C7 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xAAC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xA94 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xACD DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xA91 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH2 0xAF4 PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0xAB5 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xB06 DUP2 DUP7 PUSH2 0xAB5 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0xB1A DUP2 DUP6 PUSH2 0xAB5 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH1 0x60 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xB40 PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0xAB5 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP1 DUP6 DUP5 SUB ADD PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0xB5E DUP4 DUP4 PUSH2 0xAB5 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP7 ADD MLOAD SWAP2 POP DUP1 DUP6 DUP5 SUB ADD PUSH1 0x60 DUP7 ADD MSTORE POP PUSH2 0xB7C DUP3 DUP3 PUSH2 0xAB5 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xBB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBBE DUP8 DUP4 DUP9 ADD PUSH2 0x9C7 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xBD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBE0 DUP8 DUP4 DUP9 ADD PUSH2 0x9C7 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xBF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC03 DUP7 DUP3 DUP8 ADD PUSH2 0x9C7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xC36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xC51 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xC71 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0xC89 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xA91 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xC36 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xAB5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xC36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xD12 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0xCEF JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xD0E JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xCFB JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD31 JUMPI PUSH2 0xD31 PUSH2 0x9B1 JUMP JUMPDEST PUSH2 0xD45 DUP2 PUSH2 0xD3F DUP5 SLOAD PUSH2 0xC3D JUMP JUMPDEST DUP5 PUSH2 0xCC8 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0xD7A JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0xD62 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0xD0E JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xDA9 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0xD8A JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0xDC7 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0xDF7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD9 0xD1 EXTCODESIZE BALANCE LOG1 SIGNEXTEND 0xF6 0xDF 0xE0 0xCB EQ PUSH30 0x4236389D36AB889B339EA5D17D968E4D3BA1034564736F6C634300081400 CALLER ", - "sourceMap": "256:2022:3:-:0;;;638:36;;;;;;;;;-1:-1:-1;660:10:3;;1269:95:0;;1322:31;;-1:-1:-1;;;1322:31:0;;1350:1;1322:31;;;160:51:7;133:18;;1322:31:0;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;256:2022:3;;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:203:7:-;256:2022:3;;;;;;" + "object": "608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610e2c806100a56000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80637f3ed719116100665780637f3ed719146101005780638da5cb5b14610113578063b405166b1461012e578063ef57d88414610151578063f2fde38b1461016457600080fd5b806306237526146100985780633017ba09146100b4578063715018a6146100d6578063794758be146100e0575b600080fd5b6100a160025481565b6040519081526020015b60405180910390f35b6100c76100c2366004610a4c565b610177565b6040516100ab93929190610ad9565b6100de61033c565b005b6100f36100ee366004610a4c565b610350565b6040516100ab9190610b1c565b6100de61010e366004610b7d565b61055a565b6000546040516001600160a01b0390911681526020016100ab565b61014161013c366004610a4c565b6106c6565b60405190151581526020016100ab565b6100f361015f366004610b7d565b610745565b6100de610172366004610c05565b6108ee565b805160208183018101805160018252928201919093012091528054819061019d90610c35565b80601f01602080910402602001604051908101604052809291908181526020018280546101c990610c35565b80156102165780601f106101eb57610100808354040283529160200191610216565b820191906000526020600020905b8154815290600101906020018083116101f957829003601f168201915b50505050509080600101805461022b90610c35565b80601f016020809104026020016040519081016040528092919081815260200182805461025790610c35565b80156102a45780601f10610279576101008083540402835291602001916102a4565b820191906000526020600020905b81548152906001019060200180831161028757829003601f168201915b5050505050908060020180546102b990610c35565b80601f01602080910402602001604051908101604052809291908181526020018280546102e590610c35565b80156103325780601f1061030757610100808354040283529160200191610332565b820191906000526020600020905b81548152906001019060200180831161031557829003601f168201915b5050505050905083565b61034461092c565b61034e6000610959565b565b61037460405180606001604052806060815260200160608152602001606081525090565b6001826040516103849190610c6f565b90815260200160405180910390206040518060600160405290816000820180546103ad90610c35565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990610c35565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050815260200160018201805461043f90610c35565b80601f016020809104026020016040519081016040528092919081815260200182805461046b90610c35565b80156104b85780601f1061048d576101008083540402835291602001916104b8565b820191906000526020600020905b81548152906001019060200180831161049b57829003601f168201915b505050505081526020016002820180546104d190610c35565b80601f01602080910402602001604051908101604052809291908181526020018280546104fd90610c35565b801561054a5780601f1061051f5761010080835404028352916020019161054a565b820191906000526020600020905b81548152906001019060200180831161052d57829003601f168201915b5050505050815250509050919050565b61056261092c565b60405163b405166b60e01b8152309063b405166b90610585908690600401610c8b565b602060405180830381865afa1580156105a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c69190610c9e565b6106105760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b60448201526064015b60405180910390fd5b60405180606001604052808481526020018381526020018281525060018460405161063b9190610c6f565b908152604051908190036020019020815181906106589082610d0f565b506020820151600182019061066d9082610d0f565b50604082015160028201906106829082610d0f565b509050507f4cd09e35844ccdf25aac9862af453cedf05d8a8b765f2763be8373b55215df8d8383836040516106b993929190610ad9565b60405180910390a1505050565b60008082511161070f5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073657276696365206e616d6560601b6044820152606401610607565b60006001836040516107219190610c6f565b908152604051908190036020019020805461073b90610c35565b9050119050919050565b61076960405180606001604052806060815260200160608152602001606081525090565b60405163b405166b60e01b8152309063b405166b9061078c908790600401610c8b565b602060405180830381865afa1580156107a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107cd9190610c9e565b1561081a5760405162461bcd60e51b815260206004820152601a60248201527f5365727669636520616c726561647920726567697374657265640000000000006044820152606401610607565b600060405180606001604052808681526020018581526020018481525090508060018660405161084a9190610c6f565b908152604051908190036020019020815181906108679082610d0f565b506020820151600182019061087c9082610d0f565b50604082015160028201906108919082610d0f565b509050507fc182fe36565be4905be53a8ed353f07898b528f1625e778edf77c136748064868585856040516108c893929190610ad9565b60405180910390a1600280549060006108e083610dcf565b909155509095945050505050565b6108f661092c565b6001600160a01b03811661092057604051631e4fbdf760e01b815260006004820152602401610607565b61092981610959565b50565b6000546001600160a01b0316331461034e5760405163118cdaa760e01b8152336004820152602401610607565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126109d057600080fd5b813567ffffffffffffffff808211156109eb576109eb6109a9565b604051601f8301601f19908116603f01168101908282118183101715610a1357610a136109a9565b81604052838152866020858801011115610a2c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215610a5e57600080fd5b813567ffffffffffffffff811115610a7557600080fd5b610a81848285016109bf565b949350505050565b60005b83811015610aa4578181015183820152602001610a8c565b50506000910152565b60008151808452610ac5816020860160208601610a89565b601f01601f19169290920160200192915050565b606081526000610aec6060830186610aad565b8281036020840152610afe8186610aad565b90508281036040840152610b128185610aad565b9695505050505050565b602081526000825160606020840152610b386080840182610aad565b90506020840151601f1980858403016040860152610b568383610aad565b9250604086015191508085840301606086015250610b748282610aad565b95945050505050565b600080600060608486031215610b9257600080fd5b833567ffffffffffffffff80821115610baa57600080fd5b610bb6878388016109bf565b94506020860135915080821115610bcc57600080fd5b610bd8878388016109bf565b93506040860135915080821115610bee57600080fd5b50610bfb868287016109bf565b9150509250925092565b600060208284031215610c1757600080fd5b81356001600160a01b0381168114610c2e57600080fd5b9392505050565b600181811c90821680610c4957607f821691505b602082108103610c6957634e487b7160e01b600052602260045260246000fd5b50919050565b60008251610c81818460208701610a89565b9190910192915050565b602081526000610c2e6020830184610aad565b600060208284031215610cb057600080fd5b81518015158114610c2e57600080fd5b601f821115610d0a57600081815260208120601f850160051c81016020861015610ce75750805b601f850160051c820191505b81811015610d0657828155600101610cf3565b5050505b505050565b815167ffffffffffffffff811115610d2957610d296109a9565b610d3d81610d378454610c35565b84610cc0565b602080601f831160018114610d725760008415610d5a5750858301515b600019600386901b1c1916600185901b178555610d06565b600085815260208120601f198616915b82811015610da157888601518255948401946001909101908401610d82565b5085821015610dbf5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060018201610def57634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212206f9c7481cdfdbc6350d53b34a07d196f444172352584059ffa61f853c81d633764736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER DUP1 PUSH2 0x37 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x40 DUP2 PUSH2 0x46 JUMP JUMPDEST POP PUSH2 0x96 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xE2C DUP1 PUSH2 0xA5 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x93 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F3ED719 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x7F3ED719 EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x113 JUMPI DUP1 PUSH4 0xB405166B EQ PUSH2 0x12E JUMPI DUP1 PUSH4 0xEF57D884 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x164 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6237526 EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x3017BA09 EQ PUSH2 0xB4 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xD6 JUMPI DUP1 PUSH4 0x794758BE EQ PUSH2 0xE0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA1 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC7 PUSH2 0xC2 CALLDATASIZE PUSH1 0x4 PUSH2 0xA4C JUMP JUMPDEST PUSH2 0x177 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAD9 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x33C JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF3 PUSH2 0xEE CALLDATASIZE PUSH1 0x4 PUSH2 0xA4C JUMP JUMPDEST PUSH2 0x350 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAB SWAP2 SWAP1 PUSH2 0xB1C JUMP JUMPDEST PUSH2 0xDE PUSH2 0x10E CALLDATASIZE PUSH1 0x4 PUSH2 0xB7D JUMP JUMPDEST PUSH2 0x55A JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAB JUMP JUMPDEST PUSH2 0x141 PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0xA4C JUMP JUMPDEST PUSH2 0x6C6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAB JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0xB7D JUMP JUMPDEST PUSH2 0x745 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0xC05 JUMP JUMPDEST PUSH2 0x8EE JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP2 DUP4 ADD DUP2 ADD DUP1 MLOAD PUSH1 0x1 DUP3 MSTORE SWAP3 DUP3 ADD SWAP2 SWAP1 SWAP4 ADD KECCAK256 SWAP2 MSTORE DUP1 SLOAD DUP2 SWAP1 PUSH2 0x19D SWAP1 PUSH2 0xC35 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1C9 SWAP1 PUSH2 0xC35 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x216 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1EB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x216 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1F9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x22B SWAP1 PUSH2 0xC35 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x257 SWAP1 PUSH2 0xC35 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2A4 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x279 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2A4 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x287 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0x2B9 SWAP1 PUSH2 0xC35 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2E5 SWAP1 PUSH2 0xC35 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x332 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x307 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x332 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x315 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH2 0x344 PUSH2 0x92C JUMP JUMPDEST PUSH2 0x34E PUSH1 0x0 PUSH2 0x959 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x374 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x40 MLOAD PUSH2 0x384 SWAP2 SWAP1 PUSH2 0xC6F JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x3AD SWAP1 PUSH2 0xC35 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3D9 SWAP1 PUSH2 0xC35 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x426 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3FB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x426 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x409 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH2 0x43F SWAP1 PUSH2 0xC35 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x46B SWAP1 PUSH2 0xC35 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x48D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4B8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x49B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD DUP1 SLOAD PUSH2 0x4D1 SWAP1 PUSH2 0xC35 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4FD SWAP1 PUSH2 0xC35 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x54A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x51F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x54A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x52D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x562 PUSH2 0x92C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0x585 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xC8B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5C6 SWAP2 SWAP1 PUSH2 0xC9E JUMP JUMPDEST PUSH2 0x610 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x14D95C9D9A58D9481B9BDD081C9959DA5CDD195C9959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE POP PUSH1 0x1 DUP5 PUSH1 0x40 MLOAD PUSH2 0x63B SWAP2 SWAP1 PUSH2 0xC6F JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP2 MLOAD DUP2 SWAP1 PUSH2 0x658 SWAP1 DUP3 PUSH2 0xD0F JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x66D SWAP1 DUP3 PUSH2 0xD0F JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SWAP1 PUSH2 0x682 SWAP1 DUP3 PUSH2 0xD0F JUMP JUMPDEST POP SWAP1 POP POP PUSH32 0x4CD09E35844CCDF25AAC9862AF453CEDF05D8A8B765F2763BE8373B55215DF8D DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x6B9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAD9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT PUSH2 0x70F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x496E76616C69642073657276696365206E616D65 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x607 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP4 PUSH1 0x40 MLOAD PUSH2 0x721 SWAP2 SWAP1 PUSH2 0xC6F JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x73B SWAP1 PUSH2 0xC35 JUMP JUMPDEST SWAP1 POP GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x769 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0x78C SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0xC8B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7CD SWAP2 SWAP1 PUSH2 0xC9E JUMP JUMPDEST ISZERO PUSH2 0x81A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5365727669636520616C72656164792072656769737465726564000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x607 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x1 DUP7 PUSH1 0x40 MLOAD PUSH2 0x84A SWAP2 SWAP1 PUSH2 0xC6F JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP2 MLOAD DUP2 SWAP1 PUSH2 0x867 SWAP1 DUP3 PUSH2 0xD0F JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x87C SWAP1 DUP3 PUSH2 0xD0F JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SWAP1 PUSH2 0x891 SWAP1 DUP3 PUSH2 0xD0F JUMP JUMPDEST POP SWAP1 POP POP PUSH32 0xC182FE36565BE4905BE53A8ED353F07898B528F1625E778EDF77C13674806486 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x8C8 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAD9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x8E0 DUP4 PUSH2 0xDCF JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8F6 PUSH2 0x92C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x920 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x607 JUMP JUMPDEST PUSH2 0x929 DUP2 PUSH2 0x959 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x34E JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x607 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x9D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x9EB JUMPI PUSH2 0x9EB PUSH2 0x9A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xA13 JUMPI PUSH2 0xA13 PUSH2 0x9A9 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0xA2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA5E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA81 DUP5 DUP3 DUP6 ADD PUSH2 0x9BF JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xAA4 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xA8C JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xAC5 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xA89 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH2 0xAEC PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0xAAD JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xAFE DUP2 DUP7 PUSH2 0xAAD JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0xB12 DUP2 DUP6 PUSH2 0xAAD JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH1 0x60 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xB38 PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0xAAD JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP1 DUP6 DUP5 SUB ADD PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0xB56 DUP4 DUP4 PUSH2 0xAAD JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP7 ADD MLOAD SWAP2 POP DUP1 DUP6 DUP5 SUB ADD PUSH1 0x60 DUP7 ADD MSTORE POP PUSH2 0xB74 DUP3 DUP3 PUSH2 0xAAD JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xBAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBB6 DUP8 DUP4 DUP9 ADD PUSH2 0x9BF JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xBCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBD8 DUP8 DUP4 DUP9 ADD PUSH2 0x9BF JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xBEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBFB DUP7 DUP3 DUP8 ADD PUSH2 0x9BF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xC2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xC49 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xC69 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0xC81 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xA89 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xC2E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xAAD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xC2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xD0A JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0xCE7 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xD06 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xCF3 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD29 JUMPI PUSH2 0xD29 PUSH2 0x9A9 JUMP JUMPDEST PUSH2 0xD3D DUP2 PUSH2 0xD37 DUP5 SLOAD PUSH2 0xC35 JUMP JUMPDEST DUP5 PUSH2 0xCC0 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0xD72 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0xD5A JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0xD06 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xDA1 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0xD82 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0xDBF JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0xDEF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH16 0x9C7481CDFDBC6350D53B34A07D196F44 COINBASE PUSH19 0x352584059FFA61F853C81D633764736F6C6343 STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "256:2012:3:-:0;;;638:36;;;;;;;;;-1:-1:-1;660:10:3;;1269:95:0;;1322:31;;-1:-1:-1;;;1322:31:0;;1350:1;1322:31;;;160:51:9;133:18;;1322:31:0;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;256:2012:3;;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:203:9:-;256:2012:3;;;;;;" }, "deployedBytecode": { "functionDebugData": { "@_checkOwner_84": { - "entryPoint": 2356, + "entryPoint": 2348, "id": 84, "parameterSlots": 0, "returnSlots": 0 @@ -25541,20 +33245,20 @@ "returnSlots": 1 }, "@_transferOwnership_146": { - "entryPoint": 2401, + "entryPoint": 2393, "id": 146, "parameterSlots": 1, "returnSlots": 0 }, - "@getService_615": { + "@getService_777": { "entryPoint": 848, - "id": 615, + "id": 777, "parameterSlots": 1, "returnSlots": 1 }, - "@isServiceRegistered_645": { + "@isServiceRegistered_807": { "entryPoint": 1734, - "id": 645, + "id": 807, "parameterSlots": 1, "returnSlots": 1 }, @@ -25564,9 +33268,9 @@ "parameterSlots": 0, "returnSlots": 1 }, - "@registerService_601": { + "@registerService_763": { "entryPoint": 1861, - "id": 601, + "id": 763, "parameterSlots": 3, "returnSlots": 1 }, @@ -25576,68 +33280,68 @@ "parameterSlots": 0, "returnSlots": 0 }, - "@serviceCount_526": { + "@serviceCount_690": { "entryPoint": null, - "id": 526, + "id": 690, "parameterSlots": 0, "returnSlots": 0 }, - "@services_524": { + "@services_688": { "entryPoint": 375, - "id": 524, + "id": 688, "parameterSlots": 0, "returnSlots": 0 }, "@transferOwnership_126": { - "entryPoint": 2294, + "entryPoint": 2286, "id": 126, "parameterSlots": 1, "returnSlots": 0 }, - "@updateService_681": { + "@updateService_843": { "entryPoint": 1370, - "id": 681, + "id": 843, "parameterSlots": 3, "returnSlots": 0 }, "abi_decode_string": { - "entryPoint": 2503, + "entryPoint": 2495, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_decode_tuple_t_address": { - "entryPoint": 3085, + "entryPoint": 3077, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_decode_tuple_t_bool_fromMemory": { - "entryPoint": 3238, + "entryPoint": 3230, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_decode_tuple_t_string_memory_ptr": { - "entryPoint": 2644, + "entryPoint": 2636, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr": { - "entryPoint": 2949, + "entryPoint": 2941, "id": null, "parameterSlots": 2, "returnSlots": 3 }, "abi_encode_string": { - "entryPoint": 2741, + "entryPoint": 2733, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { - "entryPoint": 3191, + "entryPoint": 3183, "id": null, "parameterSlots": 2, "returnSlots": 1 @@ -25655,13 +33359,13 @@ "returnSlots": 1 }, "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 3219, + "entryPoint": 3211, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 2785, + "entryPoint": 2777, "id": null, "parameterSlots": 4, "returnSlots": 1 @@ -25684,8 +33388,8 @@ "parameterSlots": 1, "returnSlots": 1 }, - "abi_encode_tuple_t_struct$_Service_$519_memory_ptr__to_t_struct$_Service_$519_memory_ptr__fromStack_reversed": { - "entryPoint": 2852, + "abi_encode_tuple_t_struct$_Service_$683_memory_ptr__to_t_struct$_Service_$683_memory_ptr__fromStack_reversed": { + "entryPoint": 2844, "id": null, "parameterSlots": 2, "returnSlots": 1 @@ -25703,25 +33407,25 @@ "returnSlots": 1 }, "clean_up_bytearray_end_slots_string_storage": { - "entryPoint": 3272, + "entryPoint": 3264, "id": null, "parameterSlots": 3, "returnSlots": 0 }, "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { - "entryPoint": 3351, + "entryPoint": 3343, "id": null, "parameterSlots": 2, "returnSlots": 0 }, "copy_memory_to_memory_with_cleanup": { - "entryPoint": 2705, + "entryPoint": 2697, "id": null, "parameterSlots": 3, "returnSlots": 0 }, "extract_byte_array_length": { - "entryPoint": 3133, + "entryPoint": 3125, "id": null, "parameterSlots": 1, "returnSlots": 1 @@ -25733,13 +33437,13 @@ "returnSlots": 1 }, "increment_t_uint256": { - "entryPoint": 3543, + "entryPoint": 3535, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "panic_error_0x41": { - "entryPoint": 2481, + "entryPoint": 2473, "id": null, "parameterSlots": 0, "returnSlots": 0 @@ -25749,32 +33453,32 @@ { "ast": { "nodeType": "YulBlock", - "src": "0:9320:7", + "src": "0:9320:9", "statements": [ { "nodeType": "YulBlock", - "src": "6:3:7", + "src": "6:3:9", "statements": [] }, { "body": { "nodeType": "YulBlock", - "src": "115:76:7", + "src": "115:76:9", "statements": [ { "nodeType": "YulAssignment", - "src": "125:26:7", + "src": "125:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "137:9:7" + "src": "137:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "148:2:7", + "src": "148:2:9", "type": "", "value": "32" } @@ -25782,16 +33486,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "133:3:7" + "src": "133:3:9" }, "nodeType": "YulFunctionCall", - "src": "133:18:7" + "src": "133:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "125:4:7" + "src": "125:4:9" } ] }, @@ -25801,24 +33505,24 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "167:9:7" + "src": "167:9:9" }, { "name": "value0", "nodeType": "YulIdentifier", - "src": "178:6:7" + "src": "178:6:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "160:6:7" + "src": "160:6:9" }, "nodeType": "YulFunctionCall", - "src": "160:25:7" + "src": "160:25:9" }, "nodeType": "YulExpressionStatement", - "src": "160:25:7" + "src": "160:25:9" } ] }, @@ -25828,13 +33532,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "84:9:7", + "src": "84:9:9", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "95:6:7", + "src": "95:6:9", "type": "" } ], @@ -25842,16 +33546,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "106:4:7", + "src": "106:4:9", "type": "" } ], - "src": "14:177:7" + "src": "14:177:9" }, { "body": { "nodeType": "YulBlock", - "src": "228:95:7", + "src": "228:95:9", "statements": [ { "expression": { @@ -25859,7 +33563,7 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "245:1:7", + "src": "245:1:9", "type": "", "value": "0" }, @@ -25868,14 +33572,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "252:3:7", + "src": "252:3:9", "type": "", "value": "224" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "257:10:7", + "src": "257:10:9", "type": "", "value": "0x4e487b71" } @@ -25883,22 +33587,22 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "248:3:7" + "src": "248:3:9" }, "nodeType": "YulFunctionCall", - "src": "248:20:7" + "src": "248:20:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "238:6:7" + "src": "238:6:9" }, "nodeType": "YulFunctionCall", - "src": "238:31:7" + "src": "238:31:9" }, "nodeType": "YulExpressionStatement", - "src": "238:31:7" + "src": "238:31:9" }, { "expression": { @@ -25906,14 +33610,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "285:1:7", + "src": "285:1:9", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "288:4:7", + "src": "288:4:9", "type": "", "value": "0x41" } @@ -25921,13 +33625,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "278:6:7" + "src": "278:6:9" }, "nodeType": "YulFunctionCall", - "src": "278:15:7" + "src": "278:15:9" }, "nodeType": "YulExpressionStatement", - "src": "278:15:7" + "src": "278:15:9" }, { "expression": { @@ -25935,14 +33639,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "309:1:7", + "src": "309:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "312:4:7", + "src": "312:4:9", "type": "", "value": "0x24" } @@ -25950,29 +33654,29 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "302:6:7" + "src": "302:6:9" }, "nodeType": "YulFunctionCall", - "src": "302:15:7" + "src": "302:15:9" }, "nodeType": "YulExpressionStatement", - "src": "302:15:7" + "src": "302:15:9" } ] }, "name": "panic_error_0x41", "nodeType": "YulFunctionDefinition", - "src": "196:127:7" + "src": "196:127:9" }, { "body": { "nodeType": "YulBlock", - "src": "381:666:7", + "src": "381:666:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "430:16:7", + "src": "430:16:9", "statements": [ { "expression": { @@ -25980,14 +33684,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "439:1:7", + "src": "439:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "442:1:7", + "src": "442:1:9", "type": "", "value": "0" } @@ -25995,13 +33699,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "432:6:7" + "src": "432:6:9" }, "nodeType": "YulFunctionCall", - "src": "432:12:7" + "src": "432:12:9" }, "nodeType": "YulExpressionStatement", - "src": "432:12:7" + "src": "432:12:9" } ] }, @@ -26014,12 +33718,12 @@ { "name": "offset", "nodeType": "YulIdentifier", - "src": "409:6:7" + "src": "409:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "417:4:7", + "src": "417:4:9", "type": "", "value": "0x1f" } @@ -26027,72 +33731,72 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "405:3:7" + "src": "405:3:9" }, "nodeType": "YulFunctionCall", - "src": "405:17:7" + "src": "405:17:9" }, { "name": "end", "nodeType": "YulIdentifier", - "src": "424:3:7" + "src": "424:3:9" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "401:3:7" + "src": "401:3:9" }, "nodeType": "YulFunctionCall", - "src": "401:27:7" + "src": "401:27:9" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "394:6:7" + "src": "394:6:9" }, "nodeType": "YulFunctionCall", - "src": "394:35:7" + "src": "394:35:9" }, "nodeType": "YulIf", - "src": "391:55:7" + "src": "391:55:9" }, { "nodeType": "YulVariableDeclaration", - "src": "455:30:7", + "src": "455:30:9", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", - "src": "478:6:7" + "src": "478:6:9" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "465:12:7" + "src": "465:12:9" }, "nodeType": "YulFunctionCall", - "src": "465:20:7" + "src": "465:20:9" }, "variables": [ { "name": "_1", "nodeType": "YulTypedName", - "src": "459:2:7", + "src": "459:2:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "494:28:7", + "src": "494:28:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "504:18:7", + "src": "504:18:9", "type": "", "value": "0xffffffffffffffff" }, @@ -26100,7 +33804,7 @@ { "name": "_2", "nodeType": "YulTypedName", - "src": "498:2:7", + "src": "498:2:9", "type": "" } ] @@ -26108,7 +33812,7 @@ { "body": { "nodeType": "YulBlock", - "src": "545:22:7", + "src": "545:22:9", "statements": [ { "expression": { @@ -26116,13 +33820,13 @@ "functionName": { "name": "panic_error_0x41", "nodeType": "YulIdentifier", - "src": "547:16:7" + "src": "547:16:9" }, "nodeType": "YulFunctionCall", - "src": "547:18:7" + "src": "547:18:9" }, "nodeType": "YulExpressionStatement", - "src": "547:18:7" + "src": "547:18:9" } ] }, @@ -26131,34 +33835,34 @@ { "name": "_1", "nodeType": "YulIdentifier", - "src": "537:2:7" + "src": "537:2:9" }, { "name": "_2", "nodeType": "YulIdentifier", - "src": "541:2:7" + "src": "541:2:9" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "534:2:7" + "src": "534:2:9" }, "nodeType": "YulFunctionCall", - "src": "534:10:7" + "src": "534:10:9" }, "nodeType": "YulIf", - "src": "531:36:7" + "src": "531:36:9" }, { "nodeType": "YulVariableDeclaration", - "src": "576:17:7", + "src": "576:17:9", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "590:2:7", + "src": "590:2:9", "type": "", "value": "31" } @@ -26166,29 +33870,29 @@ "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "586:3:7" + "src": "586:3:9" }, "nodeType": "YulFunctionCall", - "src": "586:7:7" + "src": "586:7:9" }, "variables": [ { "name": "_3", "nodeType": "YulTypedName", - "src": "580:2:7", + "src": "580:2:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "602:23:7", + "src": "602:23:9", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "622:2:7", + "src": "622:2:9", "type": "", "value": "64" } @@ -26196,29 +33900,29 @@ "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "616:5:7" + "src": "616:5:9" }, "nodeType": "YulFunctionCall", - "src": "616:9:7" + "src": "616:9:9" }, "variables": [ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "606:6:7", + "src": "606:6:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "634:71:7", + "src": "634:71:9", "value": { "arguments": [ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "656:6:7" + "src": "656:6:9" }, { "arguments": [ @@ -26231,12 +33935,12 @@ { "name": "_1", "nodeType": "YulIdentifier", - "src": "680:2:7" + "src": "680:2:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "684:4:7", + "src": "684:4:9", "type": "", "value": "0x1f" } @@ -26244,29 +33948,29 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "676:3:7" + "src": "676:3:9" }, "nodeType": "YulFunctionCall", - "src": "676:13:7" + "src": "676:13:9" }, { "name": "_3", "nodeType": "YulIdentifier", - "src": "691:2:7" + "src": "691:2:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "672:3:7" + "src": "672:3:9" }, "nodeType": "YulFunctionCall", - "src": "672:22:7" + "src": "672:22:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "696:2:7", + "src": "696:2:9", "type": "", "value": "63" } @@ -26274,39 +33978,39 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "668:3:7" + "src": "668:3:9" }, "nodeType": "YulFunctionCall", - "src": "668:31:7" + "src": "668:31:9" }, { "name": "_3", "nodeType": "YulIdentifier", - "src": "701:2:7" + "src": "701:2:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "664:3:7" + "src": "664:3:9" }, "nodeType": "YulFunctionCall", - "src": "664:40:7" + "src": "664:40:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "652:3:7" + "src": "652:3:9" }, "nodeType": "YulFunctionCall", - "src": "652:53:7" + "src": "652:53:9" }, "variables": [ { "name": "newFreePtr", "nodeType": "YulTypedName", - "src": "638:10:7", + "src": "638:10:9", "type": "" } ] @@ -26314,7 +34018,7 @@ { "body": { "nodeType": "YulBlock", - "src": "764:22:7", + "src": "764:22:9", "statements": [ { "expression": { @@ -26322,13 +34026,13 @@ "functionName": { "name": "panic_error_0x41", "nodeType": "YulIdentifier", - "src": "766:16:7" + "src": "766:16:9" }, "nodeType": "YulFunctionCall", - "src": "766:18:7" + "src": "766:18:9" }, "nodeType": "YulExpressionStatement", - "src": "766:18:7" + "src": "766:18:9" } ] }, @@ -26339,54 +34043,54 @@ { "name": "newFreePtr", "nodeType": "YulIdentifier", - "src": "723:10:7" + "src": "723:10:9" }, { "name": "_2", "nodeType": "YulIdentifier", - "src": "735:2:7" + "src": "735:2:9" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "720:2:7" + "src": "720:2:9" }, "nodeType": "YulFunctionCall", - "src": "720:18:7" + "src": "720:18:9" }, { "arguments": [ { "name": "newFreePtr", "nodeType": "YulIdentifier", - "src": "743:10:7" + "src": "743:10:9" }, { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "755:6:7" + "src": "755:6:9" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "740:2:7" + "src": "740:2:9" }, "nodeType": "YulFunctionCall", - "src": "740:22:7" + "src": "740:22:9" } ], "functionName": { "name": "or", "nodeType": "YulIdentifier", - "src": "717:2:7" + "src": "717:2:9" }, "nodeType": "YulFunctionCall", - "src": "717:46:7" + "src": "717:46:9" }, "nodeType": "YulIf", - "src": "714:72:7" + "src": "714:72:9" }, { "expression": { @@ -26394,26 +34098,26 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "802:2:7", + "src": "802:2:9", "type": "", "value": "64" }, { "name": "newFreePtr", "nodeType": "YulIdentifier", - "src": "806:10:7" + "src": "806:10:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "795:6:7" + "src": "795:6:9" }, "nodeType": "YulFunctionCall", - "src": "795:22:7" + "src": "795:22:9" }, "nodeType": "YulExpressionStatement", - "src": "795:22:7" + "src": "795:22:9" }, { "expression": { @@ -26421,29 +34125,29 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "833:6:7" + "src": "833:6:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "841:2:7" + "src": "841:2:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "826:6:7" + "src": "826:6:9" }, "nodeType": "YulFunctionCall", - "src": "826:18:7" + "src": "826:18:9" }, "nodeType": "YulExpressionStatement", - "src": "826:18:7" + "src": "826:18:9" }, { "body": { "nodeType": "YulBlock", - "src": "892:16:7", + "src": "892:16:9", "statements": [ { "expression": { @@ -26451,14 +34155,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "901:1:7", + "src": "901:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "904:1:7", + "src": "904:1:9", "type": "", "value": "0" } @@ -26466,13 +34170,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "894:6:7" + "src": "894:6:9" }, "nodeType": "YulFunctionCall", - "src": "894:12:7" + "src": "894:12:9" }, "nodeType": "YulExpressionStatement", - "src": "894:12:7" + "src": "894:12:9" } ] }, @@ -26485,26 +34189,26 @@ { "name": "offset", "nodeType": "YulIdentifier", - "src": "867:6:7" + "src": "867:6:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "875:2:7" + "src": "875:2:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "863:3:7" + "src": "863:3:9" }, "nodeType": "YulFunctionCall", - "src": "863:15:7" + "src": "863:15:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "880:4:7", + "src": "880:4:9", "type": "", "value": "0x20" } @@ -26512,27 +34216,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "859:3:7" + "src": "859:3:9" }, "nodeType": "YulFunctionCall", - "src": "859:26:7" + "src": "859:26:9" }, { "name": "end", "nodeType": "YulIdentifier", - "src": "887:3:7" + "src": "887:3:9" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "856:2:7" + "src": "856:2:9" }, "nodeType": "YulFunctionCall", - "src": "856:35:7" + "src": "856:35:9" }, "nodeType": "YulIf", - "src": "853:55:7" + "src": "853:55:9" }, { "expression": { @@ -26542,12 +34246,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "934:6:7" + "src": "934:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "942:4:7", + "src": "942:4:9", "type": "", "value": "0x20" } @@ -26555,22 +34259,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "930:3:7" + "src": "930:3:9" }, "nodeType": "YulFunctionCall", - "src": "930:17:7" + "src": "930:17:9" }, { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", - "src": "953:6:7" + "src": "953:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "961:4:7", + "src": "961:4:9", "type": "", "value": "0x20" } @@ -26578,27 +34282,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "949:3:7" + "src": "949:3:9" }, "nodeType": "YulFunctionCall", - "src": "949:17:7" + "src": "949:17:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "968:2:7" + "src": "968:2:9" } ], "functionName": { "name": "calldatacopy", "nodeType": "YulIdentifier", - "src": "917:12:7" + "src": "917:12:9" }, "nodeType": "YulFunctionCall", - "src": "917:54:7" + "src": "917:54:9" }, "nodeType": "YulExpressionStatement", - "src": "917:54:7" + "src": "917:54:9" }, { "expression": { @@ -26610,26 +34314,26 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "995:6:7" + "src": "995:6:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "1003:2:7" + "src": "1003:2:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "991:3:7" + "src": "991:3:9" }, "nodeType": "YulFunctionCall", - "src": "991:15:7" + "src": "991:15:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1008:4:7", + "src": "1008:4:9", "type": "", "value": "0x20" } @@ -26637,15 +34341,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "987:3:7" + "src": "987:3:9" }, "nodeType": "YulFunctionCall", - "src": "987:26:7" + "src": "987:26:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1015:1:7", + "src": "1015:1:9", "type": "", "value": "0" } @@ -26653,27 +34357,27 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "980:6:7" + "src": "980:6:9" }, "nodeType": "YulFunctionCall", - "src": "980:37:7" + "src": "980:37:9" }, "nodeType": "YulExpressionStatement", - "src": "980:37:7" + "src": "980:37:9" }, { "nodeType": "YulAssignment", - "src": "1026:15:7", + "src": "1026:15:9", "value": { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "1035:6:7" + "src": "1035:6:9" }, "variableNames": [ { "name": "array", "nodeType": "YulIdentifier", - "src": "1026:5:7" + "src": "1026:5:9" } ] } @@ -26685,13 +34389,13 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "355:6:7", + "src": "355:6:9", "type": "" }, { "name": "end", "nodeType": "YulTypedName", - "src": "363:3:7", + "src": "363:3:9", "type": "" } ], @@ -26699,21 +34403,21 @@ { "name": "array", "nodeType": "YulTypedName", - "src": "371:5:7", + "src": "371:5:9", "type": "" } ], - "src": "328:719:7" + "src": "328:719:9" }, { "body": { "nodeType": "YulBlock", - "src": "1132:242:7", + "src": "1132:242:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "1178:16:7", + "src": "1178:16:9", "statements": [ { "expression": { @@ -26721,14 +34425,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "1187:1:7", + "src": "1187:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1190:1:7", + "src": "1190:1:9", "type": "", "value": "0" } @@ -26736,13 +34440,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "1180:6:7" + "src": "1180:6:9" }, "nodeType": "YulFunctionCall", - "src": "1180:12:7" + "src": "1180:12:9" }, "nodeType": "YulExpressionStatement", - "src": "1180:12:7" + "src": "1180:12:9" } ] }, @@ -26753,26 +34457,26 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "1153:7:7" + "src": "1153:7:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "1162:9:7" + "src": "1162:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "1149:3:7" + "src": "1149:3:9" }, "nodeType": "YulFunctionCall", - "src": "1149:23:7" + "src": "1149:23:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1174:2:7", + "src": "1174:2:9", "type": "", "value": "32" } @@ -26780,38 +34484,38 @@ "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "1145:3:7" + "src": "1145:3:9" }, "nodeType": "YulFunctionCall", - "src": "1145:32:7" + "src": "1145:32:9" }, "nodeType": "YulIf", - "src": "1142:52:7" + "src": "1142:52:9" }, { "nodeType": "YulVariableDeclaration", - "src": "1203:37:7", + "src": "1203:37:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "1230:9:7" + "src": "1230:9:9" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "1217:12:7" + "src": "1217:12:9" }, "nodeType": "YulFunctionCall", - "src": "1217:23:7" + "src": "1217:23:9" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", - "src": "1207:6:7", + "src": "1207:6:9", "type": "" } ] @@ -26819,7 +34523,7 @@ { "body": { "nodeType": "YulBlock", - "src": "1283:16:7", + "src": "1283:16:9", "statements": [ { "expression": { @@ -26827,14 +34531,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "1292:1:7", + "src": "1292:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1295:1:7", + "src": "1295:1:9", "type": "", "value": "0" } @@ -26842,13 +34546,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "1285:6:7" + "src": "1285:6:9" }, "nodeType": "YulFunctionCall", - "src": "1285:12:7" + "src": "1285:12:9" }, "nodeType": "YulExpressionStatement", - "src": "1285:12:7" + "src": "1285:12:9" } ] }, @@ -26857,12 +34561,12 @@ { "name": "offset", "nodeType": "YulIdentifier", - "src": "1255:6:7" + "src": "1255:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1263:18:7", + "src": "1263:18:9", "type": "", "value": "0xffffffffffffffff" } @@ -26870,17 +34574,17 @@ "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "1252:2:7" + "src": "1252:2:9" }, "nodeType": "YulFunctionCall", - "src": "1252:30:7" + "src": "1252:30:9" }, "nodeType": "YulIf", - "src": "1249:50:7" + "src": "1249:50:9" }, { "nodeType": "YulAssignment", - "src": "1308:60:7", + "src": "1308:60:9", "value": { "arguments": [ { @@ -26888,41 +34592,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "1340:9:7" + "src": "1340:9:9" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "1351:6:7" + "src": "1351:6:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1336:3:7" + "src": "1336:3:9" }, "nodeType": "YulFunctionCall", - "src": "1336:22:7" + "src": "1336:22:9" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "1360:7:7" + "src": "1360:7:9" } ], "functionName": { "name": "abi_decode_string", "nodeType": "YulIdentifier", - "src": "1318:17:7" + "src": "1318:17:9" }, "nodeType": "YulFunctionCall", - "src": "1318:50:7" + "src": "1318:50:9" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "1308:6:7" + "src": "1308:6:9" } ] } @@ -26934,13 +34638,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "1098:9:7", + "src": "1098:9:9", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "1109:7:7", + "src": "1109:7:9", "type": "" } ], @@ -26948,24 +34652,24 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "1121:6:7", + "src": "1121:6:9", "type": "" } ], - "src": "1052:322:7" + "src": "1052:322:9" }, { "body": { "nodeType": "YulBlock", - "src": "1445:184:7", + "src": "1445:184:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "1455:10:7", + "src": "1455:10:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "1464:1:7", + "src": "1464:1:9", "type": "", "value": "0" }, @@ -26973,7 +34677,7 @@ { "name": "i", "nodeType": "YulTypedName", - "src": "1459:1:7", + "src": "1459:1:9", "type": "" } ] @@ -26981,7 +34685,7 @@ { "body": { "nodeType": "YulBlock", - "src": "1524:63:7", + "src": "1524:63:9", "statements": [ { "expression": { @@ -26991,21 +34695,21 @@ { "name": "dst", "nodeType": "YulIdentifier", - "src": "1549:3:7" + "src": "1549:3:9" }, { "name": "i", "nodeType": "YulIdentifier", - "src": "1554:1:7" + "src": "1554:1:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1545:3:7" + "src": "1545:3:9" }, "nodeType": "YulFunctionCall", - "src": "1545:11:7" + "src": "1545:11:9" }, { "arguments": [ @@ -27014,42 +34718,42 @@ { "name": "src", "nodeType": "YulIdentifier", - "src": "1568:3:7" + "src": "1568:3:9" }, { "name": "i", "nodeType": "YulIdentifier", - "src": "1573:1:7" + "src": "1573:1:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1564:3:7" + "src": "1564:3:9" }, "nodeType": "YulFunctionCall", - "src": "1564:11:7" + "src": "1564:11:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "1558:5:7" + "src": "1558:5:9" }, "nodeType": "YulFunctionCall", - "src": "1558:18:7" + "src": "1558:18:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "1538:6:7" + "src": "1538:6:9" }, "nodeType": "YulFunctionCall", - "src": "1538:39:7" + "src": "1538:39:9" }, "nodeType": "YulExpressionStatement", - "src": "1538:39:7" + "src": "1538:39:9" } ] }, @@ -27058,41 +34762,41 @@ { "name": "i", "nodeType": "YulIdentifier", - "src": "1485:1:7" + "src": "1485:1:9" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "1488:6:7" + "src": "1488:6:9" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "1482:2:7" + "src": "1482:2:9" }, "nodeType": "YulFunctionCall", - "src": "1482:13:7" + "src": "1482:13:9" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", - "src": "1496:19:7", + "src": "1496:19:9", "statements": [ { "nodeType": "YulAssignment", - "src": "1498:15:7", + "src": "1498:15:9", "value": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", - "src": "1507:1:7" + "src": "1507:1:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1510:2:7", + "src": "1510:2:9", "type": "", "value": "32" } @@ -27100,16 +34804,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1503:3:7" + "src": "1503:3:9" }, "nodeType": "YulFunctionCall", - "src": "1503:10:7" + "src": "1503:10:9" }, "variableNames": [ { "name": "i", "nodeType": "YulIdentifier", - "src": "1498:1:7" + "src": "1498:1:9" } ] } @@ -27117,10 +34821,10 @@ }, "pre": { "nodeType": "YulBlock", - "src": "1478:3:7", + "src": "1478:3:9", "statements": [] }, - "src": "1474:113:7" + "src": "1474:113:9" }, { "expression": { @@ -27130,26 +34834,26 @@ { "name": "dst", "nodeType": "YulIdentifier", - "src": "1607:3:7" + "src": "1607:3:9" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "1612:6:7" + "src": "1612:6:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1603:3:7" + "src": "1603:3:9" }, "nodeType": "YulFunctionCall", - "src": "1603:16:7" + "src": "1603:16:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1621:1:7", + "src": "1621:1:9", "type": "", "value": "0" } @@ -27157,13 +34861,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "1596:6:7" + "src": "1596:6:9" }, "nodeType": "YulFunctionCall", - "src": "1596:27:7" + "src": "1596:27:9" }, "nodeType": "YulExpressionStatement", - "src": "1596:27:7" + "src": "1596:27:9" } ] }, @@ -27173,53 +34877,53 @@ { "name": "src", "nodeType": "YulTypedName", - "src": "1423:3:7", + "src": "1423:3:9", "type": "" }, { "name": "dst", "nodeType": "YulTypedName", - "src": "1428:3:7", + "src": "1428:3:9", "type": "" }, { "name": "length", "nodeType": "YulTypedName", - "src": "1433:6:7", + "src": "1433:6:9", "type": "" } ], - "src": "1379:250:7" + "src": "1379:250:9" }, { "body": { "nodeType": "YulBlock", - "src": "1684:221:7", + "src": "1684:221:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "1694:26:7", + "src": "1694:26:9", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "1714:5:7" + "src": "1714:5:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "1708:5:7" + "src": "1708:5:9" }, "nodeType": "YulFunctionCall", - "src": "1708:12:7" + "src": "1708:12:9" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", - "src": "1698:6:7", + "src": "1698:6:9", "type": "" } ] @@ -27230,24 +34934,24 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "1736:3:7" + "src": "1736:3:9" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "1741:6:7" + "src": "1741:6:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "1729:6:7" + "src": "1729:6:9" }, "nodeType": "YulFunctionCall", - "src": "1729:19:7" + "src": "1729:19:9" }, "nodeType": "YulExpressionStatement", - "src": "1729:19:7" + "src": "1729:19:9" }, { "expression": { @@ -27257,12 +34961,12 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "1796:5:7" + "src": "1796:5:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1803:4:7", + "src": "1803:4:9", "type": "", "value": "0x20" } @@ -27270,22 +34974,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1792:3:7" + "src": "1792:3:9" }, "nodeType": "YulFunctionCall", - "src": "1792:16:7" + "src": "1792:16:9" }, { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "1814:3:7" + "src": "1814:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1819:4:7", + "src": "1819:4:9", "type": "", "value": "0x20" } @@ -27293,31 +34997,31 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1810:3:7" + "src": "1810:3:9" }, "nodeType": "YulFunctionCall", - "src": "1810:14:7" + "src": "1810:14:9" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "1826:6:7" + "src": "1826:6:9" } ], "functionName": { "name": "copy_memory_to_memory_with_cleanup", "nodeType": "YulIdentifier", - "src": "1757:34:7" + "src": "1757:34:9" }, "nodeType": "YulFunctionCall", - "src": "1757:76:7" + "src": "1757:76:9" }, "nodeType": "YulExpressionStatement", - "src": "1757:76:7" + "src": "1757:76:9" }, { "nodeType": "YulAssignment", - "src": "1842:57:7", + "src": "1842:57:9", "value": { "arguments": [ { @@ -27325,7 +35029,7 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "1857:3:7" + "src": "1857:3:9" }, { "arguments": [ @@ -27334,12 +35038,12 @@ { "name": "length", "nodeType": "YulIdentifier", - "src": "1870:6:7" + "src": "1870:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1878:2:7", + "src": "1878:2:9", "type": "", "value": "31" } @@ -27347,17 +35051,17 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1866:3:7" + "src": "1866:3:9" }, "nodeType": "YulFunctionCall", - "src": "1866:15:7" + "src": "1866:15:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "1887:2:7", + "src": "1887:2:9", "type": "", "value": "31" } @@ -27365,33 +35069,33 @@ "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "1883:3:7" + "src": "1883:3:9" }, "nodeType": "YulFunctionCall", - "src": "1883:7:7" + "src": "1883:7:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "1862:3:7" + "src": "1862:3:9" }, "nodeType": "YulFunctionCall", - "src": "1862:29:7" + "src": "1862:29:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1853:3:7" + "src": "1853:3:9" }, "nodeType": "YulFunctionCall", - "src": "1853:39:7" + "src": "1853:39:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1894:4:7", + "src": "1894:4:9", "type": "", "value": "0x20" } @@ -27399,16 +35103,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1849:3:7" + "src": "1849:3:9" }, "nodeType": "YulFunctionCall", - "src": "1849:50:7" + "src": "1849:50:9" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "1842:3:7" + "src": "1842:3:9" } ] } @@ -27420,13 +35124,13 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "1661:5:7", + "src": "1661:5:9", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "1668:3:7", + "src": "1668:3:9", "type": "" } ], @@ -27434,16 +35138,16 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "1676:3:7", + "src": "1676:3:9", "type": "" } ], - "src": "1634:271:7" + "src": "1634:271:9" }, { "body": { "nodeType": "YulBlock", - "src": "2127:329:7", + "src": "2127:329:9", "statements": [ { "expression": { @@ -27451,12 +35155,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "2144:9:7" + "src": "2144:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2155:2:7", + "src": "2155:2:9", "type": "", "value": "96" } @@ -27464,35 +35168,35 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "2137:6:7" + "src": "2137:6:9" }, "nodeType": "YulFunctionCall", - "src": "2137:21:7" + "src": "2137:21:9" }, "nodeType": "YulExpressionStatement", - "src": "2137:21:7" + "src": "2137:21:9" }, { "nodeType": "YulVariableDeclaration", - "src": "2167:59:7", + "src": "2167:59:9", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "2199:6:7" + "src": "2199:6:9" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "2211:9:7" + "src": "2211:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2222:2:7", + "src": "2222:2:9", "type": "", "value": "96" } @@ -27500,25 +35204,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2207:3:7" + "src": "2207:3:9" }, "nodeType": "YulFunctionCall", - "src": "2207:18:7" + "src": "2207:18:9" } ], "functionName": { "name": "abi_encode_string", "nodeType": "YulIdentifier", - "src": "2181:17:7" + "src": "2181:17:9" }, "nodeType": "YulFunctionCall", - "src": "2181:45:7" + "src": "2181:45:9" }, "variables": [ { "name": "tail_1", "nodeType": "YulTypedName", - "src": "2171:6:7", + "src": "2171:6:9", "type": "" } ] @@ -27531,12 +35235,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "2246:9:7" + "src": "2246:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2257:2:7", + "src": "2257:2:9", "type": "", "value": "32" } @@ -27544,73 +35248,73 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2242:3:7" + "src": "2242:3:9" }, "nodeType": "YulFunctionCall", - "src": "2242:18:7" + "src": "2242:18:9" }, { "arguments": [ { "name": "tail_1", "nodeType": "YulIdentifier", - "src": "2266:6:7" + "src": "2266:6:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "2274:9:7" + "src": "2274:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "2262:3:7" + "src": "2262:3:9" }, "nodeType": "YulFunctionCall", - "src": "2262:22:7" + "src": "2262:22:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "2235:6:7" + "src": "2235:6:9" }, "nodeType": "YulFunctionCall", - "src": "2235:50:7" + "src": "2235:50:9" }, "nodeType": "YulExpressionStatement", - "src": "2235:50:7" + "src": "2235:50:9" }, { "nodeType": "YulVariableDeclaration", - "src": "2294:47:7", + "src": "2294:47:9", "value": { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "2326:6:7" + "src": "2326:6:9" }, { "name": "tail_1", "nodeType": "YulIdentifier", - "src": "2334:6:7" + "src": "2334:6:9" } ], "functionName": { "name": "abi_encode_string", "nodeType": "YulIdentifier", - "src": "2308:17:7" + "src": "2308:17:9" }, "nodeType": "YulFunctionCall", - "src": "2308:33:7" + "src": "2308:33:9" }, "variables": [ { "name": "tail_2", "nodeType": "YulTypedName", - "src": "2298:6:7", + "src": "2298:6:9", "type": "" } ] @@ -27623,12 +35327,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "2361:9:7" + "src": "2361:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2372:2:7", + "src": "2372:2:9", "type": "", "value": "64" } @@ -27636,73 +35340,73 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2357:3:7" + "src": "2357:3:9" }, "nodeType": "YulFunctionCall", - "src": "2357:18:7" + "src": "2357:18:9" }, { "arguments": [ { "name": "tail_2", "nodeType": "YulIdentifier", - "src": "2381:6:7" + "src": "2381:6:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "2389:9:7" + "src": "2389:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "2377:3:7" + "src": "2377:3:9" }, "nodeType": "YulFunctionCall", - "src": "2377:22:7" + "src": "2377:22:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "2350:6:7" + "src": "2350:6:9" }, "nodeType": "YulFunctionCall", - "src": "2350:50:7" + "src": "2350:50:9" }, "nodeType": "YulExpressionStatement", - "src": "2350:50:7" + "src": "2350:50:9" }, { "nodeType": "YulAssignment", - "src": "2409:41:7", + "src": "2409:41:9", "value": { "arguments": [ { "name": "value2", "nodeType": "YulIdentifier", - "src": "2435:6:7" + "src": "2435:6:9" }, { "name": "tail_2", "nodeType": "YulIdentifier", - "src": "2443:6:7" + "src": "2443:6:9" } ], "functionName": { "name": "abi_encode_string", "nodeType": "YulIdentifier", - "src": "2417:17:7" + "src": "2417:17:9" }, "nodeType": "YulFunctionCall", - "src": "2417:33:7" + "src": "2417:33:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "2409:4:7" + "src": "2409:4:9" } ] } @@ -27714,25 +35418,25 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "2080:9:7", + "src": "2080:9:9", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "2091:6:7", + "src": "2091:6:9", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "2099:6:7", + "src": "2099:6:9", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "2107:6:7", + "src": "2107:6:9", "type": "" } ], @@ -27740,16 +35444,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "2118:4:7", + "src": "2118:4:9", "type": "" } ], - "src": "1910:546:7" + "src": "1910:546:9" }, { "body": { "nodeType": "YulBlock", - "src": "2610:587:7", + "src": "2610:587:9", "statements": [ { "expression": { @@ -27757,12 +35461,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "2627:9:7" + "src": "2627:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2638:2:7", + "src": "2638:2:9", "type": "", "value": "32" } @@ -27770,38 +35474,38 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "2620:6:7" + "src": "2620:6:9" }, "nodeType": "YulFunctionCall", - "src": "2620:21:7" + "src": "2620:21:9" }, "nodeType": "YulExpressionStatement", - "src": "2620:21:7" + "src": "2620:21:9" }, { "nodeType": "YulVariableDeclaration", - "src": "2650:33:7", + "src": "2650:33:9", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "2676:6:7" + "src": "2676:6:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "2670:5:7" + "src": "2670:5:9" }, "nodeType": "YulFunctionCall", - "src": "2670:13:7" + "src": "2670:13:9" }, "variables": [ { "name": "memberValue0", "nodeType": "YulTypedName", - "src": "2654:12:7", + "src": "2654:12:9", "type": "" } ] @@ -27814,12 +35518,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "2703:9:7" + "src": "2703:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2714:2:7", + "src": "2714:2:9", "type": "", "value": "32" } @@ -27827,15 +35531,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2699:3:7" + "src": "2699:3:9" }, "nodeType": "YulFunctionCall", - "src": "2699:18:7" + "src": "2699:18:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2719:4:7", + "src": "2719:4:9", "type": "", "value": "0x60" } @@ -27843,35 +35547,35 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "2692:6:7" + "src": "2692:6:9" }, "nodeType": "YulFunctionCall", - "src": "2692:32:7" + "src": "2692:32:9" }, "nodeType": "YulExpressionStatement", - "src": "2692:32:7" + "src": "2692:32:9" }, { "nodeType": "YulVariableDeclaration", - "src": "2733:66:7", + "src": "2733:66:9", "value": { "arguments": [ { "name": "memberValue0", "nodeType": "YulIdentifier", - "src": "2765:12:7" + "src": "2765:12:9" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "2783:9:7" + "src": "2783:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2794:3:7", + "src": "2794:3:9", "type": "", "value": "128" } @@ -27879,32 +35583,32 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2779:3:7" + "src": "2779:3:9" }, "nodeType": "YulFunctionCall", - "src": "2779:19:7" + "src": "2779:19:9" } ], "functionName": { "name": "abi_encode_string", "nodeType": "YulIdentifier", - "src": "2747:17:7" + "src": "2747:17:9" }, "nodeType": "YulFunctionCall", - "src": "2747:52:7" + "src": "2747:52:9" }, "variables": [ { "name": "tail_1", "nodeType": "YulTypedName", - "src": "2737:6:7", + "src": "2737:6:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "2808:44:7", + "src": "2808:44:9", "value": { "arguments": [ { @@ -27912,12 +35616,12 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "2840:6:7" + "src": "2840:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2848:2:7", + "src": "2848:2:9", "type": "", "value": "32" } @@ -27925,38 +35629,38 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2836:3:7" + "src": "2836:3:9" }, "nodeType": "YulFunctionCall", - "src": "2836:15:7" + "src": "2836:15:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "2830:5:7" + "src": "2830:5:9" }, "nodeType": "YulFunctionCall", - "src": "2830:22:7" + "src": "2830:22:9" }, "variables": [ { "name": "memberValue0_1", "nodeType": "YulTypedName", - "src": "2812:14:7", + "src": "2812:14:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "2861:17:7", + "src": "2861:17:9", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "2875:2:7", + "src": "2875:2:9", "type": "", "value": "31" } @@ -27964,16 +35668,16 @@ "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "2871:3:7" + "src": "2871:3:9" }, "nodeType": "YulFunctionCall", - "src": "2871:7:7" + "src": "2871:7:9" }, "variables": [ { "name": "_1", "nodeType": "YulTypedName", - "src": "2865:2:7", + "src": "2865:2:9", "type": "" } ] @@ -27986,12 +35690,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "2898:9:7" + "src": "2898:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2909:2:7", + "src": "2909:2:9", "type": "", "value": "64" } @@ -27999,10 +35703,10 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2894:3:7" + "src": "2894:3:9" }, "nodeType": "YulFunctionCall", - "src": "2894:18:7" + "src": "2894:18:9" }, { "arguments": [ @@ -28011,84 +35715,84 @@ { "name": "tail_1", "nodeType": "YulIdentifier", - "src": "2922:6:7" + "src": "2922:6:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "2930:9:7" + "src": "2930:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "2918:3:7" + "src": "2918:3:9" }, "nodeType": "YulFunctionCall", - "src": "2918:22:7" + "src": "2918:22:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "2942:2:7" + "src": "2942:2:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2914:3:7" + "src": "2914:3:9" }, "nodeType": "YulFunctionCall", - "src": "2914:31:7" + "src": "2914:31:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "2887:6:7" + "src": "2887:6:9" }, "nodeType": "YulFunctionCall", - "src": "2887:59:7" + "src": "2887:59:9" }, "nodeType": "YulExpressionStatement", - "src": "2887:59:7" + "src": "2887:59:9" }, { "nodeType": "YulVariableDeclaration", - "src": "2955:55:7", + "src": "2955:55:9", "value": { "arguments": [ { "name": "memberValue0_1", "nodeType": "YulIdentifier", - "src": "2987:14:7" + "src": "2987:14:9" }, { "name": "tail_1", "nodeType": "YulIdentifier", - "src": "3003:6:7" + "src": "3003:6:9" } ], "functionName": { "name": "abi_encode_string", "nodeType": "YulIdentifier", - "src": "2969:17:7" + "src": "2969:17:9" }, "nodeType": "YulFunctionCall", - "src": "2969:41:7" + "src": "2969:41:9" }, "variables": [ { "name": "tail_2", "nodeType": "YulTypedName", - "src": "2959:6:7", + "src": "2959:6:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "3019:44:7", + "src": "3019:44:9", "value": { "arguments": [ { @@ -28096,12 +35800,12 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "3051:6:7" + "src": "3051:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3059:2:7", + "src": "3059:2:9", "type": "", "value": "64" } @@ -28109,25 +35813,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3047:3:7" + "src": "3047:3:9" }, "nodeType": "YulFunctionCall", - "src": "3047:15:7" + "src": "3047:15:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "3041:5:7" + "src": "3041:5:9" }, "nodeType": "YulFunctionCall", - "src": "3041:22:7" + "src": "3041:22:9" }, "variables": [ { "name": "memberValue0_2", "nodeType": "YulTypedName", - "src": "3023:14:7", + "src": "3023:14:9", "type": "" } ] @@ -28140,12 +35844,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3083:9:7" + "src": "3083:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3094:4:7", + "src": "3094:4:9", "type": "", "value": "0x60" } @@ -28153,10 +35857,10 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3079:3:7" + "src": "3079:3:9" }, "nodeType": "YulFunctionCall", - "src": "3079:20:7" + "src": "3079:20:9" }, { "arguments": [ @@ -28165,95 +35869,95 @@ { "name": "tail_2", "nodeType": "YulIdentifier", - "src": "3109:6:7" + "src": "3109:6:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3117:9:7" + "src": "3117:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "3105:3:7" + "src": "3105:3:9" }, "nodeType": "YulFunctionCall", - "src": "3105:22:7" + "src": "3105:22:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "3129:2:7" + "src": "3129:2:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3101:3:7" + "src": "3101:3:9" }, "nodeType": "YulFunctionCall", - "src": "3101:31:7" + "src": "3101:31:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "3072:6:7" + "src": "3072:6:9" }, "nodeType": "YulFunctionCall", - "src": "3072:61:7" + "src": "3072:61:9" }, "nodeType": "YulExpressionStatement", - "src": "3072:61:7" + "src": "3072:61:9" }, { "nodeType": "YulAssignment", - "src": "3142:49:7", + "src": "3142:49:9", "value": { "arguments": [ { "name": "memberValue0_2", "nodeType": "YulIdentifier", - "src": "3168:14:7" + "src": "3168:14:9" }, { "name": "tail_2", "nodeType": "YulIdentifier", - "src": "3184:6:7" + "src": "3184:6:9" } ], "functionName": { "name": "abi_encode_string", "nodeType": "YulIdentifier", - "src": "3150:17:7" + "src": "3150:17:9" }, "nodeType": "YulFunctionCall", - "src": "3150:41:7" + "src": "3150:41:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "3142:4:7" + "src": "3142:4:9" } ] } ] }, - "name": "abi_encode_tuple_t_struct$_Service_$519_memory_ptr__to_t_struct$_Service_$519_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_struct$_Service_$683_memory_ptr__to_t_struct$_Service_$683_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "2579:9:7", + "src": "2579:9:9", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "2590:6:7", + "src": "2590:6:9", "type": "" } ], @@ -28261,21 +35965,21 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "2601:4:7", + "src": "2601:4:9", "type": "" } ], - "src": "2461:736:7" + "src": "2461:736:9" }, { "body": { "nodeType": "YulBlock", - "src": "3336:609:7", + "src": "3336:609:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "3382:16:7", + "src": "3382:16:9", "statements": [ { "expression": { @@ -28283,14 +35987,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "3391:1:7", + "src": "3391:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3394:1:7", + "src": "3394:1:9", "type": "", "value": "0" } @@ -28298,13 +36002,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "3384:6:7" + "src": "3384:6:9" }, "nodeType": "YulFunctionCall", - "src": "3384:12:7" + "src": "3384:12:9" }, "nodeType": "YulExpressionStatement", - "src": "3384:12:7" + "src": "3384:12:9" } ] }, @@ -28315,26 +36019,26 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "3357:7:7" + "src": "3357:7:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3366:9:7" + "src": "3366:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "3353:3:7" + "src": "3353:3:9" }, "nodeType": "YulFunctionCall", - "src": "3353:23:7" + "src": "3353:23:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3378:2:7", + "src": "3378:2:9", "type": "", "value": "96" } @@ -28342,49 +36046,49 @@ "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "3349:3:7" + "src": "3349:3:9" }, "nodeType": "YulFunctionCall", - "src": "3349:32:7" + "src": "3349:32:9" }, "nodeType": "YulIf", - "src": "3346:52:7" + "src": "3346:52:9" }, { "nodeType": "YulVariableDeclaration", - "src": "3407:37:7", + "src": "3407:37:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3434:9:7" + "src": "3434:9:9" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "3421:12:7" + "src": "3421:12:9" }, "nodeType": "YulFunctionCall", - "src": "3421:23:7" + "src": "3421:23:9" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", - "src": "3411:6:7", + "src": "3411:6:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "3453:28:7", + "src": "3453:28:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "3463:18:7", + "src": "3463:18:9", "type": "", "value": "0xffffffffffffffff" }, @@ -28392,7 +36096,7 @@ { "name": "_1", "nodeType": "YulTypedName", - "src": "3457:2:7", + "src": "3457:2:9", "type": "" } ] @@ -28400,7 +36104,7 @@ { "body": { "nodeType": "YulBlock", - "src": "3508:16:7", + "src": "3508:16:9", "statements": [ { "expression": { @@ -28408,14 +36112,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "3517:1:7", + "src": "3517:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3520:1:7", + "src": "3520:1:9", "type": "", "value": "0" } @@ -28423,13 +36127,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "3510:6:7" + "src": "3510:6:9" }, "nodeType": "YulFunctionCall", - "src": "3510:12:7" + "src": "3510:12:9" }, "nodeType": "YulExpressionStatement", - "src": "3510:12:7" + "src": "3510:12:9" } ] }, @@ -28438,28 +36142,28 @@ { "name": "offset", "nodeType": "YulIdentifier", - "src": "3496:6:7" + "src": "3496:6:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "3504:2:7" + "src": "3504:2:9" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "3493:2:7" + "src": "3493:2:9" }, "nodeType": "YulFunctionCall", - "src": "3493:14:7" + "src": "3493:14:9" }, "nodeType": "YulIf", - "src": "3490:34:7" + "src": "3490:34:9" }, { "nodeType": "YulAssignment", - "src": "3533:60:7", + "src": "3533:60:9", "value": { "arguments": [ { @@ -28467,47 +36171,47 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3565:9:7" + "src": "3565:9:9" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "3576:6:7" + "src": "3576:6:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3561:3:7" + "src": "3561:3:9" }, "nodeType": "YulFunctionCall", - "src": "3561:22:7" + "src": "3561:22:9" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "3585:7:7" + "src": "3585:7:9" } ], "functionName": { "name": "abi_decode_string", "nodeType": "YulIdentifier", - "src": "3543:17:7" + "src": "3543:17:9" }, "nodeType": "YulFunctionCall", - "src": "3543:50:7" + "src": "3543:50:9" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "3533:6:7" + "src": "3533:6:9" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "3602:48:7", + "src": "3602:48:9", "value": { "arguments": [ { @@ -28515,12 +36219,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3635:9:7" + "src": "3635:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3646:2:7", + "src": "3646:2:9", "type": "", "value": "32" } @@ -28528,25 +36232,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3631:3:7" + "src": "3631:3:9" }, "nodeType": "YulFunctionCall", - "src": "3631:18:7" + "src": "3631:18:9" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "3618:12:7" + "src": "3618:12:9" }, "nodeType": "YulFunctionCall", - "src": "3618:32:7" + "src": "3618:32:9" }, "variables": [ { "name": "offset_1", "nodeType": "YulTypedName", - "src": "3606:8:7", + "src": "3606:8:9", "type": "" } ] @@ -28554,7 +36258,7 @@ { "body": { "nodeType": "YulBlock", - "src": "3679:16:7", + "src": "3679:16:9", "statements": [ { "expression": { @@ -28562,14 +36266,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "3688:1:7", + "src": "3688:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3691:1:7", + "src": "3691:1:9", "type": "", "value": "0" } @@ -28577,13 +36281,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "3681:6:7" + "src": "3681:6:9" }, "nodeType": "YulFunctionCall", - "src": "3681:12:7" + "src": "3681:12:9" }, "nodeType": "YulExpressionStatement", - "src": "3681:12:7" + "src": "3681:12:9" } ] }, @@ -28592,28 +36296,28 @@ { "name": "offset_1", "nodeType": "YulIdentifier", - "src": "3665:8:7" + "src": "3665:8:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "3675:2:7" + "src": "3675:2:9" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "3662:2:7" + "src": "3662:2:9" }, "nodeType": "YulFunctionCall", - "src": "3662:16:7" + "src": "3662:16:9" }, "nodeType": "YulIf", - "src": "3659:36:7" + "src": "3659:36:9" }, { "nodeType": "YulAssignment", - "src": "3704:62:7", + "src": "3704:62:9", "value": { "arguments": [ { @@ -28621,47 +36325,47 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3736:9:7" + "src": "3736:9:9" }, { "name": "offset_1", "nodeType": "YulIdentifier", - "src": "3747:8:7" + "src": "3747:8:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3732:3:7" + "src": "3732:3:9" }, "nodeType": "YulFunctionCall", - "src": "3732:24:7" + "src": "3732:24:9" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "3758:7:7" + "src": "3758:7:9" } ], "functionName": { "name": "abi_decode_string", "nodeType": "YulIdentifier", - "src": "3714:17:7" + "src": "3714:17:9" }, "nodeType": "YulFunctionCall", - "src": "3714:52:7" + "src": "3714:52:9" }, "variableNames": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "3704:6:7" + "src": "3704:6:9" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "3775:48:7", + "src": "3775:48:9", "value": { "arguments": [ { @@ -28669,12 +36373,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3808:9:7" + "src": "3808:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3819:2:7", + "src": "3819:2:9", "type": "", "value": "64" } @@ -28682,25 +36386,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3804:3:7" + "src": "3804:3:9" }, "nodeType": "YulFunctionCall", - "src": "3804:18:7" + "src": "3804:18:9" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "3791:12:7" + "src": "3791:12:9" }, "nodeType": "YulFunctionCall", - "src": "3791:32:7" + "src": "3791:32:9" }, "variables": [ { "name": "offset_2", "nodeType": "YulTypedName", - "src": "3779:8:7", + "src": "3779:8:9", "type": "" } ] @@ -28708,7 +36412,7 @@ { "body": { "nodeType": "YulBlock", - "src": "3852:16:7", + "src": "3852:16:9", "statements": [ { "expression": { @@ -28716,14 +36420,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "3861:1:7", + "src": "3861:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3864:1:7", + "src": "3864:1:9", "type": "", "value": "0" } @@ -28731,13 +36435,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "3854:6:7" + "src": "3854:6:9" }, "nodeType": "YulFunctionCall", - "src": "3854:12:7" + "src": "3854:12:9" }, "nodeType": "YulExpressionStatement", - "src": "3854:12:7" + "src": "3854:12:9" } ] }, @@ -28746,28 +36450,28 @@ { "name": "offset_2", "nodeType": "YulIdentifier", - "src": "3838:8:7" + "src": "3838:8:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "3848:2:7" + "src": "3848:2:9" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "3835:2:7" + "src": "3835:2:9" }, "nodeType": "YulFunctionCall", - "src": "3835:16:7" + "src": "3835:16:9" }, "nodeType": "YulIf", - "src": "3832:36:7" + "src": "3832:36:9" }, { "nodeType": "YulAssignment", - "src": "3877:62:7", + "src": "3877:62:9", "value": { "arguments": [ { @@ -28775,41 +36479,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3909:9:7" + "src": "3909:9:9" }, { "name": "offset_2", "nodeType": "YulIdentifier", - "src": "3920:8:7" + "src": "3920:8:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3905:3:7" + "src": "3905:3:9" }, "nodeType": "YulFunctionCall", - "src": "3905:24:7" + "src": "3905:24:9" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "3931:7:7" + "src": "3931:7:9" } ], "functionName": { "name": "abi_decode_string", "nodeType": "YulIdentifier", - "src": "3887:17:7" + "src": "3887:17:9" }, "nodeType": "YulFunctionCall", - "src": "3887:52:7" + "src": "3887:52:9" }, "variableNames": [ { "name": "value2", "nodeType": "YulIdentifier", - "src": "3877:6:7" + "src": "3877:6:9" } ] } @@ -28821,13 +36525,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "3286:9:7", + "src": "3286:9:9", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "3297:7:7", + "src": "3297:7:9", "type": "" } ], @@ -28835,43 +36539,43 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "3309:6:7", + "src": "3309:6:9", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "3317:6:7", + "src": "3317:6:9", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "3325:6:7", + "src": "3325:6:9", "type": "" } ], - "src": "3202:743:7" + "src": "3202:743:9" }, { "body": { "nodeType": "YulBlock", - "src": "4051:102:7", + "src": "4051:102:9", "statements": [ { "nodeType": "YulAssignment", - "src": "4061:26:7", + "src": "4061:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4073:9:7" + "src": "4073:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4084:2:7", + "src": "4084:2:9", "type": "", "value": "32" } @@ -28879,16 +36583,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4069:3:7" + "src": "4069:3:9" }, "nodeType": "YulFunctionCall", - "src": "4069:18:7" + "src": "4069:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "4061:4:7" + "src": "4061:4:9" } ] }, @@ -28898,14 +36602,14 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4103:9:7" + "src": "4103:9:9" }, { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "4118:6:7" + "src": "4118:6:9" }, { "arguments": [ @@ -28914,14 +36618,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "4134:3:7", + "src": "4134:3:9", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4139:1:7", + "src": "4139:1:9", "type": "", "value": "1" } @@ -28929,15 +36633,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "4130:3:7" + "src": "4130:3:9" }, "nodeType": "YulFunctionCall", - "src": "4130:11:7" + "src": "4130:11:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4143:1:7", + "src": "4143:1:9", "type": "", "value": "1" } @@ -28945,31 +36649,31 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "4126:3:7" + "src": "4126:3:9" }, "nodeType": "YulFunctionCall", - "src": "4126:19:7" + "src": "4126:19:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "4114:3:7" + "src": "4114:3:9" }, "nodeType": "YulFunctionCall", - "src": "4114:32:7" + "src": "4114:32:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "4096:6:7" + "src": "4096:6:9" }, "nodeType": "YulFunctionCall", - "src": "4096:51:7" + "src": "4096:51:9" }, "nodeType": "YulExpressionStatement", - "src": "4096:51:7" + "src": "4096:51:9" } ] }, @@ -28979,13 +36683,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "4020:9:7", + "src": "4020:9:9", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "4031:6:7", + "src": "4031:6:9", "type": "" } ], @@ -28993,31 +36697,31 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "4042:4:7", + "src": "4042:4:9", "type": "" } ], - "src": "3950:203:7" + "src": "3950:203:9" }, { "body": { "nodeType": "YulBlock", - "src": "4253:92:7", + "src": "4253:92:9", "statements": [ { "nodeType": "YulAssignment", - "src": "4263:26:7", + "src": "4263:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4275:9:7" + "src": "4275:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4286:2:7", + "src": "4286:2:9", "type": "", "value": "32" } @@ -29025,16 +36729,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4271:3:7" + "src": "4271:3:9" }, "nodeType": "YulFunctionCall", - "src": "4271:18:7" + "src": "4271:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "4263:4:7" + "src": "4263:4:9" } ] }, @@ -29044,7 +36748,7 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4305:9:7" + "src": "4305:9:9" }, { "arguments": [ @@ -29053,37 +36757,37 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "4330:6:7" + "src": "4330:6:9" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "4323:6:7" + "src": "4323:6:9" }, "nodeType": "YulFunctionCall", - "src": "4323:14:7" + "src": "4323:14:9" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "4316:6:7" + "src": "4316:6:9" }, "nodeType": "YulFunctionCall", - "src": "4316:22:7" + "src": "4316:22:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "4298:6:7" + "src": "4298:6:9" }, "nodeType": "YulFunctionCall", - "src": "4298:41:7" + "src": "4298:41:9" }, "nodeType": "YulExpressionStatement", - "src": "4298:41:7" + "src": "4298:41:9" } ] }, @@ -29093,13 +36797,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "4222:9:7", + "src": "4222:9:9", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "4233:6:7", + "src": "4233:6:9", "type": "" } ], @@ -29107,21 +36811,21 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "4244:4:7", + "src": "4244:4:9", "type": "" } ], - "src": "4158:187:7" + "src": "4158:187:9" }, { "body": { "nodeType": "YulBlock", - "src": "4420:216:7", + "src": "4420:216:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "4466:16:7", + "src": "4466:16:9", "statements": [ { "expression": { @@ -29129,14 +36833,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "4475:1:7", + "src": "4475:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4478:1:7", + "src": "4478:1:9", "type": "", "value": "0" } @@ -29144,13 +36848,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "4468:6:7" + "src": "4468:6:9" }, "nodeType": "YulFunctionCall", - "src": "4468:12:7" + "src": "4468:12:9" }, "nodeType": "YulExpressionStatement", - "src": "4468:12:7" + "src": "4468:12:9" } ] }, @@ -29161,26 +36865,26 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "4441:7:7" + "src": "4441:7:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4450:9:7" + "src": "4450:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "4437:3:7" + "src": "4437:3:9" }, "nodeType": "YulFunctionCall", - "src": "4437:23:7" + "src": "4437:23:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4462:2:7", + "src": "4462:2:9", "type": "", "value": "32" } @@ -29188,38 +36892,38 @@ "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "4433:3:7" + "src": "4433:3:9" }, "nodeType": "YulFunctionCall", - "src": "4433:32:7" + "src": "4433:32:9" }, "nodeType": "YulIf", - "src": "4430:52:7" + "src": "4430:52:9" }, { "nodeType": "YulVariableDeclaration", - "src": "4491:36:7", + "src": "4491:36:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4517:9:7" + "src": "4517:9:9" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "4504:12:7" + "src": "4504:12:9" }, "nodeType": "YulFunctionCall", - "src": "4504:23:7" + "src": "4504:23:9" }, "variables": [ { "name": "value", "nodeType": "YulTypedName", - "src": "4495:5:7", + "src": "4495:5:9", "type": "" } ] @@ -29227,7 +36931,7 @@ { "body": { "nodeType": "YulBlock", - "src": "4590:16:7", + "src": "4590:16:9", "statements": [ { "expression": { @@ -29235,14 +36939,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "4599:1:7", + "src": "4599:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4602:1:7", + "src": "4602:1:9", "type": "", "value": "0" } @@ -29250,13 +36954,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "4592:6:7" + "src": "4592:6:9" }, "nodeType": "YulFunctionCall", - "src": "4592:12:7" + "src": "4592:12:9" }, "nodeType": "YulExpressionStatement", - "src": "4592:12:7" + "src": "4592:12:9" } ] }, @@ -29267,14 +36971,14 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "4549:5:7" + "src": "4549:5:9" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "4560:5:7" + "src": "4560:5:9" }, { "arguments": [ @@ -29283,14 +36987,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "4575:3:7", + "src": "4575:3:9", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4580:1:7", + "src": "4580:1:9", "type": "", "value": "1" } @@ -29298,15 +37002,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "4571:3:7" + "src": "4571:3:9" }, "nodeType": "YulFunctionCall", - "src": "4571:11:7" + "src": "4571:11:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4584:1:7", + "src": "4584:1:9", "type": "", "value": "1" } @@ -29314,54 +37018,54 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "4567:3:7" + "src": "4567:3:9" }, "nodeType": "YulFunctionCall", - "src": "4567:19:7" + "src": "4567:19:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "4556:3:7" + "src": "4556:3:9" }, "nodeType": "YulFunctionCall", - "src": "4556:31:7" + "src": "4556:31:9" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "4546:2:7" + "src": "4546:2:9" }, "nodeType": "YulFunctionCall", - "src": "4546:42:7" + "src": "4546:42:9" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "4539:6:7" + "src": "4539:6:9" }, "nodeType": "YulFunctionCall", - "src": "4539:50:7" + "src": "4539:50:9" }, "nodeType": "YulIf", - "src": "4536:70:7" + "src": "4536:70:9" }, { "nodeType": "YulAssignment", - "src": "4615:15:7", + "src": "4615:15:9", "value": { "name": "value", "nodeType": "YulIdentifier", - "src": "4625:5:7" + "src": "4625:5:9" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "4615:6:7" + "src": "4615:6:9" } ] } @@ -29373,13 +37077,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "4386:9:7", + "src": "4386:9:9", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "4397:7:7", + "src": "4397:7:9", "type": "" } ], @@ -29387,65 +37091,65 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "4409:6:7", + "src": "4409:6:9", "type": "" } ], - "src": "4350:286:7" + "src": "4350:286:9" }, { "body": { "nodeType": "YulBlock", - "src": "4696:325:7", + "src": "4696:325:9", "statements": [ { "nodeType": "YulAssignment", - "src": "4706:22:7", + "src": "4706:22:9", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "4720:1:7", + "src": "4720:1:9", "type": "", "value": "1" }, { "name": "data", "nodeType": "YulIdentifier", - "src": "4723:4:7" + "src": "4723:4:9" } ], "functionName": { "name": "shr", "nodeType": "YulIdentifier", - "src": "4716:3:7" + "src": "4716:3:9" }, "nodeType": "YulFunctionCall", - "src": "4716:12:7" + "src": "4716:12:9" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", - "src": "4706:6:7" + "src": "4706:6:9" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "4737:38:7", + "src": "4737:38:9", "value": { "arguments": [ { "name": "data", "nodeType": "YulIdentifier", - "src": "4767:4:7" + "src": "4767:4:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4773:1:7", + "src": "4773:1:9", "type": "", "value": "1" } @@ -29453,16 +37157,16 @@ "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "4763:3:7" + "src": "4763:3:9" }, "nodeType": "YulFunctionCall", - "src": "4763:12:7" + "src": "4763:12:9" }, "variables": [ { "name": "outOfPlaceEncoding", "nodeType": "YulTypedName", - "src": "4741:18:7", + "src": "4741:18:9", "type": "" } ] @@ -29470,22 +37174,22 @@ { "body": { "nodeType": "YulBlock", - "src": "4814:31:7", + "src": "4814:31:9", "statements": [ { "nodeType": "YulAssignment", - "src": "4816:27:7", + "src": "4816:27:9", "value": { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", - "src": "4830:6:7" + "src": "4830:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4838:4:7", + "src": "4838:4:9", "type": "", "value": "0x7f" } @@ -29493,16 +37197,16 @@ "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "4826:3:7" + "src": "4826:3:9" }, "nodeType": "YulFunctionCall", - "src": "4826:17:7" + "src": "4826:17:9" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", - "src": "4816:6:7" + "src": "4816:6:9" } ] } @@ -29513,24 +37217,24 @@ { "name": "outOfPlaceEncoding", "nodeType": "YulIdentifier", - "src": "4794:18:7" + "src": "4794:18:9" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "4787:6:7" + "src": "4787:6:9" }, "nodeType": "YulFunctionCall", - "src": "4787:26:7" + "src": "4787:26:9" }, "nodeType": "YulIf", - "src": "4784:61:7" + "src": "4784:61:9" }, { "body": { "nodeType": "YulBlock", - "src": "4904:111:7", + "src": "4904:111:9", "statements": [ { "expression": { @@ -29538,7 +37242,7 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "4925:1:7", + "src": "4925:1:9", "type": "", "value": "0" }, @@ -29547,14 +37251,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "4932:3:7", + "src": "4932:3:9", "type": "", "value": "224" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4937:10:7", + "src": "4937:10:9", "type": "", "value": "0x4e487b71" } @@ -29562,22 +37266,22 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "4928:3:7" + "src": "4928:3:9" }, "nodeType": "YulFunctionCall", - "src": "4928:20:7" + "src": "4928:20:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "4918:6:7" + "src": "4918:6:9" }, "nodeType": "YulFunctionCall", - "src": "4918:31:7" + "src": "4918:31:9" }, "nodeType": "YulExpressionStatement", - "src": "4918:31:7" + "src": "4918:31:9" }, { "expression": { @@ -29585,14 +37289,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "4969:1:7", + "src": "4969:1:9", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4972:4:7", + "src": "4972:4:9", "type": "", "value": "0x22" } @@ -29600,13 +37304,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "4962:6:7" + "src": "4962:6:9" }, "nodeType": "YulFunctionCall", - "src": "4962:15:7" + "src": "4962:15:9" }, "nodeType": "YulExpressionStatement", - "src": "4962:15:7" + "src": "4962:15:9" }, { "expression": { @@ -29614,14 +37318,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "4997:1:7", + "src": "4997:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5000:4:7", + "src": "5000:4:9", "type": "", "value": "0x24" } @@ -29629,13 +37333,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "4990:6:7" + "src": "4990:6:9" }, "nodeType": "YulFunctionCall", - "src": "4990:15:7" + "src": "4990:15:9" }, "nodeType": "YulExpressionStatement", - "src": "4990:15:7" + "src": "4990:15:9" } ] }, @@ -29644,19 +37348,19 @@ { "name": "outOfPlaceEncoding", "nodeType": "YulIdentifier", - "src": "4860:18:7" + "src": "4860:18:9" }, { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", - "src": "4883:6:7" + "src": "4883:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4891:2:7", + "src": "4891:2:9", "type": "", "value": "32" } @@ -29664,22 +37368,22 @@ "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "4880:2:7" + "src": "4880:2:9" }, "nodeType": "YulFunctionCall", - "src": "4880:14:7" + "src": "4880:14:9" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "4857:2:7" + "src": "4857:2:9" }, "nodeType": "YulFunctionCall", - "src": "4857:38:7" + "src": "4857:38:9" }, "nodeType": "YulIf", - "src": "4854:161:7" + "src": "4854:161:9" } ] }, @@ -29689,7 +37393,7 @@ { "name": "data", "nodeType": "YulTypedName", - "src": "4676:4:7", + "src": "4676:4:9", "type": "" } ], @@ -29697,41 +37401,41 @@ { "name": "length", "nodeType": "YulTypedName", - "src": "4685:6:7", + "src": "4685:6:9", "type": "" } ], - "src": "4641:380:7" + "src": "4641:380:9" }, { "body": { "nodeType": "YulBlock", - "src": "5165:150:7", + "src": "5165:150:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "5175:27:7", + "src": "5175:27:9", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "5195:6:7" + "src": "5195:6:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "5189:5:7" + "src": "5189:5:9" }, "nodeType": "YulFunctionCall", - "src": "5189:13:7" + "src": "5189:13:9" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", - "src": "5179:6:7", + "src": "5179:6:9", "type": "" } ] @@ -29744,12 +37448,12 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "5250:6:7" + "src": "5250:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5258:4:7", + "src": "5258:4:9", "type": "", "value": "0x20" } @@ -29757,62 +37461,62 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5246:3:7" + "src": "5246:3:9" }, "nodeType": "YulFunctionCall", - "src": "5246:17:7" + "src": "5246:17:9" }, { "name": "pos", "nodeType": "YulIdentifier", - "src": "5265:3:7" + "src": "5265:3:9" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "5270:6:7" + "src": "5270:6:9" } ], "functionName": { "name": "copy_memory_to_memory_with_cleanup", "nodeType": "YulIdentifier", - "src": "5211:34:7" + "src": "5211:34:9" }, "nodeType": "YulFunctionCall", - "src": "5211:66:7" + "src": "5211:66:9" }, "nodeType": "YulExpressionStatement", - "src": "5211:66:7" + "src": "5211:66:9" }, { "nodeType": "YulAssignment", - "src": "5286:23:7", + "src": "5286:23:9", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "5297:3:7" + "src": "5297:3:9" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "5302:6:7" + "src": "5302:6:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5293:3:7" + "src": "5293:3:9" }, "nodeType": "YulFunctionCall", - "src": "5293:16:7" + "src": "5293:16:9" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "5286:3:7" + "src": "5286:3:9" } ] } @@ -29824,13 +37528,13 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "5141:3:7", + "src": "5141:3:9", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "5146:6:7", + "src": "5146:6:9", "type": "" } ], @@ -29838,16 +37542,16 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "5157:3:7", + "src": "5157:3:9", "type": "" } ], - "src": "5026:289:7" + "src": "5026:289:9" }, { "body": { "nodeType": "YulBlock", - "src": "5441:99:7", + "src": "5441:99:9", "statements": [ { "expression": { @@ -29855,12 +37559,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "5458:9:7" + "src": "5458:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5469:2:7", + "src": "5469:2:9", "type": "", "value": "32" } @@ -29868,35 +37572,35 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "5451:6:7" + "src": "5451:6:9" }, "nodeType": "YulFunctionCall", - "src": "5451:21:7" + "src": "5451:21:9" }, "nodeType": "YulExpressionStatement", - "src": "5451:21:7" + "src": "5451:21:9" }, { "nodeType": "YulAssignment", - "src": "5481:53:7", + "src": "5481:53:9", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "5507:6:7" + "src": "5507:6:9" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "5519:9:7" + "src": "5519:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5530:2:7", + "src": "5530:2:9", "type": "", "value": "32" } @@ -29904,25 +37608,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5515:3:7" + "src": "5515:3:9" }, "nodeType": "YulFunctionCall", - "src": "5515:18:7" + "src": "5515:18:9" } ], "functionName": { "name": "abi_encode_string", "nodeType": "YulIdentifier", - "src": "5489:17:7" + "src": "5489:17:9" }, "nodeType": "YulFunctionCall", - "src": "5489:45:7" + "src": "5489:45:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "5481:4:7" + "src": "5481:4:9" } ] } @@ -29934,13 +37638,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "5410:9:7", + "src": "5410:9:9", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "5421:6:7", + "src": "5421:6:9", "type": "" } ], @@ -29948,21 +37652,21 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "5432:4:7", + "src": "5432:4:9", "type": "" } ], - "src": "5320:220:7" + "src": "5320:220:9" }, { "body": { "nodeType": "YulBlock", - "src": "5623:199:7", + "src": "5623:199:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "5669:16:7", + "src": "5669:16:9", "statements": [ { "expression": { @@ -29970,14 +37674,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "5678:1:7", + "src": "5678:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5681:1:7", + "src": "5681:1:9", "type": "", "value": "0" } @@ -29985,13 +37689,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "5671:6:7" + "src": "5671:6:9" }, "nodeType": "YulFunctionCall", - "src": "5671:12:7" + "src": "5671:12:9" }, "nodeType": "YulExpressionStatement", - "src": "5671:12:7" + "src": "5671:12:9" } ] }, @@ -30002,26 +37706,26 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "5644:7:7" + "src": "5644:7:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "5653:9:7" + "src": "5653:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "5640:3:7" + "src": "5640:3:9" }, "nodeType": "YulFunctionCall", - "src": "5640:23:7" + "src": "5640:23:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5665:2:7", + "src": "5665:2:9", "type": "", "value": "32" } @@ -30029,38 +37733,38 @@ "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "5636:3:7" + "src": "5636:3:9" }, "nodeType": "YulFunctionCall", - "src": "5636:32:7" + "src": "5636:32:9" }, "nodeType": "YulIf", - "src": "5633:52:7" + "src": "5633:52:9" }, { "nodeType": "YulVariableDeclaration", - "src": "5694:29:7", + "src": "5694:29:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "5713:9:7" + "src": "5713:9:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "5707:5:7" + "src": "5707:5:9" }, "nodeType": "YulFunctionCall", - "src": "5707:16:7" + "src": "5707:16:9" }, "variables": [ { "name": "value", "nodeType": "YulTypedName", - "src": "5698:5:7", + "src": "5698:5:9", "type": "" } ] @@ -30068,7 +37772,7 @@ { "body": { "nodeType": "YulBlock", - "src": "5776:16:7", + "src": "5776:16:9", "statements": [ { "expression": { @@ -30076,14 +37780,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "5785:1:7", + "src": "5785:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5788:1:7", + "src": "5788:1:9", "type": "", "value": "0" } @@ -30091,13 +37795,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "5778:6:7" + "src": "5778:6:9" }, "nodeType": "YulFunctionCall", - "src": "5778:12:7" + "src": "5778:12:9" }, "nodeType": "YulExpressionStatement", - "src": "5778:12:7" + "src": "5778:12:9" } ] }, @@ -30108,7 +37812,7 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "5745:5:7" + "src": "5745:5:9" }, { "arguments": [ @@ -30117,60 +37821,60 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "5766:5:7" + "src": "5766:5:9" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "5759:6:7" + "src": "5759:6:9" }, "nodeType": "YulFunctionCall", - "src": "5759:13:7" + "src": "5759:13:9" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "5752:6:7" + "src": "5752:6:9" }, "nodeType": "YulFunctionCall", - "src": "5752:21:7" + "src": "5752:21:9" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "5742:2:7" + "src": "5742:2:9" }, "nodeType": "YulFunctionCall", - "src": "5742:32:7" + "src": "5742:32:9" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "5735:6:7" + "src": "5735:6:9" }, "nodeType": "YulFunctionCall", - "src": "5735:40:7" + "src": "5735:40:9" }, "nodeType": "YulIf", - "src": "5732:60:7" + "src": "5732:60:9" }, { "nodeType": "YulAssignment", - "src": "5801:15:7", + "src": "5801:15:9", "value": { "name": "value", "nodeType": "YulIdentifier", - "src": "5811:5:7" + "src": "5811:5:9" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "5801:6:7" + "src": "5801:6:9" } ] } @@ -30182,13 +37886,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "5589:9:7", + "src": "5589:9:9", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "5600:7:7", + "src": "5600:7:9", "type": "" } ], @@ -30196,16 +37900,16 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "5612:6:7", + "src": "5612:6:9", "type": "" } ], - "src": "5545:277:7" + "src": "5545:277:9" }, { "body": { "nodeType": "YulBlock", - "src": "6001:172:7", + "src": "6001:172:9", "statements": [ { "expression": { @@ -30213,12 +37917,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6018:9:7" + "src": "6018:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6029:2:7", + "src": "6029:2:9", "type": "", "value": "32" } @@ -30226,13 +37930,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6011:6:7" + "src": "6011:6:9" }, "nodeType": "YulFunctionCall", - "src": "6011:21:7" + "src": "6011:21:9" }, "nodeType": "YulExpressionStatement", - "src": "6011:21:7" + "src": "6011:21:9" }, { "expression": { @@ -30242,12 +37946,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6052:9:7" + "src": "6052:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6063:2:7", + "src": "6063:2:9", "type": "", "value": "32" } @@ -30255,15 +37959,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6048:3:7" + "src": "6048:3:9" }, "nodeType": "YulFunctionCall", - "src": "6048:18:7" + "src": "6048:18:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6068:2:7", + "src": "6068:2:9", "type": "", "value": "22" } @@ -30271,13 +37975,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6041:6:7" + "src": "6041:6:9" }, "nodeType": "YulFunctionCall", - "src": "6041:30:7" + "src": "6041:30:9" }, "nodeType": "YulExpressionStatement", - "src": "6041:30:7" + "src": "6041:30:9" }, { "expression": { @@ -30287,12 +37991,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6091:9:7" + "src": "6091:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6102:2:7", + "src": "6102:2:9", "type": "", "value": "64" } @@ -30300,16 +38004,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6087:3:7" + "src": "6087:3:9" }, "nodeType": "YulFunctionCall", - "src": "6087:18:7" + "src": "6087:18:9" }, { "hexValue": "53657276696365206e6f742072656769737465726564", "kind": "string", "nodeType": "YulLiteral", - "src": "6107:24:7", + "src": "6107:24:9", "type": "", "value": "Service not registered" } @@ -30317,28 +38021,28 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6080:6:7" + "src": "6080:6:9" }, "nodeType": "YulFunctionCall", - "src": "6080:52:7" + "src": "6080:52:9" }, "nodeType": "YulExpressionStatement", - "src": "6080:52:7" + "src": "6080:52:9" }, { "nodeType": "YulAssignment", - "src": "6141:26:7", + "src": "6141:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6153:9:7" + "src": "6153:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6164:2:7", + "src": "6164:2:9", "type": "", "value": "96" } @@ -30346,16 +38050,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6149:3:7" + "src": "6149:3:9" }, "nodeType": "YulFunctionCall", - "src": "6149:18:7" + "src": "6149:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "6141:4:7" + "src": "6141:4:9" } ] } @@ -30367,7 +38071,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "5978:9:7", + "src": "5978:9:9", "type": "" } ], @@ -30375,16 +38079,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "5992:4:7", + "src": "5992:4:9", "type": "" } ], - "src": "5827:346:7" + "src": "5827:346:9" }, { "body": { "nodeType": "YulBlock", - "src": "6234:65:7", + "src": "6234:65:9", "statements": [ { "expression": { @@ -30392,43 +38096,43 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "6251:1:7", + "src": "6251:1:9", "type": "", "value": "0" }, { "name": "ptr", "nodeType": "YulIdentifier", - "src": "6254:3:7" + "src": "6254:3:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6244:6:7" + "src": "6244:6:9" }, "nodeType": "YulFunctionCall", - "src": "6244:14:7" + "src": "6244:14:9" }, "nodeType": "YulExpressionStatement", - "src": "6244:14:7" + "src": "6244:14:9" }, { "nodeType": "YulAssignment", - "src": "6267:26:7", + "src": "6267:26:9", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "6285:1:7", + "src": "6285:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6288:4:7", + "src": "6288:4:9", "type": "", "value": "0x20" } @@ -30436,16 +38140,16 @@ "functionName": { "name": "keccak256", "nodeType": "YulIdentifier", - "src": "6275:9:7" + "src": "6275:9:9" }, "nodeType": "YulFunctionCall", - "src": "6275:18:7" + "src": "6275:18:9" }, "variableNames": [ { "name": "data", "nodeType": "YulIdentifier", - "src": "6267:4:7" + "src": "6267:4:9" } ] } @@ -30457,7 +38161,7 @@ { "name": "ptr", "nodeType": "YulTypedName", - "src": "6217:3:7", + "src": "6217:3:9", "type": "" } ], @@ -30465,29 +38169,29 @@ { "name": "data", "nodeType": "YulTypedName", - "src": "6225:4:7", + "src": "6225:4:9", "type": "" } ], - "src": "6178:121:7" + "src": "6178:121:9" }, { "body": { "nodeType": "YulBlock", - "src": "6385:464:7", + "src": "6385:464:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "6418:425:7", + "src": "6418:425:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "6432:11:7", + "src": "6432:11:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "6442:1:7", + "src": "6442:1:9", "type": "", "value": "0" }, @@ -30495,7 +38199,7 @@ { "name": "_1", "nodeType": "YulTypedName", - "src": "6436:2:7", + "src": "6436:2:9", "type": "" } ] @@ -30506,39 +38210,39 @@ { "name": "_1", "nodeType": "YulIdentifier", - "src": "6463:2:7" + "src": "6463:2:9" }, { "name": "array", "nodeType": "YulIdentifier", - "src": "6467:5:7" + "src": "6467:5:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6456:6:7" + "src": "6456:6:9" }, "nodeType": "YulFunctionCall", - "src": "6456:17:7" + "src": "6456:17:9" }, "nodeType": "YulExpressionStatement", - "src": "6456:17:7" + "src": "6456:17:9" }, { "nodeType": "YulVariableDeclaration", - "src": "6486:31:7", + "src": "6486:31:9", "value": { "arguments": [ { "name": "_1", "nodeType": "YulIdentifier", - "src": "6508:2:7" + "src": "6508:2:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6512:4:7", + "src": "6512:4:9", "type": "", "value": "0x20" } @@ -30546,36 +38250,36 @@ "functionName": { "name": "keccak256", "nodeType": "YulIdentifier", - "src": "6498:9:7" + "src": "6498:9:9" }, "nodeType": "YulFunctionCall", - "src": "6498:19:7" + "src": "6498:19:9" }, "variables": [ { "name": "data", "nodeType": "YulTypedName", - "src": "6490:4:7", + "src": "6490:4:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "6530:57:7", + "src": "6530:57:9", "value": { "arguments": [ { "name": "data", "nodeType": "YulIdentifier", - "src": "6553:4:7" + "src": "6553:4:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "6563:1:7", + "src": "6563:1:9", "type": "", "value": "5" }, @@ -30584,12 +38288,12 @@ { "name": "startIndex", "nodeType": "YulIdentifier", - "src": "6570:10:7" + "src": "6570:10:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6582:2:7", + "src": "6582:2:9", "type": "", "value": "31" } @@ -30597,34 +38301,34 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6566:3:7" + "src": "6566:3:9" }, "nodeType": "YulFunctionCall", - "src": "6566:19:7" + "src": "6566:19:9" } ], "functionName": { "name": "shr", "nodeType": "YulIdentifier", - "src": "6559:3:7" + "src": "6559:3:9" }, "nodeType": "YulFunctionCall", - "src": "6559:27:7" + "src": "6559:27:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6549:3:7" + "src": "6549:3:9" }, "nodeType": "YulFunctionCall", - "src": "6549:38:7" + "src": "6549:38:9" }, "variables": [ { "name": "deleteStart", "nodeType": "YulTypedName", - "src": "6534:11:7", + "src": "6534:11:9", "type": "" } ] @@ -30632,21 +38336,21 @@ { "body": { "nodeType": "YulBlock", - "src": "6624:23:7", + "src": "6624:23:9", "statements": [ { "nodeType": "YulAssignment", - "src": "6626:19:7", + "src": "6626:19:9", "value": { "name": "data", "nodeType": "YulIdentifier", - "src": "6641:4:7" + "src": "6641:4:9" }, "variableNames": [ { "name": "deleteStart", "nodeType": "YulIdentifier", - "src": "6626:11:7" + "src": "6626:11:9" } ] } @@ -30657,12 +38361,12 @@ { "name": "startIndex", "nodeType": "YulIdentifier", - "src": "6606:10:7" + "src": "6606:10:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6618:4:7", + "src": "6618:4:9", "type": "", "value": "0x20" } @@ -30670,30 +38374,30 @@ "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "6603:2:7" + "src": "6603:2:9" }, "nodeType": "YulFunctionCall", - "src": "6603:20:7" + "src": "6603:20:9" }, "nodeType": "YulIf", - "src": "6600:47:7" + "src": "6600:47:9" }, { "nodeType": "YulVariableDeclaration", - "src": "6660:41:7", + "src": "6660:41:9", "value": { "arguments": [ { "name": "data", "nodeType": "YulIdentifier", - "src": "6674:4:7" + "src": "6674:4:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "6684:1:7", + "src": "6684:1:9", "type": "", "value": "5" }, @@ -30702,12 +38406,12 @@ { "name": "len", "nodeType": "YulIdentifier", - "src": "6691:3:7" + "src": "6691:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6696:2:7", + "src": "6696:2:9", "type": "", "value": "31" } @@ -30715,51 +38419,51 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6687:3:7" + "src": "6687:3:9" }, "nodeType": "YulFunctionCall", - "src": "6687:12:7" + "src": "6687:12:9" } ], "functionName": { "name": "shr", "nodeType": "YulIdentifier", - "src": "6680:3:7" + "src": "6680:3:9" }, "nodeType": "YulFunctionCall", - "src": "6680:20:7" + "src": "6680:20:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6670:3:7" + "src": "6670:3:9" }, "nodeType": "YulFunctionCall", - "src": "6670:31:7" + "src": "6670:31:9" }, "variables": [ { "name": "_2", "nodeType": "YulTypedName", - "src": "6664:2:7", + "src": "6664:2:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "6714:24:7", + "src": "6714:24:9", "value": { "name": "deleteStart", "nodeType": "YulIdentifier", - "src": "6727:11:7" + "src": "6727:11:9" }, "variables": [ { "name": "start", "nodeType": "YulTypedName", - "src": "6718:5:7", + "src": "6718:5:9", "type": "" } ] @@ -30767,7 +38471,7 @@ { "body": { "nodeType": "YulBlock", - "src": "6812:21:7", + "src": "6812:21:9", "statements": [ { "expression": { @@ -30775,24 +38479,24 @@ { "name": "start", "nodeType": "YulIdentifier", - "src": "6821:5:7" + "src": "6821:5:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "6828:2:7" + "src": "6828:2:9" } ], "functionName": { "name": "sstore", "nodeType": "YulIdentifier", - "src": "6814:6:7" + "src": "6814:6:9" }, "nodeType": "YulFunctionCall", - "src": "6814:17:7" + "src": "6814:17:9" }, "nodeType": "YulExpressionStatement", - "src": "6814:17:7" + "src": "6814:17:9" } ] }, @@ -30801,41 +38505,41 @@ { "name": "start", "nodeType": "YulIdentifier", - "src": "6762:5:7" + "src": "6762:5:9" }, { "name": "_2", "nodeType": "YulIdentifier", - "src": "6769:2:7" + "src": "6769:2:9" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "6759:2:7" + "src": "6759:2:9" }, "nodeType": "YulFunctionCall", - "src": "6759:13:7" + "src": "6759:13:9" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", - "src": "6773:26:7", + "src": "6773:26:9", "statements": [ { "nodeType": "YulAssignment", - "src": "6775:22:7", + "src": "6775:22:9", "value": { "arguments": [ { "name": "start", "nodeType": "YulIdentifier", - "src": "6788:5:7" + "src": "6788:5:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6795:1:7", + "src": "6795:1:9", "type": "", "value": "1" } @@ -30843,16 +38547,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6784:3:7" + "src": "6784:3:9" }, "nodeType": "YulFunctionCall", - "src": "6784:13:7" + "src": "6784:13:9" }, "variableNames": [ { "name": "start", "nodeType": "YulIdentifier", - "src": "6775:5:7" + "src": "6775:5:9" } ] } @@ -30860,10 +38564,10 @@ }, "pre": { "nodeType": "YulBlock", - "src": "6755:3:7", + "src": "6755:3:9", "statements": [] }, - "src": "6751:82:7" + "src": "6751:82:9" } ] }, @@ -30872,12 +38576,12 @@ { "name": "len", "nodeType": "YulIdentifier", - "src": "6401:3:7" + "src": "6401:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6406:2:7", + "src": "6406:2:9", "type": "", "value": "31" } @@ -30885,13 +38589,13 @@ "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "6398:2:7" + "src": "6398:2:9" }, "nodeType": "YulFunctionCall", - "src": "6398:11:7" + "src": "6398:11:9" }, "nodeType": "YulIf", - "src": "6395:448:7" + "src": "6395:448:9" } ] }, @@ -30901,32 +38605,32 @@ { "name": "array", "nodeType": "YulTypedName", - "src": "6357:5:7", + "src": "6357:5:9", "type": "" }, { "name": "len", "nodeType": "YulTypedName", - "src": "6364:3:7", + "src": "6364:3:9", "type": "" }, { "name": "startIndex", "nodeType": "YulTypedName", - "src": "6369:10:7", + "src": "6369:10:9", "type": "" } ], - "src": "6304:545:7" + "src": "6304:545:9" }, { "body": { "nodeType": "YulBlock", - "src": "6939:81:7", + "src": "6939:81:9", "statements": [ { "nodeType": "YulAssignment", - "src": "6949:65:7", + "src": "6949:65:9", "value": { "arguments": [ { @@ -30934,7 +38638,7 @@ { "name": "data", "nodeType": "YulIdentifier", - "src": "6964:4:7" + "src": "6964:4:9" }, { "arguments": [ @@ -30945,30 +38649,30 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "6982:1:7", + "src": "6982:1:9", "type": "", "value": "3" }, { "name": "len", "nodeType": "YulIdentifier", - "src": "6985:3:7" + "src": "6985:3:9" } ], "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "6978:3:7" + "src": "6978:3:9" }, "nodeType": "YulFunctionCall", - "src": "6978:11:7" + "src": "6978:11:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "6995:1:7", + "src": "6995:1:9", "type": "", "value": "0" } @@ -30976,75 +38680,75 @@ "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "6991:3:7" + "src": "6991:3:9" }, "nodeType": "YulFunctionCall", - "src": "6991:6:7" + "src": "6991:6:9" } ], "functionName": { "name": "shr", "nodeType": "YulIdentifier", - "src": "6974:3:7" + "src": "6974:3:9" }, "nodeType": "YulFunctionCall", - "src": "6974:24:7" + "src": "6974:24:9" } ], "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "6970:3:7" + "src": "6970:3:9" }, "nodeType": "YulFunctionCall", - "src": "6970:29:7" + "src": "6970:29:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "6960:3:7" + "src": "6960:3:9" }, "nodeType": "YulFunctionCall", - "src": "6960:40:7" + "src": "6960:40:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "7006:1:7", + "src": "7006:1:9", "type": "", "value": "1" }, { "name": "len", "nodeType": "YulIdentifier", - "src": "7009:3:7" + "src": "7009:3:9" } ], "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "7002:3:7" + "src": "7002:3:9" }, "nodeType": "YulFunctionCall", - "src": "7002:11:7" + "src": "7002:11:9" } ], "functionName": { "name": "or", "nodeType": "YulIdentifier", - "src": "6957:2:7" + "src": "6957:2:9" }, "nodeType": "YulFunctionCall", - "src": "6957:57:7" + "src": "6957:57:9" }, "variableNames": [ { "name": "used", "nodeType": "YulIdentifier", - "src": "6949:4:7" + "src": "6949:4:9" } ] } @@ -31056,13 +38760,13 @@ { "name": "data", "nodeType": "YulTypedName", - "src": "6916:4:7", + "src": "6916:4:9", "type": "" }, { "name": "len", "nodeType": "YulTypedName", - "src": "6922:3:7", + "src": "6922:3:9", "type": "" } ], @@ -31070,41 +38774,41 @@ { "name": "used", "nodeType": "YulTypedName", - "src": "6930:4:7", + "src": "6930:4:9", "type": "" } ], - "src": "6854:166:7" + "src": "6854:166:9" }, { "body": { "nodeType": "YulBlock", - "src": "7121:1256:7", + "src": "7121:1256:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "7131:24:7", + "src": "7131:24:9", "value": { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", - "src": "7151:3:7" + "src": "7151:3:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "7145:5:7" + "src": "7145:5:9" }, "nodeType": "YulFunctionCall", - "src": "7145:10:7" + "src": "7145:10:9" }, "variables": [ { "name": "newLen", "nodeType": "YulTypedName", - "src": "7135:6:7", + "src": "7135:6:9", "type": "" } ] @@ -31112,7 +38816,7 @@ { "body": { "nodeType": "YulBlock", - "src": "7198:22:7", + "src": "7198:22:9", "statements": [ { "expression": { @@ -31120,13 +38824,13 @@ "functionName": { "name": "panic_error_0x41", "nodeType": "YulIdentifier", - "src": "7200:16:7" + "src": "7200:16:9" }, "nodeType": "YulFunctionCall", - "src": "7200:18:7" + "src": "7200:18:9" }, "nodeType": "YulExpressionStatement", - "src": "7200:18:7" + "src": "7200:18:9" } ] }, @@ -31135,12 +38839,12 @@ { "name": "newLen", "nodeType": "YulIdentifier", - "src": "7170:6:7" + "src": "7170:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7178:18:7", + "src": "7178:18:9", "type": "", "value": "0xffffffffffffffff" } @@ -31148,13 +38852,13 @@ "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "7167:2:7" + "src": "7167:2:9" }, "nodeType": "YulFunctionCall", - "src": "7167:30:7" + "src": "7167:30:9" }, "nodeType": "YulIf", - "src": "7164:56:7" + "src": "7164:56:9" }, { "expression": { @@ -31162,7 +38866,7 @@ { "name": "slot", "nodeType": "YulIdentifier", - "src": "7273:4:7" + "src": "7273:4:9" }, { "arguments": [ @@ -31171,50 +38875,50 @@ { "name": "slot", "nodeType": "YulIdentifier", - "src": "7311:4:7" + "src": "7311:4:9" } ], "functionName": { "name": "sload", "nodeType": "YulIdentifier", - "src": "7305:5:7" + "src": "7305:5:9" }, "nodeType": "YulFunctionCall", - "src": "7305:11:7" + "src": "7305:11:9" } ], "functionName": { "name": "extract_byte_array_length", "nodeType": "YulIdentifier", - "src": "7279:25:7" + "src": "7279:25:9" }, "nodeType": "YulFunctionCall", - "src": "7279:38:7" + "src": "7279:38:9" }, { "name": "newLen", "nodeType": "YulIdentifier", - "src": "7319:6:7" + "src": "7319:6:9" } ], "functionName": { "name": "clean_up_bytearray_end_slots_string_storage", "nodeType": "YulIdentifier", - "src": "7229:43:7" + "src": "7229:43:9" }, "nodeType": "YulFunctionCall", - "src": "7229:97:7" + "src": "7229:97:9" }, "nodeType": "YulExpressionStatement", - "src": "7229:97:7" + "src": "7229:97:9" }, { "nodeType": "YulVariableDeclaration", - "src": "7335:18:7", + "src": "7335:18:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "7352:1:7", + "src": "7352:1:9", "type": "", "value": "0" }, @@ -31222,18 +38926,18 @@ { "name": "srcOffset", "nodeType": "YulTypedName", - "src": "7339:9:7", + "src": "7339:9:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "7362:23:7", + "src": "7362:23:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "7381:4:7", + "src": "7381:4:9", "type": "", "value": "0x20" }, @@ -31241,24 +38945,24 @@ { "name": "srcOffset_1", "nodeType": "YulTypedName", - "src": "7366:11:7", + "src": "7366:11:9", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "7394:24:7", + "src": "7394:24:9", "value": { "name": "srcOffset_1", "nodeType": "YulIdentifier", - "src": "7407:11:7" + "src": "7407:11:9" }, "variableNames": [ { "name": "srcOffset", "nodeType": "YulIdentifier", - "src": "7394:9:7" + "src": "7394:9:9" } ] }, @@ -31267,24 +38971,24 @@ { "body": { "nodeType": "YulBlock", - "src": "7464:656:7", + "src": "7464:656:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "7478:35:7", + "src": "7478:35:9", "value": { "arguments": [ { "name": "newLen", "nodeType": "YulIdentifier", - "src": "7497:6:7" + "src": "7497:6:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "7509:2:7", + "src": "7509:2:9", "type": "", "value": "31" } @@ -31292,64 +38996,64 @@ "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "7505:3:7" + "src": "7505:3:9" }, "nodeType": "YulFunctionCall", - "src": "7505:7:7" + "src": "7505:7:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "7493:3:7" + "src": "7493:3:9" }, "nodeType": "YulFunctionCall", - "src": "7493:20:7" + "src": "7493:20:9" }, "variables": [ { "name": "loopEnd", "nodeType": "YulTypedName", - "src": "7482:7:7", + "src": "7482:7:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "7526:49:7", + "src": "7526:49:9", "value": { "arguments": [ { "name": "slot", "nodeType": "YulIdentifier", - "src": "7570:4:7" + "src": "7570:4:9" } ], "functionName": { "name": "array_dataslot_string_storage", "nodeType": "YulIdentifier", - "src": "7540:29:7" + "src": "7540:29:9" }, "nodeType": "YulFunctionCall", - "src": "7540:35:7" + "src": "7540:35:9" }, "variables": [ { "name": "dstPtr", "nodeType": "YulTypedName", - "src": "7530:6:7", + "src": "7530:6:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "7588:10:7", + "src": "7588:10:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "7597:1:7", + "src": "7597:1:9", "type": "", "value": "0" }, @@ -31357,7 +39061,7 @@ { "name": "i", "nodeType": "YulTypedName", - "src": "7592:1:7", + "src": "7592:1:9", "type": "" } ] @@ -31365,7 +39069,7 @@ { "body": { "nodeType": "YulBlock", - "src": "7675:172:7", + "src": "7675:172:9", "statements": [ { "expression": { @@ -31373,7 +39077,7 @@ { "name": "dstPtr", "nodeType": "YulIdentifier", - "src": "7700:6:7" + "src": "7700:6:9" }, { "arguments": [ @@ -31382,57 +39086,57 @@ { "name": "src", "nodeType": "YulIdentifier", - "src": "7718:3:7" + "src": "7718:3:9" }, { "name": "srcOffset", "nodeType": "YulIdentifier", - "src": "7723:9:7" + "src": "7723:9:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7714:3:7" + "src": "7714:3:9" }, "nodeType": "YulFunctionCall", - "src": "7714:19:7" + "src": "7714:19:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "7708:5:7" + "src": "7708:5:9" }, "nodeType": "YulFunctionCall", - "src": "7708:26:7" + "src": "7708:26:9" } ], "functionName": { "name": "sstore", "nodeType": "YulIdentifier", - "src": "7693:6:7" + "src": "7693:6:9" }, "nodeType": "YulFunctionCall", - "src": "7693:42:7" + "src": "7693:42:9" }, "nodeType": "YulExpressionStatement", - "src": "7693:42:7" + "src": "7693:42:9" }, { "nodeType": "YulAssignment", - "src": "7752:24:7", + "src": "7752:24:9", "value": { "arguments": [ { "name": "dstPtr", "nodeType": "YulIdentifier", - "src": "7766:6:7" + "src": "7766:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7774:1:7", + "src": "7774:1:9", "type": "", "value": "1" } @@ -31440,48 +39144,48 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7762:3:7" + "src": "7762:3:9" }, "nodeType": "YulFunctionCall", - "src": "7762:14:7" + "src": "7762:14:9" }, "variableNames": [ { "name": "dstPtr", "nodeType": "YulIdentifier", - "src": "7752:6:7" + "src": "7752:6:9" } ] }, { "nodeType": "YulAssignment", - "src": "7793:40:7", + "src": "7793:40:9", "value": { "arguments": [ { "name": "srcOffset", "nodeType": "YulIdentifier", - "src": "7810:9:7" + "src": "7810:9:9" }, { "name": "srcOffset_1", "nodeType": "YulIdentifier", - "src": "7821:11:7" + "src": "7821:11:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7806:3:7" + "src": "7806:3:9" }, "nodeType": "YulFunctionCall", - "src": "7806:27:7" + "src": "7806:27:9" }, "variableNames": [ { "name": "srcOffset", "nodeType": "YulIdentifier", - "src": "7793:9:7" + "src": "7793:9:9" } ] } @@ -31492,56 +39196,56 @@ { "name": "i", "nodeType": "YulIdentifier", - "src": "7622:1:7" + "src": "7622:1:9" }, { "name": "loopEnd", "nodeType": "YulIdentifier", - "src": "7625:7:7" + "src": "7625:7:9" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "7619:2:7" + "src": "7619:2:9" }, "nodeType": "YulFunctionCall", - "src": "7619:14:7" + "src": "7619:14:9" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", - "src": "7634:28:7", + "src": "7634:28:9", "statements": [ { "nodeType": "YulAssignment", - "src": "7636:24:7", + "src": "7636:24:9", "value": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", - "src": "7645:1:7" + "src": "7645:1:9" }, { "name": "srcOffset_1", "nodeType": "YulIdentifier", - "src": "7648:11:7" + "src": "7648:11:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7641:3:7" + "src": "7641:3:9" }, "nodeType": "YulFunctionCall", - "src": "7641:19:7" + "src": "7641:19:9" }, "variableNames": [ { "name": "i", "nodeType": "YulIdentifier", - "src": "7636:1:7" + "src": "7636:1:9" } ] } @@ -31549,19 +39253,19 @@ }, "pre": { "nodeType": "YulBlock", - "src": "7615:3:7", + "src": "7615:3:9", "statements": [] }, - "src": "7611:236:7" + "src": "7611:236:9" }, { "body": { "nodeType": "YulBlock", - "src": "7895:166:7", + "src": "7895:166:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "7913:43:7", + "src": "7913:43:9", "value": { "arguments": [ { @@ -31569,36 +39273,36 @@ { "name": "src", "nodeType": "YulIdentifier", - "src": "7940:3:7" + "src": "7940:3:9" }, { "name": "srcOffset", "nodeType": "YulIdentifier", - "src": "7945:9:7" + "src": "7945:9:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7936:3:7" + "src": "7936:3:9" }, "nodeType": "YulFunctionCall", - "src": "7936:19:7" + "src": "7936:19:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "7930:5:7" + "src": "7930:5:9" }, "nodeType": "YulFunctionCall", - "src": "7930:26:7" + "src": "7930:26:9" }, "variables": [ { "name": "lastValue", "nodeType": "YulTypedName", - "src": "7917:9:7", + "src": "7917:9:9", "type": "" } ] @@ -31609,14 +39313,14 @@ { "name": "dstPtr", "nodeType": "YulIdentifier", - "src": "7980:6:7" + "src": "7980:6:9" }, { "arguments": [ { "name": "lastValue", "nodeType": "YulIdentifier", - "src": "7992:9:7" + "src": "7992:9:9" }, { "arguments": [ @@ -31629,28 +39333,28 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "8019:1:7", + "src": "8019:1:9", "type": "", "value": "3" }, { "name": "newLen", "nodeType": "YulIdentifier", - "src": "8022:6:7" + "src": "8022:6:9" } ], "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "8015:3:7" + "src": "8015:3:9" }, "nodeType": "YulFunctionCall", - "src": "8015:14:7" + "src": "8015:14:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8031:3:7", + "src": "8031:3:9", "type": "", "value": "248" } @@ -31658,17 +39362,17 @@ "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "8011:3:7" + "src": "8011:3:9" }, "nodeType": "YulFunctionCall", - "src": "8011:24:7" + "src": "8011:24:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "8041:1:7", + "src": "8041:1:9", "type": "", "value": "0" } @@ -31676,49 +39380,49 @@ "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "8037:3:7" + "src": "8037:3:9" }, "nodeType": "YulFunctionCall", - "src": "8037:6:7" + "src": "8037:6:9" } ], "functionName": { "name": "shr", "nodeType": "YulIdentifier", - "src": "8007:3:7" + "src": "8007:3:9" }, "nodeType": "YulFunctionCall", - "src": "8007:37:7" + "src": "8007:37:9" } ], "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "8003:3:7" + "src": "8003:3:9" }, "nodeType": "YulFunctionCall", - "src": "8003:42:7" + "src": "8003:42:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "7988:3:7" + "src": "7988:3:9" }, "nodeType": "YulFunctionCall", - "src": "7988:58:7" + "src": "7988:58:9" } ], "functionName": { "name": "sstore", "nodeType": "YulIdentifier", - "src": "7973:6:7" + "src": "7973:6:9" }, "nodeType": "YulFunctionCall", - "src": "7973:74:7" + "src": "7973:74:9" }, "nodeType": "YulExpressionStatement", - "src": "7973:74:7" + "src": "7973:74:9" } ] }, @@ -31727,24 +39431,24 @@ { "name": "loopEnd", "nodeType": "YulIdentifier", - "src": "7866:7:7" + "src": "7866:7:9" }, { "name": "newLen", "nodeType": "YulIdentifier", - "src": "7875:6:7" + "src": "7875:6:9" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "7863:2:7" + "src": "7863:2:9" }, "nodeType": "YulFunctionCall", - "src": "7863:19:7" + "src": "7863:19:9" }, "nodeType": "YulIf", - "src": "7860:201:7" + "src": "7860:201:9" }, { "expression": { @@ -31752,7 +39456,7 @@ { "name": "slot", "nodeType": "YulIdentifier", - "src": "8081:4:7" + "src": "8081:4:9" }, { "arguments": [ @@ -31761,28 +39465,28 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "8095:1:7", + "src": "8095:1:9", "type": "", "value": "1" }, { "name": "newLen", "nodeType": "YulIdentifier", - "src": "8098:6:7" + "src": "8098:6:9" } ], "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "8091:3:7" + "src": "8091:3:9" }, "nodeType": "YulFunctionCall", - "src": "8091:14:7" + "src": "8091:14:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8107:1:7", + "src": "8107:1:9", "type": "", "value": "1" } @@ -31790,31 +39494,31 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8087:3:7" + "src": "8087:3:9" }, "nodeType": "YulFunctionCall", - "src": "8087:22:7" + "src": "8087:22:9" } ], "functionName": { "name": "sstore", "nodeType": "YulIdentifier", - "src": "8074:6:7" + "src": "8074:6:9" }, "nodeType": "YulFunctionCall", - "src": "8074:36:7" + "src": "8074:36:9" }, "nodeType": "YulExpressionStatement", - "src": "8074:36:7" + "src": "8074:36:9" } ] }, "nodeType": "YulCase", - "src": "7457:663:7", + "src": "7457:663:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "7462:1:7", + "src": "7462:1:9", "type": "", "value": "1" } @@ -31822,15 +39526,15 @@ { "body": { "nodeType": "YulBlock", - "src": "8137:234:7", + "src": "8137:234:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "8151:14:7", + "src": "8151:14:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "8164:1:7", + "src": "8164:1:9", "type": "", "value": "0" }, @@ -31838,7 +39542,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "8155:5:7", + "src": "8155:5:9", "type": "" } ] @@ -31846,11 +39550,11 @@ { "body": { "nodeType": "YulBlock", - "src": "8200:67:7", + "src": "8200:67:9", "statements": [ { "nodeType": "YulAssignment", - "src": "8218:35:7", + "src": "8218:35:9", "value": { "arguments": [ { @@ -31858,36 +39562,36 @@ { "name": "src", "nodeType": "YulIdentifier", - "src": "8237:3:7" + "src": "8237:3:9" }, { "name": "srcOffset", "nodeType": "YulIdentifier", - "src": "8242:9:7" + "src": "8242:9:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8233:3:7" + "src": "8233:3:9" }, "nodeType": "YulFunctionCall", - "src": "8233:19:7" + "src": "8233:19:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "8227:5:7" + "src": "8227:5:9" }, "nodeType": "YulFunctionCall", - "src": "8227:26:7" + "src": "8227:26:9" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "8218:5:7" + "src": "8218:5:9" } ] } @@ -31896,10 +39600,10 @@ "condition": { "name": "newLen", "nodeType": "YulIdentifier", - "src": "8181:6:7" + "src": "8181:6:9" }, "nodeType": "YulIf", - "src": "8178:89:7" + "src": "8178:89:9" }, { "expression": { @@ -31907,45 +39611,45 @@ { "name": "slot", "nodeType": "YulIdentifier", - "src": "8287:4:7" + "src": "8287:4:9" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "8346:5:7" + "src": "8346:5:9" }, { "name": "newLen", "nodeType": "YulIdentifier", - "src": "8353:6:7" + "src": "8353:6:9" } ], "functionName": { "name": "extract_used_part_and_set_length_of_short_byte_array", "nodeType": "YulIdentifier", - "src": "8293:52:7" + "src": "8293:52:9" }, "nodeType": "YulFunctionCall", - "src": "8293:67:7" + "src": "8293:67:9" } ], "functionName": { "name": "sstore", "nodeType": "YulIdentifier", - "src": "8280:6:7" + "src": "8280:6:9" }, "nodeType": "YulFunctionCall", - "src": "8280:81:7" + "src": "8280:81:9" }, "nodeType": "YulExpressionStatement", - "src": "8280:81:7" + "src": "8280:81:9" } ] }, "nodeType": "YulCase", - "src": "8129:242:7", + "src": "8129:242:9", "value": "default" } ], @@ -31954,12 +39658,12 @@ { "name": "newLen", "nodeType": "YulIdentifier", - "src": "7437:6:7" + "src": "7437:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7445:2:7", + "src": "7445:2:9", "type": "", "value": "31" } @@ -31967,13 +39671,13 @@ "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "7434:2:7" + "src": "7434:2:9" }, "nodeType": "YulFunctionCall", - "src": "7434:14:7" + "src": "7434:14:9" }, "nodeType": "YulSwitch", - "src": "7427:944:7" + "src": "7427:944:9" } ] }, @@ -31983,22 +39687,22 @@ { "name": "slot", "nodeType": "YulTypedName", - "src": "7106:4:7", + "src": "7106:4:9", "type": "" }, { "name": "src", "nodeType": "YulTypedName", - "src": "7112:3:7", + "src": "7112:3:9", "type": "" } ], - "src": "7025:1352:7" + "src": "7025:1352:9" }, { "body": { "nodeType": "YulBlock", - "src": "8556:170:7", + "src": "8556:170:9", "statements": [ { "expression": { @@ -32006,12 +39710,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "8573:9:7" + "src": "8573:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8584:2:7", + "src": "8584:2:9", "type": "", "value": "32" } @@ -32019,13 +39723,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "8566:6:7" + "src": "8566:6:9" }, "nodeType": "YulFunctionCall", - "src": "8566:21:7" + "src": "8566:21:9" }, "nodeType": "YulExpressionStatement", - "src": "8566:21:7" + "src": "8566:21:9" }, { "expression": { @@ -32035,12 +39739,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "8607:9:7" + "src": "8607:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8618:2:7", + "src": "8618:2:9", "type": "", "value": "32" } @@ -32048,15 +39752,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8603:3:7" + "src": "8603:3:9" }, "nodeType": "YulFunctionCall", - "src": "8603:18:7" + "src": "8603:18:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8623:2:7", + "src": "8623:2:9", "type": "", "value": "20" } @@ -32064,13 +39768,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "8596:6:7" + "src": "8596:6:9" }, "nodeType": "YulFunctionCall", - "src": "8596:30:7" + "src": "8596:30:9" }, "nodeType": "YulExpressionStatement", - "src": "8596:30:7" + "src": "8596:30:9" }, { "expression": { @@ -32080,12 +39784,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "8646:9:7" + "src": "8646:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8657:2:7", + "src": "8657:2:9", "type": "", "value": "64" } @@ -32093,16 +39797,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8642:3:7" + "src": "8642:3:9" }, "nodeType": "YulFunctionCall", - "src": "8642:18:7" + "src": "8642:18:9" }, { "hexValue": "496e76616c69642073657276696365206e616d65", "kind": "string", "nodeType": "YulLiteral", - "src": "8662:22:7", + "src": "8662:22:9", "type": "", "value": "Invalid service name" } @@ -32110,28 +39814,28 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "8635:6:7" + "src": "8635:6:9" }, "nodeType": "YulFunctionCall", - "src": "8635:50:7" + "src": "8635:50:9" }, "nodeType": "YulExpressionStatement", - "src": "8635:50:7" + "src": "8635:50:9" }, { "nodeType": "YulAssignment", - "src": "8694:26:7", + "src": "8694:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "8706:9:7" + "src": "8706:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8717:2:7", + "src": "8717:2:9", "type": "", "value": "96" } @@ -32139,16 +39843,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8702:3:7" + "src": "8702:3:9" }, "nodeType": "YulFunctionCall", - "src": "8702:18:7" + "src": "8702:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "8694:4:7" + "src": "8694:4:9" } ] } @@ -32160,7 +39864,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "8533:9:7", + "src": "8533:9:9", "type": "" } ], @@ -32168,16 +39872,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "8547:4:7", + "src": "8547:4:9", "type": "" } ], - "src": "8382:344:7" + "src": "8382:344:9" }, { "body": { "nodeType": "YulBlock", - "src": "8905:176:7", + "src": "8905:176:9", "statements": [ { "expression": { @@ -32185,12 +39889,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "8922:9:7" + "src": "8922:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8933:2:7", + "src": "8933:2:9", "type": "", "value": "32" } @@ -32198,13 +39902,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "8915:6:7" + "src": "8915:6:9" }, "nodeType": "YulFunctionCall", - "src": "8915:21:7" + "src": "8915:21:9" }, "nodeType": "YulExpressionStatement", - "src": "8915:21:7" + "src": "8915:21:9" }, { "expression": { @@ -32214,12 +39918,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "8956:9:7" + "src": "8956:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8967:2:7", + "src": "8967:2:9", "type": "", "value": "32" } @@ -32227,15 +39931,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8952:3:7" + "src": "8952:3:9" }, "nodeType": "YulFunctionCall", - "src": "8952:18:7" + "src": "8952:18:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8972:2:7", + "src": "8972:2:9", "type": "", "value": "26" } @@ -32243,13 +39947,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "8945:6:7" + "src": "8945:6:9" }, "nodeType": "YulFunctionCall", - "src": "8945:30:7" + "src": "8945:30:9" }, "nodeType": "YulExpressionStatement", - "src": "8945:30:7" + "src": "8945:30:9" }, { "expression": { @@ -32259,12 +39963,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "8995:9:7" + "src": "8995:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9006:2:7", + "src": "9006:2:9", "type": "", "value": "64" } @@ -32272,16 +39976,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8991:3:7" + "src": "8991:3:9" }, "nodeType": "YulFunctionCall", - "src": "8991:18:7" + "src": "8991:18:9" }, { "hexValue": "5365727669636520616c72656164792072656769737465726564", "kind": "string", "nodeType": "YulLiteral", - "src": "9011:28:7", + "src": "9011:28:9", "type": "", "value": "Service already registered" } @@ -32289,28 +39993,28 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "8984:6:7" + "src": "8984:6:9" }, "nodeType": "YulFunctionCall", - "src": "8984:56:7" + "src": "8984:56:9" }, "nodeType": "YulExpressionStatement", - "src": "8984:56:7" + "src": "8984:56:9" }, { "nodeType": "YulAssignment", - "src": "9049:26:7", + "src": "9049:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "9061:9:7" + "src": "9061:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9072:2:7", + "src": "9072:2:9", "type": "", "value": "96" } @@ -32318,16 +40022,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "9057:3:7" + "src": "9057:3:9" }, "nodeType": "YulFunctionCall", - "src": "9057:18:7" + "src": "9057:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "9049:4:7" + "src": "9049:4:9" } ] } @@ -32339,7 +40043,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "8882:9:7", + "src": "8882:9:9", "type": "" } ], @@ -32347,21 +40051,21 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "8896:4:7", + "src": "8896:4:9", "type": "" } ], - "src": "8731:350:7" + "src": "8731:350:9" }, { "body": { "nodeType": "YulBlock", - "src": "9133:185:7", + "src": "9133:185:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "9172:111:7", + "src": "9172:111:9", "statements": [ { "expression": { @@ -32369,7 +40073,7 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "9193:1:7", + "src": "9193:1:9", "type": "", "value": "0" }, @@ -32378,14 +40082,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "9200:3:7", + "src": "9200:3:9", "type": "", "value": "224" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9205:10:7", + "src": "9205:10:9", "type": "", "value": "0x4e487b71" } @@ -32393,22 +40097,22 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "9196:3:7" + "src": "9196:3:9" }, "nodeType": "YulFunctionCall", - "src": "9196:20:7" + "src": "9196:20:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "9186:6:7" + "src": "9186:6:9" }, "nodeType": "YulFunctionCall", - "src": "9186:31:7" + "src": "9186:31:9" }, "nodeType": "YulExpressionStatement", - "src": "9186:31:7" + "src": "9186:31:9" }, { "expression": { @@ -32416,14 +40120,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "9237:1:7", + "src": "9237:1:9", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9240:4:7", + "src": "9240:4:9", "type": "", "value": "0x11" } @@ -32431,13 +40135,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "9230:6:7" + "src": "9230:6:9" }, "nodeType": "YulFunctionCall", - "src": "9230:15:7" + "src": "9230:15:9" }, "nodeType": "YulExpressionStatement", - "src": "9230:15:7" + "src": "9230:15:9" }, { "expression": { @@ -32445,14 +40149,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "9265:1:7", + "src": "9265:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9268:4:7", + "src": "9268:4:9", "type": "", "value": "0x24" } @@ -32460,13 +40164,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "9258:6:7" + "src": "9258:6:9" }, "nodeType": "YulFunctionCall", - "src": "9258:15:7" + "src": "9258:15:9" }, "nodeType": "YulExpressionStatement", - "src": "9258:15:7" + "src": "9258:15:9" } ] }, @@ -32475,14 +40179,14 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "9149:5:7" + "src": "9149:5:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "9160:1:7", + "src": "9160:1:9", "type": "", "value": "0" } @@ -32490,37 +40194,37 @@ "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "9156:3:7" + "src": "9156:3:9" }, "nodeType": "YulFunctionCall", - "src": "9156:6:7" + "src": "9156:6:9" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "9146:2:7" + "src": "9146:2:9" }, "nodeType": "YulFunctionCall", - "src": "9146:17:7" + "src": "9146:17:9" }, "nodeType": "YulIf", - "src": "9143:140:7" + "src": "9143:140:9" }, { "nodeType": "YulAssignment", - "src": "9292:20:7", + "src": "9292:20:9", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "9303:5:7" + "src": "9303:5:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9310:1:7", + "src": "9310:1:9", "type": "", "value": "1" } @@ -32528,16 +40232,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "9299:3:7" + "src": "9299:3:9" }, "nodeType": "YulFunctionCall", - "src": "9299:13:7" + "src": "9299:13:9" }, "variableNames": [ { "name": "ret", "nodeType": "YulIdentifier", - "src": "9292:3:7" + "src": "9292:3:9" } ] } @@ -32549,7 +40253,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "9115:5:7", + "src": "9115:5:9", "type": "" } ], @@ -32557,25 +40261,25 @@ { "name": "ret", "nodeType": "YulTypedName", - "src": "9125:3:7", + "src": "9125:3:9", "type": "" } ], - "src": "9086:232:7" + "src": "9086:232:9" } ] }, - "contents": "{\n { }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_string(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0xffffffffffffffff\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(memPtr, 0x20), add(offset, 0x20), _1)\n mstore(add(add(memPtr, _1), 0x20), 0)\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, 96)\n let tail_1 := abi_encode_string(value0, add(headStart, 96))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n let tail_2 := abi_encode_string(value1, tail_1)\n mstore(add(headStart, 64), sub(tail_2, headStart))\n tail := abi_encode_string(value2, tail_2)\n }\n function abi_encode_tuple_t_struct$_Service_$519_memory_ptr__to_t_struct$_Service_$519_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let memberValue0 := mload(value0)\n mstore(add(headStart, 32), 0x60)\n let tail_1 := abi_encode_string(memberValue0, add(headStart, 128))\n let memberValue0_1 := mload(add(value0, 32))\n let _1 := not(31)\n mstore(add(headStart, 64), add(sub(tail_1, headStart), _1))\n let tail_2 := abi_encode_string(memberValue0_1, tail_1)\n let memberValue0_2 := mload(add(value0, 64))\n mstore(add(headStart, 0x60), add(sub(tail_2, headStart), _1))\n tail := abi_encode_string(memberValue0_2, tail_2)\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n let offset_1 := calldataload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string(add(headStart, offset_1), dataEnd)\n let offset_2 := calldataload(add(headStart, 64))\n if gt(offset_2, _1) { revert(0, 0) }\n value2 := abi_decode_string(add(headStart, offset_2), dataEnd)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Service not registered\")\n tail := add(headStart, 96)\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_stringliteral_b193a272406cc908bf089bbfd62bbee3e6f0f99dfc3103f9a3b8b4618c96abfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"Invalid service name\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_ac2c61739514b5f463c314c2780e64fc7747cb6b4d2c3e9147a35ee5c42aeefa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"Service already registered\")\n tail := add(headStart, 96)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n ret := add(value, 1)\n }\n}", - "id": 7, + "contents": "{\n { }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_string(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0xffffffffffffffff\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(memPtr, 0x20), add(offset, 0x20), _1)\n mstore(add(add(memPtr, _1), 0x20), 0)\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, 96)\n let tail_1 := abi_encode_string(value0, add(headStart, 96))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n let tail_2 := abi_encode_string(value1, tail_1)\n mstore(add(headStart, 64), sub(tail_2, headStart))\n tail := abi_encode_string(value2, tail_2)\n }\n function abi_encode_tuple_t_struct$_Service_$683_memory_ptr__to_t_struct$_Service_$683_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let memberValue0 := mload(value0)\n mstore(add(headStart, 32), 0x60)\n let tail_1 := abi_encode_string(memberValue0, add(headStart, 128))\n let memberValue0_1 := mload(add(value0, 32))\n let _1 := not(31)\n mstore(add(headStart, 64), add(sub(tail_1, headStart), _1))\n let tail_2 := abi_encode_string(memberValue0_1, tail_1)\n let memberValue0_2 := mload(add(value0, 64))\n mstore(add(headStart, 0x60), add(sub(tail_2, headStart), _1))\n tail := abi_encode_string(memberValue0_2, tail_2)\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n let offset_1 := calldataload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string(add(headStart, offset_1), dataEnd)\n let offset_2 := calldataload(add(headStart, 64))\n if gt(offset_2, _1) { revert(0, 0) }\n value2 := abi_decode_string(add(headStart, offset_2), dataEnd)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_6c6314a0049a5689ebdc1966b74f113478eb9746a5ea46af2b9e0b0a4adceee6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Service not registered\")\n tail := add(headStart, 96)\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_stringliteral_b193a272406cc908bf089bbfd62bbee3e6f0f99dfc3103f9a3b8b4618c96abfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"Invalid service name\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_ac2c61739514b5f463c314c2780e64fc7747cb6b4d2c3e9147a35ee5c42aeefa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"Service already registered\")\n tail := add(headStart, 96)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n ret := add(value, 1)\n }\n}", + "id": 9, "language": "Yul", "name": "#utility.yul" } ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100935760003560e01c80637f3ed719116100665780637f3ed719146101005780638da5cb5b14610113578063b405166b1461012e578063ef57d88414610151578063f2fde38b1461016457600080fd5b806306237526146100985780633017ba09146100b4578063715018a6146100d6578063794758be146100e0575b600080fd5b6100a160025481565b6040519081526020015b60405180910390f35b6100c76100c2366004610a54565b610177565b6040516100ab93929190610ae1565b6100de61033c565b005b6100f36100ee366004610a54565b610350565b6040516100ab9190610b24565b6100de61010e366004610b85565b61055a565b6000546040516001600160a01b0390911681526020016100ab565b61014161013c366004610a54565b6106c6565b60405190151581526020016100ab565b6100f361015f366004610b85565b610745565b6100de610172366004610c0d565b6108f6565b805160208183018101805160018252928201919093012091528054819061019d90610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546101c990610c3d565b80156102165780601f106101eb57610100808354040283529160200191610216565b820191906000526020600020905b8154815290600101906020018083116101f957829003601f168201915b50505050509080600101805461022b90610c3d565b80601f016020809104026020016040519081016040528092919081815260200182805461025790610c3d565b80156102a45780601f10610279576101008083540402835291602001916102a4565b820191906000526020600020905b81548152906001019060200180831161028757829003601f168201915b5050505050908060020180546102b990610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546102e590610c3d565b80156103325780601f1061030757610100808354040283529160200191610332565b820191906000526020600020905b81548152906001019060200180831161031557829003601f168201915b5050505050905083565b610344610934565b61034e6000610961565b565b61037460405180606001604052806060815260200160608152602001606081525090565b6001826040516103849190610c77565b90815260200160405180910390206040518060600160405290816000820180546103ad90610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990610c3d565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050815260200160018201805461043f90610c3d565b80601f016020809104026020016040519081016040528092919081815260200182805461046b90610c3d565b80156104b85780601f1061048d576101008083540402835291602001916104b8565b820191906000526020600020905b81548152906001019060200180831161049b57829003601f168201915b505050505081526020016002820180546104d190610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546104fd90610c3d565b801561054a5780601f1061051f5761010080835404028352916020019161054a565b820191906000526020600020905b81548152906001019060200180831161052d57829003601f168201915b5050505050815250509050919050565b610562610934565b60405163b405166b60e01b8152309063b405166b90610585908690600401610c93565b602060405180830381865afa1580156105a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c69190610ca6565b6106105760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b60448201526064015b60405180910390fd5b60405180606001604052808481526020018381526020018281525060018460405161063b9190610c77565b908152604051908190036020019020815181906106589082610d17565b506020820151600182019061066d9082610d17565b50604082015160028201906106829082610d17565b509050507f4cd09e35844ccdf25aac9862af453cedf05d8a8b765f2763be8373b55215df8d8383836040516106b993929190610ae1565b60405180910390a1505050565b60008082511161070f5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073657276696365206e616d6560601b6044820152606401610607565b60006001836040516107219190610c77565b908152604051908190036020019020805461073b90610c3d565b9050119050919050565b61076960405180606001604052806060815260200160608152602001606081525090565b610771610934565b60405163b405166b60e01b8152309063b405166b90610794908790600401610c93565b602060405180830381865afa1580156107b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d59190610ca6565b156108225760405162461bcd60e51b815260206004820152601a60248201527f5365727669636520616c726561647920726567697374657265640000000000006044820152606401610607565b60006040518060600160405280868152602001858152602001848152509050806001866040516108529190610c77565b9081526040519081900360200190208151819061086f9082610d17565b50602082015160018201906108849082610d17565b50604082015160028201906108999082610d17565b509050507fc182fe36565be4905be53a8ed353f07898b528f1625e778edf77c136748064868585856040516108d093929190610ae1565b60405180910390a1600280549060006108e883610dd7565b909155509095945050505050565b6108fe610934565b6001600160a01b03811661092857604051631e4fbdf760e01b815260006004820152602401610607565b61093181610961565b50565b6000546001600160a01b0316331461034e5760405163118cdaa760e01b8152336004820152602401610607565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126109d857600080fd5b813567ffffffffffffffff808211156109f3576109f36109b1565b604051601f8301601f19908116603f01168101908282118183101715610a1b57610a1b6109b1565b81604052838152866020858801011115610a3457600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215610a6657600080fd5b813567ffffffffffffffff811115610a7d57600080fd5b610a89848285016109c7565b949350505050565b60005b83811015610aac578181015183820152602001610a94565b50506000910152565b60008151808452610acd816020860160208601610a91565b601f01601f19169290920160200192915050565b606081526000610af46060830186610ab5565b8281036020840152610b068186610ab5565b90508281036040840152610b1a8185610ab5565b9695505050505050565b602081526000825160606020840152610b406080840182610ab5565b90506020840151601f1980858403016040860152610b5e8383610ab5565b9250604086015191508085840301606086015250610b7c8282610ab5565b95945050505050565b600080600060608486031215610b9a57600080fd5b833567ffffffffffffffff80821115610bb257600080fd5b610bbe878388016109c7565b94506020860135915080821115610bd457600080fd5b610be0878388016109c7565b93506040860135915080821115610bf657600080fd5b50610c03868287016109c7565b9150509250925092565b600060208284031215610c1f57600080fd5b81356001600160a01b0381168114610c3657600080fd5b9392505050565b600181811c90821680610c5157607f821691505b602082108103610c7157634e487b7160e01b600052602260045260246000fd5b50919050565b60008251610c89818460208701610a91565b9190910192915050565b602081526000610c366020830184610ab5565b600060208284031215610cb857600080fd5b81518015158114610c3657600080fd5b601f821115610d1257600081815260208120601f850160051c81016020861015610cef5750805b601f850160051c820191505b81811015610d0e57828155600101610cfb565b5050505b505050565b815167ffffffffffffffff811115610d3157610d316109b1565b610d4581610d3f8454610c3d565b84610cc8565b602080601f831160018114610d7a5760008415610d625750858301515b600019600386901b1c1916600185901b178555610d0e565b600085815260208120601f198616915b82811015610da957888601518255948401946001909101908401610d8a565b5085821015610dc75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060018201610df757634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220d9d13b31a10bf6dfe0cb147d4236389d36ab889b339ea5d17d968e4d3ba1034564736f6c63430008140033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x93 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F3ED719 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x7F3ED719 EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x113 JUMPI DUP1 PUSH4 0xB405166B EQ PUSH2 0x12E JUMPI DUP1 PUSH4 0xEF57D884 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x164 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6237526 EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x3017BA09 EQ PUSH2 0xB4 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xD6 JUMPI DUP1 PUSH4 0x794758BE EQ PUSH2 0xE0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA1 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC7 PUSH2 0xC2 CALLDATASIZE PUSH1 0x4 PUSH2 0xA54 JUMP JUMPDEST PUSH2 0x177 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x33C JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF3 PUSH2 0xEE CALLDATASIZE PUSH1 0x4 PUSH2 0xA54 JUMP JUMPDEST PUSH2 0x350 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAB SWAP2 SWAP1 PUSH2 0xB24 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x10E CALLDATASIZE PUSH1 0x4 PUSH2 0xB85 JUMP JUMPDEST PUSH2 0x55A JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAB JUMP JUMPDEST PUSH2 0x141 PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0xA54 JUMP JUMPDEST PUSH2 0x6C6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAB JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0xB85 JUMP JUMPDEST PUSH2 0x745 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0xC0D JUMP JUMPDEST PUSH2 0x8F6 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP2 DUP4 ADD DUP2 ADD DUP1 MLOAD PUSH1 0x1 DUP3 MSTORE SWAP3 DUP3 ADD SWAP2 SWAP1 SWAP4 ADD KECCAK256 SWAP2 MSTORE DUP1 SLOAD DUP2 SWAP1 PUSH2 0x19D SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1C9 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x216 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1EB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x216 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1F9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x22B SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x257 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2A4 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x279 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2A4 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x287 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0x2B9 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2E5 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x332 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x307 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x332 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x315 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH2 0x344 PUSH2 0x934 JUMP JUMPDEST PUSH2 0x34E PUSH1 0x0 PUSH2 0x961 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x374 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x40 MLOAD PUSH2 0x384 SWAP2 SWAP1 PUSH2 0xC77 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x3AD SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3D9 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x426 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3FB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x426 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x409 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH2 0x43F SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x46B SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x48D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4B8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x49B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD DUP1 SLOAD PUSH2 0x4D1 SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4FD SWAP1 PUSH2 0xC3D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x54A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x51F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x54A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x52D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x562 PUSH2 0x934 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0x585 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xC93 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5C6 SWAP2 SWAP1 PUSH2 0xCA6 JUMP JUMPDEST PUSH2 0x610 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x14D95C9D9A58D9481B9BDD081C9959DA5CDD195C9959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE POP PUSH1 0x1 DUP5 PUSH1 0x40 MLOAD PUSH2 0x63B SWAP2 SWAP1 PUSH2 0xC77 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP2 MLOAD DUP2 SWAP1 PUSH2 0x658 SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x66D SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SWAP1 PUSH2 0x682 SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP SWAP1 POP POP PUSH32 0x4CD09E35844CCDF25AAC9862AF453CEDF05D8A8B765F2763BE8373B55215DF8D DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x6B9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT PUSH2 0x70F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x496E76616C69642073657276696365206E616D65 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x607 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP4 PUSH1 0x40 MLOAD PUSH2 0x721 SWAP2 SWAP1 PUSH2 0xC77 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x73B SWAP1 PUSH2 0xC3D JUMP JUMPDEST SWAP1 POP GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x769 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x771 PUSH2 0x934 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0x794 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0xC93 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7D5 SWAP2 SWAP1 PUSH2 0xCA6 JUMP JUMPDEST ISZERO PUSH2 0x822 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5365727669636520616C72656164792072656769737465726564000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x607 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x1 DUP7 PUSH1 0x40 MLOAD PUSH2 0x852 SWAP2 SWAP1 PUSH2 0xC77 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP2 MLOAD DUP2 SWAP1 PUSH2 0x86F SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x884 SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SWAP1 PUSH2 0x899 SWAP1 DUP3 PUSH2 0xD17 JUMP JUMPDEST POP SWAP1 POP POP PUSH32 0xC182FE36565BE4905BE53A8ED353F07898B528F1625E778EDF77C13674806486 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x8D0 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x8E8 DUP4 PUSH2 0xDD7 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8FE PUSH2 0x934 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x928 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x607 JUMP JUMPDEST PUSH2 0x931 DUP2 PUSH2 0x961 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x34E JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x607 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x9D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x9F3 JUMPI PUSH2 0x9F3 PUSH2 0x9B1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xA1B JUMPI PUSH2 0xA1B PUSH2 0x9B1 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0xA34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA89 DUP5 DUP3 DUP6 ADD PUSH2 0x9C7 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xAAC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xA94 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xACD DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xA91 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH2 0xAF4 PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0xAB5 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xB06 DUP2 DUP7 PUSH2 0xAB5 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0xB1A DUP2 DUP6 PUSH2 0xAB5 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH1 0x60 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xB40 PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0xAB5 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP1 DUP6 DUP5 SUB ADD PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0xB5E DUP4 DUP4 PUSH2 0xAB5 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP7 ADD MLOAD SWAP2 POP DUP1 DUP6 DUP5 SUB ADD PUSH1 0x60 DUP7 ADD MSTORE POP PUSH2 0xB7C DUP3 DUP3 PUSH2 0xAB5 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xBB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBBE DUP8 DUP4 DUP9 ADD PUSH2 0x9C7 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xBD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBE0 DUP8 DUP4 DUP9 ADD PUSH2 0x9C7 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xBF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC03 DUP7 DUP3 DUP8 ADD PUSH2 0x9C7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xC36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xC51 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xC71 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0xC89 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xA91 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xC36 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xAB5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xC36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xD12 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0xCEF JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xD0E JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xCFB JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD31 JUMPI PUSH2 0xD31 PUSH2 0x9B1 JUMP JUMPDEST PUSH2 0xD45 DUP2 PUSH2 0xD3F DUP5 SLOAD PUSH2 0xC3D JUMP JUMPDEST DUP5 PUSH2 0xCC8 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0xD7A JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0xD62 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0xD0E JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xDA9 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0xD8A JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0xDC7 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0xDF7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD9 0xD1 EXTCODESIZE BALANCE LOG1 SIGNEXTEND 0xF6 0xDF 0xE0 0xCB EQ PUSH30 0x4236389D36AB889B339EA5D17D968E4D3BA1034564736F6C634300081400 CALLER ", - "sourceMap": "256:2022:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;448:27;;;;;;;;;160:25:7;;;148:2;133:18;448:27:3;;;;;;;;400:42;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;2293:101:0:-;;;:::i;:::-;;1547:117:3;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1881:395::-;;;;;;:::i;:::-;;:::i;1638:85:0:-;1684:7;1710:6;1638:85;;-1:-1:-1;;;;;1710:6:0;;;4096:51:7;;4084:2;4069:18;1638:85:0;3950:203:7;1670:205:3;;;;;;:::i;:::-;;:::i;:::-;;;4323:14:7;;4316:22;4298:41;;4286:2;4271:18;1670:205:3;4158:187:7;856:522:3;;;;;;:::i;:::-;;:::i;2543:215:0:-;;;;;;:::i;:::-;;:::i;400:42:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1547:117:3:-;1610:14;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;1610:14:3;1643:8;1652:4;1643:14;;;;;;:::i;:::-;;;;;;;;;;;;;1636:21;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1547:117;;;:::o;1881:395::-;1531:13:0;:11;:13::i;:::-;2012:30:3::1;::::0;-1:-1:-1;;;2012:30:3;;:4:::1;::::0;:24:::1;::::0;:30:::1;::::0;2037:4;;2012:30:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2004:65;;;::::0;-1:-1:-1;;;2004:65:3;;6029:2:7;2004:65:3::1;::::0;::::1;6011:21:7::0;6068:2;6048:18;;;6041:30;-1:-1:-1;;;6087:18:7;;;6080:52;6149:18;;2004:65:3::1;;;;;;;;;2097:113;;;;;;;;2125:4;2097:113;;;;2153:8;2097:113;;;;2188:11;2097:113;;::::0;2080:8:::1;2089:4;2080:14;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:130;;:14;;:130:::1;::::0;:14;:130:::1;:::i;:::-;-1:-1:-1::0;2080:130:3::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;2080:130:3::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;;;;;2226:43;2241:4;2247:8;2257:11;2226:43;;;;;;;;:::i;:::-;;;;;;;;1881:395:::0;;;:::o;1670:205::-;1742:4;1787:1;1772:4;1766:18;:22;1758:55;;;;-1:-1:-1;;;1758:55:3;;8584:2:7;1758:55:3;;;8566:21:7;8623:2;8603:18;;;8596:30;-1:-1:-1;;;8642:18:7;;;8635:50;8702:18;;1758:55:3;8382:344:7;1758:55:3;1867:1;1837:8;1846:4;1837:14;;;;;;:::i;:::-;;;;;;;;;;;;;;1831:33;;;;;:::i;:::-;;;:37;1824:44;;1670:205;;;:::o;856:522::-;980:14;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;980:14:3;1531:13:0;:11;:13::i;:::-;1015:30:3::1;::::0;-1:-1:-1;;;1015:30:3;;:4:::1;::::0;:24:::1;::::0;:30:::1;::::0;1040:4;;1015:30:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1014:31;1006:70;;;::::0;-1:-1:-1;;;1006:70:3;;8933:2:7;1006:70:3::1;::::0;::::1;8915:21:7::0;8972:2;8952:18;;;8945:30;9011:28;8991:18;;;8984:56;9057:18;;1006:70:3::1;8731:350:7::0;1006:70:3::1;1087:22;1112:113;;;;;;;;1140:4;1112:113;;;;1168:8;1112:113;;;;1203:11;1112:113;;::::0;1087:138:::1;;1253:7;1236:8;1245:4;1236:14;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:24;;:14;;:24:::1;::::0;:14;:24:::1;:::i;:::-;-1:-1:-1::0;1236:24:3::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;1236:24:3::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;;;;;1276:46;1294:4;1300:8;1310:11;1276:46;;;;;;;;:::i;:::-;;;;;;;;1333:12;:14:::0;;;:12:::1;:14;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;1364:7:3;;856:522;-1:-1:-1;;;;;856:522:3:o;2543:215:0:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:0;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:0;;2700:1:::1;2672:31;::::0;::::1;4096:51:7::0;4069:18;;2672:31:0::1;3950:203:7::0;2623:91:0::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;735:10:1;1855:23:0;1851:101;;1901:40;;-1:-1:-1;;;1901:40:0;;735:10:1;1901:40:0;;;4096:51:7;4069:18;;1901:40:0;3950:203:7;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;196:127:7:-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:719;371:5;424:3;417:4;409:6;405:17;401:27;391:55;;442:1;439;432:12;391:55;478:6;465:20;504:18;541:2;537;534:10;531:36;;;547:18;;:::i;:::-;622:2;616:9;590:2;676:13;;-1:-1:-1;;672:22:7;;;696:2;668:31;664:40;652:53;;;720:18;;;740:22;;;717:46;714:72;;;766:18;;:::i;:::-;806:10;802:2;795:22;841:2;833:6;826:18;887:3;880:4;875:2;867:6;863:15;859:26;856:35;853:55;;;904:1;901;894:12;853:55;968:2;961:4;953:6;949:17;942:4;934:6;930:17;917:54;1015:1;1008:4;1003:2;995:6;991:15;987:26;980:37;1035:6;1026:15;;;;;;328:719;;;;:::o;1052:322::-;1121:6;1174:2;1162:9;1153:7;1149:23;1145:32;1142:52;;;1190:1;1187;1180:12;1142:52;1230:9;1217:23;1263:18;1255:6;1252:30;1249:50;;;1295:1;1292;1285:12;1249:50;1318;1360:7;1351:6;1340:9;1336:22;1318:50;:::i;:::-;1308:60;1052:322;-1:-1:-1;;;;1052:322:7:o;1379:250::-;1464:1;1474:113;1488:6;1485:1;1482:13;1474:113;;;1564:11;;;1558:18;1545:11;;;1538:39;1510:2;1503:10;1474:113;;;-1:-1:-1;;1621:1:7;1603:16;;1596:27;1379:250::o;1634:271::-;1676:3;1714:5;1708:12;1741:6;1736:3;1729:19;1757:76;1826:6;1819:4;1814:3;1810:14;1803:4;1796:5;1792:16;1757:76;:::i;:::-;1887:2;1866:15;-1:-1:-1;;1862:29:7;1853:39;;;;1894:4;1849:50;;1634:271;-1:-1:-1;;1634:271:7:o;1910:546::-;2155:2;2144:9;2137:21;2118:4;2181:45;2222:2;2211:9;2207:18;2199:6;2181:45;:::i;:::-;2274:9;2266:6;2262:22;2257:2;2246:9;2242:18;2235:50;2308:33;2334:6;2326;2308:33;:::i;:::-;2294:47;;2389:9;2381:6;2377:22;2372:2;2361:9;2357:18;2350:50;2417:33;2443:6;2435;2417:33;:::i;:::-;2409:41;1910:546;-1:-1:-1;;;;;;1910:546:7:o;2461:736::-;2638:2;2627:9;2620:21;2601:4;2676:6;2670:13;2719:4;2714:2;2703:9;2699:18;2692:32;2747:52;2794:3;2783:9;2779:19;2765:12;2747:52;:::i;:::-;2733:66;;2848:2;2840:6;2836:15;2830:22;2875:2;2871:7;2942:2;2930:9;2922:6;2918:22;2914:31;2909:2;2898:9;2894:18;2887:59;2969:41;3003:6;2987:14;2969:41;:::i;:::-;2955:55;;3059:2;3051:6;3047:15;3041:22;3019:44;;3129:2;3117:9;3109:6;3105:22;3101:31;3094:4;3083:9;3079:20;3072:61;;3150:41;3184:6;3168:14;3150:41;:::i;:::-;3142:49;2461:736;-1:-1:-1;;;;;2461:736:7:o;3202:743::-;3309:6;3317;3325;3378:2;3366:9;3357:7;3353:23;3349:32;3346:52;;;3394:1;3391;3384:12;3346:52;3434:9;3421:23;3463:18;3504:2;3496:6;3493:14;3490:34;;;3520:1;3517;3510:12;3490:34;3543:50;3585:7;3576:6;3565:9;3561:22;3543:50;:::i;:::-;3533:60;;3646:2;3635:9;3631:18;3618:32;3602:48;;3675:2;3665:8;3662:16;3659:36;;;3691:1;3688;3681:12;3659:36;3714:52;3758:7;3747:8;3736:9;3732:24;3714:52;:::i;:::-;3704:62;;3819:2;3808:9;3804:18;3791:32;3775:48;;3848:2;3838:8;3835:16;3832:36;;;3864:1;3861;3854:12;3832:36;;3887:52;3931:7;3920:8;3909:9;3905:24;3887:52;:::i;:::-;3877:62;;;3202:743;;;;;:::o;4350:286::-;4409:6;4462:2;4450:9;4441:7;4437:23;4433:32;4430:52;;;4478:1;4475;4468:12;4430:52;4504:23;;-1:-1:-1;;;;;4556:31:7;;4546:42;;4536:70;;4602:1;4599;4592:12;4536:70;4625:5;4350:286;-1:-1:-1;;;4350:286:7:o;4641:380::-;4720:1;4716:12;;;;4763;;;4784:61;;4838:4;4830:6;4826:17;4816:27;;4784:61;4891:2;4883:6;4880:14;4860:18;4857:38;4854:161;;4937:10;4932:3;4928:20;4925:1;4918:31;4972:4;4969:1;4962:15;5000:4;4997:1;4990:15;4854:161;;4641:380;;;:::o;5026:289::-;5157:3;5195:6;5189:13;5211:66;5270:6;5265:3;5258:4;5250:6;5246:17;5211:66;:::i;:::-;5293:16;;;;;5026:289;-1:-1:-1;;5026:289:7:o;5320:220::-;5469:2;5458:9;5451:21;5432:4;5489:45;5530:2;5519:9;5515:18;5507:6;5489:45;:::i;5545:277::-;5612:6;5665:2;5653:9;5644:7;5640:23;5636:32;5633:52;;;5681:1;5678;5671:12;5633:52;5713:9;5707:16;5766:5;5759:13;5752:21;5745:5;5742:32;5732:60;;5788:1;5785;5778:12;6304:545;6406:2;6401:3;6398:11;6395:448;;;6442:1;6467:5;6463:2;6456:17;6512:4;6508:2;6498:19;6582:2;6570:10;6566:19;6563:1;6559:27;6553:4;6549:38;6618:4;6606:10;6603:20;6600:47;;;-1:-1:-1;6641:4:7;6600:47;6696:2;6691:3;6687:12;6684:1;6680:20;6674:4;6670:31;6660:41;;6751:82;6769:2;6762:5;6759:13;6751:82;;;6814:17;;;6795:1;6784:13;6751:82;;;6755:3;;;6395:448;6304:545;;;:::o;7025:1352::-;7151:3;7145:10;7178:18;7170:6;7167:30;7164:56;;;7200:18;;:::i;:::-;7229:97;7319:6;7279:38;7311:4;7305:11;7279:38;:::i;:::-;7273:4;7229:97;:::i;:::-;7381:4;;7445:2;7434:14;;7462:1;7457:663;;;;8164:1;8181:6;8178:89;;;-1:-1:-1;8233:19:7;;;8227:26;8178:89;-1:-1:-1;;6982:1:7;6978:11;;;6974:24;6970:29;6960:40;7006:1;7002:11;;;6957:57;8280:81;;7427:944;;7457:663;6251:1;6244:14;;;6288:4;6275:18;;-1:-1:-1;;7493:20:7;;;7611:236;7625:7;7622:1;7619:14;7611:236;;;7714:19;;;7708:26;7693:42;;7806:27;;;;7774:1;7762:14;;;;7641:19;;7611:236;;;7615:3;7875:6;7866:7;7863:19;7860:201;;;7936:19;;;7930:26;-1:-1:-1;;8019:1:7;8015:14;;;8031:3;8011:24;8007:37;8003:42;7988:58;7973:74;;7860:201;-1:-1:-1;;;;;8107:1:7;8091:14;;;8087:22;8074:36;;-1:-1:-1;7025:1352:7:o;9086:232::-;9125:3;9146:17;;;9143:140;;9205:10;9200:3;9196:20;9193:1;9186:31;9240:4;9237:1;9230:15;9268:4;9265:1;9258:15;9143:140;-1:-1:-1;9310:1:7;9299:13;;9086:232::o" + "object": "608060405234801561001057600080fd5b50600436106100935760003560e01c80637f3ed719116100665780637f3ed719146101005780638da5cb5b14610113578063b405166b1461012e578063ef57d88414610151578063f2fde38b1461016457600080fd5b806306237526146100985780633017ba09146100b4578063715018a6146100d6578063794758be146100e0575b600080fd5b6100a160025481565b6040519081526020015b60405180910390f35b6100c76100c2366004610a4c565b610177565b6040516100ab93929190610ad9565b6100de61033c565b005b6100f36100ee366004610a4c565b610350565b6040516100ab9190610b1c565b6100de61010e366004610b7d565b61055a565b6000546040516001600160a01b0390911681526020016100ab565b61014161013c366004610a4c565b6106c6565b60405190151581526020016100ab565b6100f361015f366004610b7d565b610745565b6100de610172366004610c05565b6108ee565b805160208183018101805160018252928201919093012091528054819061019d90610c35565b80601f01602080910402602001604051908101604052809291908181526020018280546101c990610c35565b80156102165780601f106101eb57610100808354040283529160200191610216565b820191906000526020600020905b8154815290600101906020018083116101f957829003601f168201915b50505050509080600101805461022b90610c35565b80601f016020809104026020016040519081016040528092919081815260200182805461025790610c35565b80156102a45780601f10610279576101008083540402835291602001916102a4565b820191906000526020600020905b81548152906001019060200180831161028757829003601f168201915b5050505050908060020180546102b990610c35565b80601f01602080910402602001604051908101604052809291908181526020018280546102e590610c35565b80156103325780601f1061030757610100808354040283529160200191610332565b820191906000526020600020905b81548152906001019060200180831161031557829003601f168201915b5050505050905083565b61034461092c565b61034e6000610959565b565b61037460405180606001604052806060815260200160608152602001606081525090565b6001826040516103849190610c6f565b90815260200160405180910390206040518060600160405290816000820180546103ad90610c35565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990610c35565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050815260200160018201805461043f90610c35565b80601f016020809104026020016040519081016040528092919081815260200182805461046b90610c35565b80156104b85780601f1061048d576101008083540402835291602001916104b8565b820191906000526020600020905b81548152906001019060200180831161049b57829003601f168201915b505050505081526020016002820180546104d190610c35565b80601f01602080910402602001604051908101604052809291908181526020018280546104fd90610c35565b801561054a5780601f1061051f5761010080835404028352916020019161054a565b820191906000526020600020905b81548152906001019060200180831161052d57829003601f168201915b5050505050815250509050919050565b61056261092c565b60405163b405166b60e01b8152309063b405166b90610585908690600401610c8b565b602060405180830381865afa1580156105a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c69190610c9e565b6106105760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b60448201526064015b60405180910390fd5b60405180606001604052808481526020018381526020018281525060018460405161063b9190610c6f565b908152604051908190036020019020815181906106589082610d0f565b506020820151600182019061066d9082610d0f565b50604082015160028201906106829082610d0f565b509050507f4cd09e35844ccdf25aac9862af453cedf05d8a8b765f2763be8373b55215df8d8383836040516106b993929190610ad9565b60405180910390a1505050565b60008082511161070f5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073657276696365206e616d6560601b6044820152606401610607565b60006001836040516107219190610c6f565b908152604051908190036020019020805461073b90610c35565b9050119050919050565b61076960405180606001604052806060815260200160608152602001606081525090565b60405163b405166b60e01b8152309063b405166b9061078c908790600401610c8b565b602060405180830381865afa1580156107a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107cd9190610c9e565b1561081a5760405162461bcd60e51b815260206004820152601a60248201527f5365727669636520616c726561647920726567697374657265640000000000006044820152606401610607565b600060405180606001604052808681526020018581526020018481525090508060018660405161084a9190610c6f565b908152604051908190036020019020815181906108679082610d0f565b506020820151600182019061087c9082610d0f565b50604082015160028201906108919082610d0f565b509050507fc182fe36565be4905be53a8ed353f07898b528f1625e778edf77c136748064868585856040516108c893929190610ad9565b60405180910390a1600280549060006108e083610dcf565b909155509095945050505050565b6108f661092c565b6001600160a01b03811661092057604051631e4fbdf760e01b815260006004820152602401610607565b61092981610959565b50565b6000546001600160a01b0316331461034e5760405163118cdaa760e01b8152336004820152602401610607565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126109d057600080fd5b813567ffffffffffffffff808211156109eb576109eb6109a9565b604051601f8301601f19908116603f01168101908282118183101715610a1357610a136109a9565b81604052838152866020858801011115610a2c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215610a5e57600080fd5b813567ffffffffffffffff811115610a7557600080fd5b610a81848285016109bf565b949350505050565b60005b83811015610aa4578181015183820152602001610a8c565b50506000910152565b60008151808452610ac5816020860160208601610a89565b601f01601f19169290920160200192915050565b606081526000610aec6060830186610aad565b8281036020840152610afe8186610aad565b90508281036040840152610b128185610aad565b9695505050505050565b602081526000825160606020840152610b386080840182610aad565b90506020840151601f1980858403016040860152610b568383610aad565b9250604086015191508085840301606086015250610b748282610aad565b95945050505050565b600080600060608486031215610b9257600080fd5b833567ffffffffffffffff80821115610baa57600080fd5b610bb6878388016109bf565b94506020860135915080821115610bcc57600080fd5b610bd8878388016109bf565b93506040860135915080821115610bee57600080fd5b50610bfb868287016109bf565b9150509250925092565b600060208284031215610c1757600080fd5b81356001600160a01b0381168114610c2e57600080fd5b9392505050565b600181811c90821680610c4957607f821691505b602082108103610c6957634e487b7160e01b600052602260045260246000fd5b50919050565b60008251610c81818460208701610a89565b9190910192915050565b602081526000610c2e6020830184610aad565b600060208284031215610cb057600080fd5b81518015158114610c2e57600080fd5b601f821115610d0a57600081815260208120601f850160051c81016020861015610ce75750805b601f850160051c820191505b81811015610d0657828155600101610cf3565b5050505b505050565b815167ffffffffffffffff811115610d2957610d296109a9565b610d3d81610d378454610c35565b84610cc0565b602080601f831160018114610d725760008415610d5a5750858301515b600019600386901b1c1916600185901b178555610d06565b600085815260208120601f198616915b82811015610da157888601518255948401946001909101908401610d82565b5085821015610dbf5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060018201610def57634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212206f9c7481cdfdbc6350d53b34a07d196f444172352584059ffa61f853c81d633764736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x93 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F3ED719 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x7F3ED719 EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x113 JUMPI DUP1 PUSH4 0xB405166B EQ PUSH2 0x12E JUMPI DUP1 PUSH4 0xEF57D884 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x164 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6237526 EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x3017BA09 EQ PUSH2 0xB4 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xD6 JUMPI DUP1 PUSH4 0x794758BE EQ PUSH2 0xE0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA1 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC7 PUSH2 0xC2 CALLDATASIZE PUSH1 0x4 PUSH2 0xA4C JUMP JUMPDEST PUSH2 0x177 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAD9 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x33C JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF3 PUSH2 0xEE CALLDATASIZE PUSH1 0x4 PUSH2 0xA4C JUMP JUMPDEST PUSH2 0x350 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAB SWAP2 SWAP1 PUSH2 0xB1C JUMP JUMPDEST PUSH2 0xDE PUSH2 0x10E CALLDATASIZE PUSH1 0x4 PUSH2 0xB7D JUMP JUMPDEST PUSH2 0x55A JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAB JUMP JUMPDEST PUSH2 0x141 PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0xA4C JUMP JUMPDEST PUSH2 0x6C6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAB JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0xB7D JUMP JUMPDEST PUSH2 0x745 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0xC05 JUMP JUMPDEST PUSH2 0x8EE JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP2 DUP4 ADD DUP2 ADD DUP1 MLOAD PUSH1 0x1 DUP3 MSTORE SWAP3 DUP3 ADD SWAP2 SWAP1 SWAP4 ADD KECCAK256 SWAP2 MSTORE DUP1 SLOAD DUP2 SWAP1 PUSH2 0x19D SWAP1 PUSH2 0xC35 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1C9 SWAP1 PUSH2 0xC35 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x216 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1EB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x216 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1F9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x22B SWAP1 PUSH2 0xC35 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x257 SWAP1 PUSH2 0xC35 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2A4 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x279 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2A4 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x287 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0x2B9 SWAP1 PUSH2 0xC35 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2E5 SWAP1 PUSH2 0xC35 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x332 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x307 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x332 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x315 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH2 0x344 PUSH2 0x92C JUMP JUMPDEST PUSH2 0x34E PUSH1 0x0 PUSH2 0x959 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x374 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x40 MLOAD PUSH2 0x384 SWAP2 SWAP1 PUSH2 0xC6F JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x3AD SWAP1 PUSH2 0xC35 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3D9 SWAP1 PUSH2 0xC35 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x426 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3FB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x426 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x409 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH2 0x43F SWAP1 PUSH2 0xC35 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x46B SWAP1 PUSH2 0xC35 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x48D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4B8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x49B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD DUP1 SLOAD PUSH2 0x4D1 SWAP1 PUSH2 0xC35 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4FD SWAP1 PUSH2 0xC35 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x54A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x51F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x54A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x52D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x562 PUSH2 0x92C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0x585 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xC8B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5C6 SWAP2 SWAP1 PUSH2 0xC9E JUMP JUMPDEST PUSH2 0x610 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x14D95C9D9A58D9481B9BDD081C9959DA5CDD195C9959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE POP PUSH1 0x1 DUP5 PUSH1 0x40 MLOAD PUSH2 0x63B SWAP2 SWAP1 PUSH2 0xC6F JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP2 MLOAD DUP2 SWAP1 PUSH2 0x658 SWAP1 DUP3 PUSH2 0xD0F JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x66D SWAP1 DUP3 PUSH2 0xD0F JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SWAP1 PUSH2 0x682 SWAP1 DUP3 PUSH2 0xD0F JUMP JUMPDEST POP SWAP1 POP POP PUSH32 0x4CD09E35844CCDF25AAC9862AF453CEDF05D8A8B765F2763BE8373B55215DF8D DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x6B9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAD9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT PUSH2 0x70F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x496E76616C69642073657276696365206E616D65 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x607 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP4 PUSH1 0x40 MLOAD PUSH2 0x721 SWAP2 SWAP1 PUSH2 0xC6F JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x73B SWAP1 PUSH2 0xC35 JUMP JUMPDEST SWAP1 POP GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x769 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB405166B PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS SWAP1 PUSH4 0xB405166B SWAP1 PUSH2 0x78C SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0xC8B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7CD SWAP2 SWAP1 PUSH2 0xC9E JUMP JUMPDEST ISZERO PUSH2 0x81A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5365727669636520616C72656164792072656769737465726564000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x607 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x1 DUP7 PUSH1 0x40 MLOAD PUSH2 0x84A SWAP2 SWAP1 PUSH2 0xC6F JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP2 MLOAD DUP2 SWAP1 PUSH2 0x867 SWAP1 DUP3 PUSH2 0xD0F JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x87C SWAP1 DUP3 PUSH2 0xD0F JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SWAP1 PUSH2 0x891 SWAP1 DUP3 PUSH2 0xD0F JUMP JUMPDEST POP SWAP1 POP POP PUSH32 0xC182FE36565BE4905BE53A8ED353F07898B528F1625E778EDF77C13674806486 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x8C8 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAD9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x8E0 DUP4 PUSH2 0xDCF JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8F6 PUSH2 0x92C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x920 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x607 JUMP JUMPDEST PUSH2 0x929 DUP2 PUSH2 0x959 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x34E JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x607 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x9D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x9EB JUMPI PUSH2 0x9EB PUSH2 0x9A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xA13 JUMPI PUSH2 0xA13 PUSH2 0x9A9 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0xA2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA5E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA81 DUP5 DUP3 DUP6 ADD PUSH2 0x9BF JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xAA4 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xA8C JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xAC5 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xA89 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH2 0xAEC PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0xAAD JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xAFE DUP2 DUP7 PUSH2 0xAAD JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0xB12 DUP2 DUP6 PUSH2 0xAAD JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH1 0x60 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xB38 PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0xAAD JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP1 DUP6 DUP5 SUB ADD PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0xB56 DUP4 DUP4 PUSH2 0xAAD JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP7 ADD MLOAD SWAP2 POP DUP1 DUP6 DUP5 SUB ADD PUSH1 0x60 DUP7 ADD MSTORE POP PUSH2 0xB74 DUP3 DUP3 PUSH2 0xAAD JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xBAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBB6 DUP8 DUP4 DUP9 ADD PUSH2 0x9BF JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xBCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBD8 DUP8 DUP4 DUP9 ADD PUSH2 0x9BF JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xBEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBFB DUP7 DUP3 DUP8 ADD PUSH2 0x9BF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xC2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xC49 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xC69 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0xC81 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xA89 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xC2E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xAAD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xC2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xD0A JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0xCE7 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xD06 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xCF3 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD29 JUMPI PUSH2 0xD29 PUSH2 0x9A9 JUMP JUMPDEST PUSH2 0xD3D DUP2 PUSH2 0xD37 DUP5 SLOAD PUSH2 0xC35 JUMP JUMPDEST DUP5 PUSH2 0xCC0 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0xD72 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0xD5A JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0xD06 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xDA1 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0xD82 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0xDBF JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0xDEF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH16 0x9C7481CDFDBC6350D53B34A07D196F44 COINBASE PUSH19 0x352584059FFA61F853C81D633764736F6C6343 STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "256:2012:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;448:27;;;;;;;;;160:25:9;;;148:2;133:18;448:27:3;;;;;;;;400:42;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;2293:101:0:-;;;:::i;:::-;;1537:117:3;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1871:395::-;;;;;;:::i;:::-;;:::i;1638:85:0:-;1684:7;1710:6;1638:85;;-1:-1:-1;;;;;1710:6:0;;;4096:51:9;;4084:2;4069:18;1638:85:0;3950:203:9;1660:205:3;;;;;;:::i;:::-;;:::i;:::-;;;4323:14:9;;4316:22;4298:41;;4286:2;4271:18;1660:205:3;4158:187:9;856:512:3;;;;;;:::i;:::-;;:::i;2543:215:0:-;;;;;;:::i;:::-;;:::i;400:42:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1537:117:3:-;1600:14;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;1600:14:3;1633:8;1642:4;1633:14;;;;;;:::i;:::-;;;;;;;;;;;;;1626:21;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1537:117;;;:::o;1871:395::-;1531:13:0;:11;:13::i;:::-;2002:30:3::1;::::0;-1:-1:-1;;;2002:30:3;;:4:::1;::::0;:24:::1;::::0;:30:::1;::::0;2027:4;;2002:30:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1994:65;;;::::0;-1:-1:-1;;;1994:65:3;;6029:2:9;1994:65:3::1;::::0;::::1;6011:21:9::0;6068:2;6048:18;;;6041:30;-1:-1:-1;;;6087:18:9;;;6080:52;6149:18;;1994:65:3::1;;;;;;;;;2087:113;;;;;;;;2115:4;2087:113;;;;2143:8;2087:113;;;;2178:11;2087:113;;::::0;2070:8:::1;2079:4;2070:14;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:130;;:14;;:130:::1;::::0;:14;:130:::1;:::i;:::-;-1:-1:-1::0;2070:130:3::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;2070:130:3::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;;;;;2216:43;2231:4;2237:8;2247:11;2216:43;;;;;;;;:::i;:::-;;;;;;;;1871:395:::0;;;:::o;1660:205::-;1732:4;1777:1;1762:4;1756:18;:22;1748:55;;;;-1:-1:-1;;;1748:55:3;;8584:2:9;1748:55:3;;;8566:21:9;8623:2;8603:18;;;8596:30;-1:-1:-1;;;8642:18:9;;;8635:50;8702:18;;1748:55:3;8382:344:9;1748:55:3;1857:1;1827:8;1836:4;1827:14;;;;;;:::i;:::-;;;;;;;;;;;;;;1821:33;;;;;:::i;:::-;;;:37;1814:44;;1660:205;;;:::o;856:512::-;970:14;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;970:14:3;1005:30;;-1:-1:-1;;;1005:30:3;;:4;;:24;;:30;;1030:4;;1005:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1004:31;996:70;;;;-1:-1:-1;;;996:70:3;;8933:2:9;996:70:3;;;8915:21:9;8972:2;8952:18;;;8945:30;9011:28;8991:18;;;8984:56;9057:18;;996:70:3;8731:350:9;996:70:3;1077:22;1102:113;;;;;;;;1130:4;1102:113;;;;1158:8;1102:113;;;;1193:11;1102:113;;;1077:138;;1243:7;1226:8;1235:4;1226:14;;;;;;:::i;:::-;;;;;;;;;;;;;;:24;;:14;;:24;;:14;:24;:::i;:::-;-1:-1:-1;1226:24:3;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1226:24:3;;;;;;;;;;;;:::i;:::-;;;;;1266:46;1284:4;1290:8;1300:11;1266:46;;;;;;;;:::i;:::-;;;;;;;;1323:12;:14;;;:12;:14;;;:::i;:::-;;;;-1:-1:-1;1354:7:3;;856:512;-1:-1:-1;;;;;856:512:3:o;2543:215:0:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:0;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:0;;2700:1:::1;2672:31;::::0;::::1;4096:51:9::0;4069:18;;2672:31:0::1;3950:203:9::0;2623:91:0::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;735:10:1;1855:23:0;1851:101;;1901:40;;-1:-1:-1;;;1901:40:0;;735:10:1;1901:40:0;;;4096:51:9;4069:18;;1901:40:0;3950:203:9;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;196:127:9:-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:719;371:5;424:3;417:4;409:6;405:17;401:27;391:55;;442:1;439;432:12;391:55;478:6;465:20;504:18;541:2;537;534:10;531:36;;;547:18;;:::i;:::-;622:2;616:9;590:2;676:13;;-1:-1:-1;;672:22:9;;;696:2;668:31;664:40;652:53;;;720:18;;;740:22;;;717:46;714:72;;;766:18;;:::i;:::-;806:10;802:2;795:22;841:2;833:6;826:18;887:3;880:4;875:2;867:6;863:15;859:26;856:35;853:55;;;904:1;901;894:12;853:55;968:2;961:4;953:6;949:17;942:4;934:6;930:17;917:54;1015:1;1008:4;1003:2;995:6;991:15;987:26;980:37;1035:6;1026:15;;;;;;328:719;;;;:::o;1052:322::-;1121:6;1174:2;1162:9;1153:7;1149:23;1145:32;1142:52;;;1190:1;1187;1180:12;1142:52;1230:9;1217:23;1263:18;1255:6;1252:30;1249:50;;;1295:1;1292;1285:12;1249:50;1318;1360:7;1351:6;1340:9;1336:22;1318:50;:::i;:::-;1308:60;1052:322;-1:-1:-1;;;;1052:322:9:o;1379:250::-;1464:1;1474:113;1488:6;1485:1;1482:13;1474:113;;;1564:11;;;1558:18;1545:11;;;1538:39;1510:2;1503:10;1474:113;;;-1:-1:-1;;1621:1:9;1603:16;;1596:27;1379:250::o;1634:271::-;1676:3;1714:5;1708:12;1741:6;1736:3;1729:19;1757:76;1826:6;1819:4;1814:3;1810:14;1803:4;1796:5;1792:16;1757:76;:::i;:::-;1887:2;1866:15;-1:-1:-1;;1862:29:9;1853:39;;;;1894:4;1849:50;;1634:271;-1:-1:-1;;1634:271:9:o;1910:546::-;2155:2;2144:9;2137:21;2118:4;2181:45;2222:2;2211:9;2207:18;2199:6;2181:45;:::i;:::-;2274:9;2266:6;2262:22;2257:2;2246:9;2242:18;2235:50;2308:33;2334:6;2326;2308:33;:::i;:::-;2294:47;;2389:9;2381:6;2377:22;2372:2;2361:9;2357:18;2350:50;2417:33;2443:6;2435;2417:33;:::i;:::-;2409:41;1910:546;-1:-1:-1;;;;;;1910:546:9:o;2461:736::-;2638:2;2627:9;2620:21;2601:4;2676:6;2670:13;2719:4;2714:2;2703:9;2699:18;2692:32;2747:52;2794:3;2783:9;2779:19;2765:12;2747:52;:::i;:::-;2733:66;;2848:2;2840:6;2836:15;2830:22;2875:2;2871:7;2942:2;2930:9;2922:6;2918:22;2914:31;2909:2;2898:9;2894:18;2887:59;2969:41;3003:6;2987:14;2969:41;:::i;:::-;2955:55;;3059:2;3051:6;3047:15;3041:22;3019:44;;3129:2;3117:9;3109:6;3105:22;3101:31;3094:4;3083:9;3079:20;3072:61;;3150:41;3184:6;3168:14;3150:41;:::i;:::-;3142:49;2461:736;-1:-1:-1;;;;;2461:736:9:o;3202:743::-;3309:6;3317;3325;3378:2;3366:9;3357:7;3353:23;3349:32;3346:52;;;3394:1;3391;3384:12;3346:52;3434:9;3421:23;3463:18;3504:2;3496:6;3493:14;3490:34;;;3520:1;3517;3510:12;3490:34;3543:50;3585:7;3576:6;3565:9;3561:22;3543:50;:::i;:::-;3533:60;;3646:2;3635:9;3631:18;3618:32;3602:48;;3675:2;3665:8;3662:16;3659:36;;;3691:1;3688;3681:12;3659:36;3714:52;3758:7;3747:8;3736:9;3732:24;3714:52;:::i;:::-;3704:62;;3819:2;3808:9;3804:18;3791:32;3775:48;;3848:2;3838:8;3835:16;3832:36;;;3864:1;3861;3854:12;3832:36;;3887:52;3931:7;3920:8;3909:9;3905:24;3887:52;:::i;:::-;3877:62;;;3202:743;;;;;:::o;4350:286::-;4409:6;4462:2;4450:9;4441:7;4437:23;4433:32;4430:52;;;4478:1;4475;4468:12;4430:52;4504:23;;-1:-1:-1;;;;;4556:31:9;;4546:42;;4536:70;;4602:1;4599;4592:12;4536:70;4625:5;4350:286;-1:-1:-1;;;4350:286:9:o;4641:380::-;4720:1;4716:12;;;;4763;;;4784:61;;4838:4;4830:6;4826:17;4816:27;;4784:61;4891:2;4883:6;4880:14;4860:18;4857:38;4854:161;;4937:10;4932:3;4928:20;4925:1;4918:31;4972:4;4969:1;4962:15;5000:4;4997:1;4990:15;4854:161;;4641:380;;;:::o;5026:289::-;5157:3;5195:6;5189:13;5211:66;5270:6;5265:3;5258:4;5250:6;5246:17;5211:66;:::i;:::-;5293:16;;;;;5026:289;-1:-1:-1;;5026:289:9:o;5320:220::-;5469:2;5458:9;5451:21;5432:4;5489:45;5530:2;5519:9;5515:18;5507:6;5489:45;:::i;5545:277::-;5612:6;5665:2;5653:9;5644:7;5640:23;5636:32;5633:52;;;5681:1;5678;5671:12;5633:52;5713:9;5707:16;5766:5;5759:13;5752:21;5745:5;5742:32;5732:60;;5788:1;5785;5778:12;6304:545;6406:2;6401:3;6398:11;6395:448;;;6442:1;6467:5;6463:2;6456:17;6512:4;6508:2;6498:19;6582:2;6570:10;6566:19;6563:1;6559:27;6553:4;6549:38;6618:4;6606:10;6603:20;6600:47;;;-1:-1:-1;6641:4:9;6600:47;6696:2;6691:3;6687:12;6684:1;6680:20;6674:4;6670:31;6660:41;;6751:82;6769:2;6762:5;6759:13;6751:82;;;6814:17;;;6795:1;6784:13;6751:82;;;6755:3;;;6395:448;6304:545;;;:::o;7025:1352::-;7151:3;7145:10;7178:18;7170:6;7167:30;7164:56;;;7200:18;;:::i;:::-;7229:97;7319:6;7279:38;7311:4;7305:11;7279:38;:::i;:::-;7273:4;7229:97;:::i;:::-;7381:4;;7445:2;7434:14;;7462:1;7457:663;;;;8164:1;8181:6;8178:89;;;-1:-1:-1;8233:19:9;;;8227:26;8178:89;-1:-1:-1;;6982:1:9;6978:11;;;6974:24;6970:29;6960:40;7006:1;7002:11;;;6957:57;8280:81;;7427:944;;7457:663;6251:1;6244:14;;;6288:4;6275:18;;-1:-1:-1;;7493:20:9;;;7611:236;7625:7;7622:1;7619:14;7611:236;;;7714:19;;;7708:26;7693:42;;7806:27;;;;7774:1;7762:14;;;;7641:19;;7611:236;;;7615:3;7875:6;7866:7;7863:19;7860:201;;;7936:19;;;7930:26;-1:-1:-1;;8019:1:9;8015:14;;;8031:3;8011:24;8007:37;8003:42;7988:58;7973:74;;7860:201;-1:-1:-1;;;;;8107:1:9;8091:14;;;8087:22;8074:36;;-1:-1:-1;7025:1352:9:o;9086:232::-;9125:3;9146:17;;;9143:140;;9205:10;9200:3;9196:20;9193:1;9186:31;9240:4;9237:1;9230:15;9268:4;9265:1;9258:15;9143:140;-1:-1:-1;9310:1:9;9299:13;;9086:232::o" }, "methodIdentifiers": { "getService(string)": "794758be", @@ -32589,7 +40293,7 @@ "updateService(string,string,string)": "7f3ed719" } }, - "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ServiceRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ServiceUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"getService\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"internalType\":\"struct ServiceRegistry.Service\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"isServiceRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"registerService\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"internalType\":\"struct ServiceRegistry.Service\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"serviceCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"services\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"updateService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"leonprou\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"getService(string)\":{\"details\":\"Retrieves the details of a service.\",\"params\":{\"name\":\"The name of the service to retrieve.\"},\"returns\":{\"_0\":\"The details of the service.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"registerService(string,string,string)\":{\"details\":\"Registers a new service with the given name and price.\",\"params\":{\"name\":\"The name of the service.\"},\"returns\":{\"_0\":\"The ID of the registered service.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"ServiceRegistry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A smart contract that stores information about the services provided by agents.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ServiceRegistry.sol\":\"ServiceRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/ServiceRegistry.sol\":{\"keccak256\":\"0xa86b05303aaeee4c1437e7857fb03fe70473bed68f68c50dbabc261bfa6cdca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://069be2bed01b0f80d688a4b5da526051507245c340745a58f2bd78fbf3700373\",\"dweb:/ipfs/QmWU9yZSLZNJvZaXNRPem7AySUL94aTaCAR1TGTdcnPmmA\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ServiceRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ServiceUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"getService\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"internalType\":\"struct ServiceRegistry.Service\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"isServiceRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"registerService\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"internalType\":\"struct ServiceRegistry.Service\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"serviceCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"services\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"updateService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"leonprou\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"getService(string)\":{\"details\":\"Retrieves the details of a service.\",\"params\":{\"name\":\"The name of the service to retrieve.\"},\"returns\":{\"_0\":\"The details of the service.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"registerService(string,string,string)\":{\"details\":\"Registers a new service with the given name and price.\",\"params\":{\"name\":\"The name of the service.\"},\"returns\":{\"_0\":\"The ID of the registered service.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"ServiceRegistry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A smart contract that stores information about the services provided by agents.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ServiceRegistry.sol\":\"ServiceRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/ServiceRegistry.sol\":{\"keccak256\":\"0xb367bc3088ecb4af04c654422f9e91de35d5c452d25c8864f3e889453fcb0407\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c797fc6a3ee833460e6fe4c3904d7e49b68c4a676af701300218ee9783ab0eea\",\"dweb:/ipfs/QmaCpR7npnQ1RGt3qukufy7gxyi6kymHhHNgE32jMNJk3F\"]}},\"version\":1}" } }, "contracts/TaskRegistry.sol": { @@ -32677,10 +40381,15 @@ "internalType": "uint256", "name": "proposalId", "type": "uint256" + }, + { + "internalType": "bool", + "name": "isActive", + "type": "bool" } ], "indexed": false, - "internalType": "struct IProposalStruct.Proposal", + "internalType": "struct IProposalStruct.ServiceProposal", "name": "proposal", "type": "tuple" } @@ -32707,6 +40416,19 @@ "name": "TaskAssigned", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "taskId", + "type": "uint256" + } + ], + "name": "TaskCanceled", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -32763,6 +40485,25 @@ "name": "TaskCreated", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "taskId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "rating", + "type": "uint8" + } + ], + "name": "TaskRated", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -32795,6 +40536,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "taskId", + "type": "uint256" + } + ], + "name": "cancelTask", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -32864,100 +40618,110 @@ "internalType": "string", "name": "result", "type": "string" - } - ], - "internalType": "struct TaskRegistry.TaskData", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "taskId", - "type": "uint256" - } - ], - "name": "getAssignee", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "taskId", - "type": "uint256" - } - ], - "name": "getStatus", - "outputs": [ - { - "internalType": "enum TaskRegistry.TaskStatus", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "taskId", - "type": "uint256" - } - ], - "name": "getTask", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" }, { - "internalType": "string", - "name": "prompt", - "type": "string" - }, - { - "internalType": "address", - "name": "issuer", - "type": "address" - }, - { - "internalType": "enum TaskRegistry.TaskStatus", - "name": "status", + "internalType": "uint8", + "name": "rating", + "type": "uint8" + } + ], + "internalType": "struct TaskRegistry.TaskData", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "taskId", + "type": "uint256" + } + ], + "name": "getAssignee", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "taskId", + "type": "uint256" + } + ], + "name": "getStatus", + "outputs": [ + { + "internalType": "enum TaskRegistry.TaskStatus", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "taskId", + "type": "uint256" + } + ], + "name": "getTask", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "string", + "name": "prompt", + "type": "string" + }, + { + "internalType": "address", + "name": "issuer", + "type": "address" + }, + { + "internalType": "enum TaskRegistry.TaskStatus", + "name": "status", + "type": "uint8" + }, + { + "internalType": "address", + "name": "assignee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "string", + "name": "result", + "type": "string" + }, + { + "internalType": "uint8", + "name": "rating", "type": "uint8" - }, - { - "internalType": "address", - "name": "assignee", - "type": "address" - }, - { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - }, - { - "internalType": "string", - "name": "result", - "type": "string" } ], "internalType": "struct TaskRegistry.TaskData", @@ -33024,6 +40788,24 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "taskId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "rating", + "type": "uint8" + } + ], + "name": "rateTask", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], "name": "renounceOwnership", @@ -33075,6 +40857,11 @@ "internalType": "string", "name": "result", "type": "string" + }, + { + "internalType": "uint8", + "name": "rating", + "type": "uint8" } ], "stateMutability": "view", @@ -33103,20 +40890,20 @@ "parameterSlots": 1, "returnSlots": 0 }, - "@_744": { + "@_929": { "entryPoint": null, - "id": 744, + "id": 929, "parameterSlots": 1, "returnSlots": 0 }, "@_transferOwnership_146": { - "entryPoint": 132, + "entryPoint": 146, "id": 146, "parameterSlots": 1, "returnSlots": 0 }, - "abi_decode_tuple_t_contract$_AgentsRegistry_$506_fromMemory": { - "entryPoint": 212, + "abi_decode_tuple_t_contract$_AgentsRegistry_$670_fromMemory": { + "entryPoint": 226, "id": null, "parameterSlots": 2, "returnSlots": 1 @@ -33132,22 +40919,22 @@ { "ast": { "nodeType": "YulBlock", - "src": "0:536:7", + "src": "0:536:9", "statements": [ { "nodeType": "YulBlock", - "src": "6:3:7", + "src": "6:3:9", "statements": [] }, { "body": { "nodeType": "YulBlock", - "src": "117:209:7", + "src": "117:209:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "163:16:7", + "src": "163:16:9", "statements": [ { "expression": { @@ -33155,14 +40942,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "172:1:7", + "src": "172:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "175:1:7", + "src": "175:1:9", "type": "", "value": "0" } @@ -33170,13 +40957,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "165:6:7" + "src": "165:6:9" }, "nodeType": "YulFunctionCall", - "src": "165:12:7" + "src": "165:12:9" }, "nodeType": "YulExpressionStatement", - "src": "165:12:7" + "src": "165:12:9" } ] }, @@ -33187,26 +40974,26 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "138:7:7" + "src": "138:7:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "147:9:7" + "src": "147:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "134:3:7" + "src": "134:3:9" }, "nodeType": "YulFunctionCall", - "src": "134:23:7" + "src": "134:23:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "159:2:7", + "src": "159:2:9", "type": "", "value": "32" } @@ -33214,38 +41001,38 @@ "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "130:3:7" + "src": "130:3:9" }, "nodeType": "YulFunctionCall", - "src": "130:32:7" + "src": "130:32:9" }, "nodeType": "YulIf", - "src": "127:52:7" + "src": "127:52:9" }, { "nodeType": "YulVariableDeclaration", - "src": "188:29:7", + "src": "188:29:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "207:9:7" + "src": "207:9:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "201:5:7" + "src": "201:5:9" }, "nodeType": "YulFunctionCall", - "src": "201:16:7" + "src": "201:16:9" }, "variables": [ { "name": "value", "nodeType": "YulTypedName", - "src": "192:5:7", + "src": "192:5:9", "type": "" } ] @@ -33253,7 +41040,7 @@ { "body": { "nodeType": "YulBlock", - "src": "280:16:7", + "src": "280:16:9", "statements": [ { "expression": { @@ -33261,14 +41048,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "289:1:7", + "src": "289:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "292:1:7", + "src": "292:1:9", "type": "", "value": "0" } @@ -33276,13 +41063,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "282:6:7" + "src": "282:6:9" }, "nodeType": "YulFunctionCall", - "src": "282:12:7" + "src": "282:12:9" }, "nodeType": "YulExpressionStatement", - "src": "282:12:7" + "src": "282:12:9" } ] }, @@ -33293,14 +41080,14 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "239:5:7" + "src": "239:5:9" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "250:5:7" + "src": "250:5:9" }, { "arguments": [ @@ -33309,14 +41096,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "265:3:7", + "src": "265:3:9", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "270:1:7", + "src": "270:1:9", "type": "", "value": "1" } @@ -33324,15 +41111,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "261:3:7" + "src": "261:3:9" }, "nodeType": "YulFunctionCall", - "src": "261:11:7" + "src": "261:11:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "274:1:7", + "src": "274:1:9", "type": "", "value": "1" } @@ -33340,72 +41127,72 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "257:3:7" + "src": "257:3:9" }, "nodeType": "YulFunctionCall", - "src": "257:19:7" + "src": "257:19:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "246:3:7" + "src": "246:3:9" }, "nodeType": "YulFunctionCall", - "src": "246:31:7" + "src": "246:31:9" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "236:2:7" + "src": "236:2:9" }, "nodeType": "YulFunctionCall", - "src": "236:42:7" + "src": "236:42:9" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "229:6:7" + "src": "229:6:9" }, "nodeType": "YulFunctionCall", - "src": "229:50:7" + "src": "229:50:9" }, "nodeType": "YulIf", - "src": "226:70:7" + "src": "226:70:9" }, { "nodeType": "YulAssignment", - "src": "305:15:7", + "src": "305:15:9", "value": { "name": "value", "nodeType": "YulIdentifier", - "src": "315:5:7" + "src": "315:5:9" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "305:6:7" + "src": "305:6:9" } ] } ] }, - "name": "abi_decode_tuple_t_contract$_AgentsRegistry_$506_fromMemory", + "name": "abi_decode_tuple_t_contract$_AgentsRegistry_$670_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "83:9:7", + "src": "83:9:9", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "94:7:7", + "src": "94:7:9", "type": "" } ], @@ -33413,31 +41200,31 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "106:6:7", + "src": "106:6:9", "type": "" } ], - "src": "14:312:7" + "src": "14:312:9" }, { "body": { "nodeType": "YulBlock", - "src": "432:102:7", + "src": "432:102:9", "statements": [ { "nodeType": "YulAssignment", - "src": "442:26:7", + "src": "442:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "454:9:7" + "src": "454:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "465:2:7", + "src": "465:2:9", "type": "", "value": "32" } @@ -33445,16 +41232,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "450:3:7" + "src": "450:3:9" }, "nodeType": "YulFunctionCall", - "src": "450:18:7" + "src": "450:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "442:4:7" + "src": "442:4:9" } ] }, @@ -33464,14 +41251,14 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "484:9:7" + "src": "484:9:9" }, { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "499:6:7" + "src": "499:6:9" }, { "arguments": [ @@ -33480,14 +41267,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "515:3:7", + "src": "515:3:9", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "520:1:7", + "src": "520:1:9", "type": "", "value": "1" } @@ -33495,15 +41282,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "511:3:7" + "src": "511:3:9" }, "nodeType": "YulFunctionCall", - "src": "511:11:7" + "src": "511:11:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "524:1:7", + "src": "524:1:9", "type": "", "value": "1" } @@ -33511,31 +41298,31 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "507:3:7" + "src": "507:3:9" }, "nodeType": "YulFunctionCall", - "src": "507:19:7" + "src": "507:19:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "495:3:7" + "src": "495:3:9" }, "nodeType": "YulFunctionCall", - "src": "495:32:7" + "src": "495:32:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "477:6:7" + "src": "477:6:9" }, "nodeType": "YulFunctionCall", - "src": "477:51:7" + "src": "477:51:9" }, "nodeType": "YulExpressionStatement", - "src": "477:51:7" + "src": "477:51:9" } ] }, @@ -33545,13 +41332,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "401:9:7", + "src": "401:9:9", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "412:6:7", + "src": "412:6:9", "type": "" } ], @@ -33559,29 +41346,29 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "423:4:7", + "src": "423:4:9", "type": "" } ], - "src": "331:203:7" + "src": "331:203:9" } ] }, - "contents": "{\n { }\n function abi_decode_tuple_t_contract$_AgentsRegistry_$506_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n}", - "id": 7, + "contents": "{\n { }\n function abi_decode_tuple_t_contract$_AgentsRegistry_$670_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n}", + "id": 9, "language": "Yul", "name": "#utility.yul" } ], "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506040516115d53803806115d583398101604081905261002f916100d4565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e81610084565b50600480546001600160a01b0319166001600160a01b0392909216919091179055610104565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100e657600080fd5b81516001600160a01b03811681146100fd57600080fd5b9392505050565b6114c2806101136000396000f3fe6080604052600436106100a75760003560e01c8063639241ab11610064578063639241ab146101db578063715018a61461020857806374aaa7601461021f5780638d9776721461023f5780638da5cb5b14610272578063f2fde38b1461029057600080fd5b806304fe2b34146100ac57806307b31818146100d55780630d1cfcae146101265780631d65e77e146101465780632a2b3a9d146101665780635c622a0e14610194575b600080fd5b6100bf6100ba366004610f27565b6102b0565b6040516100cc9190610ff4565b60405180910390f35b3480156100e157600080fd5b5061010e6100f0366004611083565b6000908152600160205260409020600301546001600160a01b031690565b6040516001600160a01b0390911681526020016100cc565b34801561013257600080fd5b5060045461010e906001600160a01b031681565b34801561015257600080fd5b506100bf610161366004611083565b610672565b34801561017257600080fd5b506101866101813660046110b1565b61082f565b6040519081526020016100cc565b3480156101a057600080fd5b506101ce6101af366004611083565b600090815260016020526040902060020154600160a01b900460ff1690565b6040516100cc91906110dd565b3480156101e757600080fd5b506101fb6101f63660046110eb565b610860565b6040516100cc919061110f565b34801561021457600080fd5b5061021d6108cc565b005b34801561022b57600080fd5b5061021d61023a366004611153565b6108e0565b34801561024b57600080fd5b5061025f61025a366004611083565b610ae9565b6040516100cc979695949392919061119a565b34801561027e57600080fd5b506000546001600160a01b031661010e565b34801561029c57600080fd5b5061021d6102ab3660046110eb565b610c4a565b6102b8610de4565b600480546040516318feeb1560e31b81529182018490526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610304573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261032c91908101906111fe565b80519091506001600160a01b03166103805760405162461bcd60e51b8152602060048201526012602482015271141c9bdc1bdcd85b081b9bdd08199bdd5b9960721b60448201526064015b60405180910390fd5b348160400151146103c35760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420707269636560981b6044820152606401610377565b600354600081815260016020819052604090912091825581016103e68682611357565b5060028181018054336001600160a01b031991821681178355600485018890558551600380870180549094166001600160a01b0390921691909117909255600090815260209384526040812091548254600181810185559383529490912090930192909255805460ff60a01b1916600160a01b830217905550815160035460608401516040516001600160a01b039093169233927f5c005bbbb9da508c37935b1a9f270836e0be1fd11d4d47119f925a3ff33820e9926104a7928b90611417565b60405180910390a3600380549060006104bf83611436565b9190505550806040518060e0016040529081600082015481526020016001820180546104ea906112cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610516906112cf565b80156105635780601f1061053857610100808354040283529160200191610563565b820191906000526020600020905b81548152906001019060200180831161054657829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff1660038111156105a0576105a0610fbc565b60038111156105b1576105b1610fbc565b815260038201546001600160a01b03166020820152600482015460408201526005820180546060909201916105e5906112cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610611906112cf565b801561065e5780601f106106335761010080835404028352916020019161065e565b820191906000526020600020905b81548152906001019060200180831161064157829003601f168201915b505050505081525050925050505b92915050565b61067a610de4565b600082815260016020818152604092839020835160e08101909452805484529182018054918401916106ab906112cf565b80601f01602080910402602001604051908101604052809291908181526020018280546106d7906112cf565b80156107245780601f106106f957610100808354040283529160200191610724565b820191906000526020600020905b81548152906001019060200180831161070757829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff16600381111561076157610761610fbc565b600381111561077257610772610fbc565b815260038201546001600160a01b03166020820152600482015460408201526005820180546060909201916107a6906112cf565b80601f01602080910402602001604051908101604052809291908181526020018280546107d2906112cf565b801561081f5780601f106107f45761010080835404028352916020019161081f565b820191906000526020600020905b81548152906001019060200180831161080257829003601f168201915b5050505050815250509050919050565b6002602052816000526040600020818154811061084b57600080fd5b90600052602060002001600091509150505481565b6001600160a01b0381166000908152600260209081526040918290208054835181840281018401909452808452606093928301828280156108c057602002820191906000526020600020905b8154815260200190600101908083116108ac575b50505050509050919050565b6108d4610c88565b6108de6000610cb5565b565b600082815260016020526040902060038101546001600160a01b031633148061091357506000546001600160a01b031633145b6109505760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610377565b60016002820154600160a01b900460ff16600381111561097257610972610fbc565b146109b55760405162461bcd60e51b8152602060048201526013602482015272496e76616c6964207461736b2073746174757360681b6044820152606401610377565b60028101805460ff60a01b1916600160a11b179055600581016109d88382611357565b5060048054828201546040516318feeb1560e31b8152928301526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a4f91908101906111fe565b9050610a6381600001518260400151610d05565b600282015460405185917fd76ef80cfb1ce0c70d0cbc0ab1b9f2f298a78f9fca5c841be963ae9a5d721bb491610aa391600160a01b900460ff16906110dd565b60405180910390a2837f7e6ffc29fe63759579d96a0457a8f2e08339aca345bd469f59dc2e61f82a5aeb84604051610adb919061145d565b60405180910390a250505050565b600160208190526000918252604090912080549181018054610b0a906112cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610b36906112cf565b8015610b835780601f10610b5857610100808354040283529160200191610b83565b820191906000526020600020905b815481529060010190602001808311610b6657829003601f168201915b5050505060028301546003840154600485015460058601805495966001600160a01b0380861697600160a01b90960460ff16965090931693919291610bc7906112cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf3906112cf565b8015610c405780601f10610c1557610100808354040283529160200191610c40565b820191906000526020600020905b815481529060010190602001808311610c2357829003601f168201915b5050505050905087565b610c52610c88565b6001600160a01b038116610c7c57604051631e4fbdf760e01b815260006004820152602401610377565b610c8581610cb5565b50565b6000546001600160a01b031633146108de5760405163118cdaa760e01b8152336004820152602401610377565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516000808252602082019092526001600160a01b038416908390604051610d2f9190611470565b60006040518083038185875af1925050503d8060008114610d6c576040519150601f19603f3d011682016040523d82523d6000602084013e610d71565b606091505b5050905080610ddf5760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b6064820152608401610377565b505050565b6040518060e00160405280600081526020016060815260200160006001600160a01b0316815260200160006003811115610e2057610e20610fbc565b8152600060208201819052604082015260609081015290565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715610e7257610e72610e39565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610ea157610ea1610e39565b604052919050565b600067ffffffffffffffff821115610ec357610ec3610e39565b50601f01601f191660200190565b600082601f830112610ee257600080fd5b8135610ef5610ef082610ea9565b610e78565b818152846020838601011115610f0a57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215610f3a57600080fd5b823567ffffffffffffffff811115610f5157600080fd5b610f5d85828601610ed1565b95602094909401359450505050565b60005b83811015610f87578181015183820152602001610f6f565b50506000910152565b60008151808452610fa8816020860160208601610f6c565b601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b60048110610ff057634e487b7160e01b600052602160045260246000fd5b9052565b60208152815160208201526000602083015160e0604084015261101b610100840182610f90565b60408501516001600160a01b039081166060868101919091528601519192506110476080860183610fd2565b8060808701511660a0860152505060a084015160c084015260c0840151601f198483030160e085015261107a8282610f90565b95945050505050565b60006020828403121561109557600080fd5b5035919050565b6001600160a01b0381168114610c8557600080fd5b600080604083850312156110c457600080fd5b82356110cf8161109c565b946020939093013593505050565b6020810161066c8284610fd2565b6000602082840312156110fd57600080fd5b81356111088161109c565b9392505050565b6020808252825182820181905260009190848201906040850190845b818110156111475783518352928401929184019160010161112b565b50909695505050505050565b6000806040838503121561116657600080fd5b82359150602083013567ffffffffffffffff81111561118457600080fd5b61119085828601610ed1565b9150509250929050565b87815260e0602082015260006111b360e0830189610f90565b6001600160a01b0388811660408501526111d06060850189610fd2565b8616608084015260a0830185905282810360c08401526111f08185610f90565b9a9950505050505050505050565b6000602080838503121561121157600080fd5b825167ffffffffffffffff8082111561122957600080fd5b908401906080828703121561123d57600080fd5b611245610e4f565b82516112508161109c565b8152828401518281111561126357600080fd5b83019150601f8201871361127657600080fd5b8151611284610ef082610ea9565b818152888683860101111561129857600080fd5b6112a782878301888701610f6c565b8086840152505060408301516040820152606083015160608201528094505050505092915050565b600181811c908216806112e357607f821691505b60208210810361130357634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610ddf57600081815260208120601f850160051c810160208610156113305750805b601f850160051c820191505b8181101561134f5782815560010161133c565b505050505050565b815167ffffffffffffffff81111561137157611371610e39565b6113858161137f84546112cf565b84611309565b602080601f8311600181146113ba57600084156113a25750858301515b600019600386901b1c1916600185901b17855561134f565b600085815260208120601f198616915b828110156113e9578886015182559484019460019091019084016113ca565b50858210156114075787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b83815282602082015260606040820152600061107a6060830184610f90565b60006001820161145657634e487b7160e01b600052601160045260246000fd5b5060010190565b6020815260006111086020830184610f90565b60008251611482818460208701610f6c565b919091019291505056fea2646970667358221220c35ebf53f5dd4739af86dfa25f3f4dcfe7cff47dc404b994ee73376a44f040cd64736f6c63430008140033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x15D5 CODESIZE SUB DUP1 PUSH2 0x15D5 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0xD4 JUMP JUMPDEST CALLER DUP1 PUSH2 0x55 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5E DUP2 PUSH2 0x84 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x104 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x14C2 DUP1 PUSH2 0x113 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA7 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x639241AB GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x639241AB EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x208 JUMPI DUP1 PUSH4 0x74AAA760 EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x8D977672 EQ PUSH2 0x23F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x290 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4FE2B34 EQ PUSH2 0xAC JUMPI DUP1 PUSH4 0x7B31818 EQ PUSH2 0xD5 JUMPI DUP1 PUSH4 0xD1CFCAE EQ PUSH2 0x126 JUMPI DUP1 PUSH4 0x1D65E77E EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x2A2B3A9D EQ PUSH2 0x166 JUMPI DUP1 PUSH4 0x5C622A0E EQ PUSH2 0x194 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBF PUSH2 0xBA CALLDATASIZE PUSH1 0x4 PUSH2 0xF27 JUMP JUMPDEST PUSH2 0x2B0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP2 SWAP1 PUSH2 0xFF4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10E PUSH2 0xF0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1083 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x132 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x10E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBF PUSH2 0x161 CALLDATASIZE PUSH1 0x4 PUSH2 0x1083 JUMP JUMPDEST PUSH2 0x672 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x172 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x186 PUSH2 0x181 CALLDATASIZE PUSH1 0x4 PUSH2 0x10B1 JUMP JUMPDEST PUSH2 0x82F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CE PUSH2 0x1AF CALLDATASIZE PUSH1 0x4 PUSH2 0x1083 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP2 SWAP1 PUSH2 0x10DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FB PUSH2 0x1F6 CALLDATASIZE PUSH1 0x4 PUSH2 0x10EB JUMP JUMPDEST PUSH2 0x860 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP2 SWAP1 PUSH2 0x110F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x214 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21D PUSH2 0x8CC JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21D PUSH2 0x23A CALLDATASIZE PUSH1 0x4 PUSH2 0x1153 JUMP JUMPDEST PUSH2 0x8E0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25F PUSH2 0x25A CALLDATASIZE PUSH1 0x4 PUSH2 0x1083 JUMP JUMPDEST PUSH2 0xAE9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x119A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x10E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21D PUSH2 0x2AB CALLDATASIZE PUSH1 0x4 PUSH2 0x10EB JUMP JUMPDEST PUSH2 0xC4A JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0xDE4 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18FEEB15 PUSH1 0xE3 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC7F758A8 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x304 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x32C SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x11FE JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x380 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x141C9BDC1BDCD85B081B9BDD08199BDD5B99 PUSH1 0x72 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLVALUE DUP2 PUSH1 0x40 ADD MLOAD EQ PUSH2 0x3C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x496E76616C6964207072696365 PUSH1 0x98 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x377 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP2 DUP3 SSTORE DUP2 ADD PUSH2 0x3E6 DUP7 DUP3 PUSH2 0x1357 JUMP JUMPDEST POP PUSH1 0x2 DUP2 DUP2 ADD DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND DUP2 OR DUP4 SSTORE PUSH1 0x4 DUP6 ADD DUP9 SWAP1 SSTORE DUP6 MLOAD PUSH1 0x3 DUP1 DUP8 ADD DUP1 SLOAD SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SLOAD DUP3 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP6 SSTORE SWAP4 DUP4 MSTORE SWAP5 SWAP1 SWAP2 KECCAK256 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP3 SSTORE DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL DUP4 MUL OR SWAP1 SSTORE POP DUP2 MLOAD PUSH1 0x3 SLOAD PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 CALLER SWAP3 PUSH32 0x5C005BBBB9DA508C37935B1A9F270836E0BE1FD11D4D47119F925A3FF33820E9 SWAP3 PUSH2 0x4A7 SWAP3 DUP12 SWAP1 PUSH2 0x1417 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x3 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x4BF DUP4 PUSH2 0x1436 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH2 0x4EA SWAP1 PUSH2 0x12CF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x516 SWAP1 PUSH2 0x12CF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x563 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x538 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x563 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x546 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x5A0 JUMPI PUSH2 0x5A0 PUSH2 0xFBC JUMP JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x5B1 JUMPI PUSH2 0x5B1 PUSH2 0xFBC JUMP JUMPDEST DUP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD DUP1 SLOAD PUSH1 0x60 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x5E5 SWAP1 PUSH2 0x12CF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x611 SWAP1 PUSH2 0x12CF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x65E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x633 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x65E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x641 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP3 POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x67A PUSH2 0xDE4 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0xE0 DUP2 ADD SWAP1 SWAP5 MSTORE DUP1 SLOAD DUP5 MSTORE SWAP2 DUP3 ADD DUP1 SLOAD SWAP2 DUP5 ADD SWAP2 PUSH2 0x6AB SWAP1 PUSH2 0x12CF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x6D7 SWAP1 PUSH2 0x12CF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x724 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6F9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x724 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x707 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x761 JUMPI PUSH2 0x761 PUSH2 0xFBC JUMP JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x772 JUMPI PUSH2 0x772 PUSH2 0xFBC JUMP JUMPDEST DUP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD DUP1 SLOAD PUSH1 0x60 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x7A6 SWAP1 PUSH2 0x12CF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x7D2 SWAP1 PUSH2 0x12CF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x81F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x7F4 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x81F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x802 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x84B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD DUP2 DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x8C0 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x8AC JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8D4 PUSH2 0xC88 JUMP JUMPDEST PUSH2 0x8DE PUSH1 0x0 PUSH2 0xCB5 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 PUSH2 0x913 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST PUSH2 0x950 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x139BDD08185D5D1A1BDC9A5E9959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x377 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x972 JUMPI PUSH2 0x972 PUSH2 0xFBC JUMP JUMPDEST EQ PUSH2 0x9B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x496E76616C6964207461736B20737461747573 PUSH1 0x68 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x377 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA1 SHL OR SWAP1 SSTORE PUSH1 0x5 DUP2 ADD PUSH2 0x9D8 DUP4 DUP3 PUSH2 0x1357 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD DUP3 DUP3 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x18FEEB15 PUSH1 0xE3 SHL DUP2 MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC7F758A8 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA27 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xA4F SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x11FE JUMP JUMPDEST SWAP1 POP PUSH2 0xA63 DUP2 PUSH1 0x0 ADD MLOAD DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0xD05 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x40 MLOAD DUP6 SWAP2 PUSH32 0xD76EF80CFB1CE0C70D0CBC0AB1B9F2F298A78F9FCA5C841BE963AE9A5D721BB4 SWAP2 PUSH2 0xAA3 SWAP2 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 PUSH2 0x10DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP4 PUSH32 0x7E6FFC29FE63759579D96A0457A8F2E08339ACA345BD469F59DC2E61F82A5AEB DUP5 PUSH1 0x40 MLOAD PUSH2 0xADB SWAP2 SWAP1 PUSH2 0x145D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD SWAP2 DUP2 ADD DUP1 SLOAD PUSH2 0xB0A SWAP1 PUSH2 0x12CF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xB36 SWAP1 PUSH2 0x12CF JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB83 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB58 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB83 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB66 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 DUP6 ADD SLOAD PUSH1 0x5 DUP7 ADD DUP1 SLOAD SWAP6 SWAP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND SWAP8 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP7 DIV PUSH1 0xFF AND SWAP7 POP SWAP1 SWAP4 AND SWAP4 SWAP2 SWAP3 SWAP2 PUSH2 0xBC7 SWAP1 PUSH2 0x12CF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xBF3 SWAP1 PUSH2 0x12CF JUMP JUMPDEST DUP1 ISZERO PUSH2 0xC40 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xC15 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC40 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xC23 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP8 JUMP JUMPDEST PUSH2 0xC52 PUSH2 0xC88 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xC7C JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x377 JUMP JUMPDEST PUSH2 0xC85 DUP2 PUSH2 0xCB5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x8DE JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x377 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP4 SWAP1 PUSH1 0x40 MLOAD PUSH2 0xD2F SWAP2 SWAP1 PUSH2 0x1470 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xD6C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xD71 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xDDF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x34 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A3A736166655472616E736665724554483A PUSH1 0x44 DUP3 ADD MSTORE PUSH20 0x8115512081D1C985B9CD9995C8819985A5B1959 PUSH1 0x62 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x377 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xE20 JUMPI PUSH2 0xE20 PUSH2 0xFBC JUMP JUMPDEST DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 SWAP1 DUP2 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xE72 JUMPI PUSH2 0xE72 PUSH2 0xE39 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xEA1 JUMPI PUSH2 0xEA1 PUSH2 0xE39 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xEC3 JUMPI PUSH2 0xEC3 PUSH2 0xE39 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xEE2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xEF5 PUSH2 0xEF0 DUP3 PUSH2 0xEA9 JUMP JUMPDEST PUSH2 0xE78 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0xF0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF5D DUP6 DUP3 DUP7 ADD PUSH2 0xED1 JUMP JUMPDEST SWAP6 PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF87 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xF6F JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xFA8 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xF6C JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0xFF0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0xE0 PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x101B PUSH2 0x100 DUP5 ADD DUP3 PUSH2 0xF90 JUMP JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x60 DUP7 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP7 ADD MLOAD SWAP2 SWAP3 POP PUSH2 0x1047 PUSH1 0x80 DUP7 ADD DUP4 PUSH2 0xFD2 JUMP JUMPDEST DUP1 PUSH1 0x80 DUP8 ADD MLOAD AND PUSH1 0xA0 DUP7 ADD MSTORE POP POP PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0xC0 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0xE0 DUP6 ADD MSTORE PUSH2 0x107A DUP3 DUP3 PUSH2 0xF90 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1095 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xC85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x10C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x10CF DUP2 PUSH2 0x109C JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x66C DUP3 DUP5 PUSH2 0xFD2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1108 DUP2 PUSH2 0x109C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1147 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x112B JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1184 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1190 DUP6 DUP3 DUP7 ADD PUSH2 0xED1 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP8 DUP2 MSTORE PUSH1 0xE0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x11B3 PUSH1 0xE0 DUP4 ADD DUP10 PUSH2 0xF90 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x11D0 PUSH1 0x60 DUP6 ADD DUP10 PUSH2 0xFD2 JUMP JUMPDEST DUP7 AND PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0xA0 DUP4 ADD DUP6 SWAP1 MSTORE DUP3 DUP2 SUB PUSH1 0xC0 DUP5 ADD MSTORE PUSH2 0x11F0 DUP2 DUP6 PUSH2 0xF90 JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1211 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP5 ADD SWAP1 PUSH1 0x80 DUP3 DUP8 SUB SLT ISZERO PUSH2 0x123D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1245 PUSH2 0xE4F JUMP JUMPDEST DUP3 MLOAD PUSH2 0x1250 DUP2 PUSH2 0x109C JUMP JUMPDEST DUP2 MSTORE DUP3 DUP5 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x1263 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD SWAP2 POP PUSH1 0x1F DUP3 ADD DUP8 SGT PUSH2 0x1276 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1284 PUSH2 0xEF0 DUP3 PUSH2 0xEA9 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP9 DUP7 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x1298 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12A7 DUP3 DUP8 DUP4 ADD DUP9 DUP8 ADD PUSH2 0xF6C JUMP JUMPDEST DUP1 DUP7 DUP5 ADD MSTORE POP POP PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x12E3 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1303 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xDDF JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x1330 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x134F JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x133C JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1371 JUMPI PUSH2 0x1371 PUSH2 0xE39 JUMP JUMPDEST PUSH2 0x1385 DUP2 PUSH2 0x137F DUP5 SLOAD PUSH2 0x12CF JUMP JUMPDEST DUP5 PUSH2 0x1309 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x13BA JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x13A2 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x134F JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x13E9 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x13CA JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x1407 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP4 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x107A PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xF90 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x1456 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1108 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xF90 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1482 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xF6C JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 0x5E 0xBF MSTORE8 CREATE2 0xDD SELFBALANCE CODECOPY 0xAF DUP7 0xDF LOG2 PUSH0 EXTCODEHASH 0x4D 0xCF 0xE7 0xCF DELEGATECALL PUSH30 0xC404B994EE73376A44F040CD64736F6C6343000814003300000000000000 ", - "sourceMap": "380:3309:4:-:0;;;877:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;928:10;;1269:95:0;;1322:31;;-1:-1:-1;;;1322:31:0;;1350:1;1322:31;;;477:51:7;450:18;;1322:31:0;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;950:13:4::1;:30:::0;;-1:-1:-1;;;;;;950:30:4::1;-1:-1:-1::0;;;;;950:30:4;;;::::1;::::0;;;::::1;::::0;;380:3309;;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:312:7:-;106:6;159:2;147:9;138:7;134:23;130:32;127:52;;;175:1;172;165:12;127:52;201:16;;-1:-1:-1;;;;;246:31:7;;236:42;;226:70;;292:1;289;282:12;226:70;315:5;14:312;-1:-1:-1;;;14:312:7:o;331:203::-;380:3309:4;;;;;;" + "object": "60806040523480156200001157600080fd5b5060405162001c3638038062001c368339810160408190526200003491620000e2565b33806200005b57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000668162000092565b50600480546001600160a01b0319166001600160a01b0392909216919091179055600160035562000114565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215620000f557600080fd5b81516001600160a01b03811681146200010d57600080fd5b9392505050565b611b1280620001246000396000f3fe6080604052600436106100dd5760003560e01c8063639241ab1161007f5780637eec20a8116100595780637eec20a8146102955780638d977672146102b55780638da5cb5b146102e9578063f2fde38b1461030757600080fd5b8063639241ab14610233578063715018a61461026057806374aaa7601461027557600080fd5b80631d65e77e116100bb5780631d65e77e1461017c5780632a2b3a9d1461019c5780635c622a0e146101ca5780636298eee01461021157600080fd5b806304fe2b34146100e257806307b318181461010b5780630d1cfcae1461015c575b600080fd5b6100f56100f03660046114d2565b610327565b604051610102919061159f565b60405180910390f35b34801561011757600080fd5b50610144610126366004611649565b6000908152600160205260409020600301546001600160a01b031690565b6040516001600160a01b039091168152602001610102565b34801561016857600080fd5b50600454610144906001600160a01b031681565b34801561018857600080fd5b506100f5610197366004611649565b610704565b3480156101a857600080fd5b506101bc6101b7366004611677565b6108d0565b604051908152602001610102565b3480156101d657600080fd5b506102046101e5366004611649565b600090815260016020526040902060020154600160a01b900460ff1690565b60405161010291906116a3565b34801561021d57600080fd5b5061023161022c3660046116b1565b610901565b005b34801561023f57600080fd5b5061025361024e3660046116e7565b610bd2565b604051610102919061170b565b34801561026c57600080fd5b50610231610c3e565b34801561028157600080fd5b5061023161029036600461174f565b610c52565b3480156102a157600080fd5b506102316102b0366004611649565b610e46565b3480156102c157600080fd5b506102d56102d0366004611649565b611082565b604051610102989796959493929190611796565b3480156102f557600080fd5b506000546001600160a01b0316610144565b34801561031357600080fd5b506102316103223660046116e7565b6111ec565b61032f611386565b600480546040516318feeb1560e31b81529182018490526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa15801561037b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103a3919081019061181e565b80519091506001600160a01b03166104025760405162461bcd60e51b815260206004820152601960248201527f5365727669636550726f706f73616c206e6f7420666f756e640000000000000060448201526064015b60405180910390fd5b348160400151146104455760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420707269636560981b60448201526064016103f9565b600354600081815260016020819052604090912091825581016104688682611985565b5060028181018054336001600160a01b031991821681178355600485018890558551600380870180549094166001600160a01b0390921691909117909255600090815260209384526040812091548254600181810185559383529490912090930192909255805460ff60a01b1916600160a01b830217905550815160035460608401516040516001600160a01b039093169233927f5c005bbbb9da508c37935b1a9f270836e0be1fd11d4d47119f925a3ff33820e992610529928b90611a45565b60405180910390a36003805490600061054183611a6d565b919050555080604051806101000160405290816000820154815260200160018201805461056d906118fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610599906118fd565b80156105e65780601f106105bb576101008083540402835291602001916105e6565b820191906000526020600020905b8154815290600101906020018083116105c957829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff16600381111561062357610623611567565b600381111561063457610634611567565b815260038201546001600160a01b0316602082015260048201546040820152600582018054606090920191610668906118fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610694906118fd565b80156106e15780601f106106b6576101008083540402835291602001916106e1565b820191906000526020600020905b8154815290600101906020018083116106c457829003601f168201915b50505091835250506006919091015460ff16602090910152925050505b92915050565b61070c611386565b600082815260016020818152604092839020835161010081019094528054845291820180549184019161073e906118fd565b80601f016020809104026020016040519081016040528092919081815260200182805461076a906118fd565b80156107b75780601f1061078c576101008083540402835291602001916107b7565b820191906000526020600020905b81548152906001019060200180831161079a57829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff1660038111156107f4576107f4611567565b600381111561080557610805611567565b815260038201546001600160a01b0316602082015260048201546040820152600582018054606090920191610839906118fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610865906118fd565b80156108b25780601f10610887576101008083540402835291602001916108b2565b820191906000526020600020905b81548152906001019060200180831161089557829003601f168201915b50505091835250506006919091015460ff1660209091015292915050565b600260205281600052604060002081815481106108ec57600080fd5b90600052602060002001600091509150505481565b60008281526001602052604090206002015482906001600160a01b0316331461096c5760405162461bcd60e51b815260206004820152601a60248201527f4e6f742074686520697373756572206f6620746865207461736b00000000000060448201526064016103f9565b6000838152600160205260409020600280820154600160a01b900460ff16600381111561099b5761099b611567565b146109e05760405162461bcd60e51b815260206004820152601560248201527415185cdac81a5cc81b9bdd0818dbdb5c1b195d1959605a1b60448201526064016103f9565b600681015460ff1615610a355760405162461bcd60e51b815260206004820152601760248201527f5461736b20676f7420726174696e6720616c726561647900000000000000000060448201526064016103f9565b60648360ff161115610a895760405162461bcd60e51b815260206004820181905260248201527f526174696e67206d757374206265206265747765656e203020616e642031303060448201526064016103f9565b60068101805460ff191660ff851617905560048054818301546040516318feeb1560e31b8152928301526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610ae8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b10919081019061181e565b6004805482516040516370370a8160e01b81526001600160a01b039182169381019390935260ff8816602484015292935091909116906370370a81906044016020604051808303816000875af1158015610b6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b929190611a94565b5060405160ff8516815285907f0f9189bfc5977d44b1a00920e53a6a0e00229f6c53e76b73fc7e0581ae99abdc9060200160405180910390a25050505050565b6001600160a01b038116600090815260026020908152604091829020805483518184028101840190945280845260609392830182828015610c3257602002820191906000526020600020905b815481526020019060010190808311610c1e575b50505050509050919050565b610c4661122a565b610c506000611257565b565b600082815260016020526040902060038101546001600160a01b03163314610cad5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b60448201526064016103f9565b60016002820154600160a01b900460ff166003811115610ccf57610ccf611567565b14610d125760405162461bcd60e51b8152602060048201526013602482015272496e76616c6964207461736b2073746174757360681b60448201526064016103f9565b60028101805460ff60a01b1916600160a11b17905560058101610d358382611985565b5060048054828201546040516318feeb1560e31b8152928301526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610d84573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610dac919081019061181e565b9050610dc0816000015182604001516112a7565b600282015460405185917fd76ef80cfb1ce0c70d0cbc0ab1b9f2f298a78f9fca5c841be963ae9a5d721bb491610e0091600160a01b900460ff16906116a3565b60405180910390a2837f7e6ffc29fe63759579d96a0457a8f2e08339aca345bd469f59dc2e61f82a5aeb84604051610e389190611aad565b60405180910390a250505050565b60008181526001602052604090206002015481906001600160a01b03163314610eb15760405162461bcd60e51b815260206004820152601a60248201527f4e6f742074686520697373756572206f6620746865207461736b00000000000060448201526064016103f9565b6000828152600160205260409020600280820154600160a01b900460ff166003811115610ee057610ee0611567565b14158015610f0e575060036002820154600160a01b900460ff166003811115610f0b57610f0b611567565b14155b610f5a5760405162461bcd60e51b815260206004820152601760248201527f5461736b2063616e6e6f742062652063616e63656c656400000000000000000060448201526064016103f9565b600281018054600360a01b60ff60a01b1990911617905560048054818301546040516318feeb1560e31b8152928301526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610fbf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fe7919081019061181e565b60028301546040820151919250611009916001600160a01b03909116906112a7565b600282015460405185917fd76ef80cfb1ce0c70d0cbc0ab1b9f2f298a78f9fca5c841be963ae9a5d721bb49161104991600160a01b900460ff16906116a3565b60405180910390a260405184907f1aa8a90c7d7a86bac690072d3f3d726bb8ebbe1989e158530440963f04c11eb290600090a250505050565b6001602081905260009182526040909120805491810180546110a3906118fd565b80601f01602080910402602001604051908101604052809291908181526020018280546110cf906118fd565b801561111c5780601f106110f15761010080835404028352916020019161111c565b820191906000526020600020905b8154815290600101906020018083116110ff57829003601f168201915b5050505060028301546003840154600485015460058601805495966001600160a01b0380861697600160a01b90960460ff16965090931693919291611160906118fd565b80601f016020809104026020016040519081016040528092919081815260200182805461118c906118fd565b80156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050506006909301549192505060ff1688565b6111f461122a565b6001600160a01b03811661121e57604051631e4fbdf760e01b8152600060048201526024016103f9565b61122781611257565b50565b6000546001600160a01b03163314610c505760405163118cdaa760e01b81523360048201526024016103f9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516000808252602082019092526001600160a01b0384169083906040516112d19190611ac0565b60006040518083038185875af1925050503d806000811461130e576040519150601f19603f3d011682016040523d82523d6000602084013e611313565b606091505b50509050806113815760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b60648201526084016103f9565b505050565b604051806101000160405280600081526020016060815260200160006001600160a01b03168152602001600060038111156113c3576113c3611567565b81526000602082018190526040820181905260608083015260809091015290565b634e487b7160e01b600052604160045260246000fd5b60405160a0810167ffffffffffffffff8111828210171561141d5761141d6113e4565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561144c5761144c6113e4565b604052919050565b600067ffffffffffffffff82111561146e5761146e6113e4565b50601f01601f191660200190565b600082601f83011261148d57600080fd5b81356114a061149b82611454565b611423565b8181528460208386010111156114b557600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156114e557600080fd5b823567ffffffffffffffff8111156114fc57600080fd5b6115088582860161147c565b95602094909401359450505050565b60005b8381101561153257818101518382015260200161151a565b50506000910152565b60008151808452611553816020860160208601611517565b601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b6004811061159b57634e487b7160e01b600052602160045260246000fd5b9052565b6020815281516020820152600060208301516101008060408501526115c861012085018361153b565b915060018060a01b03604086015116606085015260608501516115ee608086018261157d565b5060808501516001600160a01b03811660a08601525060a085015160c085015260c0850151601f198584030160e0860152611629838261153b565b92505060e085015161163f8286018260ff169052565b5090949350505050565b60006020828403121561165b57600080fd5b5035919050565b6001600160a01b038116811461122757600080fd5b6000806040838503121561168a57600080fd5b823561169581611662565b946020939093013593505050565b602081016106fe828461157d565b600080604083850312156116c457600080fd5b82359150602083013560ff811681146116dc57600080fd5b809150509250929050565b6000602082840312156116f957600080fd5b813561170481611662565b9392505050565b6020808252825182820181905260009190848201906040850190845b8181101561174357835183529284019291840191600101611727565b50909695505050505050565b6000806040838503121561176257600080fd5b82359150602083013567ffffffffffffffff81111561178057600080fd5b61178c8582860161147c565b9150509250929050565b60006101008a83528060208401526117b08184018b61153b565b6001600160a01b038a811660408601529091506117d0606085018a61157d565b8716608084015260a0830186905282810360c08401526117f0818661153b565b91505060ff831660e08301529998505050505050505050565b8051801515811461181957600080fd5b919050565b6000602080838503121561183157600080fd5b825167ffffffffffffffff8082111561184957600080fd5b9084019060a0828703121561185d57600080fd5b6118656113fa565b825161187081611662565b8152828401518281111561188357600080fd5b83019150601f8201871361189657600080fd5b81516118a461149b82611454565b81815288868386010111156118b857600080fd5b6118c782878301888701611517565b8086840152505060408301516040820152606083015160608201526118ee60808401611809565b60808201529695505050505050565b600181811c9082168061191157607f821691505b60208210810361193157634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561138157600081815260208120601f850160051c8101602086101561195e5750805b601f850160051c820191505b8181101561197d5782815560010161196a565b505050505050565b815167ffffffffffffffff81111561199f5761199f6113e4565b6119b3816119ad84546118fd565b84611937565b602080601f8311600181146119e857600084156119d05750858301515b600019600386901b1c1916600185901b17855561197d565b600085815260208120601f198616915b82811015611a17578886015182559484019460019091019084016119f8565b5085821015611a355787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b838152826020820152606060408201526000611a64606083018461153b565b95945050505050565b600060018201611a8d57634e487b7160e01b600052601160045260246000fd5b5060010190565b600060208284031215611aa657600080fd5b5051919050565b602081526000611704602083018461153b565b60008251611ad2818460208701611517565b919091019291505056fea264697066735822122098bd83b23d81389b73e03b06ee07ca1b56c4d4bfdea60cc35bd0c593da9fedd664736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1C36 CODESIZE SUB DUP1 PUSH3 0x1C36 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0xE2 JUMP JUMPDEST CALLER DUP1 PUSH3 0x5B JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x66 DUP2 PUSH3 0x92 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 PUSH1 0x3 SSTORE PUSH3 0x114 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0xF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x10D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1B12 DUP1 PUSH3 0x124 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDD JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x639241AB GT PUSH2 0x7F JUMPI DUP1 PUSH4 0x7EEC20A8 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0x7EEC20A8 EQ PUSH2 0x295 JUMPI DUP1 PUSH4 0x8D977672 EQ PUSH2 0x2B5 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2E9 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x307 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x639241AB EQ PUSH2 0x233 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0x74AAA760 EQ PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1D65E77E GT PUSH2 0xBB JUMPI DUP1 PUSH4 0x1D65E77E EQ PUSH2 0x17C JUMPI DUP1 PUSH4 0x2A2B3A9D EQ PUSH2 0x19C JUMPI DUP1 PUSH4 0x5C622A0E EQ PUSH2 0x1CA JUMPI DUP1 PUSH4 0x6298EEE0 EQ PUSH2 0x211 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4FE2B34 EQ PUSH2 0xE2 JUMPI DUP1 PUSH4 0x7B31818 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0xD1CFCAE EQ PUSH2 0x15C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF5 PUSH2 0xF0 CALLDATASIZE PUSH1 0x4 PUSH2 0x14D2 JUMP JUMPDEST PUSH2 0x327 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x102 SWAP2 SWAP1 PUSH2 0x159F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x144 PUSH2 0x126 CALLDATASIZE PUSH1 0x4 PUSH2 0x1649 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x102 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x168 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x144 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x188 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF5 PUSH2 0x197 CALLDATASIZE PUSH1 0x4 PUSH2 0x1649 JUMP JUMPDEST PUSH2 0x704 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BC PUSH2 0x1B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1677 JUMP JUMPDEST PUSH2 0x8D0 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x102 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x204 PUSH2 0x1E5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1649 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x102 SWAP2 SWAP1 PUSH2 0x16A3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x231 PUSH2 0x22C CALLDATASIZE PUSH1 0x4 PUSH2 0x16B1 JUMP JUMPDEST PUSH2 0x901 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x24E CALLDATASIZE PUSH1 0x4 PUSH2 0x16E7 JUMP JUMPDEST PUSH2 0xBD2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x102 SWAP2 SWAP1 PUSH2 0x170B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x231 PUSH2 0xC3E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x231 PUSH2 0x290 CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH2 0xC52 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x231 PUSH2 0x2B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1649 JUMP JUMPDEST PUSH2 0xE46 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D5 PUSH2 0x2D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1649 JUMP JUMPDEST PUSH2 0x1082 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x102 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1796 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x144 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x313 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x231 PUSH2 0x322 CALLDATASIZE PUSH1 0x4 PUSH2 0x16E7 JUMP JUMPDEST PUSH2 0x11EC JUMP JUMPDEST PUSH2 0x32F PUSH2 0x1386 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18FEEB15 PUSH1 0xE3 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC7F758A8 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x37B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x3A3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x181E JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x402 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5365727669636550726F706F73616C206E6F7420666F756E6400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLVALUE DUP2 PUSH1 0x40 ADD MLOAD EQ PUSH2 0x445 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x496E76616C6964207072696365 PUSH1 0x98 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3F9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP2 DUP3 SSTORE DUP2 ADD PUSH2 0x468 DUP7 DUP3 PUSH2 0x1985 JUMP JUMPDEST POP PUSH1 0x2 DUP2 DUP2 ADD DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND DUP2 OR DUP4 SSTORE PUSH1 0x4 DUP6 ADD DUP9 SWAP1 SSTORE DUP6 MLOAD PUSH1 0x3 DUP1 DUP8 ADD DUP1 SLOAD SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SLOAD DUP3 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP6 SSTORE SWAP4 DUP4 MSTORE SWAP5 SWAP1 SWAP2 KECCAK256 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP3 SSTORE DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL DUP4 MUL OR SWAP1 SSTORE POP DUP2 MLOAD PUSH1 0x3 SLOAD PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 CALLER SWAP3 PUSH32 0x5C005BBBB9DA508C37935B1A9F270836E0BE1FD11D4D47119F925A3FF33820E9 SWAP3 PUSH2 0x529 SWAP3 DUP12 SWAP1 PUSH2 0x1A45 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x3 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x541 DUP4 PUSH2 0x1A6D JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP DUP1 PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH2 0x56D SWAP1 PUSH2 0x18FD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x599 SWAP1 PUSH2 0x18FD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x5E6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x5BB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x5E6 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x5C9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x623 JUMPI PUSH2 0x623 PUSH2 0x1567 JUMP JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x634 JUMPI PUSH2 0x634 PUSH2 0x1567 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD DUP1 SLOAD PUSH1 0x60 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x668 SWAP1 PUSH2 0x18FD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x694 SWAP1 PUSH2 0x18FD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6E1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6B6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6E1 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6C4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x6 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE SWAP3 POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x70C PUSH2 0x1386 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP4 MLOAD PUSH2 0x100 DUP2 ADD SWAP1 SWAP5 MSTORE DUP1 SLOAD DUP5 MSTORE SWAP2 DUP3 ADD DUP1 SLOAD SWAP2 DUP5 ADD SWAP2 PUSH2 0x73E SWAP1 PUSH2 0x18FD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x76A SWAP1 PUSH2 0x18FD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7B7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x78C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x7B7 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x79A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x7F4 JUMPI PUSH2 0x7F4 PUSH2 0x1567 JUMP JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x805 JUMPI PUSH2 0x805 PUSH2 0x1567 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD DUP1 SLOAD PUSH1 0x60 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x839 SWAP1 PUSH2 0x18FD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x865 SWAP1 PUSH2 0x18FD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x8B2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x887 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x8B2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x895 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x6 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x8EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x96C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F742074686520697373756572206F6620746865207461736B000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3F9 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 DUP1 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x99B JUMPI PUSH2 0x99B PUSH2 0x1567 JUMP JUMPDEST EQ PUSH2 0x9E0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x15185CDAC81A5CC81B9BDD0818DBDB5C1B195D1959 PUSH1 0x5A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3F9 JUMP JUMPDEST PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xA35 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5461736B20676F7420726174696E6720616C7265616479000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3F9 JUMP JUMPDEST PUSH1 0x64 DUP4 PUSH1 0xFF AND GT ISZERO PUSH2 0xA89 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x526174696E67206D757374206265206265747765656E203020616E6420313030 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3F9 JUMP JUMPDEST PUSH1 0x6 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF DUP6 AND OR SWAP1 SSTORE PUSH1 0x4 DUP1 SLOAD DUP2 DUP4 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x18FEEB15 PUSH1 0xE3 SHL DUP2 MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC7F758A8 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAE8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xB10 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x181E JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD DUP3 MLOAD PUSH1 0x40 MLOAD PUSH4 0x70370A81 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0xFF DUP9 AND PUSH1 0x24 DUP5 ADD MSTORE SWAP3 SWAP4 POP SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x70370A81 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB6E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB92 SWAP2 SWAP1 PUSH2 0x1A94 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0xFF DUP6 AND DUP2 MSTORE DUP6 SWAP1 PUSH32 0xF9189BFC5977D44B1A00920E53A6A0E00229F6C53E76B73FC7E0581AE99ABDC SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD DUP2 DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xC32 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0xC1E JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC46 PUSH2 0x122A JUMP JUMPDEST PUSH2 0xC50 PUSH1 0x0 PUSH2 0x1257 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xCAD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x139BDD08185D5D1A1BDC9A5E9959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3F9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xCCF JUMPI PUSH2 0xCCF PUSH2 0x1567 JUMP JUMPDEST EQ PUSH2 0xD12 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x496E76616C6964207461736B20737461747573 PUSH1 0x68 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3F9 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA1 SHL OR SWAP1 SSTORE PUSH1 0x5 DUP2 ADD PUSH2 0xD35 DUP4 DUP3 PUSH2 0x1985 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD DUP3 DUP3 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x18FEEB15 PUSH1 0xE3 SHL DUP2 MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC7F758A8 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD84 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xDAC SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x181E JUMP JUMPDEST SWAP1 POP PUSH2 0xDC0 DUP2 PUSH1 0x0 ADD MLOAD DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0x12A7 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x40 MLOAD DUP6 SWAP2 PUSH32 0xD76EF80CFB1CE0C70D0CBC0AB1B9F2F298A78F9FCA5C841BE963AE9A5D721BB4 SWAP2 PUSH2 0xE00 SWAP2 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 PUSH2 0x16A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP4 PUSH32 0x7E6FFC29FE63759579D96A0457A8F2E08339ACA345BD469F59DC2E61F82A5AEB DUP5 PUSH1 0x40 MLOAD PUSH2 0xE38 SWAP2 SWAP1 PUSH2 0x1AAD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xEB1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F742074686520697373756572206F6620746865207461736B000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3F9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 DUP1 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xEE0 JUMPI PUSH2 0xEE0 PUSH2 0x1567 JUMP JUMPDEST EQ ISZERO DUP1 ISZERO PUSH2 0xF0E JUMPI POP PUSH1 0x3 PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xF0B JUMPI PUSH2 0xF0B PUSH2 0x1567 JUMP JUMPDEST EQ ISZERO JUMPDEST PUSH2 0xF5A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5461736B2063616E6E6F742062652063616E63656C6564000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3F9 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x3 PUSH1 0xA0 SHL PUSH1 0xFF PUSH1 0xA0 SHL NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x4 DUP1 SLOAD DUP2 DUP4 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x18FEEB15 PUSH1 0xE3 SHL DUP2 MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC7F758A8 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFBF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xFE7 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x181E JUMP JUMPDEST PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x40 DUP3 ADD MLOAD SWAP2 SWAP3 POP PUSH2 0x1009 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH2 0x12A7 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x40 MLOAD DUP6 SWAP2 PUSH32 0xD76EF80CFB1CE0C70D0CBC0AB1B9F2F298A78F9FCA5C841BE963AE9A5D721BB4 SWAP2 PUSH2 0x1049 SWAP2 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 PUSH2 0x16A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x40 MLOAD DUP5 SWAP1 PUSH32 0x1AA8A90C7D7A86BAC690072D3F3D726BB8EBBE1989E158530440963F04C11EB2 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD SWAP2 DUP2 ADD DUP1 SLOAD PUSH2 0x10A3 SWAP1 PUSH2 0x18FD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x10CF SWAP1 PUSH2 0x18FD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x111C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x10F1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x111C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x10FF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 DUP6 ADD SLOAD PUSH1 0x5 DUP7 ADD DUP1 SLOAD SWAP6 SWAP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND SWAP8 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP7 DIV PUSH1 0xFF AND SWAP7 POP SWAP1 SWAP4 AND SWAP4 SWAP2 SWAP3 SWAP2 PUSH2 0x1160 SWAP1 PUSH2 0x18FD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x118C SWAP1 PUSH2 0x18FD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x11D9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x11AE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x11D9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x11BC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP PUSH1 0x6 SWAP1 SWAP4 ADD SLOAD SWAP2 SWAP3 POP POP PUSH1 0xFF AND DUP9 JUMP JUMPDEST PUSH2 0x11F4 PUSH2 0x122A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x121E JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3F9 JUMP JUMPDEST PUSH2 0x1227 DUP2 PUSH2 0x1257 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC50 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3F9 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP4 SWAP1 PUSH1 0x40 MLOAD PUSH2 0x12D1 SWAP2 SWAP1 PUSH2 0x1AC0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x130E JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1313 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1381 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x34 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A3A736166655472616E736665724554483A PUSH1 0x44 DUP3 ADD MSTORE PUSH20 0x8115512081D1C985B9CD9995C8819985A5B1959 PUSH1 0x62 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3F9 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x13C3 JUMPI PUSH2 0x13C3 PUSH2 0x1567 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP4 ADD MSTORE PUSH1 0x80 SWAP1 SWAP2 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xA0 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x141D JUMPI PUSH2 0x141D PUSH2 0x13E4 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x144C JUMPI PUSH2 0x144C PUSH2 0x13E4 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x146E JUMPI PUSH2 0x146E PUSH2 0x13E4 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x148D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x14A0 PUSH2 0x149B DUP3 PUSH2 0x1454 JUMP JUMPDEST PUSH2 0x1423 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x14B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1508 DUP6 DUP3 DUP7 ADD PUSH2 0x147C JUMP JUMPDEST SWAP6 PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1532 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x151A JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1553 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1517 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x159B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x100 DUP1 PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x15C8 PUSH2 0x120 DUP6 ADD DUP4 PUSH2 0x153B JUMP JUMPDEST SWAP2 POP PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB PUSH1 0x40 DUP7 ADD MLOAD AND PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x60 DUP6 ADD MLOAD PUSH2 0x15EE PUSH1 0x80 DUP7 ADD DUP3 PUSH2 0x157D JUMP JUMPDEST POP PUSH1 0x80 DUP6 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0xA0 DUP7 ADD MSTORE POP PUSH1 0xA0 DUP6 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0x1F NOT DUP6 DUP5 SUB ADD PUSH1 0xE0 DUP7 ADD MSTORE PUSH2 0x1629 DUP4 DUP3 PUSH2 0x153B JUMP JUMPDEST SWAP3 POP POP PUSH1 0xE0 DUP6 ADD MLOAD PUSH2 0x163F DUP3 DUP7 ADD DUP3 PUSH1 0xFF AND SWAP1 MSTORE JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x165B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1227 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x168A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1695 DUP2 PUSH2 0x1662 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x6FE DUP3 DUP5 PUSH2 0x157D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x16C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x16DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1704 DUP2 PUSH2 0x1662 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1743 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1727 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1762 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1780 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x178C DUP6 DUP3 DUP7 ADD PUSH2 0x147C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100 DUP11 DUP4 MSTORE DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x17B0 DUP2 DUP5 ADD DUP12 PUSH2 0x153B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x40 DUP7 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x17D0 PUSH1 0x60 DUP6 ADD DUP11 PUSH2 0x157D JUMP JUMPDEST DUP8 AND PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0xA0 DUP4 ADD DUP7 SWAP1 MSTORE DUP3 DUP2 SUB PUSH1 0xC0 DUP5 ADD MSTORE PUSH2 0x17F0 DUP2 DUP7 PUSH2 0x153B JUMP JUMPDEST SWAP2 POP POP PUSH1 0xFF DUP4 AND PUSH1 0xE0 DUP4 ADD MSTORE SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1819 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1831 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1849 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP5 ADD SWAP1 PUSH1 0xA0 DUP3 DUP8 SUB SLT ISZERO PUSH2 0x185D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1865 PUSH2 0x13FA JUMP JUMPDEST DUP3 MLOAD PUSH2 0x1870 DUP2 PUSH2 0x1662 JUMP JUMPDEST DUP2 MSTORE DUP3 DUP5 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x1883 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD SWAP2 POP PUSH1 0x1F DUP3 ADD DUP8 SGT PUSH2 0x1896 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x18A4 PUSH2 0x149B DUP3 PUSH2 0x1454 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP9 DUP7 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x18B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18C7 DUP3 DUP8 DUP4 ADD DUP9 DUP8 ADD PUSH2 0x1517 JUMP JUMPDEST DUP1 DUP7 DUP5 ADD MSTORE POP POP PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x18EE PUSH1 0x80 DUP5 ADD PUSH2 0x1809 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1911 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1931 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1381 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x195E JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x197D JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x196A JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x199F JUMPI PUSH2 0x199F PUSH2 0x13E4 JUMP JUMPDEST PUSH2 0x19B3 DUP2 PUSH2 0x19AD DUP5 SLOAD PUSH2 0x18FD JUMP JUMPDEST DUP5 PUSH2 0x1937 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x19E8 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x19D0 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x197D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1A17 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x19F8 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x1A35 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP4 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1A64 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x153B JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x1A8D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1AA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1704 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x153B JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1AD2 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1517 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP9 0xBD DUP4 0xB2 RETURNDATASIZE DUP2 CODESIZE SWAP12 PUSH20 0xE03B06EE07CA1B56C4D4BFDEA60CC35BD0C593DA SWAP16 0xED 0xD6 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "380:5116:4:-:0;;;1048:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1099:10;;1269:95:0;;1322:31;;-1:-1:-1;;;1322:31:0;;1350:1;1322:31;;;477:51:9;450:18;;1322:31:0;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;1121:13:4::1;:30:::0;;-1:-1:-1;;;;;;1121:30:4::1;-1:-1:-1::0;;;;;1121:30:4;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;1161:10:4::1;:14:::0;380:5116;;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:312:9:-;106:6;159:2;147:9;138:7;134:23;130:32;127:52;;;175:1;172;165:12;127:52;201:16;;-1:-1:-1;;;;;246:31:9;;236:42;;226:70;;292:1;289;282:12;226:70;315:5;14:312;-1:-1:-1;;;14:312:9:o;331:203::-;380:5116:4;;;;;;" }, "deployedBytecode": { "functionDebugData": { "@_checkOwner_84": { - "entryPoint": 3208, + "entryPoint": 4650, "id": 84, "parameterSlots": 0, "returnSlots": 0 @@ -33593,56 +41380,62 @@ "returnSlots": 1 }, "@_transferOwnership_146": { - "entryPoint": 3253, + "entryPoint": 4695, "id": 146, "parameterSlots": 1, "returnSlots": 0 }, - "@agentRegistry_729": { + "@agentRegistry_893": { "entryPoint": null, - "id": 729, + "id": 893, "parameterSlots": 0, "returnSlots": 0 }, - "@completeTask_974": { - "entryPoint": 2272, - "id": 974, + "@cancelTask_1305": { + "entryPoint": 3654, + "id": 1305, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@completeTask_1163": { + "entryPoint": 3154, + "id": 1163, "parameterSlots": 2, "returnSlots": 0 }, - "@createTask_892": { - "entryPoint": 688, - "id": 892, + "@createTask_1087": { + "entryPoint": 807, + "id": 1087, "parameterSlots": 2, "returnSlots": 1 }, - "@getAssignee_1027": { + "@getAssignee_1358": { "entryPoint": null, - "id": 1027, + "id": 1358, "parameterSlots": 1, "returnSlots": 1 }, - "@getStatus_1014": { + "@getStatus_1345": { "entryPoint": null, - "id": 1014, + "id": 1345, "parameterSlots": 1, "returnSlots": 1 }, - "@getTask_1000": { - "entryPoint": 1650, - "id": 1000, + "@getTask_1331": { + "entryPoint": 1796, + "id": 1331, "parameterSlots": 1, "returnSlots": 1 }, - "@getTasksByIssuer_987": { - "entryPoint": 2144, - "id": 987, + "@getTasksByIssuer_1318": { + "entryPoint": 3026, + "id": 1318, "parameterSlots": 1, "returnSlots": 1 }, - "@issuerTasks_724": { - "entryPoint": 2095, - "id": 724, + "@issuerTasks_888": { + "entryPoint": 2256, + "id": 888, "parameterSlots": 0, "returnSlots": 0 }, @@ -33652,86 +41445,116 @@ "parameterSlots": 0, "returnSlots": 1 }, + "@rateTask_1238": { + "entryPoint": 2305, + "id": 1238, + "parameterSlots": 2, + "returnSlots": 0 + }, "@renounceOwnership_98": { - "entryPoint": 2252, + "entryPoint": 3134, "id": 98, "parameterSlots": 0, "returnSlots": 0 }, - "@safeTransferETH_1199": { - "entryPoint": 3333, - "id": 1199, + "@safeTransferETH_1616": { + "entryPoint": 4775, + "id": 1616, "parameterSlots": 2, "returnSlots": 0 }, - "@tasks_719": { - "entryPoint": 2793, - "id": 719, + "@tasks_883": { + "entryPoint": 4226, + "id": 883, "parameterSlots": 0, "returnSlots": 0 }, "@transferOwnership_126": { - "entryPoint": 3146, + "entryPoint": 4588, "id": 126, "parameterSlots": 1, "returnSlots": 0 }, + "abi_decode_bool_fromMemory": { + "entryPoint": 6153, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, "abi_decode_string": { - "entryPoint": 3793, + "entryPoint": 5244, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_decode_tuple_t_address": { - "entryPoint": 4331, + "entryPoint": 5863, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_decode_tuple_t_addresst_uint256": { - "entryPoint": 4273, + "entryPoint": 5751, "id": null, "parameterSlots": 2, "returnSlots": 2 }, "abi_decode_tuple_t_string_memory_ptrt_uint256": { - "entryPoint": 3879, + "entryPoint": 5330, "id": null, "parameterSlots": 2, "returnSlots": 2 }, - "abi_decode_tuple_t_struct$_Proposal_$1039_memory_ptr_fromMemory": { - "entryPoint": 4606, + "abi_decode_tuple_t_struct$_ServiceProposal_$1403_memory_ptr_fromMemory": { + "entryPoint": 6174, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_decode_tuple_t_uint256": { - "entryPoint": 4227, + "entryPoint": 5705, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 6804, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_decode_tuple_t_uint256t_string_memory_ptr": { - "entryPoint": 4435, + "entryPoint": 5967, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint256t_uint8": { + "entryPoint": 5809, "id": null, "parameterSlots": 2, "returnSlots": 2 }, + "abi_encode_address": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, "abi_encode_enum_TaskStatus": { - "entryPoint": 4050, + "entryPoint": 5501, "id": null, "parameterSlots": 2, "returnSlots": 0 }, "abi_encode_string": { - "entryPoint": 3984, + "entryPoint": 5435, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { - "entryPoint": 5232, + "entryPoint": 6848, "id": null, "parameterSlots": 2, "returnSlots": 1 @@ -33742,30 +41565,42 @@ "parameterSlots": 2, "returnSlots": 1 }, + "abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { - "entryPoint": 4367, + "entryPoint": 5899, "id": null, "parameterSlots": 2, "returnSlots": 1 }, - "abi_encode_tuple_t_contract$_AgentsRegistry_$506__to_t_address__fromStack_reversed": { + "abi_encode_tuple_t_contract$_AgentsRegistry_$670__to_t_address__fromStack_reversed": { "entryPoint": null, "id": null, "parameterSlots": 2, "returnSlots": 1 }, - "abi_encode_tuple_t_enum$_TaskStatus_$698__to_t_uint8__fromStack_reversed": { - "entryPoint": 4317, + "abi_encode_tuple_t_enum$_TaskStatus_$860__to_t_uint8__fromStack_reversed": { + "entryPoint": 5795, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 5213, + "entryPoint": 6829, "id": null, "parameterSlots": 2, "returnSlots": 1 }, + "abi_encode_tuple_t_stringliteral_306fe74d51ecec7b72bc35613a90b4c93840ded0ff8f63d0daef622fd6053b19__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, "abi_encode_tuple_t_stringliteral_35c761622bcc8ab75f9adfaf21a4872a39cd06f2745d5488272d29f1f753f270__to_t_string_memory_ptr__fromStack_reversed": { "entryPoint": null, "id": null, @@ -33778,7 +41613,31 @@ "parameterSlots": 1, "returnSlots": 1 }, - "abi_encode_tuple_t_stringliteral_bcf95e6a362746bd232f2b944afd538b26aa461607b394f948bce2609a1a50c9__to_t_string_memory_ptr__fromStack_reversed": { + "abi_encode_tuple_t_stringliteral_784e567ba03dff6623f8e7bbee52b701bfd622c294c48e22d5da37cfabe25ac0__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_8b01433edf8e1c1ecc76c5925a92e74cb9845acafce91ff571223021d8950f7c__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_a08755c006bba216d153388cc97acf5e536a500c0ec88cade64bd6b2f0d0e27d__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_add139ef5e0ce81551c750d068d2eb9f9e6c61a45817f3add2fc789b89b93829__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c137d625e69877210f78bfe5d3113cccc58db43b2ac3bb8f673d723a397aae3e__to_t_string_memory_ptr__fromStack_reversed": { "entryPoint": null, "id": null, "parameterSlots": 1, @@ -33796,8 +41655,8 @@ "parameterSlots": 1, "returnSlots": 1 }, - "abi_encode_tuple_t_struct$_TaskData_$714_memory_ptr__to_t_struct$_TaskData_$714_memory_ptr__fromStack_reversed": { - "entryPoint": 4084, + "abi_encode_tuple_t_struct$_TaskData_$878_memory_ptr__to_t_struct$_TaskData_$878_memory_ptr__fromStack_reversed": { + "entryPoint": 5535, "id": null, "parameterSlots": 2, "returnSlots": 1 @@ -33808,32 +41667,44 @@ "parameterSlots": 2, "returnSlots": 1 }, - "abi_encode_tuple_t_uint256_t_string_memory_ptr_t_address_t_enum$_TaskStatus_$698_t_address_t_uint256_t_string_memory_ptr__to_t_uint256_t_string_memory_ptr_t_address_t_uint8_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 4506, + "abi_encode_tuple_t_uint256_t_string_memory_ptr_t_address_t_enum$_TaskStatus_$860_t_address_t_uint256_t_string_memory_ptr_t_uint8__to_t_uint256_t_string_memory_ptr_t_address_t_uint8_t_address_t_uint256_t_string_memory_ptr_t_uint8__fromStack_reversed": { + "entryPoint": 6038, "id": null, - "parameterSlots": 8, + "parameterSlots": 9, "returnSlots": 1 }, "abi_encode_tuple_t_uint256_t_uint256_t_string_memory_ptr__to_t_uint256_t_uint256_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 5143, + "entryPoint": 6725, "id": null, "parameterSlots": 4, "returnSlots": 1 }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_uint8": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, "allocate_memory": { - "entryPoint": 3704, + "entryPoint": 5155, "id": null, "parameterSlots": 1, "returnSlots": 1 }, - "allocate_memory_1962": { - "entryPoint": 3663, + "allocate_memory_2417": { + "entryPoint": 5114, "id": null, "parameterSlots": 0, "returnSlots": 1 }, "array_allocation_size_string": { - "entryPoint": 3753, + "entryPoint": 5204, "id": null, "parameterSlots": 1, "returnSlots": 1 @@ -33845,25 +41716,25 @@ "returnSlots": 1 }, "clean_up_bytearray_end_slots_string_storage": { - "entryPoint": 4873, + "entryPoint": 6455, "id": null, "parameterSlots": 3, "returnSlots": 0 }, "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { - "entryPoint": 4951, + "entryPoint": 6533, "id": null, "parameterSlots": 2, "returnSlots": 0 }, "copy_memory_to_memory_with_cleanup": { - "entryPoint": 3948, + "entryPoint": 5399, "id": null, "parameterSlots": 3, "returnSlots": 0 }, "extract_byte_array_length": { - "entryPoint": 4815, + "entryPoint": 6397, "id": null, "parameterSlots": 1, "returnSlots": 1 @@ -33875,25 +41746,25 @@ "returnSlots": 1 }, "increment_t_uint256": { - "entryPoint": 5174, + "entryPoint": 6765, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "panic_error_0x21": { - "entryPoint": 4028, + "entryPoint": 5479, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "panic_error_0x41": { - "entryPoint": 3641, + "entryPoint": 5092, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "validator_revert_address": { - "entryPoint": 4252, + "entryPoint": 5730, "id": null, "parameterSlots": 1, "returnSlots": 0 @@ -33903,17 +41774,17 @@ { "ast": { "nodeType": "YulBlock", - "src": "0:13935:7", + "src": "0:17406:9", "statements": [ { "nodeType": "YulBlock", - "src": "6:3:7", + "src": "6:3:9", "statements": [] }, { "body": { "nodeType": "YulBlock", - "src": "46:95:7", + "src": "46:95:9", "statements": [ { "expression": { @@ -33921,7 +41792,7 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "63:1:7", + "src": "63:1:9", "type": "", "value": "0" }, @@ -33930,14 +41801,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "70:3:7", + "src": "70:3:9", "type": "", "value": "224" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "75:10:7", + "src": "75:10:9", "type": "", "value": "0x4e487b71" } @@ -33945,22 +41816,22 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "66:3:7" + "src": "66:3:9" }, "nodeType": "YulFunctionCall", - "src": "66:20:7" + "src": "66:20:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "56:6:7" + "src": "56:6:9" }, "nodeType": "YulFunctionCall", - "src": "56:31:7" + "src": "56:31:9" }, "nodeType": "YulExpressionStatement", - "src": "56:31:7" + "src": "56:31:9" }, { "expression": { @@ -33968,14 +41839,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "103:1:7", + "src": "103:1:9", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "106:4:7", + "src": "106:4:9", "type": "", "value": "0x41" } @@ -33983,13 +41854,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "96:6:7" + "src": "96:6:9" }, "nodeType": "YulFunctionCall", - "src": "96:15:7" + "src": "96:15:9" }, "nodeType": "YulExpressionStatement", - "src": "96:15:7" + "src": "96:15:9" }, { "expression": { @@ -33997,14 +41868,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "127:1:7", + "src": "127:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "130:4:7", + "src": "130:4:9", "type": "", "value": "0x24" } @@ -34012,34 +41883,34 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "120:6:7" + "src": "120:6:9" }, "nodeType": "YulFunctionCall", - "src": "120:15:7" + "src": "120:15:9" }, "nodeType": "YulExpressionStatement", - "src": "120:15:7" + "src": "120:15:9" } ] }, "name": "panic_error_0x41", "nodeType": "YulFunctionDefinition", - "src": "14:127:7" + "src": "14:127:9" }, { "body": { "nodeType": "YulBlock", - "src": "192:207:7", + "src": "192:207:9", "statements": [ { "nodeType": "YulAssignment", - "src": "202:19:7", + "src": "202:19:9", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "218:2:7", + "src": "218:2:9", "type": "", "value": "64" } @@ -34047,50 +41918,50 @@ "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "212:5:7" + "src": "212:5:9" }, "nodeType": "YulFunctionCall", - "src": "212:9:7" + "src": "212:9:9" }, "variableNames": [ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "202:6:7" + "src": "202:6:9" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "230:35:7", + "src": "230:35:9", "value": { "arguments": [ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "252:6:7" + "src": "252:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "260:4:7", + "src": "260:4:9", "type": "", - "value": "0x80" + "value": "0xa0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "248:3:7" + "src": "248:3:9" }, "nodeType": "YulFunctionCall", - "src": "248:17:7" + "src": "248:17:9" }, "variables": [ { "name": "newFreePtr", "nodeType": "YulTypedName", - "src": "234:10:7", + "src": "234:10:9", "type": "" } ] @@ -34098,7 +41969,7 @@ { "body": { "nodeType": "YulBlock", - "src": "340:22:7", + "src": "340:22:9", "statements": [ { "expression": { @@ -34106,13 +41977,13 @@ "functionName": { "name": "panic_error_0x41", "nodeType": "YulIdentifier", - "src": "342:16:7" + "src": "342:16:9" }, "nodeType": "YulFunctionCall", - "src": "342:18:7" + "src": "342:18:9" }, "nodeType": "YulExpressionStatement", - "src": "342:18:7" + "src": "342:18:9" } ] }, @@ -34123,12 +41994,12 @@ { "name": "newFreePtr", "nodeType": "YulIdentifier", - "src": "283:10:7" + "src": "283:10:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "295:18:7", + "src": "295:18:9", "type": "", "value": "0xffffffffffffffff" } @@ -34136,43 +42007,43 @@ "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "280:2:7" + "src": "280:2:9" }, "nodeType": "YulFunctionCall", - "src": "280:34:7" + "src": "280:34:9" }, { "arguments": [ { "name": "newFreePtr", "nodeType": "YulIdentifier", - "src": "319:10:7" + "src": "319:10:9" }, { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "331:6:7" + "src": "331:6:9" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "316:2:7" + "src": "316:2:9" }, "nodeType": "YulFunctionCall", - "src": "316:22:7" + "src": "316:22:9" } ], "functionName": { "name": "or", "nodeType": "YulIdentifier", - "src": "277:2:7" + "src": "277:2:9" }, "nodeType": "YulFunctionCall", - "src": "277:62:7" + "src": "277:62:9" }, "nodeType": "YulIf", - "src": "274:88:7" + "src": "274:88:9" }, { "expression": { @@ -34180,55 +42051,55 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "378:2:7", + "src": "378:2:9", "type": "", "value": "64" }, { "name": "newFreePtr", "nodeType": "YulIdentifier", - "src": "382:10:7" + "src": "382:10:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "371:6:7" + "src": "371:6:9" }, "nodeType": "YulFunctionCall", - "src": "371:22:7" + "src": "371:22:9" }, "nodeType": "YulExpressionStatement", - "src": "371:22:7" + "src": "371:22:9" } ] }, - "name": "allocate_memory_1962", + "name": "allocate_memory_2417", "nodeType": "YulFunctionDefinition", "returnVariables": [ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "181:6:7", + "src": "181:6:9", "type": "" } ], - "src": "146:253:7" + "src": "146:253:9" }, { "body": { "nodeType": "YulBlock", - "src": "449:230:7", + "src": "449:230:9", "statements": [ { "nodeType": "YulAssignment", - "src": "459:19:7", + "src": "459:19:9", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "475:2:7", + "src": "475:2:9", "type": "", "value": "64" } @@ -34236,28 +42107,28 @@ "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "469:5:7" + "src": "469:5:9" }, "nodeType": "YulFunctionCall", - "src": "469:9:7" + "src": "469:9:9" }, "variableNames": [ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "459:6:7" + "src": "459:6:9" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "487:58:7", + "src": "487:58:9", "value": { "arguments": [ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "509:6:7" + "src": "509:6:9" }, { "arguments": [ @@ -34266,12 +42137,12 @@ { "name": "size", "nodeType": "YulIdentifier", - "src": "525:4:7" + "src": "525:4:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "531:2:7", + "src": "531:2:9", "type": "", "value": "31" } @@ -34279,17 +42150,17 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "521:3:7" + "src": "521:3:9" }, "nodeType": "YulFunctionCall", - "src": "521:13:7" + "src": "521:13:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "540:2:7", + "src": "540:2:9", "type": "", "value": "31" } @@ -34297,34 +42168,34 @@ "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "536:3:7" + "src": "536:3:9" }, "nodeType": "YulFunctionCall", - "src": "536:7:7" + "src": "536:7:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "517:3:7" + "src": "517:3:9" }, "nodeType": "YulFunctionCall", - "src": "517:27:7" + "src": "517:27:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "505:3:7" + "src": "505:3:9" }, "nodeType": "YulFunctionCall", - "src": "505:40:7" + "src": "505:40:9" }, "variables": [ { "name": "newFreePtr", "nodeType": "YulTypedName", - "src": "491:10:7", + "src": "491:10:9", "type": "" } ] @@ -34332,7 +42203,7 @@ { "body": { "nodeType": "YulBlock", - "src": "620:22:7", + "src": "620:22:9", "statements": [ { "expression": { @@ -34340,13 +42211,13 @@ "functionName": { "name": "panic_error_0x41", "nodeType": "YulIdentifier", - "src": "622:16:7" + "src": "622:16:9" }, "nodeType": "YulFunctionCall", - "src": "622:18:7" + "src": "622:18:9" }, "nodeType": "YulExpressionStatement", - "src": "622:18:7" + "src": "622:18:9" } ] }, @@ -34357,12 +42228,12 @@ { "name": "newFreePtr", "nodeType": "YulIdentifier", - "src": "563:10:7" + "src": "563:10:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "575:18:7", + "src": "575:18:9", "type": "", "value": "0xffffffffffffffff" } @@ -34370,43 +42241,43 @@ "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "560:2:7" + "src": "560:2:9" }, "nodeType": "YulFunctionCall", - "src": "560:34:7" + "src": "560:34:9" }, { "arguments": [ { "name": "newFreePtr", "nodeType": "YulIdentifier", - "src": "599:10:7" + "src": "599:10:9" }, { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "611:6:7" + "src": "611:6:9" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "596:2:7" + "src": "596:2:9" }, "nodeType": "YulFunctionCall", - "src": "596:22:7" + "src": "596:22:9" } ], "functionName": { "name": "or", "nodeType": "YulIdentifier", - "src": "557:2:7" + "src": "557:2:9" }, "nodeType": "YulFunctionCall", - "src": "557:62:7" + "src": "557:62:9" }, "nodeType": "YulIf", - "src": "554:88:7" + "src": "554:88:9" }, { "expression": { @@ -34414,26 +42285,26 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "658:2:7", + "src": "658:2:9", "type": "", "value": "64" }, { "name": "newFreePtr", "nodeType": "YulIdentifier", - "src": "662:10:7" + "src": "662:10:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "651:6:7" + "src": "651:6:9" }, "nodeType": "YulFunctionCall", - "src": "651:22:7" + "src": "651:22:9" }, "nodeType": "YulExpressionStatement", - "src": "651:22:7" + "src": "651:22:9" } ] }, @@ -34443,7 +42314,7 @@ { "name": "size", "nodeType": "YulTypedName", - "src": "429:4:7", + "src": "429:4:9", "type": "" } ], @@ -34451,21 +42322,21 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "438:6:7", + "src": "438:6:9", "type": "" } ], - "src": "404:275:7" + "src": "404:275:9" }, { "body": { "nodeType": "YulBlock", - "src": "742:129:7", + "src": "742:129:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "786:22:7", + "src": "786:22:9", "statements": [ { "expression": { @@ -34473,13 +42344,13 @@ "functionName": { "name": "panic_error_0x41", "nodeType": "YulIdentifier", - "src": "788:16:7" + "src": "788:16:9" }, "nodeType": "YulFunctionCall", - "src": "788:18:7" + "src": "788:18:9" }, "nodeType": "YulExpressionStatement", - "src": "788:18:7" + "src": "788:18:9" } ] }, @@ -34488,12 +42359,12 @@ { "name": "length", "nodeType": "YulIdentifier", - "src": "758:6:7" + "src": "758:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "766:18:7", + "src": "766:18:9", "type": "", "value": "0xffffffffffffffff" } @@ -34501,17 +42372,17 @@ "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "755:2:7" + "src": "755:2:9" }, "nodeType": "YulFunctionCall", - "src": "755:30:7" + "src": "755:30:9" }, "nodeType": "YulIf", - "src": "752:56:7" + "src": "752:56:9" }, { "nodeType": "YulAssignment", - "src": "817:48:7", + "src": "817:48:9", "value": { "arguments": [ { @@ -34521,12 +42392,12 @@ { "name": "length", "nodeType": "YulIdentifier", - "src": "837:6:7" + "src": "837:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "845:2:7", + "src": "845:2:9", "type": "", "value": "31" } @@ -34534,17 +42405,17 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "833:3:7" + "src": "833:3:9" }, "nodeType": "YulFunctionCall", - "src": "833:15:7" + "src": "833:15:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "854:2:7", + "src": "854:2:9", "type": "", "value": "31" } @@ -34552,24 +42423,24 @@ "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "850:3:7" + "src": "850:3:9" }, "nodeType": "YulFunctionCall", - "src": "850:7:7" + "src": "850:7:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "829:3:7" + "src": "829:3:9" }, "nodeType": "YulFunctionCall", - "src": "829:29:7" + "src": "829:29:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "860:4:7", + "src": "860:4:9", "type": "", "value": "0x20" } @@ -34577,16 +42448,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "825:3:7" + "src": "825:3:9" }, "nodeType": "YulFunctionCall", - "src": "825:40:7" + "src": "825:40:9" }, "variableNames": [ { "name": "size", "nodeType": "YulIdentifier", - "src": "817:4:7" + "src": "817:4:9" } ] } @@ -34598,7 +42469,7 @@ { "name": "length", "nodeType": "YulTypedName", - "src": "722:6:7", + "src": "722:6:9", "type": "" } ], @@ -34606,21 +42477,21 @@ { "name": "size", "nodeType": "YulTypedName", - "src": "733:4:7", + "src": "733:4:9", "type": "" } ], - "src": "684:187:7" + "src": "684:187:9" }, { "body": { "nodeType": "YulBlock", - "src": "929:411:7", + "src": "929:411:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "978:16:7", + "src": "978:16:9", "statements": [ { "expression": { @@ -34628,14 +42499,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "987:1:7", + "src": "987:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "990:1:7", + "src": "990:1:9", "type": "", "value": "0" } @@ -34643,13 +42514,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "980:6:7" + "src": "980:6:9" }, "nodeType": "YulFunctionCall", - "src": "980:12:7" + "src": "980:12:9" }, "nodeType": "YulExpressionStatement", - "src": "980:12:7" + "src": "980:12:9" } ] }, @@ -34662,12 +42533,12 @@ { "name": "offset", "nodeType": "YulIdentifier", - "src": "957:6:7" + "src": "957:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "965:4:7", + "src": "965:4:9", "type": "", "value": "0x1f" } @@ -34675,68 +42546,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "953:3:7" + "src": "953:3:9" }, "nodeType": "YulFunctionCall", - "src": "953:17:7" + "src": "953:17:9" }, { "name": "end", "nodeType": "YulIdentifier", - "src": "972:3:7" + "src": "972:3:9" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "949:3:7" + "src": "949:3:9" }, "nodeType": "YulFunctionCall", - "src": "949:27:7" + "src": "949:27:9" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "942:6:7" + "src": "942:6:9" }, "nodeType": "YulFunctionCall", - "src": "942:35:7" + "src": "942:35:9" }, "nodeType": "YulIf", - "src": "939:55:7" + "src": "939:55:9" }, { "nodeType": "YulVariableDeclaration", - "src": "1003:30:7", + "src": "1003:30:9", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", - "src": "1026:6:7" + "src": "1026:6:9" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "1013:12:7" + "src": "1013:12:9" }, "nodeType": "YulFunctionCall", - "src": "1013:20:7" + "src": "1013:20:9" }, "variables": [ { "name": "_1", "nodeType": "YulTypedName", - "src": "1007:2:7", + "src": "1007:2:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "1042:64:7", + "src": "1042:64:9", "value": { "arguments": [ { @@ -34744,31 +42615,31 @@ { "name": "_1", "nodeType": "YulIdentifier", - "src": "1102:2:7" + "src": "1102:2:9" } ], "functionName": { "name": "array_allocation_size_string", "nodeType": "YulIdentifier", - "src": "1073:28:7" + "src": "1073:28:9" }, "nodeType": "YulFunctionCall", - "src": "1073:32:7" + "src": "1073:32:9" } ], "functionName": { "name": "allocate_memory", "nodeType": "YulIdentifier", - "src": "1057:15:7" + "src": "1057:15:9" }, "nodeType": "YulFunctionCall", - "src": "1057:49:7" + "src": "1057:49:9" }, "variables": [ { "name": "array_1", "nodeType": "YulTypedName", - "src": "1046:7:7", + "src": "1046:7:9", "type": "" } ] @@ -34779,29 +42650,29 @@ { "name": "array_1", "nodeType": "YulIdentifier", - "src": "1122:7:7" + "src": "1122:7:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "1131:2:7" + "src": "1131:2:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "1115:6:7" + "src": "1115:6:9" }, "nodeType": "YulFunctionCall", - "src": "1115:19:7" + "src": "1115:19:9" }, "nodeType": "YulExpressionStatement", - "src": "1115:19:7" + "src": "1115:19:9" }, { "body": { "nodeType": "YulBlock", - "src": "1182:16:7", + "src": "1182:16:9", "statements": [ { "expression": { @@ -34809,14 +42680,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "1191:1:7", + "src": "1191:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1194:1:7", + "src": "1194:1:9", "type": "", "value": "0" } @@ -34824,13 +42695,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "1184:6:7" + "src": "1184:6:9" }, "nodeType": "YulFunctionCall", - "src": "1184:12:7" + "src": "1184:12:9" }, "nodeType": "YulExpressionStatement", - "src": "1184:12:7" + "src": "1184:12:9" } ] }, @@ -34843,26 +42714,26 @@ { "name": "offset", "nodeType": "YulIdentifier", - "src": "1157:6:7" + "src": "1157:6:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "1165:2:7" + "src": "1165:2:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1153:3:7" + "src": "1153:3:9" }, "nodeType": "YulFunctionCall", - "src": "1153:15:7" + "src": "1153:15:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1170:4:7", + "src": "1170:4:9", "type": "", "value": "0x20" } @@ -34870,27 +42741,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1149:3:7" + "src": "1149:3:9" }, "nodeType": "YulFunctionCall", - "src": "1149:26:7" + "src": "1149:26:9" }, { "name": "end", "nodeType": "YulIdentifier", - "src": "1177:3:7" + "src": "1177:3:9" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "1146:2:7" + "src": "1146:2:9" }, "nodeType": "YulFunctionCall", - "src": "1146:35:7" + "src": "1146:35:9" }, "nodeType": "YulIf", - "src": "1143:55:7" + "src": "1143:55:9" }, { "expression": { @@ -34900,12 +42771,12 @@ { "name": "array_1", "nodeType": "YulIdentifier", - "src": "1224:7:7" + "src": "1224:7:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1233:4:7", + "src": "1233:4:9", "type": "", "value": "0x20" } @@ -34913,22 +42784,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1220:3:7" + "src": "1220:3:9" }, "nodeType": "YulFunctionCall", - "src": "1220:18:7" + "src": "1220:18:9" }, { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", - "src": "1244:6:7" + "src": "1244:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1252:4:7", + "src": "1252:4:9", "type": "", "value": "0x20" } @@ -34936,27 +42807,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1240:3:7" + "src": "1240:3:9" }, "nodeType": "YulFunctionCall", - "src": "1240:17:7" + "src": "1240:17:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "1259:2:7" + "src": "1259:2:9" } ], "functionName": { "name": "calldatacopy", "nodeType": "YulIdentifier", - "src": "1207:12:7" + "src": "1207:12:9" }, "nodeType": "YulFunctionCall", - "src": "1207:55:7" + "src": "1207:55:9" }, "nodeType": "YulExpressionStatement", - "src": "1207:55:7" + "src": "1207:55:9" }, { "expression": { @@ -34968,26 +42839,26 @@ { "name": "array_1", "nodeType": "YulIdentifier", - "src": "1286:7:7" + "src": "1286:7:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "1295:2:7" + "src": "1295:2:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1282:3:7" + "src": "1282:3:9" }, "nodeType": "YulFunctionCall", - "src": "1282:16:7" + "src": "1282:16:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1300:4:7", + "src": "1300:4:9", "type": "", "value": "0x20" } @@ -34995,15 +42866,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1278:3:7" + "src": "1278:3:9" }, "nodeType": "YulFunctionCall", - "src": "1278:27:7" + "src": "1278:27:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1307:1:7", + "src": "1307:1:9", "type": "", "value": "0" } @@ -35011,27 +42882,27 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "1271:6:7" + "src": "1271:6:9" }, "nodeType": "YulFunctionCall", - "src": "1271:38:7" + "src": "1271:38:9" }, "nodeType": "YulExpressionStatement", - "src": "1271:38:7" + "src": "1271:38:9" }, { "nodeType": "YulAssignment", - "src": "1318:16:7", + "src": "1318:16:9", "value": { "name": "array_1", "nodeType": "YulIdentifier", - "src": "1327:7:7" + "src": "1327:7:9" }, "variableNames": [ { "name": "array", "nodeType": "YulIdentifier", - "src": "1318:5:7" + "src": "1318:5:9" } ] } @@ -35043,13 +42914,13 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "903:6:7", + "src": "903:6:9", "type": "" }, { "name": "end", "nodeType": "YulTypedName", - "src": "911:3:7", + "src": "911:3:9", "type": "" } ], @@ -35057,21 +42928,21 @@ { "name": "array", "nodeType": "YulTypedName", - "src": "919:5:7", + "src": "919:5:9", "type": "" } ], - "src": "876:464:7" + "src": "876:464:9" }, { "body": { "nodeType": "YulBlock", - "src": "1442:293:7", + "src": "1442:293:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "1488:16:7", + "src": "1488:16:9", "statements": [ { "expression": { @@ -35079,14 +42950,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "1497:1:7", + "src": "1497:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1500:1:7", + "src": "1500:1:9", "type": "", "value": "0" } @@ -35094,13 +42965,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "1490:6:7" + "src": "1490:6:9" }, "nodeType": "YulFunctionCall", - "src": "1490:12:7" + "src": "1490:12:9" }, "nodeType": "YulExpressionStatement", - "src": "1490:12:7" + "src": "1490:12:9" } ] }, @@ -35111,26 +42982,26 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "1463:7:7" + "src": "1463:7:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "1472:9:7" + "src": "1472:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "1459:3:7" + "src": "1459:3:9" }, "nodeType": "YulFunctionCall", - "src": "1459:23:7" + "src": "1459:23:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1484:2:7", + "src": "1484:2:9", "type": "", "value": "64" } @@ -35138,38 +43009,38 @@ "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "1455:3:7" + "src": "1455:3:9" }, "nodeType": "YulFunctionCall", - "src": "1455:32:7" + "src": "1455:32:9" }, "nodeType": "YulIf", - "src": "1452:52:7" + "src": "1452:52:9" }, { "nodeType": "YulVariableDeclaration", - "src": "1513:37:7", + "src": "1513:37:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "1540:9:7" + "src": "1540:9:9" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "1527:12:7" + "src": "1527:12:9" }, "nodeType": "YulFunctionCall", - "src": "1527:23:7" + "src": "1527:23:9" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", - "src": "1517:6:7", + "src": "1517:6:9", "type": "" } ] @@ -35177,7 +43048,7 @@ { "body": { "nodeType": "YulBlock", - "src": "1593:16:7", + "src": "1593:16:9", "statements": [ { "expression": { @@ -35185,14 +43056,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "1602:1:7", + "src": "1602:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1605:1:7", + "src": "1605:1:9", "type": "", "value": "0" } @@ -35200,13 +43071,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "1595:6:7" + "src": "1595:6:9" }, "nodeType": "YulFunctionCall", - "src": "1595:12:7" + "src": "1595:12:9" }, "nodeType": "YulExpressionStatement", - "src": "1595:12:7" + "src": "1595:12:9" } ] }, @@ -35215,12 +43086,12 @@ { "name": "offset", "nodeType": "YulIdentifier", - "src": "1565:6:7" + "src": "1565:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1573:18:7", + "src": "1573:18:9", "type": "", "value": "0xffffffffffffffff" } @@ -35228,17 +43099,17 @@ "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "1562:2:7" + "src": "1562:2:9" }, "nodeType": "YulFunctionCall", - "src": "1562:30:7" + "src": "1562:30:9" }, "nodeType": "YulIf", - "src": "1559:50:7" + "src": "1559:50:9" }, { "nodeType": "YulAssignment", - "src": "1618:60:7", + "src": "1618:60:9", "value": { "arguments": [ { @@ -35246,47 +43117,47 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "1650:9:7" + "src": "1650:9:9" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "1661:6:7" + "src": "1661:6:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1646:3:7" + "src": "1646:3:9" }, "nodeType": "YulFunctionCall", - "src": "1646:22:7" + "src": "1646:22:9" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "1670:7:7" + "src": "1670:7:9" } ], "functionName": { "name": "abi_decode_string", "nodeType": "YulIdentifier", - "src": "1628:17:7" + "src": "1628:17:9" }, "nodeType": "YulFunctionCall", - "src": "1628:50:7" + "src": "1628:50:9" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "1618:6:7" + "src": "1618:6:9" } ] }, { "nodeType": "YulAssignment", - "src": "1687:42:7", + "src": "1687:42:9", "value": { "arguments": [ { @@ -35294,12 +43165,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "1714:9:7" + "src": "1714:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1725:2:7", + "src": "1725:2:9", "type": "", "value": "32" } @@ -35307,25 +43178,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1710:3:7" + "src": "1710:3:9" }, "nodeType": "YulFunctionCall", - "src": "1710:18:7" + "src": "1710:18:9" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "1697:12:7" + "src": "1697:12:9" }, "nodeType": "YulFunctionCall", - "src": "1697:32:7" + "src": "1697:32:9" }, "variableNames": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "1687:6:7" + "src": "1687:6:9" } ] } @@ -35337,13 +43208,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "1400:9:7", + "src": "1400:9:9", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "1411:7:7", + "src": "1411:7:9", "type": "" } ], @@ -35351,30 +43222,30 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "1423:6:7", + "src": "1423:6:9", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "1431:6:7", + "src": "1431:6:9", "type": "" } ], - "src": "1345:390:7" + "src": "1345:390:9" }, { "body": { "nodeType": "YulBlock", - "src": "1806:184:7", + "src": "1806:184:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "1816:10:7", + "src": "1816:10:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "1825:1:7", + "src": "1825:1:9", "type": "", "value": "0" }, @@ -35382,7 +43253,7 @@ { "name": "i", "nodeType": "YulTypedName", - "src": "1820:1:7", + "src": "1820:1:9", "type": "" } ] @@ -35390,7 +43261,7 @@ { "body": { "nodeType": "YulBlock", - "src": "1885:63:7", + "src": "1885:63:9", "statements": [ { "expression": { @@ -35400,21 +43271,21 @@ { "name": "dst", "nodeType": "YulIdentifier", - "src": "1910:3:7" + "src": "1910:3:9" }, { "name": "i", "nodeType": "YulIdentifier", - "src": "1915:1:7" + "src": "1915:1:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1906:3:7" + "src": "1906:3:9" }, "nodeType": "YulFunctionCall", - "src": "1906:11:7" + "src": "1906:11:9" }, { "arguments": [ @@ -35423,42 +43294,42 @@ { "name": "src", "nodeType": "YulIdentifier", - "src": "1929:3:7" + "src": "1929:3:9" }, { "name": "i", "nodeType": "YulIdentifier", - "src": "1934:1:7" + "src": "1934:1:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1925:3:7" + "src": "1925:3:9" }, "nodeType": "YulFunctionCall", - "src": "1925:11:7" + "src": "1925:11:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "1919:5:7" + "src": "1919:5:9" }, "nodeType": "YulFunctionCall", - "src": "1919:18:7" + "src": "1919:18:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "1899:6:7" + "src": "1899:6:9" }, "nodeType": "YulFunctionCall", - "src": "1899:39:7" + "src": "1899:39:9" }, "nodeType": "YulExpressionStatement", - "src": "1899:39:7" + "src": "1899:39:9" } ] }, @@ -35467,41 +43338,41 @@ { "name": "i", "nodeType": "YulIdentifier", - "src": "1846:1:7" + "src": "1846:1:9" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "1849:6:7" + "src": "1849:6:9" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "1843:2:7" + "src": "1843:2:9" }, "nodeType": "YulFunctionCall", - "src": "1843:13:7" + "src": "1843:13:9" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", - "src": "1857:19:7", + "src": "1857:19:9", "statements": [ { "nodeType": "YulAssignment", - "src": "1859:15:7", + "src": "1859:15:9", "value": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", - "src": "1868:1:7" + "src": "1868:1:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1871:2:7", + "src": "1871:2:9", "type": "", "value": "32" } @@ -35509,16 +43380,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1864:3:7" + "src": "1864:3:9" }, "nodeType": "YulFunctionCall", - "src": "1864:10:7" + "src": "1864:10:9" }, "variableNames": [ { "name": "i", "nodeType": "YulIdentifier", - "src": "1859:1:7" + "src": "1859:1:9" } ] } @@ -35526,10 +43397,10 @@ }, "pre": { "nodeType": "YulBlock", - "src": "1839:3:7", + "src": "1839:3:9", "statements": [] }, - "src": "1835:113:7" + "src": "1835:113:9" }, { "expression": { @@ -35539,26 +43410,26 @@ { "name": "dst", "nodeType": "YulIdentifier", - "src": "1968:3:7" + "src": "1968:3:9" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "1973:6:7" + "src": "1973:6:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1964:3:7" + "src": "1964:3:9" }, "nodeType": "YulFunctionCall", - "src": "1964:16:7" + "src": "1964:16:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1982:1:7", + "src": "1982:1:9", "type": "", "value": "0" } @@ -35566,13 +43437,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "1957:6:7" + "src": "1957:6:9" }, "nodeType": "YulFunctionCall", - "src": "1957:27:7" + "src": "1957:27:9" }, "nodeType": "YulExpressionStatement", - "src": "1957:27:7" + "src": "1957:27:9" } ] }, @@ -35582,53 +43453,53 @@ { "name": "src", "nodeType": "YulTypedName", - "src": "1784:3:7", + "src": "1784:3:9", "type": "" }, { "name": "dst", "nodeType": "YulTypedName", - "src": "1789:3:7", + "src": "1789:3:9", "type": "" }, { "name": "length", "nodeType": "YulTypedName", - "src": "1794:6:7", + "src": "1794:6:9", "type": "" } ], - "src": "1740:250:7" + "src": "1740:250:9" }, { "body": { "nodeType": "YulBlock", - "src": "2045:221:7", + "src": "2045:221:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "2055:26:7", + "src": "2055:26:9", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "2075:5:7" + "src": "2075:5:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "2069:5:7" + "src": "2069:5:9" }, "nodeType": "YulFunctionCall", - "src": "2069:12:7" + "src": "2069:12:9" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", - "src": "2059:6:7", + "src": "2059:6:9", "type": "" } ] @@ -35639,24 +43510,24 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "2097:3:7" + "src": "2097:3:9" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "2102:6:7" + "src": "2102:6:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "2090:6:7" + "src": "2090:6:9" }, "nodeType": "YulFunctionCall", - "src": "2090:19:7" + "src": "2090:19:9" }, "nodeType": "YulExpressionStatement", - "src": "2090:19:7" + "src": "2090:19:9" }, { "expression": { @@ -35666,12 +43537,12 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "2157:5:7" + "src": "2157:5:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2164:4:7", + "src": "2164:4:9", "type": "", "value": "0x20" } @@ -35679,22 +43550,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2153:3:7" + "src": "2153:3:9" }, "nodeType": "YulFunctionCall", - "src": "2153:16:7" + "src": "2153:16:9" }, { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "2175:3:7" + "src": "2175:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2180:4:7", + "src": "2180:4:9", "type": "", "value": "0x20" } @@ -35702,31 +43573,31 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2171:3:7" + "src": "2171:3:9" }, "nodeType": "YulFunctionCall", - "src": "2171:14:7" + "src": "2171:14:9" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "2187:6:7" + "src": "2187:6:9" } ], "functionName": { "name": "copy_memory_to_memory_with_cleanup", "nodeType": "YulIdentifier", - "src": "2118:34:7" + "src": "2118:34:9" }, "nodeType": "YulFunctionCall", - "src": "2118:76:7" + "src": "2118:76:9" }, "nodeType": "YulExpressionStatement", - "src": "2118:76:7" + "src": "2118:76:9" }, { "nodeType": "YulAssignment", - "src": "2203:57:7", + "src": "2203:57:9", "value": { "arguments": [ { @@ -35734,7 +43605,7 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "2218:3:7" + "src": "2218:3:9" }, { "arguments": [ @@ -35743,12 +43614,12 @@ { "name": "length", "nodeType": "YulIdentifier", - "src": "2231:6:7" + "src": "2231:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2239:2:7", + "src": "2239:2:9", "type": "", "value": "31" } @@ -35756,17 +43627,17 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2227:3:7" + "src": "2227:3:9" }, "nodeType": "YulFunctionCall", - "src": "2227:15:7" + "src": "2227:15:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "2248:2:7", + "src": "2248:2:9", "type": "", "value": "31" } @@ -35774,33 +43645,33 @@ "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "2244:3:7" + "src": "2244:3:9" }, "nodeType": "YulFunctionCall", - "src": "2244:7:7" + "src": "2244:7:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "2223:3:7" + "src": "2223:3:9" }, "nodeType": "YulFunctionCall", - "src": "2223:29:7" + "src": "2223:29:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2214:3:7" + "src": "2214:3:9" }, "nodeType": "YulFunctionCall", - "src": "2214:39:7" + "src": "2214:39:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2255:4:7", + "src": "2255:4:9", "type": "", "value": "0x20" } @@ -35808,16 +43679,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2210:3:7" + "src": "2210:3:9" }, "nodeType": "YulFunctionCall", - "src": "2210:50:7" + "src": "2210:50:9" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "2203:3:7" + "src": "2203:3:9" } ] } @@ -35829,13 +43700,13 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "2022:5:7", + "src": "2022:5:9", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "2029:3:7", + "src": "2029:3:9", "type": "" } ], @@ -35843,16 +43714,120 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "2037:3:7", + "src": "2037:3:9", + "type": "" + } + ], + "src": "1995:271:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2315:60:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2332:3:9" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2341:5:9" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2356:3:9", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2361:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "2352:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2352:11:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2365:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2348:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2348:19:9" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2337:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2337:31:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2325:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "2325:44:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2325:44:9" + } + ] + }, + "name": "abi_encode_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2299:5:9", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2306:3:9", "type": "" } ], - "src": "1995:271:7" + "src": "2271:104:9" }, { "body": { "nodeType": "YulBlock", - "src": "2303:95:7", + "src": "2412:95:9", "statements": [ { "expression": { @@ -35860,7 +43835,7 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "2320:1:7", + "src": "2429:1:9", "type": "", "value": "0" }, @@ -35869,14 +43844,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "2327:3:7", + "src": "2436:3:9", "type": "", "value": "224" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2332:10:7", + "src": "2441:10:9", "type": "", "value": "0x4e487b71" } @@ -35884,22 +43859,22 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "2323:3:7" + "src": "2432:3:9" }, "nodeType": "YulFunctionCall", - "src": "2323:20:7" + "src": "2432:20:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "2313:6:7" + "src": "2422:6:9" }, "nodeType": "YulFunctionCall", - "src": "2313:31:7" + "src": "2422:31:9" }, "nodeType": "YulExpressionStatement", - "src": "2313:31:7" + "src": "2422:31:9" }, { "expression": { @@ -35907,14 +43882,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "2360:1:7", + "src": "2469:1:9", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2363:4:7", + "src": "2472:4:9", "type": "", "value": "0x21" } @@ -35922,13 +43897,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "2353:6:7" + "src": "2462:6:9" }, "nodeType": "YulFunctionCall", - "src": "2353:15:7" + "src": "2462:15:9" }, "nodeType": "YulExpressionStatement", - "src": "2353:15:7" + "src": "2462:15:9" }, { "expression": { @@ -35936,14 +43911,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "2384:1:7", + "src": "2493:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2387:4:7", + "src": "2496:4:9", "type": "", "value": "0x24" } @@ -35951,29 +43926,29 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "2377:6:7" + "src": "2486:6:9" }, "nodeType": "YulFunctionCall", - "src": "2377:15:7" + "src": "2486:15:9" }, "nodeType": "YulExpressionStatement", - "src": "2377:15:7" + "src": "2486:15:9" } ] }, "name": "panic_error_0x21", "nodeType": "YulFunctionDefinition", - "src": "2271:127:7" + "src": "2380:127:9" }, { "body": { "nodeType": "YulBlock", - "src": "2455:186:7", + "src": "2564:186:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "2497:111:7", + "src": "2606:111:9", "statements": [ { "expression": { @@ -35981,7 +43956,7 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "2518:1:7", + "src": "2627:1:9", "type": "", "value": "0" }, @@ -35990,14 +43965,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "2525:3:7", + "src": "2634:3:9", "type": "", "value": "224" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2530:10:7", + "src": "2639:10:9", "type": "", "value": "0x4e487b71" } @@ -36005,22 +43980,22 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "2521:3:7" + "src": "2630:3:9" }, "nodeType": "YulFunctionCall", - "src": "2521:20:7" + "src": "2630:20:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "2511:6:7" + "src": "2620:6:9" }, "nodeType": "YulFunctionCall", - "src": "2511:31:7" + "src": "2620:31:9" }, "nodeType": "YulExpressionStatement", - "src": "2511:31:7" + "src": "2620:31:9" }, { "expression": { @@ -36028,14 +44003,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "2562:1:7", + "src": "2671:1:9", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2565:4:7", + "src": "2674:4:9", "type": "", "value": "0x21" } @@ -36043,13 +44018,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "2555:6:7" + "src": "2664:6:9" }, "nodeType": "YulFunctionCall", - "src": "2555:15:7" + "src": "2664:15:9" }, "nodeType": "YulExpressionStatement", - "src": "2555:15:7" + "src": "2664:15:9" }, { "expression": { @@ -36057,14 +44032,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "2590:1:7", + "src": "2699:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2593:4:7", + "src": "2702:4:9", "type": "", "value": "0x24" } @@ -36072,13 +44047,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "2583:6:7" + "src": "2692:6:9" }, "nodeType": "YulFunctionCall", - "src": "2583:15:7" + "src": "2692:15:9" }, "nodeType": "YulExpressionStatement", - "src": "2583:15:7" + "src": "2692:15:9" } ] }, @@ -36089,12 +44064,12 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "2478:5:7" + "src": "2587:5:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2485:1:7", + "src": "2594:1:9", "type": "", "value": "4" } @@ -36102,22 +44077,22 @@ "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "2475:2:7" + "src": "2584:2:9" }, "nodeType": "YulFunctionCall", - "src": "2475:12:7" + "src": "2584:12:9" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "2468:6:7" + "src": "2577:6:9" }, "nodeType": "YulFunctionCall", - "src": "2468:20:7" + "src": "2577:20:9" }, "nodeType": "YulIf", - "src": "2465:143:7" + "src": "2574:143:9" }, { "expression": { @@ -36125,24 +44100,24 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "2624:3:7" + "src": "2733:3:9" }, { "name": "value", "nodeType": "YulIdentifier", - "src": "2629:5:7" + "src": "2738:5:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "2617:6:7" + "src": "2726:6:9" }, "nodeType": "YulFunctionCall", - "src": "2617:18:7" + "src": "2726:18:9" }, "nodeType": "YulExpressionStatement", - "src": "2617:18:7" + "src": "2726:18:9" } ] }, @@ -36152,22 +44127,90 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "2439:5:7", + "src": "2548:5:9", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "2446:3:7", + "src": "2555:3:9", "type": "" } ], - "src": "2403:238:7" + "src": "2512:238:9" }, { "body": { "nodeType": "YulBlock", - "src": "2797:848:7", + "src": "2797:33:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2806:3:9" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2815:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2822:4:9", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2811:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2811:16:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2799:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "2799:29:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2799:29:9" + } + ] + }, + "name": "abi_encode_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2781:5:9", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2788:3:9", + "type": "" + } + ], + "src": "2755:75:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2986:996:9", "statements": [ { "expression": { @@ -36175,12 +44218,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "2814:9:7" + "src": "3003:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2825:2:7", + "src": "3014:2:9", "type": "", "value": "32" } @@ -36188,13 +44231,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "2807:6:7" + "src": "2996:6:9" }, "nodeType": "YulFunctionCall", - "src": "2807:21:7" + "src": "2996:21:9" }, "nodeType": "YulExpressionStatement", - "src": "2807:21:7" + "src": "2996:21:9" }, { "expression": { @@ -36204,12 +44247,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "2848:9:7" + "src": "3037:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2859:2:7", + "src": "3048:2:9", "type": "", "value": "32" } @@ -36217,42 +44260,42 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2844:3:7" + "src": "3033:3:9" }, "nodeType": "YulFunctionCall", - "src": "2844:18:7" + "src": "3033:18:9" }, { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "2870:6:7" + "src": "3059:6:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "2864:5:7" + "src": "3053:5:9" }, "nodeType": "YulFunctionCall", - "src": "2864:13:7" + "src": "3053:13:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "2837:6:7" + "src": "3026:6:9" }, "nodeType": "YulFunctionCall", - "src": "2837:41:7" + "src": "3026:41:9" }, "nodeType": "YulExpressionStatement", - "src": "2837:41:7" + "src": "3026:41:9" }, { "nodeType": "YulVariableDeclaration", - "src": "2887:42:7", + "src": "3076:42:9", "value": { "arguments": [ { @@ -36260,12 +44303,12 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "2917:6:7" + "src": "3106:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2925:2:7", + "src": "3114:2:9", "type": "", "value": "32" } @@ -36273,25 +44316,44 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2913:3:7" + "src": "3102:3:9" }, "nodeType": "YulFunctionCall", - "src": "2913:15:7" + "src": "3102:15:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "2907:5:7" + "src": "3096:5:9" }, "nodeType": "YulFunctionCall", - "src": "2907:22:7" + "src": "3096:22:9" }, "variables": [ { "name": "memberValue0", "nodeType": "YulTypedName", - "src": "2891:12:7", + "src": "3080:12:9", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3127:16:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3137:6:9", + "type": "", + "value": "0x0100" + }, + "variables": [ + { + "name": "_1", + "nodeType": "YulTypedName", + "src": "3131:2:9", "type": "" } ] @@ -36304,12 +44366,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "2949:9:7" + "src": "3163:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2960:2:7", + "src": "3174:2:9", "type": "", "value": "64" } @@ -36317,178 +44379,247 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2945:3:7" + "src": "3159:3:9" }, "nodeType": "YulFunctionCall", - "src": "2945:18:7" + "src": "3159:18:9" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2965:4:7", - "type": "", - "value": "0xe0" + "name": "_1", + "nodeType": "YulIdentifier", + "src": "3179:2:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "2938:6:7" + "src": "3152:6:9" }, "nodeType": "YulFunctionCall", - "src": "2938:32:7" + "src": "3152:30:9" }, "nodeType": "YulExpressionStatement", - "src": "2938:32:7" + "src": "3152:30:9" }, { "nodeType": "YulVariableDeclaration", - "src": "2979:66:7", + "src": "3191:66:9", "value": { "arguments": [ { "name": "memberValue0", "nodeType": "YulIdentifier", - "src": "3011:12:7" + "src": "3223:12:9" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3029:9:7" + "src": "3241:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3040:3:7", + "src": "3252:3:9", "type": "", - "value": "256" + "value": "288" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3025:3:7" + "src": "3237:3:9" }, "nodeType": "YulFunctionCall", - "src": "3025:19:7" + "src": "3237:19:9" } ], "functionName": { "name": "abi_encode_string", "nodeType": "YulIdentifier", - "src": "2993:17:7" + "src": "3205:17:9" }, "nodeType": "YulFunctionCall", - "src": "2993:52:7" + "src": "3205:52:9" }, "variables": [ { "name": "tail_1", "nodeType": "YulTypedName", - "src": "2983:6:7", + "src": "3195:6:9", "type": "" } ] }, { - "nodeType": "YulVariableDeclaration", - "src": "3054:44:7", - "value": { + "expression": { "arguments": [ { "arguments": [ { - "name": "value0", + "name": "headStart", "nodeType": "YulIdentifier", - "src": "3086:6:7" + "src": "3277:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3094:2:7", + "src": "3288:2:9", "type": "", - "value": "64" + "value": "96" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3082:3:7" + "src": "3273:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3273:18:9" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3307:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3315:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3303:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3303:15:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3297:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "3297:22:9" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3329:3:9", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3334:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "3325:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3325:11:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3338:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3321:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3321:19:9" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3293:3:9" }, "nodeType": "YulFunctionCall", - "src": "3082:15:7" + "src": "3293:48:9" } ], "functionName": { - "name": "mload", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "3076:5:7" + "src": "3266:6:9" }, "nodeType": "YulFunctionCall", - "src": "3076:22:7" + "src": "3266:76:9" }, - "variables": [ - { - "name": "memberValue0_1", - "nodeType": "YulTypedName", - "src": "3058:14:7", - "type": "" - } - ] + "nodeType": "YulExpressionStatement", + "src": "3266:76:9" }, { "nodeType": "YulVariableDeclaration", - "src": "3107:29:7", + "src": "3351:44:9", "value": { "arguments": [ { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3125:3:7", - "type": "", - "value": "160" + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3383:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3130:1:7", + "src": "3391:2:9", "type": "", - "value": "1" + "value": "96" } ], "functionName": { - "name": "shl", + "name": "add", "nodeType": "YulIdentifier", - "src": "3121:3:7" + "src": "3379:3:9" }, "nodeType": "YulFunctionCall", - "src": "3121:11:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3134:1:7", - "type": "", - "value": "1" + "src": "3379:15:9" } ], "functionName": { - "name": "sub", + "name": "mload", "nodeType": "YulIdentifier", - "src": "3117:3:7" + "src": "3373:5:9" }, "nodeType": "YulFunctionCall", - "src": "3117:19:7" + "src": "3373:22:9" }, "variables": [ { - "name": "_1", + "name": "memberValue0_1", "nodeType": "YulTypedName", - "src": "3111:2:7", + "src": "3355:14:9", "type": "" } ] @@ -36496,65 +44627,49 @@ { "expression": { "arguments": [ + { + "name": "memberValue0_1", + "nodeType": "YulIdentifier", + "src": "3431:14:9" + }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3156:9:7" + "src": "3451:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3167:2:7", + "src": "3462:3:9", "type": "", - "value": "96" + "value": "128" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3152:3:7" + "src": "3447:3:9" }, "nodeType": "YulFunctionCall", - "src": "3152:18:7" - }, - { - "arguments": [ - { - "name": "memberValue0_1", - "nodeType": "YulIdentifier", - "src": "3176:14:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "3192:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "3172:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3172:23:7" + "src": "3447:19:9" } ], "functionName": { - "name": "mstore", + "name": "abi_encode_enum_TaskStatus", "nodeType": "YulIdentifier", - "src": "3145:6:7" + "src": "3404:26:9" }, "nodeType": "YulFunctionCall", - "src": "3145:51:7" + "src": "3404:63:9" }, "nodeType": "YulExpressionStatement", - "src": "3145:51:7" + "src": "3404:63:9" }, { "nodeType": "YulVariableDeclaration", - "src": "3205:44:7", + "src": "3476:45:9", "value": { "arguments": [ { @@ -36562,38 +44677,38 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "3237:6:7" + "src": "3508:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3245:2:7", + "src": "3516:3:9", "type": "", - "value": "96" + "value": "128" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3233:3:7" + "src": "3504:3:9" }, "nodeType": "YulFunctionCall", - "src": "3233:15:7" + "src": "3504:16:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "3227:5:7" + "src": "3498:5:9" }, "nodeType": "YulFunctionCall", - "src": "3227:22:7" + "src": "3498:23:9" }, "variables": [ { "name": "memberValue0_2", "nodeType": "YulTypedName", - "src": "3209:14:7", + "src": "3480:14:9", "type": "" } ] @@ -36604,57 +44719,19 @@ { "name": "memberValue0_2", "nodeType": "YulIdentifier", - "src": "3285:14:7" + "src": "3549:14:9" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3305:9:7" + "src": "3569:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3316:3:7", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3301:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3301:19:7" - } - ], - "functionName": { - "name": "abi_encode_enum_TaskStatus", - "nodeType": "YulIdentifier", - "src": "3258:26:7" - }, - "nodeType": "YulFunctionCall", - "src": "3258:63:7" - }, - "nodeType": "YulExpressionStatement", - "src": "3258:63:7" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3341:9:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3352:3:7", + "src": "3580:3:9", "type": "", "value": "160" } @@ -36662,72 +44739,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3337:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3337:19:7" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3372:6:7" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3380:3:7", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3368:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "3368:16:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "3362:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "3362:23:7" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "3387:2:7" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "3358:3:7" + "src": "3565:3:9" }, "nodeType": "YulFunctionCall", - "src": "3358:32:7" + "src": "3565:19:9" } ], "functionName": { - "name": "mstore", + "name": "abi_encode_address", "nodeType": "YulIdentifier", - "src": "3330:6:7" + "src": "3530:18:9" }, "nodeType": "YulFunctionCall", - "src": "3330:61:7" + "src": "3530:55:9" }, "nodeType": "YulExpressionStatement", - "src": "3330:61:7" + "src": "3530:55:9" }, { "expression": { @@ -36737,12 +44764,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3411:9:7" + "src": "3605:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3422:3:7", + "src": "3616:3:9", "type": "", "value": "192" } @@ -36750,10 +44777,10 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3407:3:7" + "src": "3601:3:9" }, "nodeType": "YulFunctionCall", - "src": "3407:19:7" + "src": "3601:19:9" }, { "arguments": [ @@ -36762,12 +44789,12 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "3438:6:7" + "src": "3632:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3446:3:7", + "src": "3640:3:9", "type": "", "value": "160" } @@ -36775,35 +44802,35 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3434:3:7" + "src": "3628:3:9" }, "nodeType": "YulFunctionCall", - "src": "3434:16:7" + "src": "3628:16:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "3428:5:7" + "src": "3622:5:9" }, "nodeType": "YulFunctionCall", - "src": "3428:23:7" + "src": "3622:23:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "3400:6:7" + "src": "3594:6:9" }, "nodeType": "YulFunctionCall", - "src": "3400:52:7" + "src": "3594:52:9" }, "nodeType": "YulExpressionStatement", - "src": "3400:52:7" + "src": "3594:52:9" }, { "nodeType": "YulVariableDeclaration", - "src": "3461:45:7", + "src": "3655:45:9", "value": { "arguments": [ { @@ -36811,12 +44838,12 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "3493:6:7" + "src": "3687:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3501:3:7", + "src": "3695:3:9", "type": "", "value": "192" } @@ -36824,25 +44851,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3489:3:7" + "src": "3683:3:9" }, "nodeType": "YulFunctionCall", - "src": "3489:16:7" + "src": "3683:16:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "3483:5:7" + "src": "3677:5:9" }, "nodeType": "YulFunctionCall", - "src": "3483:23:7" + "src": "3677:23:9" }, "variables": [ { "name": "memberValue0_3", "nodeType": "YulTypedName", - "src": "3465:14:7", + "src": "3659:14:9", "type": "" } ] @@ -36855,23 +44882,23 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3526:9:7" + "src": "3720:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3537:4:7", + "src": "3731:3:9", "type": "", - "value": "0xe0" + "value": "224" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3522:3:7" + "src": "3716:3:9" }, "nodeType": "YulFunctionCall", - "src": "3522:20:7" + "src": "3716:19:9" }, { "arguments": [ @@ -36880,28 +44907,28 @@ { "name": "tail_1", "nodeType": "YulIdentifier", - "src": "3552:6:7" + "src": "3745:6:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3560:9:7" + "src": "3753:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "3548:3:7" + "src": "3741:3:9" }, "nodeType": "YulFunctionCall", - "src": "3548:22:7" + "src": "3741:22:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "3576:2:7", + "src": "3769:2:9", "type": "", "value": "31" } @@ -36909,79 +44936,183 @@ "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "3572:3:7" + "src": "3765:3:9" }, "nodeType": "YulFunctionCall", - "src": "3572:7:7" + "src": "3765:7:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3544:3:7" + "src": "3737:3:9" }, "nodeType": "YulFunctionCall", - "src": "3544:36:7" + "src": "3737:36:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "3515:6:7" + "src": "3709:6:9" }, "nodeType": "YulFunctionCall", - "src": "3515:66:7" + "src": "3709:65:9" }, "nodeType": "YulExpressionStatement", - "src": "3515:66:7" + "src": "3709:65:9" }, { - "nodeType": "YulAssignment", - "src": "3590:49:7", + "nodeType": "YulVariableDeclaration", + "src": "3783:55:9", "value": { "arguments": [ { "name": "memberValue0_3", "nodeType": "YulIdentifier", - "src": "3616:14:7" + "src": "3815:14:9" }, { "name": "tail_1", "nodeType": "YulIdentifier", - "src": "3632:6:7" + "src": "3831:6:9" } ], "functionName": { "name": "abi_encode_string", "nodeType": "YulIdentifier", - "src": "3598:17:7" + "src": "3797:17:9" }, "nodeType": "YulFunctionCall", - "src": "3598:41:7" + "src": "3797:41:9" + }, + "variables": [ + { + "name": "tail_2", + "nodeType": "YulTypedName", + "src": "3787:6:9", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3847:45:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3879:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3887:3:9", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3875:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3875:16:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3869:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "3869:23:9" + }, + "variables": [ + { + "name": "memberValue0_4", + "nodeType": "YulTypedName", + "src": "3851:14:9", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0_4", + "nodeType": "YulIdentifier", + "src": "3918:14:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3938:9:9" + }, + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "3949:2:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3934:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3934:18:9" + } + ], + "functionName": { + "name": "abi_encode_uint8", + "nodeType": "YulIdentifier", + "src": "3901:16:9" + }, + "nodeType": "YulFunctionCall", + "src": "3901:52:9" + }, + "nodeType": "YulExpressionStatement", + "src": "3901:52:9" + }, + { + "nodeType": "YulAssignment", + "src": "3962:14:9", + "value": { + "name": "tail_2", + "nodeType": "YulIdentifier", + "src": "3970:6:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "3590:4:7" + "src": "3962:4:9" } ] } ] }, - "name": "abi_encode_tuple_t_struct$_TaskData_$714_memory_ptr__to_t_struct$_TaskData_$714_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_struct$_TaskData_$878_memory_ptr__to_t_struct$_TaskData_$878_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "2766:9:7", + "src": "2955:9:9", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "2777:6:7", + "src": "2966:6:9", "type": "" } ], @@ -36989,21 +45120,21 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "2788:4:7", + "src": "2977:4:9", "type": "" } ], - "src": "2646:999:7" + "src": "2835:1147:9" }, { "body": { "nodeType": "YulBlock", - "src": "3720:110:7", + "src": "4057:110:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "3766:16:7", + "src": "4103:16:9", "statements": [ { "expression": { @@ -37011,14 +45142,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "3775:1:7", + "src": "4112:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3778:1:7", + "src": "4115:1:9", "type": "", "value": "0" } @@ -37026,13 +45157,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "3768:6:7" + "src": "4105:6:9" }, "nodeType": "YulFunctionCall", - "src": "3768:12:7" + "src": "4105:12:9" }, "nodeType": "YulExpressionStatement", - "src": "3768:12:7" + "src": "4105:12:9" } ] }, @@ -37043,26 +45174,26 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "3741:7:7" + "src": "4078:7:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3750:9:7" + "src": "4087:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "3737:3:7" + "src": "4074:3:9" }, "nodeType": "YulFunctionCall", - "src": "3737:23:7" + "src": "4074:23:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3762:2:7", + "src": "4099:2:9", "type": "", "value": "32" } @@ -37070,38 +45201,38 @@ "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "3733:3:7" + "src": "4070:3:9" }, "nodeType": "YulFunctionCall", - "src": "3733:32:7" + "src": "4070:32:9" }, "nodeType": "YulIf", - "src": "3730:52:7" + "src": "4067:52:9" }, { "nodeType": "YulAssignment", - "src": "3791:33:7", + "src": "4128:33:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3814:9:7" + "src": "4151:9:9" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "3801:12:7" + "src": "4138:12:9" }, "nodeType": "YulFunctionCall", - "src": "3801:23:7" + "src": "4138:23:9" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "3791:6:7" + "src": "4128:6:9" } ] } @@ -37113,13 +45244,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "3686:9:7", + "src": "4023:9:9", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "3697:7:7", + "src": "4034:7:9", "type": "" } ], @@ -37127,31 +45258,31 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "3709:6:7", + "src": "4046:6:9", "type": "" } ], - "src": "3650:180:7" + "src": "3987:180:9" }, { "body": { "nodeType": "YulBlock", - "src": "3936:102:7", + "src": "4273:102:9", "statements": [ { "nodeType": "YulAssignment", - "src": "3946:26:7", + "src": "4283:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3958:9:7" + "src": "4295:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3969:2:7", + "src": "4306:2:9", "type": "", "value": "32" } @@ -37159,16 +45290,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3954:3:7" + "src": "4291:3:9" }, "nodeType": "YulFunctionCall", - "src": "3954:18:7" + "src": "4291:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "3946:4:7" + "src": "4283:4:9" } ] }, @@ -37178,14 +45309,14 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3988:9:7" + "src": "4325:9:9" }, { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "4003:6:7" + "src": "4340:6:9" }, { "arguments": [ @@ -37194,14 +45325,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "4019:3:7", + "src": "4356:3:9", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4024:1:7", + "src": "4361:1:9", "type": "", "value": "1" } @@ -37209,15 +45340,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "4015:3:7" + "src": "4352:3:9" }, "nodeType": "YulFunctionCall", - "src": "4015:11:7" + "src": "4352:11:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4028:1:7", + "src": "4365:1:9", "type": "", "value": "1" } @@ -37225,31 +45356,31 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "4011:3:7" + "src": "4348:3:9" }, "nodeType": "YulFunctionCall", - "src": "4011:19:7" + "src": "4348:19:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "3999:3:7" + "src": "4336:3:9" }, "nodeType": "YulFunctionCall", - "src": "3999:32:7" + "src": "4336:32:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "3981:6:7" + "src": "4318:6:9" }, "nodeType": "YulFunctionCall", - "src": "3981:51:7" + "src": "4318:51:9" }, "nodeType": "YulExpressionStatement", - "src": "3981:51:7" + "src": "4318:51:9" } ] }, @@ -37259,13 +45390,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "3905:9:7", + "src": "4242:9:9", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "3916:6:7", + "src": "4253:6:9", "type": "" } ], @@ -37273,31 +45404,31 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "3927:4:7", + "src": "4264:4:9", "type": "" } ], - "src": "3835:203:7" + "src": "4172:203:9" }, { "body": { "nodeType": "YulBlock", - "src": "4166:102:7", + "src": "4503:102:9", "statements": [ { "nodeType": "YulAssignment", - "src": "4176:26:7", + "src": "4513:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4188:9:7" + "src": "4525:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4199:2:7", + "src": "4536:2:9", "type": "", "value": "32" } @@ -37305,16 +45436,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4184:3:7" + "src": "4521:3:9" }, "nodeType": "YulFunctionCall", - "src": "4184:18:7" + "src": "4521:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "4176:4:7" + "src": "4513:4:9" } ] }, @@ -37324,14 +45455,14 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4218:9:7" + "src": "4555:9:9" }, { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "4233:6:7" + "src": "4570:6:9" }, { "arguments": [ @@ -37340,14 +45471,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "4249:3:7", + "src": "4586:3:9", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4254:1:7", + "src": "4591:1:9", "type": "", "value": "1" } @@ -37355,15 +45486,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "4245:3:7" + "src": "4582:3:9" }, "nodeType": "YulFunctionCall", - "src": "4245:11:7" + "src": "4582:11:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4258:1:7", + "src": "4595:1:9", "type": "", "value": "1" } @@ -37371,47 +45502,47 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "4241:3:7" + "src": "4578:3:9" }, "nodeType": "YulFunctionCall", - "src": "4241:19:7" + "src": "4578:19:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "4229:3:7" + "src": "4566:3:9" }, "nodeType": "YulFunctionCall", - "src": "4229:32:7" + "src": "4566:32:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "4211:6:7" + "src": "4548:6:9" }, "nodeType": "YulFunctionCall", - "src": "4211:51:7" + "src": "4548:51:9" }, "nodeType": "YulExpressionStatement", - "src": "4211:51:7" + "src": "4548:51:9" } ] }, - "name": "abi_encode_tuple_t_contract$_AgentsRegistry_$506__to_t_address__fromStack_reversed", + "name": "abi_encode_tuple_t_contract$_AgentsRegistry_$670__to_t_address__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "4135:9:7", + "src": "4472:9:9", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "4146:6:7", + "src": "4483:6:9", "type": "" } ], @@ -37419,21 +45550,21 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "4157:4:7", + "src": "4494:4:9", "type": "" } ], - "src": "4043:225:7" + "src": "4380:225:9" }, { "body": { "nodeType": "YulBlock", - "src": "4318:86:7", + "src": "4655:86:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "4382:16:7", + "src": "4719:16:9", "statements": [ { "expression": { @@ -37441,14 +45572,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "4391:1:7", + "src": "4728:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4394:1:7", + "src": "4731:1:9", "type": "", "value": "0" } @@ -37456,13 +45587,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "4384:6:7" + "src": "4721:6:9" }, "nodeType": "YulFunctionCall", - "src": "4384:12:7" + "src": "4721:12:9" }, "nodeType": "YulExpressionStatement", - "src": "4384:12:7" + "src": "4721:12:9" } ] }, @@ -37473,14 +45604,14 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "4341:5:7" + "src": "4678:5:9" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "4352:5:7" + "src": "4689:5:9" }, { "arguments": [ @@ -37489,14 +45620,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "4367:3:7", + "src": "4704:3:9", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4372:1:7", + "src": "4709:1:9", "type": "", "value": "1" } @@ -37504,15 +45635,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "4363:3:7" + "src": "4700:3:9" }, "nodeType": "YulFunctionCall", - "src": "4363:11:7" + "src": "4700:11:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4376:1:7", + "src": "4713:1:9", "type": "", "value": "1" } @@ -37520,40 +45651,40 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "4359:3:7" + "src": "4696:3:9" }, "nodeType": "YulFunctionCall", - "src": "4359:19:7" + "src": "4696:19:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "4348:3:7" + "src": "4685:3:9" }, "nodeType": "YulFunctionCall", - "src": "4348:31:7" + "src": "4685:31:9" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "4338:2:7" + "src": "4675:2:9" }, "nodeType": "YulFunctionCall", - "src": "4338:42:7" + "src": "4675:42:9" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "4331:6:7" + "src": "4668:6:9" }, "nodeType": "YulFunctionCall", - "src": "4331:50:7" + "src": "4668:50:9" }, "nodeType": "YulIf", - "src": "4328:70:7" + "src": "4665:70:9" } ] }, @@ -37563,21 +45694,21 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "4307:5:7", + "src": "4644:5:9", "type": "" } ], - "src": "4273:131:7" + "src": "4610:131:9" }, { "body": { "nodeType": "YulBlock", - "src": "4496:228:7", + "src": "4833:228:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "4542:16:7", + "src": "4879:16:9", "statements": [ { "expression": { @@ -37585,14 +45716,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "4551:1:7", + "src": "4888:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4554:1:7", + "src": "4891:1:9", "type": "", "value": "0" } @@ -37600,13 +45731,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "4544:6:7" + "src": "4881:6:9" }, "nodeType": "YulFunctionCall", - "src": "4544:12:7" + "src": "4881:12:9" }, "nodeType": "YulExpressionStatement", - "src": "4544:12:7" + "src": "4881:12:9" } ] }, @@ -37617,26 +45748,26 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "4517:7:7" + "src": "4854:7:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4526:9:7" + "src": "4863:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "4513:3:7" + "src": "4850:3:9" }, "nodeType": "YulFunctionCall", - "src": "4513:23:7" + "src": "4850:23:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4538:2:7", + "src": "4875:2:9", "type": "", "value": "64" } @@ -37644,38 +45775,38 @@ "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "4509:3:7" + "src": "4846:3:9" }, "nodeType": "YulFunctionCall", - "src": "4509:32:7" + "src": "4846:32:9" }, "nodeType": "YulIf", - "src": "4506:52:7" + "src": "4843:52:9" }, { "nodeType": "YulVariableDeclaration", - "src": "4567:36:7", + "src": "4904:36:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4593:9:7" + "src": "4930:9:9" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "4580:12:7" + "src": "4917:12:9" }, "nodeType": "YulFunctionCall", - "src": "4580:23:7" + "src": "4917:23:9" }, "variables": [ { "name": "value", "nodeType": "YulTypedName", - "src": "4571:5:7", + "src": "4908:5:9", "type": "" } ] @@ -37686,39 +45817,39 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "4637:5:7" + "src": "4974:5:9" } ], "functionName": { "name": "validator_revert_address", "nodeType": "YulIdentifier", - "src": "4612:24:7" + "src": "4949:24:9" }, "nodeType": "YulFunctionCall", - "src": "4612:31:7" + "src": "4949:31:9" }, "nodeType": "YulExpressionStatement", - "src": "4612:31:7" + "src": "4949:31:9" }, { "nodeType": "YulAssignment", - "src": "4652:15:7", + "src": "4989:15:9", "value": { "name": "value", "nodeType": "YulIdentifier", - "src": "4662:5:7" + "src": "4999:5:9" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "4652:6:7" + "src": "4989:6:9" } ] }, { "nodeType": "YulAssignment", - "src": "4676:42:7", + "src": "5013:42:9", "value": { "arguments": [ { @@ -37726,12 +45857,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4703:9:7" + "src": "5040:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4714:2:7", + "src": "5051:2:9", "type": "", "value": "32" } @@ -37739,25 +45870,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4699:3:7" + "src": "5036:3:9" }, "nodeType": "YulFunctionCall", - "src": "4699:18:7" + "src": "5036:18:9" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "4686:12:7" + "src": "5023:12:9" }, "nodeType": "YulFunctionCall", - "src": "4686:32:7" + "src": "5023:32:9" }, "variableNames": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "4676:6:7" + "src": "5013:6:9" } ] } @@ -37769,13 +45900,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "4454:9:7", + "src": "4791:9:9", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "4465:7:7", + "src": "4802:7:9", "type": "" } ], @@ -37783,37 +45914,37 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "4477:6:7", + "src": "4814:6:9", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "4485:6:7", + "src": "4822:6:9", "type": "" } ], - "src": "4409:315:7" + "src": "4746:315:9" }, { "body": { "nodeType": "YulBlock", - "src": "4830:76:7", + "src": "5167:76:9", "statements": [ { "nodeType": "YulAssignment", - "src": "4840:26:7", + "src": "5177:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4852:9:7" + "src": "5189:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4863:2:7", + "src": "5200:2:9", "type": "", "value": "32" } @@ -37821,16 +45952,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4848:3:7" + "src": "5185:3:9" }, "nodeType": "YulFunctionCall", - "src": "4848:18:7" + "src": "5185:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "4840:4:7" + "src": "5177:4:9" } ] }, @@ -37840,24 +45971,24 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4882:9:7" + "src": "5219:9:9" }, { "name": "value0", "nodeType": "YulIdentifier", - "src": "4893:6:7" + "src": "5230:6:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "4875:6:7" + "src": "5212:6:9" }, "nodeType": "YulFunctionCall", - "src": "4875:25:7" + "src": "5212:25:9" }, "nodeType": "YulExpressionStatement", - "src": "4875:25:7" + "src": "5212:25:9" } ] }, @@ -37867,13 +45998,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "4799:9:7", + "src": "5136:9:9", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "4810:6:7", + "src": "5147:6:9", "type": "" } ], @@ -37881,31 +46012,31 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "4821:4:7", + "src": "5158:4:9", "type": "" } ], - "src": "4729:177:7" + "src": "5066:177:9" }, { "body": { "nodeType": "YulBlock", - "src": "5024:96:7", + "src": "5361:96:9", "statements": [ { "nodeType": "YulAssignment", - "src": "5034:26:7", + "src": "5371:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "5046:9:7" + "src": "5383:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5057:2:7", + "src": "5394:2:9", "type": "", "value": "32" } @@ -37913,16 +46044,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5042:3:7" + "src": "5379:3:9" }, "nodeType": "YulFunctionCall", - "src": "5042:18:7" + "src": "5379:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "5034:4:7" + "src": "5371:4:9" } ] }, @@ -37932,40 +46063,40 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "5096:6:7" + "src": "5433:6:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "5104:9:7" + "src": "5441:9:9" } ], "functionName": { "name": "abi_encode_enum_TaskStatus", "nodeType": "YulIdentifier", - "src": "5069:26:7" + "src": "5406:26:9" }, "nodeType": "YulFunctionCall", - "src": "5069:45:7" + "src": "5406:45:9" }, "nodeType": "YulExpressionStatement", - "src": "5069:45:7" + "src": "5406:45:9" } ] }, - "name": "abi_encode_tuple_t_enum$_TaskStatus_$698__to_t_uint8__fromStack_reversed", + "name": "abi_encode_tuple_t_enum$_TaskStatus_$860__to_t_uint8__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "4993:9:7", + "src": "5330:9:9", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "5004:6:7", + "src": "5341:6:9", "type": "" } ], @@ -37973,21 +46104,316 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "5015:4:7", + "src": "5352:4:9", + "type": "" + } + ], + "src": "5248:209:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5547:252:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5593:16:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5602:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5605:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5595:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "5595:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "5595:12:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5568:7:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5577:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5564:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "5564:23:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5589:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5560:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "5560:32:9" + }, + "nodeType": "YulIf", + "src": "5557:52:9" + }, + { + "nodeType": "YulAssignment", + "src": "5618:33:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5641:9:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "5628:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "5628:23:9" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5618:6:9" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5660:45:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5690:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5701:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5686:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "5686:18:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "5673:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "5673:32:9" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5664:5:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5753:16:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5762:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5765:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5755:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "5755:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "5755:12:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5727:5:9" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5738:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5745:4:9", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5734:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "5734:16:9" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "5724:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "5724:27:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5717:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "5717:35:9" + }, + "nodeType": "YulIf", + "src": "5714:55:9" + }, + { + "nodeType": "YulAssignment", + "src": "5778:15:9", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5788:5:9" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5778:6:9" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5505:9:9", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5516:7:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5528:6:9", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5536:6:9", "type": "" } ], - "src": "4911:209:7" + "src": "5462:337:9" }, { "body": { "nodeType": "YulBlock", - "src": "5195:177:7", + "src": "5874:177:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "5241:16:7", + "src": "5920:16:9", "statements": [ { "expression": { @@ -37995,14 +46421,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "5250:1:7", + "src": "5929:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5253:1:7", + "src": "5932:1:9", "type": "", "value": "0" } @@ -38010,13 +46436,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "5243:6:7" + "src": "5922:6:9" }, "nodeType": "YulFunctionCall", - "src": "5243:12:7" + "src": "5922:12:9" }, "nodeType": "YulExpressionStatement", - "src": "5243:12:7" + "src": "5922:12:9" } ] }, @@ -38027,26 +46453,26 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "5216:7:7" + "src": "5895:7:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "5225:9:7" + "src": "5904:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "5212:3:7" + "src": "5891:3:9" }, "nodeType": "YulFunctionCall", - "src": "5212:23:7" + "src": "5891:23:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5237:2:7", + "src": "5916:2:9", "type": "", "value": "32" } @@ -38054,38 +46480,38 @@ "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "5208:3:7" + "src": "5887:3:9" }, "nodeType": "YulFunctionCall", - "src": "5208:32:7" + "src": "5887:32:9" }, "nodeType": "YulIf", - "src": "5205:52:7" + "src": "5884:52:9" }, { "nodeType": "YulVariableDeclaration", - "src": "5266:36:7", + "src": "5945:36:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "5292:9:7" + "src": "5971:9:9" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "5279:12:7" + "src": "5958:12:9" }, "nodeType": "YulFunctionCall", - "src": "5279:23:7" + "src": "5958:23:9" }, "variables": [ { "name": "value", "nodeType": "YulTypedName", - "src": "5270:5:7", + "src": "5949:5:9", "type": "" } ] @@ -38096,33 +46522,33 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "5336:5:7" + "src": "6015:5:9" } ], "functionName": { "name": "validator_revert_address", "nodeType": "YulIdentifier", - "src": "5311:24:7" + "src": "5990:24:9" }, "nodeType": "YulFunctionCall", - "src": "5311:31:7" + "src": "5990:31:9" }, "nodeType": "YulExpressionStatement", - "src": "5311:31:7" + "src": "5990:31:9" }, { "nodeType": "YulAssignment", - "src": "5351:15:7", + "src": "6030:15:9", "value": { "name": "value", "nodeType": "YulIdentifier", - "src": "5361:5:7" + "src": "6040:5:9" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "5351:6:7" + "src": "6030:6:9" } ] } @@ -38134,13 +46560,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "5161:9:7", + "src": "5840:9:9", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "5172:7:7", + "src": "5851:7:9", "type": "" } ], @@ -38148,24 +46574,24 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "5184:6:7", + "src": "5863:6:9", "type": "" } ], - "src": "5125:247:7" + "src": "5804:247:9" }, { "body": { "nodeType": "YulBlock", - "src": "5528:481:7", + "src": "6207:481:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "5538:12:7", + "src": "6217:12:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "5548:2:7", + "src": "6227:2:9", "type": "", "value": "32" }, @@ -38173,40 +46599,40 @@ { "name": "_1", "nodeType": "YulTypedName", - "src": "5542:2:7", + "src": "6221:2:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "5559:32:7", + "src": "6238:32:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "5577:9:7" + "src": "6256:9:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "5588:2:7" + "src": "6267:2:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5573:3:7" + "src": "6252:3:9" }, "nodeType": "YulFunctionCall", - "src": "5573:18:7" + "src": "6252:18:9" }, "variables": [ { "name": "tail_1", "nodeType": "YulTypedName", - "src": "5563:6:7", + "src": "6242:6:9", "type": "" } ] @@ -38217,66 +46643,66 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "5607:9:7" + "src": "6286:9:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "5618:2:7" + "src": "6297:2:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "5600:6:7" + "src": "6279:6:9" }, "nodeType": "YulFunctionCall", - "src": "5600:21:7" + "src": "6279:21:9" }, "nodeType": "YulExpressionStatement", - "src": "5600:21:7" + "src": "6279:21:9" }, { "nodeType": "YulVariableDeclaration", - "src": "5630:17:7", + "src": "6309:17:9", "value": { "name": "tail_1", "nodeType": "YulIdentifier", - "src": "5641:6:7" + "src": "6320:6:9" }, "variables": [ { "name": "pos", "nodeType": "YulTypedName", - "src": "5634:3:7", + "src": "6313:3:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "5656:27:7", + "src": "6335:27:9", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "5676:6:7" + "src": "6355:6:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "5670:5:7" + "src": "6349:5:9" }, "nodeType": "YulFunctionCall", - "src": "5670:13:7" + "src": "6349:13:9" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", - "src": "5660:6:7", + "src": "6339:6:9", "type": "" } ] @@ -38287,39 +46713,39 @@ { "name": "tail_1", "nodeType": "YulIdentifier", - "src": "5699:6:7" + "src": "6378:6:9" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "5707:6:7" + "src": "6386:6:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "5692:6:7" + "src": "6371:6:9" }, "nodeType": "YulFunctionCall", - "src": "5692:22:7" + "src": "6371:22:9" }, "nodeType": "YulExpressionStatement", - "src": "5692:22:7" + "src": "6371:22:9" }, { "nodeType": "YulAssignment", - "src": "5723:25:7", + "src": "6402:25:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "5734:9:7" + "src": "6413:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5745:2:7", + "src": "6424:2:9", "type": "", "value": "64" } @@ -38327,59 +46753,59 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5730:3:7" + "src": "6409:3:9" }, "nodeType": "YulFunctionCall", - "src": "5730:18:7" + "src": "6409:18:9" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "5723:3:7" + "src": "6402:3:9" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "5757:29:7", + "src": "6436:29:9", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "5775:6:7" + "src": "6454:6:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "5783:2:7" + "src": "6462:2:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5771:3:7" + "src": "6450:3:9" }, "nodeType": "YulFunctionCall", - "src": "5771:15:7" + "src": "6450:15:9" }, "variables": [ { "name": "srcPtr", "nodeType": "YulTypedName", - "src": "5761:6:7", + "src": "6440:6:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "5795:10:7", + "src": "6474:10:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "5804:1:7", + "src": "6483:1:9", "type": "", "value": "0" }, @@ -38387,7 +46813,7 @@ { "name": "i", "nodeType": "YulTypedName", - "src": "5799:1:7", + "src": "6478:1:9", "type": "" } ] @@ -38395,7 +46821,7 @@ { "body": { "nodeType": "YulBlock", - "src": "5863:120:7", + "src": "6542:120:9", "statements": [ { "expression": { @@ -38403,97 +46829,97 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "5884:3:7" + "src": "6563:3:9" }, { "arguments": [ { "name": "srcPtr", "nodeType": "YulIdentifier", - "src": "5895:6:7" + "src": "6574:6:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "5889:5:7" + "src": "6568:5:9" }, "nodeType": "YulFunctionCall", - "src": "5889:13:7" + "src": "6568:13:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "5877:6:7" + "src": "6556:6:9" }, "nodeType": "YulFunctionCall", - "src": "5877:26:7" + "src": "6556:26:9" }, "nodeType": "YulExpressionStatement", - "src": "5877:26:7" + "src": "6556:26:9" }, { "nodeType": "YulAssignment", - "src": "5916:19:7", + "src": "6595:19:9", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "5927:3:7" + "src": "6606:3:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "5932:2:7" + "src": "6611:2:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5923:3:7" + "src": "6602:3:9" }, "nodeType": "YulFunctionCall", - "src": "5923:12:7" + "src": "6602:12:9" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "5916:3:7" + "src": "6595:3:9" } ] }, { "nodeType": "YulAssignment", - "src": "5948:25:7", + "src": "6627:25:9", "value": { "arguments": [ { "name": "srcPtr", "nodeType": "YulIdentifier", - "src": "5962:6:7" + "src": "6641:6:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "5970:2:7" + "src": "6649:2:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5958:3:7" + "src": "6637:3:9" }, "nodeType": "YulFunctionCall", - "src": "5958:15:7" + "src": "6637:15:9" }, "variableNames": [ { "name": "srcPtr", "nodeType": "YulIdentifier", - "src": "5948:6:7" + "src": "6627:6:9" } ] } @@ -38504,41 +46930,41 @@ { "name": "i", "nodeType": "YulIdentifier", - "src": "5825:1:7" + "src": "6504:1:9" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "5828:6:7" + "src": "6507:6:9" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "5822:2:7" + "src": "6501:2:9" }, "nodeType": "YulFunctionCall", - "src": "5822:13:7" + "src": "6501:13:9" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", - "src": "5836:18:7", + "src": "6515:18:9", "statements": [ { "nodeType": "YulAssignment", - "src": "5838:14:7", + "src": "6517:14:9", "value": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", - "src": "5847:1:7" + "src": "6526:1:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5850:1:7", + "src": "6529:1:9", "type": "", "value": "1" } @@ -38546,16 +46972,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5843:3:7" + "src": "6522:3:9" }, "nodeType": "YulFunctionCall", - "src": "5843:9:7" + "src": "6522:9:9" }, "variableNames": [ { "name": "i", "nodeType": "YulIdentifier", - "src": "5838:1:7" + "src": "6517:1:9" } ] } @@ -38563,24 +46989,24 @@ }, "pre": { "nodeType": "YulBlock", - "src": "5818:3:7", + "src": "6497:3:9", "statements": [] }, - "src": "5814:169:7" + "src": "6493:169:9" }, { "nodeType": "YulAssignment", - "src": "5992:11:7", + "src": "6671:11:9", "value": { "name": "pos", "nodeType": "YulIdentifier", - "src": "6000:3:7" + "src": "6679:3:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "5992:4:7" + "src": "6671:4:9" } ] } @@ -38592,13 +47018,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "5497:9:7", + "src": "6176:9:9", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "5508:6:7", + "src": "6187:6:9", "type": "" } ], @@ -38606,21 +47032,21 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "5519:4:7", + "src": "6198:4:9", "type": "" } ], - "src": "5377:632:7" + "src": "6056:632:9" }, { "body": { "nodeType": "YulBlock", - "src": "6111:293:7", + "src": "6790:293:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "6157:16:7", + "src": "6836:16:9", "statements": [ { "expression": { @@ -38628,14 +47054,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "6166:1:7", + "src": "6845:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6169:1:7", + "src": "6848:1:9", "type": "", "value": "0" } @@ -38643,13 +47069,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "6159:6:7" + "src": "6838:6:9" }, "nodeType": "YulFunctionCall", - "src": "6159:12:7" + "src": "6838:12:9" }, "nodeType": "YulExpressionStatement", - "src": "6159:12:7" + "src": "6838:12:9" } ] }, @@ -38660,26 +47086,26 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "6132:7:7" + "src": "6811:7:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6141:9:7" + "src": "6820:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "6128:3:7" + "src": "6807:3:9" }, "nodeType": "YulFunctionCall", - "src": "6128:23:7" + "src": "6807:23:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6153:2:7", + "src": "6832:2:9", "type": "", "value": "64" } @@ -38687,44 +47113,44 @@ "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "6124:3:7" + "src": "6803:3:9" }, "nodeType": "YulFunctionCall", - "src": "6124:32:7" + "src": "6803:32:9" }, "nodeType": "YulIf", - "src": "6121:52:7" + "src": "6800:52:9" }, { "nodeType": "YulAssignment", - "src": "6182:33:7", + "src": "6861:33:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6205:9:7" + "src": "6884:9:9" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "6192:12:7" + "src": "6871:12:9" }, "nodeType": "YulFunctionCall", - "src": "6192:23:7" + "src": "6871:23:9" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "6182:6:7" + "src": "6861:6:9" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "6224:46:7", + "src": "6903:46:9", "value": { "arguments": [ { @@ -38732,12 +47158,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6255:9:7" + "src": "6934:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6266:2:7", + "src": "6945:2:9", "type": "", "value": "32" } @@ -38745,25 +47171,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6251:3:7" + "src": "6930:3:9" }, "nodeType": "YulFunctionCall", - "src": "6251:18:7" + "src": "6930:18:9" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "6238:12:7" + "src": "6917:12:9" }, "nodeType": "YulFunctionCall", - "src": "6238:32:7" + "src": "6917:32:9" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", - "src": "6228:6:7", + "src": "6907:6:9", "type": "" } ] @@ -38771,7 +47197,7 @@ { "body": { "nodeType": "YulBlock", - "src": "6313:16:7", + "src": "6992:16:9", "statements": [ { "expression": { @@ -38779,14 +47205,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "6322:1:7", + "src": "7001:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6325:1:7", + "src": "7004:1:9", "type": "", "value": "0" } @@ -38794,13 +47220,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "6315:6:7" + "src": "6994:6:9" }, "nodeType": "YulFunctionCall", - "src": "6315:12:7" + "src": "6994:12:9" }, "nodeType": "YulExpressionStatement", - "src": "6315:12:7" + "src": "6994:12:9" } ] }, @@ -38809,12 +47235,12 @@ { "name": "offset", "nodeType": "YulIdentifier", - "src": "6285:6:7" + "src": "6964:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6293:18:7", + "src": "6972:18:9", "type": "", "value": "0xffffffffffffffff" } @@ -38822,17 +47248,17 @@ "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "6282:2:7" + "src": "6961:2:9" }, "nodeType": "YulFunctionCall", - "src": "6282:30:7" + "src": "6961:30:9" }, "nodeType": "YulIf", - "src": "6279:50:7" + "src": "6958:50:9" }, { "nodeType": "YulAssignment", - "src": "6338:60:7", + "src": "7017:60:9", "value": { "arguments": [ { @@ -38840,41 +47266,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6370:9:7" + "src": "7049:9:9" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "6381:6:7" + "src": "7060:6:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6366:3:7" + "src": "7045:3:9" }, "nodeType": "YulFunctionCall", - "src": "6366:22:7" + "src": "7045:22:9" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "6390:7:7" + "src": "7069:7:9" } ], "functionName": { "name": "abi_decode_string", "nodeType": "YulIdentifier", - "src": "6348:17:7" + "src": "7027:17:9" }, "nodeType": "YulFunctionCall", - "src": "6348:50:7" + "src": "7027:50:9" }, "variableNames": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "6338:6:7" + "src": "7017:6:9" } ] } @@ -38886,13 +47312,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "6069:9:7", + "src": "6748:9:9", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "6080:7:7", + "src": "6759:7:9", "type": "" } ], @@ -38900,47 +47326,66 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "6092:6:7", + "src": "6771:6:9", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "6100:6:7", + "src": "6779:6:9", "type": "" } ], - "src": "6014:390:7" + "src": "6693:390:9" }, { "body": { "nodeType": "YulBlock", - "src": "6730:510:7", + "src": "7433:585:9", "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7443:13:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7453:3:9", + "type": "", + "value": "256" + }, + "variables": [ + { + "name": "_1", + "nodeType": "YulTypedName", + "src": "7447:2:9", + "type": "" + } + ] + }, { "expression": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6747:9:7" + "src": "7472:9:9" }, { "name": "value0", "nodeType": "YulIdentifier", - "src": "6758:6:7" + "src": "7483:6:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6740:6:7" + "src": "7465:6:9" }, "nodeType": "YulFunctionCall", - "src": "6740:25:7" + "src": "7465:25:9" }, "nodeType": "YulExpressionStatement", - "src": "6740:25:7" + "src": "7465:25:9" }, { "expression": { @@ -38950,12 +47395,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6785:9:7" + "src": "7510:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6796:2:7", + "src": "7521:2:9", "type": "", "value": "32" } @@ -38963,84 +47408,80 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6781:3:7" + "src": "7506:3:9" }, "nodeType": "YulFunctionCall", - "src": "6781:18:7" + "src": "7506:18:9" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6801:3:7", - "type": "", - "value": "224" + "name": "_1", + "nodeType": "YulIdentifier", + "src": "7526:2:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6774:6:7" + "src": "7499:6:9" }, "nodeType": "YulFunctionCall", - "src": "6774:31:7" + "src": "7499:30:9" }, "nodeType": "YulExpressionStatement", - "src": "6774:31:7" + "src": "7499:30:9" }, { "nodeType": "YulVariableDeclaration", - "src": "6814:60:7", + "src": "7538:59:9", "value": { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "6846:6:7" + "src": "7570:6:9" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6858:9:7" + "src": "7582:9:9" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6869:3:7", - "type": "", - "value": "224" + "name": "_1", + "nodeType": "YulIdentifier", + "src": "7593:2:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6854:3:7" + "src": "7578:3:9" }, "nodeType": "YulFunctionCall", - "src": "6854:19:7" + "src": "7578:18:9" } ], "functionName": { "name": "abi_encode_string", "nodeType": "YulIdentifier", - "src": "6828:17:7" + "src": "7552:17:9" }, "nodeType": "YulFunctionCall", - "src": "6828:46:7" + "src": "7552:45:9" }, "variables": [ { "name": "tail_1", "nodeType": "YulTypedName", - "src": "6818:6:7", + "src": "7542:6:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "6883:29:7", + "src": "7606:29:9", "value": { "arguments": [ { @@ -39048,14 +47489,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "6901:3:7", + "src": "7624:3:9", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6906:1:7", + "src": "7629:1:9", "type": "", "value": "1" } @@ -39063,15 +47504,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "6897:3:7" + "src": "7620:3:9" }, "nodeType": "YulFunctionCall", - "src": "6897:11:7" + "src": "7620:11:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6910:1:7", + "src": "7633:1:9", "type": "", "value": "1" } @@ -39079,16 +47520,16 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "6893:3:7" + "src": "7616:3:9" }, "nodeType": "YulFunctionCall", - "src": "6893:19:7" + "src": "7616:19:9" }, "variables": [ { - "name": "_1", + "name": "_2", "nodeType": "YulTypedName", - "src": "6887:2:7", + "src": "7610:2:9", "type": "" } ] @@ -39101,12 +47542,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6932:9:7" + "src": "7655:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6943:2:7", + "src": "7666:2:9", "type": "", "value": "64" } @@ -39114,43 +47555,43 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6928:3:7" + "src": "7651:3:9" }, "nodeType": "YulFunctionCall", - "src": "6928:18:7" + "src": "7651:18:9" }, { "arguments": [ { "name": "value2", "nodeType": "YulIdentifier", - "src": "6952:6:7" + "src": "7675:6:9" }, { - "name": "_1", + "name": "_2", "nodeType": "YulIdentifier", - "src": "6960:2:7" + "src": "7683:2:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "6948:3:7" + "src": "7671:3:9" }, "nodeType": "YulFunctionCall", - "src": "6948:15:7" + "src": "7671:15:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6921:6:7" + "src": "7644:6:9" }, "nodeType": "YulFunctionCall", - "src": "6921:43:7" + "src": "7644:43:9" }, "nodeType": "YulExpressionStatement", - "src": "6921:43:7" + "src": "7644:43:9" }, { "expression": { @@ -39158,19 +47599,19 @@ { "name": "value3", "nodeType": "YulIdentifier", - "src": "7000:6:7" + "src": "7723:6:9" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "7012:9:7" + "src": "7735:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7023:2:7", + "src": "7746:2:9", "type": "", "value": "96" } @@ -39178,22 +47619,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7008:3:7" + "src": "7731:3:9" }, "nodeType": "YulFunctionCall", - "src": "7008:18:7" + "src": "7731:18:9" } ], "functionName": { "name": "abi_encode_enum_TaskStatus", "nodeType": "YulIdentifier", - "src": "6973:26:7" + "src": "7696:26:9" }, "nodeType": "YulFunctionCall", - "src": "6973:54:7" + "src": "7696:54:9" }, "nodeType": "YulExpressionStatement", - "src": "6973:54:7" + "src": "7696:54:9" }, { "expression": { @@ -39203,12 +47644,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "7047:9:7" + "src": "7770:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7058:3:7", + "src": "7781:3:9", "type": "", "value": "128" } @@ -39216,43 +47657,43 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7043:3:7" + "src": "7766:3:9" }, "nodeType": "YulFunctionCall", - "src": "7043:19:7" + "src": "7766:19:9" }, { "arguments": [ { "name": "value4", "nodeType": "YulIdentifier", - "src": "7068:6:7" + "src": "7791:6:9" }, { - "name": "_1", + "name": "_2", "nodeType": "YulIdentifier", - "src": "7076:2:7" + "src": "7799:2:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "7064:3:7" + "src": "7787:3:9" }, "nodeType": "YulFunctionCall", - "src": "7064:15:7" + "src": "7787:15:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "7036:6:7" + "src": "7759:6:9" }, "nodeType": "YulFunctionCall", - "src": "7036:44:7" + "src": "7759:44:9" }, "nodeType": "YulExpressionStatement", - "src": "7036:44:7" + "src": "7759:44:9" }, { "expression": { @@ -39262,12 +47703,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "7100:9:7" + "src": "7823:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7111:3:7", + "src": "7834:3:9", "type": "", "value": "160" } @@ -39275,27 +47716,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7096:3:7" + "src": "7819:3:9" }, "nodeType": "YulFunctionCall", - "src": "7096:19:7" + "src": "7819:19:9" }, { "name": "value5", "nodeType": "YulIdentifier", - "src": "7117:6:7" + "src": "7840:6:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "7089:6:7" + "src": "7812:6:9" }, "nodeType": "YulFunctionCall", - "src": "7089:35:7" + "src": "7812:35:9" }, "nodeType": "YulExpressionStatement", - "src": "7089:35:7" + "src": "7812:35:9" }, { "expression": { @@ -39305,12 +47746,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "7144:9:7" + "src": "7867:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7155:3:7", + "src": "7878:3:9", "type": "", "value": "192" } @@ -39318,127 +47759,194 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7140:3:7" + "src": "7863:3:9" }, "nodeType": "YulFunctionCall", - "src": "7140:19:7" + "src": "7863:19:9" }, { "arguments": [ { "name": "tail_1", "nodeType": "YulIdentifier", - "src": "7165:6:7" + "src": "7888:6:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "7173:9:7" + "src": "7896:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "7161:3:7" + "src": "7884:3:9" }, "nodeType": "YulFunctionCall", - "src": "7161:22:7" + "src": "7884:22:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "7133:6:7" + "src": "7856:6:9" }, "nodeType": "YulFunctionCall", - "src": "7133:51:7" + "src": "7856:51:9" }, "nodeType": "YulExpressionStatement", - "src": "7133:51:7" + "src": "7856:51:9" }, { "nodeType": "YulAssignment", - "src": "7193:41:7", + "src": "7916:41:9", "value": { "arguments": [ { "name": "value6", "nodeType": "YulIdentifier", - "src": "7219:6:7" + "src": "7942:6:9" }, { "name": "tail_1", "nodeType": "YulIdentifier", - "src": "7227:6:7" + "src": "7950:6:9" } ], "functionName": { "name": "abi_encode_string", "nodeType": "YulIdentifier", - "src": "7201:17:7" + "src": "7924:17:9" }, "nodeType": "YulFunctionCall", - "src": "7201:33:7" + "src": "7924:33:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "7193:4:7" + "src": "7916:4:9" } ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7977:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7988:3:9", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7973:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "7973:19:9" + }, + { + "arguments": [ + { + "name": "value7", + "nodeType": "YulIdentifier", + "src": "7998:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8006:4:9", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "7994:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "7994:17:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7966:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "7966:46:9" + }, + "nodeType": "YulExpressionStatement", + "src": "7966:46:9" } ] }, - "name": "abi_encode_tuple_t_uint256_t_string_memory_ptr_t_address_t_enum$_TaskStatus_$698_t_address_t_uint256_t_string_memory_ptr__to_t_uint256_t_string_memory_ptr_t_address_t_uint8_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_uint256_t_string_memory_ptr_t_address_t_enum$_TaskStatus_$860_t_address_t_uint256_t_string_memory_ptr_t_uint8__to_t_uint256_t_string_memory_ptr_t_address_t_uint8_t_address_t_uint256_t_string_memory_ptr_t_uint8__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "6651:9:7", + "src": "7346:9:9", + "type": "" + }, + { + "name": "value7", + "nodeType": "YulTypedName", + "src": "7357:6:9", "type": "" }, { "name": "value6", "nodeType": "YulTypedName", - "src": "6662:6:7", + "src": "7365:6:9", "type": "" }, { "name": "value5", "nodeType": "YulTypedName", - "src": "6670:6:7", + "src": "7373:6:9", "type": "" }, { "name": "value4", "nodeType": "YulTypedName", - "src": "6678:6:7", + "src": "7381:6:9", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", - "src": "6686:6:7", + "src": "7389:6:9", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "6694:6:7", + "src": "7397:6:9", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "6702:6:7", + "src": "7405:6:9", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "6710:6:7", + "src": "7413:6:9", "type": "" } ], @@ -39446,24 +47954,171 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "6721:4:7", + "src": "7424:4:9", "type": "" } ], - "src": "6409:831:7" + "src": "7088:930:9" }, { "body": { "nodeType": "YulBlock", - "src": "7352:1070:7", + "src": "8080:107:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8090:22:9", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8105:6:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8099:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "8099:13:9" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8090:5:9" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8165:16:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8174:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8177:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8167:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "8167:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "8167:12:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8134:5:9" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8155:5:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8148:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "8148:13:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8141:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "8141:21:9" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "8131:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "8131:32:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8124:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "8124:40:9" + }, + "nodeType": "YulIf", + "src": "8121:60:9" + } + ] + }, + "name": "abi_decode_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8059:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8070:5:9", + "type": "" + } + ], + "src": "8023:164:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8306:1144:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "7362:12:7", + "src": "8316:12:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "7372:2:7", + "src": "8326:2:9", "type": "", "value": "32" }, @@ -39471,7 +48126,7 @@ { "name": "_1", "nodeType": "YulTypedName", - "src": "7366:2:7", + "src": "8320:2:9", "type": "" } ] @@ -39479,7 +48134,7 @@ { "body": { "nodeType": "YulBlock", - "src": "7419:16:7", + "src": "8373:16:9", "statements": [ { "expression": { @@ -39487,14 +48142,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "7428:1:7", + "src": "8382:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7431:1:7", + "src": "8385:1:9", "type": "", "value": "0" } @@ -39502,13 +48157,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "7421:6:7" + "src": "8375:6:9" }, "nodeType": "YulFunctionCall", - "src": "7421:12:7" + "src": "8375:12:9" }, "nodeType": "YulExpressionStatement", - "src": "7421:12:7" + "src": "8375:12:9" } ] }, @@ -39519,74 +48174,74 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "7394:7:7" + "src": "8348:7:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "7403:9:7" + "src": "8357:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "7390:3:7" + "src": "8344:3:9" }, "nodeType": "YulFunctionCall", - "src": "7390:23:7" + "src": "8344:23:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "7415:2:7" + "src": "8369:2:9" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "7386:3:7" + "src": "8340:3:9" }, "nodeType": "YulFunctionCall", - "src": "7386:32:7" + "src": "8340:32:9" }, "nodeType": "YulIf", - "src": "7383:52:7" + "src": "8337:52:9" }, { "nodeType": "YulVariableDeclaration", - "src": "7444:30:7", + "src": "8398:30:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "7464:9:7" + "src": "8418:9:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "7458:5:7" + "src": "8412:5:9" }, "nodeType": "YulFunctionCall", - "src": "7458:16:7" + "src": "8412:16:9" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", - "src": "7448:6:7", + "src": "8402:6:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "7483:28:7", + "src": "8437:28:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "7493:18:7", + "src": "8447:18:9", "type": "", "value": "0xffffffffffffffff" }, @@ -39594,7 +48249,7 @@ { "name": "_2", "nodeType": "YulTypedName", - "src": "7487:2:7", + "src": "8441:2:9", "type": "" } ] @@ -39602,7 +48257,7 @@ { "body": { "nodeType": "YulBlock", - "src": "7538:16:7", + "src": "8492:16:9", "statements": [ { "expression": { @@ -39610,14 +48265,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "7547:1:7", + "src": "8501:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7550:1:7", + "src": "8504:1:9", "type": "", "value": "0" } @@ -39625,13 +48280,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "7540:6:7" + "src": "8494:6:9" }, "nodeType": "YulFunctionCall", - "src": "7540:12:7" + "src": "8494:12:9" }, "nodeType": "YulExpressionStatement", - "src": "7540:12:7" + "src": "8494:12:9" } ] }, @@ -39640,54 +48295,54 @@ { "name": "offset", "nodeType": "YulIdentifier", - "src": "7526:6:7" + "src": "8480:6:9" }, { "name": "_2", "nodeType": "YulIdentifier", - "src": "7534:2:7" + "src": "8488:2:9" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "7523:2:7" + "src": "8477:2:9" }, "nodeType": "YulFunctionCall", - "src": "7523:14:7" + "src": "8477:14:9" }, "nodeType": "YulIf", - "src": "7520:34:7" + "src": "8474:34:9" }, { "nodeType": "YulVariableDeclaration", - "src": "7563:32:7", + "src": "8517:32:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "7577:9:7" + "src": "8531:9:9" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "7588:6:7" + "src": "8542:6:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7573:3:7" + "src": "8527:3:9" }, "nodeType": "YulFunctionCall", - "src": "7573:22:7" + "src": "8527:22:9" }, "variables": [ { "name": "_3", "nodeType": "YulTypedName", - "src": "7567:2:7", + "src": "8521:2:9", "type": "" } ] @@ -39695,7 +48350,7 @@ { "body": { "nodeType": "YulBlock", - "src": "7635:16:7", + "src": "8589:16:9", "statements": [ { "expression": { @@ -39703,14 +48358,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "7644:1:7", + "src": "8598:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7647:1:7", + "src": "8601:1:9", "type": "", "value": "0" } @@ -39718,13 +48373,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "7637:6:7" + "src": "8591:6:9" }, "nodeType": "YulFunctionCall", - "src": "7637:12:7" + "src": "8591:12:9" }, "nodeType": "YulExpressionStatement", - "src": "7637:12:7" + "src": "8591:12:9" } ] }, @@ -39735,87 +48390,87 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "7615:7:7" + "src": "8569:7:9" }, { "name": "_3", "nodeType": "YulIdentifier", - "src": "7624:2:7" + "src": "8578:2:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "7611:3:7" + "src": "8565:3:9" }, "nodeType": "YulFunctionCall", - "src": "7611:16:7" + "src": "8565:16:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7629:4:7", + "src": "8583:4:9", "type": "", - "value": "0x80" + "value": "0xa0" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "7607:3:7" + "src": "8561:3:9" }, "nodeType": "YulFunctionCall", - "src": "7607:27:7" + "src": "8561:27:9" }, "nodeType": "YulIf", - "src": "7604:47:7" + "src": "8558:47:9" }, { "nodeType": "YulVariableDeclaration", - "src": "7660:35:7", + "src": "8614:35:9", "value": { "arguments": [], "functionName": { - "name": "allocate_memory_1962", + "name": "allocate_memory_2417", "nodeType": "YulIdentifier", - "src": "7673:20:7" + "src": "8627:20:9" }, "nodeType": "YulFunctionCall", - "src": "7673:22:7" + "src": "8627:22:9" }, "variables": [ { "name": "value", "nodeType": "YulTypedName", - "src": "7664:5:7", + "src": "8618:5:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "7704:24:7", + "src": "8658:24:9", "value": { "arguments": [ { "name": "_3", "nodeType": "YulIdentifier", - "src": "7725:2:7" + "src": "8679:2:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "7719:5:7" + "src": "8673:5:9" }, "nodeType": "YulFunctionCall", - "src": "7719:9:7" + "src": "8673:9:9" }, "variables": [ { "name": "value_1", "nodeType": "YulTypedName", - "src": "7708:7:7", + "src": "8662:7:9", "type": "" } ] @@ -39826,19 +48481,19 @@ { "name": "value_1", "nodeType": "YulIdentifier", - "src": "7762:7:7" + "src": "8716:7:9" } ], "functionName": { "name": "validator_revert_address", "nodeType": "YulIdentifier", - "src": "7737:24:7" + "src": "8691:24:9" }, "nodeType": "YulFunctionCall", - "src": "7737:33:7" + "src": "8691:33:9" }, "nodeType": "YulExpressionStatement", - "src": "7737:33:7" + "src": "8691:33:9" }, { "expression": { @@ -39846,28 +48501,28 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "7786:5:7" + "src": "8740:5:9" }, { "name": "value_1", "nodeType": "YulIdentifier", - "src": "7793:7:7" + "src": "8747:7:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "7779:6:7" + "src": "8733:6:9" }, "nodeType": "YulFunctionCall", - "src": "7779:22:7" + "src": "8733:22:9" }, "nodeType": "YulExpressionStatement", - "src": "7779:22:7" + "src": "8733:22:9" }, { "nodeType": "YulVariableDeclaration", - "src": "7810:34:7", + "src": "8764:34:9", "value": { "arguments": [ { @@ -39875,36 +48530,36 @@ { "name": "_3", "nodeType": "YulIdentifier", - "src": "7836:2:7" + "src": "8790:2:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "7840:2:7" + "src": "8794:2:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7832:3:7" + "src": "8786:3:9" }, "nodeType": "YulFunctionCall", - "src": "7832:11:7" + "src": "8786:11:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "7826:5:7" + "src": "8780:5:9" }, "nodeType": "YulFunctionCall", - "src": "7826:18:7" + "src": "8780:18:9" }, "variables": [ { "name": "offset_1", "nodeType": "YulTypedName", - "src": "7814:8:7", + "src": "8768:8:9", "type": "" } ] @@ -39912,7 +48567,7 @@ { "body": { "nodeType": "YulBlock", - "src": "7873:16:7", + "src": "8827:16:9", "statements": [ { "expression": { @@ -39920,14 +48575,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "7882:1:7", + "src": "8836:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7885:1:7", + "src": "8839:1:9", "type": "", "value": "0" } @@ -39935,13 +48590,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "7875:6:7" + "src": "8829:6:9" }, "nodeType": "YulFunctionCall", - "src": "7875:12:7" + "src": "8829:12:9" }, "nodeType": "YulExpressionStatement", - "src": "7875:12:7" + "src": "8829:12:9" } ] }, @@ -39950,54 +48605,54 @@ { "name": "offset_1", "nodeType": "YulIdentifier", - "src": "7859:8:7" + "src": "8813:8:9" }, { "name": "_2", "nodeType": "YulIdentifier", - "src": "7869:2:7" + "src": "8823:2:9" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "7856:2:7" + "src": "8810:2:9" }, "nodeType": "YulFunctionCall", - "src": "7856:16:7" + "src": "8810:16:9" }, "nodeType": "YulIf", - "src": "7853:36:7" + "src": "8807:36:9" }, { "nodeType": "YulVariableDeclaration", - "src": "7898:27:7", + "src": "8852:27:9", "value": { "arguments": [ { "name": "_3", "nodeType": "YulIdentifier", - "src": "7912:2:7" + "src": "8866:2:9" }, { "name": "offset_1", "nodeType": "YulIdentifier", - "src": "7916:8:7" + "src": "8870:8:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7908:3:7" + "src": "8862:3:9" }, "nodeType": "YulFunctionCall", - "src": "7908:17:7" + "src": "8862:17:9" }, "variables": [ { "name": "_4", "nodeType": "YulTypedName", - "src": "7902:2:7", + "src": "8856:2:9", "type": "" } ] @@ -40005,7 +48660,7 @@ { "body": { "nodeType": "YulBlock", - "src": "7973:16:7", + "src": "8927:16:9", "statements": [ { "expression": { @@ -40013,14 +48668,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "7982:1:7", + "src": "8936:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7985:1:7", + "src": "8939:1:9", "type": "", "value": "0" } @@ -40028,13 +48683,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "7975:6:7" + "src": "8929:6:9" }, "nodeType": "YulFunctionCall", - "src": "7975:12:7" + "src": "8929:12:9" }, "nodeType": "YulExpressionStatement", - "src": "7975:12:7" + "src": "8929:12:9" } ] }, @@ -40047,12 +48702,12 @@ { "name": "_4", "nodeType": "YulIdentifier", - "src": "7952:2:7" + "src": "8906:2:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7956:4:7", + "src": "8910:4:9", "type": "", "value": "0x1f" } @@ -40060,68 +48715,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7948:3:7" + "src": "8902:3:9" }, "nodeType": "YulFunctionCall", - "src": "7948:13:7" + "src": "8902:13:9" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "7963:7:7" + "src": "8917:7:9" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "7944:3:7" + "src": "8898:3:9" }, "nodeType": "YulFunctionCall", - "src": "7944:27:7" + "src": "8898:27:9" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "7937:6:7" + "src": "8891:6:9" }, "nodeType": "YulFunctionCall", - "src": "7937:35:7" + "src": "8891:35:9" }, "nodeType": "YulIf", - "src": "7934:55:7" + "src": "8888:55:9" }, { "nodeType": "YulVariableDeclaration", - "src": "7998:19:7", + "src": "8952:19:9", "value": { "arguments": [ { "name": "_4", "nodeType": "YulIdentifier", - "src": "8014:2:7" + "src": "8968:2:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "8008:5:7" + "src": "8962:5:9" }, "nodeType": "YulFunctionCall", - "src": "8008:9:7" + "src": "8962:9:9" }, "variables": [ { "name": "_5", "nodeType": "YulTypedName", - "src": "8002:2:7", + "src": "8956:2:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "8026:62:7", + "src": "8980:62:9", "value": { "arguments": [ { @@ -40129,31 +48784,31 @@ { "name": "_5", "nodeType": "YulIdentifier", - "src": "8084:2:7" + "src": "9038:2:9" } ], "functionName": { "name": "array_allocation_size_string", "nodeType": "YulIdentifier", - "src": "8055:28:7" + "src": "9009:28:9" }, "nodeType": "YulFunctionCall", - "src": "8055:32:7" + "src": "9009:32:9" } ], "functionName": { "name": "allocate_memory", "nodeType": "YulIdentifier", - "src": "8039:15:7" + "src": "8993:15:9" }, "nodeType": "YulFunctionCall", - "src": "8039:49:7" + "src": "8993:49:9" }, "variables": [ { "name": "array", "nodeType": "YulTypedName", - "src": "8030:5:7", + "src": "8984:5:9", "type": "" } ] @@ -40164,29 +48819,29 @@ { "name": "array", "nodeType": "YulIdentifier", - "src": "8104:5:7" + "src": "9058:5:9" }, { "name": "_5", "nodeType": "YulIdentifier", - "src": "8111:2:7" + "src": "9065:2:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "8097:6:7" + "src": "9051:6:9" }, "nodeType": "YulFunctionCall", - "src": "8097:17:7" + "src": "9051:17:9" }, "nodeType": "YulExpressionStatement", - "src": "8097:17:7" + "src": "9051:17:9" }, { "body": { "nodeType": "YulBlock", - "src": "8160:16:7", + "src": "9114:16:9", "statements": [ { "expression": { @@ -40194,14 +48849,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "8169:1:7", + "src": "9123:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8172:1:7", + "src": "9126:1:9", "type": "", "value": "0" } @@ -40209,13 +48864,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "8162:6:7" + "src": "9116:6:9" }, "nodeType": "YulFunctionCall", - "src": "8162:12:7" + "src": "9116:12:9" }, "nodeType": "YulExpressionStatement", - "src": "8162:12:7" + "src": "9116:12:9" } ] }, @@ -40228,52 +48883,52 @@ { "name": "_4", "nodeType": "YulIdentifier", - "src": "8137:2:7" + "src": "9091:2:9" }, { "name": "_5", "nodeType": "YulIdentifier", - "src": "8141:2:7" + "src": "9095:2:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8133:3:7" + "src": "9087:3:9" }, "nodeType": "YulFunctionCall", - "src": "8133:11:7" + "src": "9087:11:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "8146:2:7" + "src": "9100:2:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8129:3:7" + "src": "9083:3:9" }, "nodeType": "YulFunctionCall", - "src": "8129:20:7" + "src": "9083:20:9" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "8151:7:7" + "src": "9105:7:9" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "8126:2:7" + "src": "9080:2:9" }, "nodeType": "YulFunctionCall", - "src": "8126:33:7" + "src": "9080:33:9" }, "nodeType": "YulIf", - "src": "8123:53:7" + "src": "9077:53:9" }, { "expression": { @@ -40283,59 +48938,59 @@ { "name": "_4", "nodeType": "YulIdentifier", - "src": "8224:2:7" + "src": "9178:2:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "8228:2:7" + "src": "9182:2:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8220:3:7" + "src": "9174:3:9" }, "nodeType": "YulFunctionCall", - "src": "8220:11:7" + "src": "9174:11:9" }, { "arguments": [ { "name": "array", "nodeType": "YulIdentifier", - "src": "8237:5:7" + "src": "9191:5:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "8244:2:7" + "src": "9198:2:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8233:3:7" + "src": "9187:3:9" }, "nodeType": "YulFunctionCall", - "src": "8233:14:7" + "src": "9187:14:9" }, { "name": "_5", "nodeType": "YulIdentifier", - "src": "8249:2:7" + "src": "9203:2:9" } ], "functionName": { "name": "copy_memory_to_memory_with_cleanup", "nodeType": "YulIdentifier", - "src": "8185:34:7" + "src": "9139:34:9" }, "nodeType": "YulFunctionCall", - "src": "8185:67:7" + "src": "9139:67:9" }, "nodeType": "YulExpressionStatement", - "src": "8185:67:7" + "src": "9139:67:9" }, { "expression": { @@ -40345,38 +49000,38 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "8272:5:7" + "src": "9226:5:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "8279:2:7" + "src": "9233:2:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8268:3:7" + "src": "9222:3:9" }, "nodeType": "YulFunctionCall", - "src": "8268:14:7" + "src": "9222:14:9" }, { "name": "array", "nodeType": "YulIdentifier", - "src": "8284:5:7" + "src": "9238:5:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "8261:6:7" + "src": "9215:6:9" }, "nodeType": "YulFunctionCall", - "src": "8261:29:7" + "src": "9215:29:9" }, "nodeType": "YulExpressionStatement", - "src": "8261:29:7" + "src": "9215:29:9" }, { "expression": { @@ -40386,12 +49041,12 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "8310:5:7" + "src": "9264:5:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8317:2:7", + "src": "9271:2:9", "type": "", "value": "64" } @@ -40399,10 +49054,10 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8306:3:7" + "src": "9260:3:9" }, "nodeType": "YulFunctionCall", - "src": "8306:14:7" + "src": "9260:14:9" }, { "arguments": [ @@ -40411,12 +49066,12 @@ { "name": "_3", "nodeType": "YulIdentifier", - "src": "8332:2:7" + "src": "9286:2:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8336:2:7", + "src": "9290:2:9", "type": "", "value": "64" } @@ -40424,31 +49079,31 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8328:3:7" + "src": "9282:3:9" }, "nodeType": "YulFunctionCall", - "src": "8328:11:7" + "src": "9282:11:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "8322:5:7" + "src": "9276:5:9" }, "nodeType": "YulFunctionCall", - "src": "8322:18:7" + "src": "9276:18:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "8299:6:7" + "src": "9253:6:9" }, "nodeType": "YulFunctionCall", - "src": "8299:42:7" + "src": "9253:42:9" }, "nodeType": "YulExpressionStatement", - "src": "8299:42:7" + "src": "9253:42:9" }, { "expression": { @@ -40458,12 +49113,12 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "8361:5:7" + "src": "9315:5:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8368:2:7", + "src": "9322:2:9", "type": "", "value": "96" } @@ -40471,10 +49126,10 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8357:3:7" + "src": "9311:3:9" }, "nodeType": "YulFunctionCall", - "src": "8357:14:7" + "src": "9311:14:9" }, { "arguments": [ @@ -40483,12 +49138,12 @@ { "name": "_3", "nodeType": "YulIdentifier", - "src": "8383:2:7" + "src": "9337:2:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8387:2:7", + "src": "9341:2:9", "type": "", "value": "96" } @@ -40496,63 +49151,135 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8379:3:7" + "src": "9333:3:9" }, "nodeType": "YulFunctionCall", - "src": "8379:11:7" + "src": "9333:11:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "8373:5:7" + "src": "9327:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "9327:18:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9304:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "9304:42:9" + }, + "nodeType": "YulExpressionStatement", + "src": "9304:42:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9366:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9373:3:9", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9362:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "9362:15:9" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "_3", + "nodeType": "YulIdentifier", + "src": "9410:2:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9414:3:9", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9406:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "9406:12:9" + } + ], + "functionName": { + "name": "abi_decode_bool_fromMemory", + "nodeType": "YulIdentifier", + "src": "9379:26:9" }, "nodeType": "YulFunctionCall", - "src": "8373:18:7" + "src": "9379:40:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "8350:6:7" + "src": "9355:6:9" }, "nodeType": "YulFunctionCall", - "src": "8350:42:7" + "src": "9355:65:9" }, "nodeType": "YulExpressionStatement", - "src": "8350:42:7" + "src": "9355:65:9" }, { "nodeType": "YulAssignment", - "src": "8401:15:7", + "src": "9429:15:9", "value": { "name": "value", "nodeType": "YulIdentifier", - "src": "8411:5:7" + "src": "9439:5:9" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "8401:6:7" + "src": "9429:6:9" } ] } ] }, - "name": "abi_decode_tuple_t_struct$_Proposal_$1039_memory_ptr_fromMemory", + "name": "abi_decode_tuple_t_struct$_ServiceProposal_$1403_memory_ptr_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "7318:9:7", + "src": "8272:9:9", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "7329:7:7", + "src": "8283:7:9", "type": "" } ], @@ -40560,16 +49287,16 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "7341:6:7", + "src": "8295:6:9", "type": "" } ], - "src": "7245:1177:7" + "src": "8192:1258:9" }, { "body": { "nodeType": "YulBlock", - "src": "8601:168:7", + "src": "9629:175:9", "statements": [ { "expression": { @@ -40577,12 +49304,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "8618:9:7" + "src": "9646:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8629:2:7", + "src": "9657:2:9", "type": "", "value": "32" } @@ -40590,13 +49317,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "8611:6:7" + "src": "9639:6:9" }, "nodeType": "YulFunctionCall", - "src": "8611:21:7" + "src": "9639:21:9" }, "nodeType": "YulExpressionStatement", - "src": "8611:21:7" + "src": "9639:21:9" }, { "expression": { @@ -40606,12 +49333,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "8652:9:7" + "src": "9680:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8663:2:7", + "src": "9691:2:9", "type": "", "value": "32" } @@ -40619,29 +49346,29 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8648:3:7" + "src": "9676:3:9" }, "nodeType": "YulFunctionCall", - "src": "8648:18:7" + "src": "9676:18:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8668:2:7", + "src": "9696:2:9", "type": "", - "value": "18" + "value": "25" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "8641:6:7" + "src": "9669:6:9" }, "nodeType": "YulFunctionCall", - "src": "8641:30:7" + "src": "9669:30:9" }, "nodeType": "YulExpressionStatement", - "src": "8641:30:7" + "src": "9669:30:9" }, { "expression": { @@ -40651,12 +49378,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "8691:9:7" + "src": "9719:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8702:2:7", + "src": "9730:2:9", "type": "", "value": "64" } @@ -40664,45 +49391,45 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8687:3:7" + "src": "9715:3:9" }, "nodeType": "YulFunctionCall", - "src": "8687:18:7" + "src": "9715:18:9" }, { - "hexValue": "50726f706f73616c206e6f7420666f756e64", + "hexValue": "5365727669636550726f706f73616c206e6f7420666f756e64", "kind": "string", "nodeType": "YulLiteral", - "src": "8707:20:7", + "src": "9735:27:9", "type": "", - "value": "Proposal not found" + "value": "ServiceProposal not found" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "8680:6:7" + "src": "9708:6:9" }, "nodeType": "YulFunctionCall", - "src": "8680:48:7" + "src": "9708:55:9" }, "nodeType": "YulExpressionStatement", - "src": "8680:48:7" + "src": "9708:55:9" }, { "nodeType": "YulAssignment", - "src": "8737:26:7", + "src": "9772:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "8749:9:7" + "src": "9784:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8760:2:7", + "src": "9795:2:9", "type": "", "value": "96" } @@ -40710,28 +49437,28 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8745:3:7" + "src": "9780:3:9" }, "nodeType": "YulFunctionCall", - "src": "8745:18:7" + "src": "9780:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "8737:4:7" + "src": "9772:4:9" } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_bcf95e6a362746bd232f2b944afd538b26aa461607b394f948bce2609a1a50c9__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_stringliteral_add139ef5e0ce81551c750d068d2eb9f9e6c61a45817f3add2fc789b89b93829__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "8578:9:7", + "src": "9606:9:9", "type": "" } ], @@ -40739,16 +49466,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "8592:4:7", + "src": "9620:4:9", "type": "" } ], - "src": "8427:342:7" + "src": "9455:349:9" }, { "body": { "nodeType": "YulBlock", - "src": "8948:163:7", + "src": "9983:163:9", "statements": [ { "expression": { @@ -40756,12 +49483,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "8965:9:7" + "src": "10000:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8976:2:7", + "src": "10011:2:9", "type": "", "value": "32" } @@ -40769,13 +49496,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "8958:6:7" + "src": "9993:6:9" }, "nodeType": "YulFunctionCall", - "src": "8958:21:7" + "src": "9993:21:9" }, "nodeType": "YulExpressionStatement", - "src": "8958:21:7" + "src": "9993:21:9" }, { "expression": { @@ -40785,12 +49512,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "8999:9:7" + "src": "10034:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9010:2:7", + "src": "10045:2:9", "type": "", "value": "32" } @@ -40798,15 +49525,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8995:3:7" + "src": "10030:3:9" }, "nodeType": "YulFunctionCall", - "src": "8995:18:7" + "src": "10030:18:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9015:2:7", + "src": "10050:2:9", "type": "", "value": "13" } @@ -40814,13 +49541,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "8988:6:7" + "src": "10023:6:9" }, "nodeType": "YulFunctionCall", - "src": "8988:30:7" + "src": "10023:30:9" }, "nodeType": "YulExpressionStatement", - "src": "8988:30:7" + "src": "10023:30:9" }, { "expression": { @@ -40830,12 +49557,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "9038:9:7" + "src": "10073:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9049:2:7", + "src": "10084:2:9", "type": "", "value": "64" } @@ -40843,16 +49570,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "9034:3:7" + "src": "10069:3:9" }, "nodeType": "YulFunctionCall", - "src": "9034:18:7" + "src": "10069:18:9" }, { "hexValue": "496e76616c6964207072696365", "kind": "string", "nodeType": "YulLiteral", - "src": "9054:15:7", + "src": "10089:15:9", "type": "", "value": "Invalid price" } @@ -40860,28 +49587,28 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "9027:6:7" + "src": "10062:6:9" }, "nodeType": "YulFunctionCall", - "src": "9027:43:7" + "src": "10062:43:9" }, "nodeType": "YulExpressionStatement", - "src": "9027:43:7" + "src": "10062:43:9" }, { "nodeType": "YulAssignment", - "src": "9079:26:7", + "src": "10114:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "9091:9:7" + "src": "10126:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9102:2:7", + "src": "10137:2:9", "type": "", "value": "96" } @@ -40889,16 +49616,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "9087:3:7" + "src": "10122:3:9" }, "nodeType": "YulFunctionCall", - "src": "9087:18:7" + "src": "10122:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "9079:4:7" + "src": "10114:4:9" } ] } @@ -40910,7 +49637,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "8925:9:7", + "src": "9960:9:9", "type": "" } ], @@ -40918,65 +49645,65 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "8939:4:7", + "src": "9974:4:9", "type": "" } ], - "src": "8774:337:7" + "src": "9809:337:9" }, { "body": { "nodeType": "YulBlock", - "src": "9171:325:7", + "src": "10206:325:9", "statements": [ { "nodeType": "YulAssignment", - "src": "9181:22:7", + "src": "10216:22:9", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "9195:1:7", + "src": "10230:1:9", "type": "", "value": "1" }, { "name": "data", "nodeType": "YulIdentifier", - "src": "9198:4:7" + "src": "10233:4:9" } ], "functionName": { "name": "shr", "nodeType": "YulIdentifier", - "src": "9191:3:7" + "src": "10226:3:9" }, "nodeType": "YulFunctionCall", - "src": "9191:12:7" + "src": "10226:12:9" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", - "src": "9181:6:7" + "src": "10216:6:9" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "9212:38:7", + "src": "10247:38:9", "value": { "arguments": [ { "name": "data", "nodeType": "YulIdentifier", - "src": "9242:4:7" + "src": "10277:4:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9248:1:7", + "src": "10283:1:9", "type": "", "value": "1" } @@ -40984,16 +49711,16 @@ "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "9238:3:7" + "src": "10273:3:9" }, "nodeType": "YulFunctionCall", - "src": "9238:12:7" + "src": "10273:12:9" }, "variables": [ { "name": "outOfPlaceEncoding", "nodeType": "YulTypedName", - "src": "9216:18:7", + "src": "10251:18:9", "type": "" } ] @@ -41001,22 +49728,22 @@ { "body": { "nodeType": "YulBlock", - "src": "9289:31:7", + "src": "10324:31:9", "statements": [ { "nodeType": "YulAssignment", - "src": "9291:27:7", + "src": "10326:27:9", "value": { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", - "src": "9305:6:7" + "src": "10340:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9313:4:7", + "src": "10348:4:9", "type": "", "value": "0x7f" } @@ -41024,16 +49751,16 @@ "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "9301:3:7" + "src": "10336:3:9" }, "nodeType": "YulFunctionCall", - "src": "9301:17:7" + "src": "10336:17:9" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", - "src": "9291:6:7" + "src": "10326:6:9" } ] } @@ -41044,24 +49771,24 @@ { "name": "outOfPlaceEncoding", "nodeType": "YulIdentifier", - "src": "9269:18:7" + "src": "10304:18:9" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "9262:6:7" + "src": "10297:6:9" }, "nodeType": "YulFunctionCall", - "src": "9262:26:7" + "src": "10297:26:9" }, "nodeType": "YulIf", - "src": "9259:61:7" + "src": "10294:61:9" }, { "body": { "nodeType": "YulBlock", - "src": "9379:111:7", + "src": "10414:111:9", "statements": [ { "expression": { @@ -41069,7 +49796,7 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "9400:1:7", + "src": "10435:1:9", "type": "", "value": "0" }, @@ -41078,14 +49805,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "9407:3:7", + "src": "10442:3:9", "type": "", "value": "224" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9412:10:7", + "src": "10447:10:9", "type": "", "value": "0x4e487b71" } @@ -41093,22 +49820,22 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "9403:3:7" + "src": "10438:3:9" }, "nodeType": "YulFunctionCall", - "src": "9403:20:7" + "src": "10438:20:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "9393:6:7" + "src": "10428:6:9" }, "nodeType": "YulFunctionCall", - "src": "9393:31:7" + "src": "10428:31:9" }, "nodeType": "YulExpressionStatement", - "src": "9393:31:7" + "src": "10428:31:9" }, { "expression": { @@ -41116,14 +49843,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "9444:1:7", + "src": "10479:1:9", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9447:4:7", + "src": "10482:4:9", "type": "", "value": "0x22" } @@ -41131,13 +49858,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "9437:6:7" + "src": "10472:6:9" }, "nodeType": "YulFunctionCall", - "src": "9437:15:7" + "src": "10472:15:9" }, "nodeType": "YulExpressionStatement", - "src": "9437:15:7" + "src": "10472:15:9" }, { "expression": { @@ -41145,14 +49872,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "9472:1:7", + "src": "10507:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9475:4:7", + "src": "10510:4:9", "type": "", "value": "0x24" } @@ -41160,13 +49887,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "9465:6:7" + "src": "10500:6:9" }, "nodeType": "YulFunctionCall", - "src": "9465:15:7" + "src": "10500:15:9" }, "nodeType": "YulExpressionStatement", - "src": "9465:15:7" + "src": "10500:15:9" } ] }, @@ -41175,19 +49902,19 @@ { "name": "outOfPlaceEncoding", "nodeType": "YulIdentifier", - "src": "9335:18:7" + "src": "10370:18:9" }, { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", - "src": "9358:6:7" + "src": "10393:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9366:2:7", + "src": "10401:2:9", "type": "", "value": "32" } @@ -41195,22 +49922,22 @@ "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "9355:2:7" + "src": "10390:2:9" }, "nodeType": "YulFunctionCall", - "src": "9355:14:7" + "src": "10390:14:9" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "9332:2:7" + "src": "10367:2:9" }, "nodeType": "YulFunctionCall", - "src": "9332:38:7" + "src": "10367:38:9" }, "nodeType": "YulIf", - "src": "9329:161:7" + "src": "10364:161:9" } ] }, @@ -41220,7 +49947,7 @@ { "name": "data", "nodeType": "YulTypedName", - "src": "9151:4:7", + "src": "10186:4:9", "type": "" } ], @@ -41228,16 +49955,16 @@ { "name": "length", "nodeType": "YulTypedName", - "src": "9160:6:7", + "src": "10195:6:9", "type": "" } ], - "src": "9116:380:7" + "src": "10151:380:9" }, { "body": { "nodeType": "YulBlock", - "src": "9557:65:7", + "src": "10592:65:9", "statements": [ { "expression": { @@ -41245,43 +49972,43 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "9574:1:7", + "src": "10609:1:9", "type": "", "value": "0" }, { "name": "ptr", "nodeType": "YulIdentifier", - "src": "9577:3:7" + "src": "10612:3:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "9567:6:7" + "src": "10602:6:9" }, "nodeType": "YulFunctionCall", - "src": "9567:14:7" + "src": "10602:14:9" }, "nodeType": "YulExpressionStatement", - "src": "9567:14:7" + "src": "10602:14:9" }, { "nodeType": "YulAssignment", - "src": "9590:26:7", + "src": "10625:26:9", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "9608:1:7", + "src": "10643:1:9", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9611:4:7", + "src": "10646:4:9", "type": "", "value": "0x20" } @@ -41289,16 +50016,16 @@ "functionName": { "name": "keccak256", "nodeType": "YulIdentifier", - "src": "9598:9:7" + "src": "10633:9:9" }, "nodeType": "YulFunctionCall", - "src": "9598:18:7" + "src": "10633:18:9" }, "variableNames": [ { "name": "data", "nodeType": "YulIdentifier", - "src": "9590:4:7" + "src": "10625:4:9" } ] } @@ -41310,7 +50037,7 @@ { "name": "ptr", "nodeType": "YulTypedName", - "src": "9540:3:7", + "src": "10575:3:9", "type": "" } ], @@ -41318,29 +50045,29 @@ { "name": "data", "nodeType": "YulTypedName", - "src": "9548:4:7", + "src": "10583:4:9", "type": "" } ], - "src": "9501:121:7" + "src": "10536:121:9" }, { "body": { "nodeType": "YulBlock", - "src": "9708:464:7", + "src": "10743:464:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "9741:425:7", + "src": "10776:425:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "9755:11:7", + "src": "10790:11:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "9765:1:7", + "src": "10800:1:9", "type": "", "value": "0" }, @@ -41348,7 +50075,7 @@ { "name": "_1", "nodeType": "YulTypedName", - "src": "9759:2:7", + "src": "10794:2:9", "type": "" } ] @@ -41359,39 +50086,39 @@ { "name": "_1", "nodeType": "YulIdentifier", - "src": "9786:2:7" + "src": "10821:2:9" }, { "name": "array", "nodeType": "YulIdentifier", - "src": "9790:5:7" + "src": "10825:5:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "9779:6:7" + "src": "10814:6:9" }, "nodeType": "YulFunctionCall", - "src": "9779:17:7" + "src": "10814:17:9" }, "nodeType": "YulExpressionStatement", - "src": "9779:17:7" + "src": "10814:17:9" }, { "nodeType": "YulVariableDeclaration", - "src": "9809:31:7", + "src": "10844:31:9", "value": { "arguments": [ { "name": "_1", "nodeType": "YulIdentifier", - "src": "9831:2:7" + "src": "10866:2:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9835:4:7", + "src": "10870:4:9", "type": "", "value": "0x20" } @@ -41399,36 +50126,36 @@ "functionName": { "name": "keccak256", "nodeType": "YulIdentifier", - "src": "9821:9:7" + "src": "10856:9:9" }, "nodeType": "YulFunctionCall", - "src": "9821:19:7" + "src": "10856:19:9" }, "variables": [ { "name": "data", "nodeType": "YulTypedName", - "src": "9813:4:7", + "src": "10848:4:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "9853:57:7", + "src": "10888:57:9", "value": { "arguments": [ { "name": "data", "nodeType": "YulIdentifier", - "src": "9876:4:7" + "src": "10911:4:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "9886:1:7", + "src": "10921:1:9", "type": "", "value": "5" }, @@ -41437,12 +50164,12 @@ { "name": "startIndex", "nodeType": "YulIdentifier", - "src": "9893:10:7" + "src": "10928:10:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9905:2:7", + "src": "10940:2:9", "type": "", "value": "31" } @@ -41450,34 +50177,34 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "9889:3:7" + "src": "10924:3:9" }, "nodeType": "YulFunctionCall", - "src": "9889:19:7" + "src": "10924:19:9" } ], "functionName": { "name": "shr", "nodeType": "YulIdentifier", - "src": "9882:3:7" + "src": "10917:3:9" }, "nodeType": "YulFunctionCall", - "src": "9882:27:7" + "src": "10917:27:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "9872:3:7" + "src": "10907:3:9" }, "nodeType": "YulFunctionCall", - "src": "9872:38:7" + "src": "10907:38:9" }, "variables": [ { "name": "deleteStart", "nodeType": "YulTypedName", - "src": "9857:11:7", + "src": "10892:11:9", "type": "" } ] @@ -41485,21 +50212,21 @@ { "body": { "nodeType": "YulBlock", - "src": "9947:23:7", + "src": "10982:23:9", "statements": [ { "nodeType": "YulAssignment", - "src": "9949:19:7", + "src": "10984:19:9", "value": { "name": "data", "nodeType": "YulIdentifier", - "src": "9964:4:7" + "src": "10999:4:9" }, "variableNames": [ { "name": "deleteStart", "nodeType": "YulIdentifier", - "src": "9949:11:7" + "src": "10984:11:9" } ] } @@ -41510,12 +50237,12 @@ { "name": "startIndex", "nodeType": "YulIdentifier", - "src": "9929:10:7" + "src": "10964:10:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9941:4:7", + "src": "10976:4:9", "type": "", "value": "0x20" } @@ -41523,30 +50250,30 @@ "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "9926:2:7" + "src": "10961:2:9" }, "nodeType": "YulFunctionCall", - "src": "9926:20:7" + "src": "10961:20:9" }, "nodeType": "YulIf", - "src": "9923:47:7" + "src": "10958:47:9" }, { "nodeType": "YulVariableDeclaration", - "src": "9983:41:7", + "src": "11018:41:9", "value": { "arguments": [ { "name": "data", "nodeType": "YulIdentifier", - "src": "9997:4:7" + "src": "11032:4:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "10007:1:7", + "src": "11042:1:9", "type": "", "value": "5" }, @@ -41555,12 +50282,12 @@ { "name": "len", "nodeType": "YulIdentifier", - "src": "10014:3:7" + "src": "11049:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "10019:2:7", + "src": "11054:2:9", "type": "", "value": "31" } @@ -41568,51 +50295,51 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "10010:3:7" + "src": "11045:3:9" }, "nodeType": "YulFunctionCall", - "src": "10010:12:7" + "src": "11045:12:9" } ], "functionName": { "name": "shr", "nodeType": "YulIdentifier", - "src": "10003:3:7" + "src": "11038:3:9" }, "nodeType": "YulFunctionCall", - "src": "10003:20:7" + "src": "11038:20:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "9993:3:7" + "src": "11028:3:9" }, "nodeType": "YulFunctionCall", - "src": "9993:31:7" + "src": "11028:31:9" }, "variables": [ { "name": "_2", "nodeType": "YulTypedName", - "src": "9987:2:7", + "src": "11022:2:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "10037:24:7", + "src": "11072:24:9", "value": { "name": "deleteStart", "nodeType": "YulIdentifier", - "src": "10050:11:7" + "src": "11085:11:9" }, "variables": [ { "name": "start", "nodeType": "YulTypedName", - "src": "10041:5:7", + "src": "11076:5:9", "type": "" } ] @@ -41620,7 +50347,7 @@ { "body": { "nodeType": "YulBlock", - "src": "10135:21:7", + "src": "11170:21:9", "statements": [ { "expression": { @@ -41628,24 +50355,24 @@ { "name": "start", "nodeType": "YulIdentifier", - "src": "10144:5:7" + "src": "11179:5:9" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "10151:2:7" + "src": "11186:2:9" } ], "functionName": { "name": "sstore", "nodeType": "YulIdentifier", - "src": "10137:6:7" + "src": "11172:6:9" }, "nodeType": "YulFunctionCall", - "src": "10137:17:7" + "src": "11172:17:9" }, "nodeType": "YulExpressionStatement", - "src": "10137:17:7" + "src": "11172:17:9" } ] }, @@ -41654,41 +50381,41 @@ { "name": "start", "nodeType": "YulIdentifier", - "src": "10085:5:7" + "src": "11120:5:9" }, { "name": "_2", "nodeType": "YulIdentifier", - "src": "10092:2:7" + "src": "11127:2:9" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "10082:2:7" + "src": "11117:2:9" }, "nodeType": "YulFunctionCall", - "src": "10082:13:7" + "src": "11117:13:9" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", - "src": "10096:26:7", + "src": "11131:26:9", "statements": [ { "nodeType": "YulAssignment", - "src": "10098:22:7", + "src": "11133:22:9", "value": { "arguments": [ { "name": "start", "nodeType": "YulIdentifier", - "src": "10111:5:7" + "src": "11146:5:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "10118:1:7", + "src": "11153:1:9", "type": "", "value": "1" } @@ -41696,16 +50423,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "10107:3:7" + "src": "11142:3:9" }, "nodeType": "YulFunctionCall", - "src": "10107:13:7" + "src": "11142:13:9" }, "variableNames": [ { "name": "start", "nodeType": "YulIdentifier", - "src": "10098:5:7" + "src": "11133:5:9" } ] } @@ -41713,10 +50440,10 @@ }, "pre": { "nodeType": "YulBlock", - "src": "10078:3:7", + "src": "11113:3:9", "statements": [] }, - "src": "10074:82:7" + "src": "11109:82:9" } ] }, @@ -41725,12 +50452,12 @@ { "name": "len", "nodeType": "YulIdentifier", - "src": "9724:3:7" + "src": "10759:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9729:2:7", + "src": "10764:2:9", "type": "", "value": "31" } @@ -41738,13 +50465,13 @@ "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "9721:2:7" + "src": "10756:2:9" }, "nodeType": "YulFunctionCall", - "src": "9721:11:7" + "src": "10756:11:9" }, "nodeType": "YulIf", - "src": "9718:448:7" + "src": "10753:448:9" } ] }, @@ -41754,32 +50481,32 @@ { "name": "array", "nodeType": "YulTypedName", - "src": "9680:5:7", + "src": "10715:5:9", "type": "" }, { "name": "len", "nodeType": "YulTypedName", - "src": "9687:3:7", + "src": "10722:3:9", "type": "" }, { "name": "startIndex", "nodeType": "YulTypedName", - "src": "9692:10:7", + "src": "10727:10:9", "type": "" } ], - "src": "9627:545:7" + "src": "10662:545:9" }, { "body": { "nodeType": "YulBlock", - "src": "10262:81:7", + "src": "11297:81:9", "statements": [ { "nodeType": "YulAssignment", - "src": "10272:65:7", + "src": "11307:65:9", "value": { "arguments": [ { @@ -41787,7 +50514,7 @@ { "name": "data", "nodeType": "YulIdentifier", - "src": "10287:4:7" + "src": "11322:4:9" }, { "arguments": [ @@ -41798,30 +50525,30 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "10305:1:7", + "src": "11340:1:9", "type": "", "value": "3" }, { "name": "len", "nodeType": "YulIdentifier", - "src": "10308:3:7" + "src": "11343:3:9" } ], "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "10301:3:7" + "src": "11336:3:9" }, "nodeType": "YulFunctionCall", - "src": "10301:11:7" + "src": "11336:11:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "10318:1:7", + "src": "11353:1:9", "type": "", "value": "0" } @@ -41829,75 +50556,75 @@ "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "10314:3:7" + "src": "11349:3:9" }, "nodeType": "YulFunctionCall", - "src": "10314:6:7" + "src": "11349:6:9" } ], "functionName": { "name": "shr", "nodeType": "YulIdentifier", - "src": "10297:3:7" + "src": "11332:3:9" }, "nodeType": "YulFunctionCall", - "src": "10297:24:7" + "src": "11332:24:9" } ], "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "10293:3:7" + "src": "11328:3:9" }, "nodeType": "YulFunctionCall", - "src": "10293:29:7" + "src": "11328:29:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "10283:3:7" + "src": "11318:3:9" }, "nodeType": "YulFunctionCall", - "src": "10283:40:7" + "src": "11318:40:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "10329:1:7", + "src": "11364:1:9", "type": "", "value": "1" }, { "name": "len", "nodeType": "YulIdentifier", - "src": "10332:3:7" + "src": "11367:3:9" } ], "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "10325:3:7" + "src": "11360:3:9" }, "nodeType": "YulFunctionCall", - "src": "10325:11:7" + "src": "11360:11:9" } ], "functionName": { "name": "or", "nodeType": "YulIdentifier", - "src": "10280:2:7" + "src": "11315:2:9" }, "nodeType": "YulFunctionCall", - "src": "10280:57:7" + "src": "11315:57:9" }, "variableNames": [ { "name": "used", "nodeType": "YulIdentifier", - "src": "10272:4:7" + "src": "11307:4:9" } ] } @@ -41909,13 +50636,13 @@ { "name": "data", "nodeType": "YulTypedName", - "src": "10239:4:7", + "src": "11274:4:9", "type": "" }, { "name": "len", "nodeType": "YulTypedName", - "src": "10245:3:7", + "src": "11280:3:9", "type": "" } ], @@ -41923,41 +50650,41 @@ { "name": "used", "nodeType": "YulTypedName", - "src": "10253:4:7", + "src": "11288:4:9", "type": "" } ], - "src": "10177:166:7" + "src": "11212:166:9" }, { "body": { "nodeType": "YulBlock", - "src": "10444:1256:7", + "src": "11479:1256:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "10454:24:7", + "src": "11489:24:9", "value": { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", - "src": "10474:3:7" + "src": "11509:3:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "10468:5:7" + "src": "11503:5:9" }, "nodeType": "YulFunctionCall", - "src": "10468:10:7" + "src": "11503:10:9" }, "variables": [ { "name": "newLen", "nodeType": "YulTypedName", - "src": "10458:6:7", + "src": "11493:6:9", "type": "" } ] @@ -41965,7 +50692,7 @@ { "body": { "nodeType": "YulBlock", - "src": "10521:22:7", + "src": "11556:22:9", "statements": [ { "expression": { @@ -41973,13 +50700,13 @@ "functionName": { "name": "panic_error_0x41", "nodeType": "YulIdentifier", - "src": "10523:16:7" + "src": "11558:16:9" }, "nodeType": "YulFunctionCall", - "src": "10523:18:7" + "src": "11558:18:9" }, "nodeType": "YulExpressionStatement", - "src": "10523:18:7" + "src": "11558:18:9" } ] }, @@ -41988,12 +50715,12 @@ { "name": "newLen", "nodeType": "YulIdentifier", - "src": "10493:6:7" + "src": "11528:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "10501:18:7", + "src": "11536:18:9", "type": "", "value": "0xffffffffffffffff" } @@ -42001,13 +50728,13 @@ "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "10490:2:7" + "src": "11525:2:9" }, "nodeType": "YulFunctionCall", - "src": "10490:30:7" + "src": "11525:30:9" }, "nodeType": "YulIf", - "src": "10487:56:7" + "src": "11522:56:9" }, { "expression": { @@ -42015,7 +50742,7 @@ { "name": "slot", "nodeType": "YulIdentifier", - "src": "10596:4:7" + "src": "11631:4:9" }, { "arguments": [ @@ -42024,50 +50751,50 @@ { "name": "slot", "nodeType": "YulIdentifier", - "src": "10634:4:7" + "src": "11669:4:9" } ], "functionName": { "name": "sload", "nodeType": "YulIdentifier", - "src": "10628:5:7" + "src": "11663:5:9" }, "nodeType": "YulFunctionCall", - "src": "10628:11:7" + "src": "11663:11:9" } ], "functionName": { "name": "extract_byte_array_length", "nodeType": "YulIdentifier", - "src": "10602:25:7" + "src": "11637:25:9" }, "nodeType": "YulFunctionCall", - "src": "10602:38:7" + "src": "11637:38:9" }, { "name": "newLen", "nodeType": "YulIdentifier", - "src": "10642:6:7" + "src": "11677:6:9" } ], "functionName": { "name": "clean_up_bytearray_end_slots_string_storage", "nodeType": "YulIdentifier", - "src": "10552:43:7" + "src": "11587:43:9" }, "nodeType": "YulFunctionCall", - "src": "10552:97:7" + "src": "11587:97:9" }, "nodeType": "YulExpressionStatement", - "src": "10552:97:7" + "src": "11587:97:9" }, { "nodeType": "YulVariableDeclaration", - "src": "10658:18:7", + "src": "11693:18:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "10675:1:7", + "src": "11710:1:9", "type": "", "value": "0" }, @@ -42075,18 +50802,18 @@ { "name": "srcOffset", "nodeType": "YulTypedName", - "src": "10662:9:7", + "src": "11697:9:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "10685:23:7", + "src": "11720:23:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "10704:4:7", + "src": "11739:4:9", "type": "", "value": "0x20" }, @@ -42094,24 +50821,24 @@ { "name": "srcOffset_1", "nodeType": "YulTypedName", - "src": "10689:11:7", + "src": "11724:11:9", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "10717:24:7", + "src": "11752:24:9", "value": { "name": "srcOffset_1", "nodeType": "YulIdentifier", - "src": "10730:11:7" + "src": "11765:11:9" }, "variableNames": [ { "name": "srcOffset", "nodeType": "YulIdentifier", - "src": "10717:9:7" + "src": "11752:9:9" } ] }, @@ -42120,24 +50847,24 @@ { "body": { "nodeType": "YulBlock", - "src": "10787:656:7", + "src": "11822:656:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "10801:35:7", + "src": "11836:35:9", "value": { "arguments": [ { "name": "newLen", "nodeType": "YulIdentifier", - "src": "10820:6:7" + "src": "11855:6:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "10832:2:7", + "src": "11867:2:9", "type": "", "value": "31" } @@ -42145,64 +50872,64 @@ "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "10828:3:7" + "src": "11863:3:9" }, "nodeType": "YulFunctionCall", - "src": "10828:7:7" + "src": "11863:7:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "10816:3:7" + "src": "11851:3:9" }, "nodeType": "YulFunctionCall", - "src": "10816:20:7" + "src": "11851:20:9" }, "variables": [ { "name": "loopEnd", "nodeType": "YulTypedName", - "src": "10805:7:7", + "src": "11840:7:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "10849:49:7", + "src": "11884:49:9", "value": { "arguments": [ { "name": "slot", "nodeType": "YulIdentifier", - "src": "10893:4:7" + "src": "11928:4:9" } ], "functionName": { "name": "array_dataslot_string_storage", "nodeType": "YulIdentifier", - "src": "10863:29:7" + "src": "11898:29:9" }, "nodeType": "YulFunctionCall", - "src": "10863:35:7" + "src": "11898:35:9" }, "variables": [ { "name": "dstPtr", "nodeType": "YulTypedName", - "src": "10853:6:7", + "src": "11888:6:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "10911:10:7", + "src": "11946:10:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "10920:1:7", + "src": "11955:1:9", "type": "", "value": "0" }, @@ -42210,7 +50937,7 @@ { "name": "i", "nodeType": "YulTypedName", - "src": "10915:1:7", + "src": "11950:1:9", "type": "" } ] @@ -42218,7 +50945,7 @@ { "body": { "nodeType": "YulBlock", - "src": "10998:172:7", + "src": "12033:172:9", "statements": [ { "expression": { @@ -42226,7 +50953,7 @@ { "name": "dstPtr", "nodeType": "YulIdentifier", - "src": "11023:6:7" + "src": "12058:6:9" }, { "arguments": [ @@ -42235,57 +50962,57 @@ { "name": "src", "nodeType": "YulIdentifier", - "src": "11041:3:7" + "src": "12076:3:9" }, { "name": "srcOffset", "nodeType": "YulIdentifier", - "src": "11046:9:7" + "src": "12081:9:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "11037:3:7" + "src": "12072:3:9" }, "nodeType": "YulFunctionCall", - "src": "11037:19:7" + "src": "12072:19:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "11031:5:7" + "src": "12066:5:9" }, "nodeType": "YulFunctionCall", - "src": "11031:26:7" + "src": "12066:26:9" } ], "functionName": { "name": "sstore", "nodeType": "YulIdentifier", - "src": "11016:6:7" + "src": "12051:6:9" }, "nodeType": "YulFunctionCall", - "src": "11016:42:7" + "src": "12051:42:9" }, "nodeType": "YulExpressionStatement", - "src": "11016:42:7" + "src": "12051:42:9" }, { "nodeType": "YulAssignment", - "src": "11075:24:7", + "src": "12110:24:9", "value": { "arguments": [ { "name": "dstPtr", "nodeType": "YulIdentifier", - "src": "11089:6:7" + "src": "12124:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "11097:1:7", + "src": "12132:1:9", "type": "", "value": "1" } @@ -42293,48 +51020,48 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "11085:3:7" + "src": "12120:3:9" }, "nodeType": "YulFunctionCall", - "src": "11085:14:7" + "src": "12120:14:9" }, "variableNames": [ { "name": "dstPtr", "nodeType": "YulIdentifier", - "src": "11075:6:7" + "src": "12110:6:9" } ] }, { "nodeType": "YulAssignment", - "src": "11116:40:7", + "src": "12151:40:9", "value": { "arguments": [ { "name": "srcOffset", "nodeType": "YulIdentifier", - "src": "11133:9:7" + "src": "12168:9:9" }, { "name": "srcOffset_1", "nodeType": "YulIdentifier", - "src": "11144:11:7" + "src": "12179:11:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "11129:3:7" + "src": "12164:3:9" }, "nodeType": "YulFunctionCall", - "src": "11129:27:7" + "src": "12164:27:9" }, "variableNames": [ { "name": "srcOffset", "nodeType": "YulIdentifier", - "src": "11116:9:7" + "src": "12151:9:9" } ] } @@ -42345,56 +51072,56 @@ { "name": "i", "nodeType": "YulIdentifier", - "src": "10945:1:7" + "src": "11980:1:9" }, { "name": "loopEnd", "nodeType": "YulIdentifier", - "src": "10948:7:7" + "src": "11983:7:9" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "10942:2:7" + "src": "11977:2:9" }, "nodeType": "YulFunctionCall", - "src": "10942:14:7" + "src": "11977:14:9" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", - "src": "10957:28:7", + "src": "11992:28:9", "statements": [ { "nodeType": "YulAssignment", - "src": "10959:24:7", + "src": "11994:24:9", "value": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", - "src": "10968:1:7" + "src": "12003:1:9" }, { "name": "srcOffset_1", "nodeType": "YulIdentifier", - "src": "10971:11:7" + "src": "12006:11:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "10964:3:7" + "src": "11999:3:9" }, "nodeType": "YulFunctionCall", - "src": "10964:19:7" + "src": "11999:19:9" }, "variableNames": [ { "name": "i", "nodeType": "YulIdentifier", - "src": "10959:1:7" + "src": "11994:1:9" } ] } @@ -42402,19 +51129,19 @@ }, "pre": { "nodeType": "YulBlock", - "src": "10938:3:7", + "src": "11973:3:9", "statements": [] }, - "src": "10934:236:7" + "src": "11969:236:9" }, { "body": { "nodeType": "YulBlock", - "src": "11218:166:7", + "src": "12253:166:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "11236:43:7", + "src": "12271:43:9", "value": { "arguments": [ { @@ -42422,36 +51149,36 @@ { "name": "src", "nodeType": "YulIdentifier", - "src": "11263:3:7" + "src": "12298:3:9" }, { "name": "srcOffset", "nodeType": "YulIdentifier", - "src": "11268:9:7" + "src": "12303:9:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "11259:3:7" + "src": "12294:3:9" }, "nodeType": "YulFunctionCall", - "src": "11259:19:7" + "src": "12294:19:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "11253:5:7" + "src": "12288:5:9" }, "nodeType": "YulFunctionCall", - "src": "11253:26:7" + "src": "12288:26:9" }, "variables": [ { "name": "lastValue", "nodeType": "YulTypedName", - "src": "11240:9:7", + "src": "12275:9:9", "type": "" } ] @@ -42462,14 +51189,14 @@ { "name": "dstPtr", "nodeType": "YulIdentifier", - "src": "11303:6:7" + "src": "12338:6:9" }, { "arguments": [ { "name": "lastValue", "nodeType": "YulIdentifier", - "src": "11315:9:7" + "src": "12350:9:9" }, { "arguments": [ @@ -42482,28 +51209,28 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "11342:1:7", + "src": "12377:1:9", "type": "", "value": "3" }, { "name": "newLen", "nodeType": "YulIdentifier", - "src": "11345:6:7" + "src": "12380:6:9" } ], "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "11338:3:7" + "src": "12373:3:9" }, "nodeType": "YulFunctionCall", - "src": "11338:14:7" + "src": "12373:14:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "11354:3:7", + "src": "12389:3:9", "type": "", "value": "248" } @@ -42511,17 +51238,17 @@ "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "11334:3:7" + "src": "12369:3:9" }, "nodeType": "YulFunctionCall", - "src": "11334:24:7" + "src": "12369:24:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "11364:1:7", + "src": "12399:1:9", "type": "", "value": "0" } @@ -42529,49 +51256,49 @@ "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "11360:3:7" + "src": "12395:3:9" }, "nodeType": "YulFunctionCall", - "src": "11360:6:7" + "src": "12395:6:9" } ], "functionName": { "name": "shr", "nodeType": "YulIdentifier", - "src": "11330:3:7" + "src": "12365:3:9" }, "nodeType": "YulFunctionCall", - "src": "11330:37:7" + "src": "12365:37:9" } ], "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "11326:3:7" + "src": "12361:3:9" }, "nodeType": "YulFunctionCall", - "src": "11326:42:7" + "src": "12361:42:9" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "11311:3:7" + "src": "12346:3:9" }, "nodeType": "YulFunctionCall", - "src": "11311:58:7" + "src": "12346:58:9" } ], "functionName": { "name": "sstore", "nodeType": "YulIdentifier", - "src": "11296:6:7" + "src": "12331:6:9" }, "nodeType": "YulFunctionCall", - "src": "11296:74:7" + "src": "12331:74:9" }, "nodeType": "YulExpressionStatement", - "src": "11296:74:7" + "src": "12331:74:9" } ] }, @@ -42580,24 +51307,24 @@ { "name": "loopEnd", "nodeType": "YulIdentifier", - "src": "11189:7:7" + "src": "12224:7:9" }, { "name": "newLen", "nodeType": "YulIdentifier", - "src": "11198:6:7" + "src": "12233:6:9" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "11186:2:7" + "src": "12221:2:9" }, "nodeType": "YulFunctionCall", - "src": "11186:19:7" + "src": "12221:19:9" }, "nodeType": "YulIf", - "src": "11183:201:7" + "src": "12218:201:9" }, { "expression": { @@ -42605,7 +51332,7 @@ { "name": "slot", "nodeType": "YulIdentifier", - "src": "11404:4:7" + "src": "12439:4:9" }, { "arguments": [ @@ -42614,28 +51341,28 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "11418:1:7", + "src": "12453:1:9", "type": "", "value": "1" }, { "name": "newLen", "nodeType": "YulIdentifier", - "src": "11421:6:7" + "src": "12456:6:9" } ], "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "11414:3:7" + "src": "12449:3:9" }, "nodeType": "YulFunctionCall", - "src": "11414:14:7" + "src": "12449:14:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "11430:1:7", + "src": "12465:1:9", "type": "", "value": "1" } @@ -42643,215 +51370,1170 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "11410:3:7" + "src": "12445:3:9" }, "nodeType": "YulFunctionCall", - "src": "11410:22:7" + "src": "12445:22:9" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "12432:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "12432:36:9" + }, + "nodeType": "YulExpressionStatement", + "src": "12432:36:9" + } + ] + }, + "nodeType": "YulCase", + "src": "11815:663:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11820:1:9", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12495:234:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12509:14:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12522:1:9", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "12513:5:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12558:67:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12576:35:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "12595:3:9" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "12600:9:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12591:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "12591:19:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "12585:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "12585:26:9" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12576:5:9" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "12539:6:9" + }, + "nodeType": "YulIf", + "src": "12536:89:9" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "12645:4:9" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12704:5:9" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "12711:6:9" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "12651:52:9" + }, + "nodeType": "YulFunctionCall", + "src": "12651:67:9" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "12638:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "12638:81:9" + }, + "nodeType": "YulExpressionStatement", + "src": "12638:81:9" + } + ] + }, + "nodeType": "YulCase", + "src": "12487:242:9", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "11795:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11803:2:9", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "11792:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "11792:14:9" + }, + "nodeType": "YulSwitch", + "src": "11785:944:9" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "11464:4:9", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "11470:3:9", + "type": "" + } + ], + "src": "11383:1352:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12917:185:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12934:9:9" + }, + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12945:6:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12927:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "12927:25:9" + }, + "nodeType": "YulExpressionStatement", + "src": "12927:25:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12972:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12983:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12968:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "12968:18:9" + }, + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "12988:6:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12961:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "12961:34:9" + }, + "nodeType": "YulExpressionStatement", + "src": "12961:34:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13015:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13026:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13011:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "13011:18:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13031:2:9", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13004:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "13004:30:9" + }, + "nodeType": "YulExpressionStatement", + "src": "13004:30:9" + }, + { + "nodeType": "YulAssignment", + "src": "13043:53:9", + "value": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "13069:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13081:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13092:2:9", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13077:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "13077:18:9" + } + ], + "functionName": { + "name": "abi_encode_string", + "nodeType": "YulIdentifier", + "src": "13051:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "13051:45:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13043:4:9" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_string_memory_ptr__to_t_uint256_t_uint256_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12870:9:9", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "12881:6:9", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "12889:6:9", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12897:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "12908:4:9", + "type": "" + } + ], + "src": "12740:362:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13154:185:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "13193:111:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13214:1:9", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13221:3:9", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13226:10:9", + "type": "", + "value": "0x4e487b71" } ], "functionName": { - "name": "sstore", + "name": "shl", "nodeType": "YulIdentifier", - "src": "11397:6:7" + "src": "13217:3:9" }, "nodeType": "YulFunctionCall", - "src": "11397:36:7" + "src": "13217:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13207:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "13207:31:9" + }, + "nodeType": "YulExpressionStatement", + "src": "13207:31:9" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13258:1:9", + "type": "", + "value": "4" }, - "nodeType": "YulExpressionStatement", - "src": "11397:36:7" + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13261:4:9", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13251:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "13251:15:9" + }, + "nodeType": "YulExpressionStatement", + "src": "13251:15:9" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13286:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13289:4:9", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "13279:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "13279:15:9" + }, + "nodeType": "YulExpressionStatement", + "src": "13279:15:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "13170:5:9" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13181:1:9", + "type": "", + "value": "0" } - ] + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "13177:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "13177:6:9" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "13167:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "13167:17:9" + }, + "nodeType": "YulIf", + "src": "13164:140:9" + }, + { + "nodeType": "YulAssignment", + "src": "13313:20:9", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "13324:5:9" }, - "nodeType": "YulCase", - "src": "10780:663:7", - "value": { + { "kind": "number", "nodeType": "YulLiteral", - "src": "10785:1:7", + "src": "13331:1:9", "type": "", "value": "1" } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13320:3:9" }, + "nodeType": "YulFunctionCall", + "src": "13320:13:9" + }, + "variableNames": [ { - "body": { - "nodeType": "YulBlock", - "src": "11460:234:7", - "statements": [ + "name": "ret", + "nodeType": "YulIdentifier", + "src": "13313:3:9" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "13136:5:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "13146:3:9", + "type": "" + } + ], + "src": "13107:232:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13518:176:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13535:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13546:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13528:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "13528:21:9" + }, + "nodeType": "YulExpressionStatement", + "src": "13528:21:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ { - "nodeType": "YulVariableDeclaration", - "src": "11474:14:7", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11487:1:7", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "11478:5:7", - "type": "" - } - ] + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13569:9:9" }, { - "body": { - "nodeType": "YulBlock", - "src": "11523:67:7", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "11541:35:7", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "11560:3:7" - }, - { - "name": "srcOffset", - "nodeType": "YulIdentifier", - "src": "11565:9:7" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11556:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "11556:19:7" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "11550:5:7" - }, - "nodeType": "YulFunctionCall", - "src": "11550:26:7" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "11541:5:7" - } - ] - } - ] - }, - "condition": { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "11504:6:7" - }, - "nodeType": "YulIf", - "src": "11501:89:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "13580:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13565:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "13565:18:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13585:2:9", + "type": "", + "value": "26" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13558:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "13558:30:9" + }, + "nodeType": "YulExpressionStatement", + "src": "13558:30:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13608:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13619:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13604:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "13604:18:9" + }, + { + "hexValue": "4e6f742074686520697373756572206f6620746865207461736b", + "kind": "string", + "nodeType": "YulLiteral", + "src": "13624:28:9", + "type": "", + "value": "Not the issuer of the task" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13597:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "13597:56:9" + }, + "nodeType": "YulExpressionStatement", + "src": "13597:56:9" + }, + { + "nodeType": "YulAssignment", + "src": "13662:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13674:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13685:2:9", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13670:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "13670:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13662:4:9" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_8b01433edf8e1c1ecc76c5925a92e74cb9845acafce91ff571223021d8950f7c__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13495:9:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "13509:4:9", + "type": "" + } + ], + "src": "13344:350:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13873:171:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13890:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13901:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13883:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "13883:21:9" + }, + "nodeType": "YulExpressionStatement", + "src": "13883:21:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13924:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13935:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13920:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "13920:18:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13940:2:9", + "type": "", + "value": "21" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13913:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "13913:30:9" + }, + "nodeType": "YulExpressionStatement", + "src": "13913:30:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13963:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13974:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13959:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "13959:18:9" + }, + { + "hexValue": "5461736b206973206e6f7420636f6d706c65746564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "13979:23:9", + "type": "", + "value": "Task is not completed" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13952:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "13952:51:9" + }, + "nodeType": "YulExpressionStatement", + "src": "13952:51:9" + }, + { + "nodeType": "YulAssignment", + "src": "14012:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14024:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14035:2:9", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14020:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "14020:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14012:4:9" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_a08755c006bba216d153388cc97acf5e536a500c0ec88cade64bd6b2f0d0e27d__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13850:9:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "13864:4:9", + "type": "" + } + ], + "src": "13699:345:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14223:173:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14240:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14251:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14233:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "14233:21:9" + }, + "nodeType": "YulExpressionStatement", + "src": "14233:21:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14274:9:9" }, { - "expression": { - "arguments": [ - { - "name": "slot", - "nodeType": "YulIdentifier", - "src": "11610:4:7" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "11669:5:7" - }, - { - "name": "newLen", - "nodeType": "YulIdentifier", - "src": "11676:6:7" - } - ], - "functionName": { - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nodeType": "YulIdentifier", - "src": "11616:52:7" - }, - "nodeType": "YulFunctionCall", - "src": "11616:67:7" - } - ], - "functionName": { - "name": "sstore", - "nodeType": "YulIdentifier", - "src": "11603:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "11603:81:7" - }, - "nodeType": "YulExpressionStatement", - "src": "11603:81:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "14285:2:9", + "type": "", + "value": "32" } - ] + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14270:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "14270:18:9" }, - "nodeType": "YulCase", - "src": "11452:242:7", - "value": "default" - } - ], + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14290:2:9", + "type": "", + "value": "23" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14263:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "14263:30:9" + }, + "nodeType": "YulExpressionStatement", + "src": "14263:30:9" + }, + { "expression": { "arguments": [ { - "name": "newLen", + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14313:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14324:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14309:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "14309:18:9" + }, + { + "hexValue": "5461736b20676f7420726174696e6720616c7265616479", + "kind": "string", + "nodeType": "YulLiteral", + "src": "14329:25:9", + "type": "", + "value": "Task got rating already" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14302:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "14302:53:9" + }, + "nodeType": "YulExpressionStatement", + "src": "14302:53:9" + }, + { + "nodeType": "YulAssignment", + "src": "14364:26:9", + "value": { + "arguments": [ + { + "name": "headStart", "nodeType": "YulIdentifier", - "src": "10760:6:7" + "src": "14376:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "10768:2:7", + "src": "14387:2:9", "type": "", - "value": "31" + "value": "96" } ], "functionName": { - "name": "gt", + "name": "add", "nodeType": "YulIdentifier", - "src": "10757:2:7" + "src": "14372:3:9" }, "nodeType": "YulFunctionCall", - "src": "10757:14:7" + "src": "14372:18:9" }, - "nodeType": "YulSwitch", - "src": "10750:944:7" + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14364:4:9" + } + ] } ] }, - "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "name": "abi_encode_tuple_t_stringliteral_306fe74d51ecec7b72bc35613a90b4c93840ded0ff8f63d0daef622fd6053b19__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "slot", + "name": "headStart", "nodeType": "YulTypedName", - "src": "10429:4:7", + "src": "14200:9:9", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "src", + "name": "tail", "nodeType": "YulTypedName", - "src": "10435:3:7", + "src": "14214:4:9", "type": "" } ], - "src": "10348:1352:7" + "src": "14049:347:9" }, { "body": { "nodeType": "YulBlock", - "src": "11882:185:7", + "src": "14575:182:9", "statements": [ { "expression": { @@ -42859,24 +52541,26 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "11899:9:7" + "src": "14592:9:9" }, { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "11910:6:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "14603:2:9", + "type": "", + "value": "32" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "11892:6:7" + "src": "14585:6:9" }, "nodeType": "YulFunctionCall", - "src": "11892:25:7" + "src": "14585:21:9" }, "nodeType": "YulExpressionStatement", - "src": "11892:25:7" + "src": "14585:21:9" }, { "expression": { @@ -42886,12 +52570,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "11937:9:7" + "src": "14626:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "11948:2:7", + "src": "14637:2:9", "type": "", "value": "32" } @@ -42899,27 +52583,29 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "11933:3:7" + "src": "14622:3:9" }, "nodeType": "YulFunctionCall", - "src": "11933:18:7" + "src": "14622:18:9" }, { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "11953:6:7" + "kind": "number", + "nodeType": "YulLiteral", + "src": "14642:2:9", + "type": "", + "value": "32" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "11926:6:7" + "src": "14615:6:9" }, "nodeType": "YulFunctionCall", - "src": "11926:34:7" + "src": "14615:30:9" }, "nodeType": "YulExpressionStatement", - "src": "11926:34:7" + "src": "14615:30:9" }, { "expression": { @@ -42929,12 +52615,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "11980:9:7" + "src": "14665:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "11991:2:7", + "src": "14676:2:9", "type": "", "value": "64" } @@ -42942,107 +52628,287 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "11976:3:7" + "src": "14661:3:9" }, "nodeType": "YulFunctionCall", - "src": "11976:18:7" + "src": "14661:18:9" }, { - "kind": "number", + "hexValue": "526174696e67206d757374206265206265747765656e203020616e6420313030", + "kind": "string", "nodeType": "YulLiteral", - "src": "11996:2:7", + "src": "14681:34:9", "type": "", - "value": "96" + "value": "Rating must be between 0 and 100" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "11969:6:7" + "src": "14654:6:9" }, "nodeType": "YulFunctionCall", - "src": "11969:30:7" + "src": "14654:62:9" }, "nodeType": "YulExpressionStatement", - "src": "11969:30:7" + "src": "14654:62:9" }, { "nodeType": "YulAssignment", - "src": "12008:53:7", + "src": "14725:26:9", "value": { "arguments": [ { - "name": "value2", + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14737:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14748:2:9", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14733:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "14733:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14725:4:9" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c137d625e69877210f78bfe5d3113cccc58db43b2ac3bb8f673d723a397aae3e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14552:9:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "14566:4:9", + "type": "" + } + ], + "src": "14401:356:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14889:156:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14899:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14911:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14922:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14907:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "14907:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14899:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", "nodeType": "YulIdentifier", - "src": "12034:6:7" + "src": "14941:9:9" }, + { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14956:6:9" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14972:3:9", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14977:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "14968:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "14968:11:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14981:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14964:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "14964:19:9" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "14952:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "14952:32:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14934:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "14934:51:9" + }, + "nodeType": "YulExpressionStatement", + "src": "14934:51:9" + }, + { + "expression": { + "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "12046:9:7" + "src": "15005:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12057:2:7", + "src": "15016:2:9", "type": "", - "value": "96" + "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "12042:3:7" + "src": "15001:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "15001:18:9" + }, + { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "15025:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15033:4:9", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "15021:3:9" }, "nodeType": "YulFunctionCall", - "src": "12042:18:7" + "src": "15021:17:9" } ], "functionName": { - "name": "abi_encode_string", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "12016:17:7" + "src": "14994:6:9" }, "nodeType": "YulFunctionCall", - "src": "12016:45:7" + "src": "14994:45:9" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "12008:4:7" - } - ] + "nodeType": "YulExpressionStatement", + "src": "14994:45:9" } ] }, - "name": "abi_encode_tuple_t_uint256_t_uint256_t_string_memory_ptr__to_t_uint256_t_uint256_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint256__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "11835:9:7", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "11846:6:7", + "src": "14850:9:9", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "11854:6:7", + "src": "14861:6:9", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "11862:6:7", + "src": "14869:6:9", "type": "" } ], @@ -43050,21 +52916,21 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "11873:4:7", + "src": "14880:4:9", "type": "" } ], - "src": "11705:362:7" + "src": "14762:283:9" }, { "body": { "nodeType": "YulBlock", - "src": "12119:185:7", + "src": "15131:103:9", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "12158:111:7", + "src": "15177:16:9", "statements": [ { "expression": { @@ -43072,204 +52938,242 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "12179:1:7", + "src": "15186:1:9", "type": "", "value": "0" }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12186:3:7", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12191:10:7", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "12182:3:7" - }, - "nodeType": "YulFunctionCall", - "src": "12182:20:7" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "12172:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "12172:31:7" - }, - "nodeType": "YulExpressionStatement", - "src": "12172:31:7" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12223:1:7", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12226:4:7", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "12216:6:7" - }, - "nodeType": "YulFunctionCall", - "src": "12216:15:7" - }, - "nodeType": "YulExpressionStatement", - "src": "12216:15:7" - }, - { - "expression": { - "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "12251:1:7", + "src": "15189:1:9", "type": "", "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12254:4:7", - "type": "", - "value": "0x24" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "12244:6:7" + "src": "15179:6:9" }, "nodeType": "YulFunctionCall", - "src": "12244:15:7" + "src": "15179:12:9" }, "nodeType": "YulExpressionStatement", - "src": "12244:15:7" + "src": "15179:12:9" } ] }, "condition": { "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "12135:5:7" - }, { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12146:1:7", - "type": "", - "value": "0" + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "15152:7:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15161:9:9" } ], "functionName": { - "name": "not", + "name": "sub", "nodeType": "YulIdentifier", - "src": "12142:3:7" + "src": "15148:3:9" }, "nodeType": "YulFunctionCall", - "src": "12142:6:7" + "src": "15148:23:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15173:2:9", + "type": "", + "value": "32" } ], "functionName": { - "name": "eq", + "name": "slt", "nodeType": "YulIdentifier", - "src": "12132:2:7" + "src": "15144:3:9" }, "nodeType": "YulFunctionCall", - "src": "12132:17:7" + "src": "15144:32:9" }, "nodeType": "YulIf", - "src": "12129:140:7" + "src": "15141:52:9" }, { "nodeType": "YulAssignment", - "src": "12278:20:7", + "src": "15202:26:9", "value": { "arguments": [ { - "name": "value", + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15218:9:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "15212:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "15212:16:9" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "15202:6:9" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15097:9:9", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "15108:7:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "15120:6:9", + "type": "" + } + ], + "src": "15050:184:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15336:87:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15346:26:9", + "value": { + "arguments": [ + { + "name": "headStart", "nodeType": "YulIdentifier", - "src": "12289:5:7" + "src": "15358:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12296:1:7", + "src": "15369:2:9", "type": "", - "value": "1" + "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "12285:3:7" + "src": "15354:3:9" }, "nodeType": "YulFunctionCall", - "src": "12285:13:7" + "src": "15354:18:9" }, "variableNames": [ { - "name": "ret", + "name": "tail", "nodeType": "YulIdentifier", - "src": "12278:3:7" + "src": "15346:4:9" } ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15388:9:9" + }, + { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "15403:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15411:4:9", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "15399:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "15399:17:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15381:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "15381:36:9" + }, + "nodeType": "YulExpressionStatement", + "src": "15381:36:9" } ] }, - "name": "increment_t_uint256", + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15305:9:9", + "type": "" + }, + { + "name": "value0", "nodeType": "YulTypedName", - "src": "12101:5:7", + "src": "15316:6:9", "type": "" } ], "returnVariables": [ { - "name": "ret", + "name": "tail", "nodeType": "YulTypedName", - "src": "12111:3:7", + "src": "15327:4:9", "type": "" } ], - "src": "12072:232:7" + "src": "15239:184:9" }, { "body": { "nodeType": "YulBlock", - "src": "12483:164:7", + "src": "15602:164:9", "statements": [ { "expression": { @@ -43277,12 +53181,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "12500:9:7" + "src": "15619:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12511:2:7", + "src": "15630:2:9", "type": "", "value": "32" } @@ -43290,13 +53194,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "12493:6:7" + "src": "15612:6:9" }, "nodeType": "YulFunctionCall", - "src": "12493:21:7" + "src": "15612:21:9" }, "nodeType": "YulExpressionStatement", - "src": "12493:21:7" + "src": "15612:21:9" }, { "expression": { @@ -43306,12 +53210,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "12534:9:7" + "src": "15653:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12545:2:7", + "src": "15664:2:9", "type": "", "value": "32" } @@ -43319,15 +53223,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "12530:3:7" + "src": "15649:3:9" }, "nodeType": "YulFunctionCall", - "src": "12530:18:7" + "src": "15649:18:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12550:2:7", + "src": "15669:2:9", "type": "", "value": "14" } @@ -43335,13 +53239,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "12523:6:7" + "src": "15642:6:9" }, "nodeType": "YulFunctionCall", - "src": "12523:30:7" + "src": "15642:30:9" }, "nodeType": "YulExpressionStatement", - "src": "12523:30:7" + "src": "15642:30:9" }, { "expression": { @@ -43351,12 +53255,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "12573:9:7" + "src": "15692:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12584:2:7", + "src": "15703:2:9", "type": "", "value": "64" } @@ -43364,16 +53268,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "12569:3:7" + "src": "15688:3:9" }, "nodeType": "YulFunctionCall", - "src": "12569:18:7" + "src": "15688:18:9" }, { "hexValue": "4e6f7420617574686f72697a6564", "kind": "string", "nodeType": "YulLiteral", - "src": "12589:16:7", + "src": "15708:16:9", "type": "", "value": "Not authorized" } @@ -43381,28 +53285,28 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "12562:6:7" + "src": "15681:6:9" }, "nodeType": "YulFunctionCall", - "src": "12562:44:7" + "src": "15681:44:9" }, "nodeType": "YulExpressionStatement", - "src": "12562:44:7" + "src": "15681:44:9" }, { "nodeType": "YulAssignment", - "src": "12615:26:7", + "src": "15734:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "12627:9:7" + "src": "15746:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12638:2:7", + "src": "15757:2:9", "type": "", "value": "96" } @@ -43410,16 +53314,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "12623:3:7" + "src": "15742:3:9" }, "nodeType": "YulFunctionCall", - "src": "12623:18:7" + "src": "15742:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "12615:4:7" + "src": "15734:4:9" } ] } @@ -43431,7 +53335,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "12460:9:7", + "src": "15579:9:9", "type": "" } ], @@ -43439,16 +53343,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "12474:4:7", + "src": "15593:4:9", "type": "" } ], - "src": "12309:338:7" + "src": "15428:338:9" }, { "body": { "nodeType": "YulBlock", - "src": "12826:169:7", + "src": "15945:169:9", "statements": [ { "expression": { @@ -43456,12 +53360,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "12843:9:7" + "src": "15962:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12854:2:7", + "src": "15973:2:9", "type": "", "value": "32" } @@ -43469,13 +53373,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "12836:6:7" + "src": "15955:6:9" }, "nodeType": "YulFunctionCall", - "src": "12836:21:7" + "src": "15955:21:9" }, "nodeType": "YulExpressionStatement", - "src": "12836:21:7" + "src": "15955:21:9" }, { "expression": { @@ -43485,12 +53389,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "12877:9:7" + "src": "15996:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12888:2:7", + "src": "16007:2:9", "type": "", "value": "32" } @@ -43498,15 +53402,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "12873:3:7" + "src": "15992:3:9" }, "nodeType": "YulFunctionCall", - "src": "12873:18:7" + "src": "15992:18:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12893:2:7", + "src": "16012:2:9", "type": "", "value": "19" } @@ -43514,13 +53418,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "12866:6:7" + "src": "15985:6:9" }, "nodeType": "YulFunctionCall", - "src": "12866:30:7" + "src": "15985:30:9" }, "nodeType": "YulExpressionStatement", - "src": "12866:30:7" + "src": "15985:30:9" }, { "expression": { @@ -43530,12 +53434,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "12916:9:7" + "src": "16035:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12927:2:7", + "src": "16046:2:9", "type": "", "value": "64" } @@ -43543,16 +53447,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "12912:3:7" + "src": "16031:3:9" }, "nodeType": "YulFunctionCall", - "src": "12912:18:7" + "src": "16031:18:9" }, { "hexValue": "496e76616c6964207461736b20737461747573", "kind": "string", "nodeType": "YulLiteral", - "src": "12932:21:7", + "src": "16051:21:9", "type": "", "value": "Invalid task status" } @@ -43560,28 +53464,28 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "12905:6:7" + "src": "16024:6:9" }, "nodeType": "YulFunctionCall", - "src": "12905:49:7" + "src": "16024:49:9" }, "nodeType": "YulExpressionStatement", - "src": "12905:49:7" + "src": "16024:49:9" }, { "nodeType": "YulAssignment", - "src": "12963:26:7", + "src": "16082:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "12975:9:7" + "src": "16094:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12986:2:7", + "src": "16105:2:9", "type": "", "value": "96" } @@ -43589,16 +53493,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "12971:3:7" + "src": "16090:3:9" }, "nodeType": "YulFunctionCall", - "src": "12971:18:7" + "src": "16090:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "12963:4:7" + "src": "16082:4:9" } ] } @@ -43610,7 +53514,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "12803:9:7", + "src": "15922:9:9", "type": "" } ], @@ -43618,16 +53522,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "12817:4:7", + "src": "15936:4:9", "type": "" } ], - "src": "12652:343:7" + "src": "15771:343:9" }, { "body": { "nodeType": "YulBlock", - "src": "13121:99:7", + "src": "16240:99:9", "statements": [ { "expression": { @@ -43635,12 +53539,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "13138:9:7" + "src": "16257:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13149:2:7", + "src": "16268:2:9", "type": "", "value": "32" } @@ -43648,35 +53552,35 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "13131:6:7" + "src": "16250:6:9" }, "nodeType": "YulFunctionCall", - "src": "13131:21:7" + "src": "16250:21:9" }, "nodeType": "YulExpressionStatement", - "src": "13131:21:7" + "src": "16250:21:9" }, { "nodeType": "YulAssignment", - "src": "13161:53:7", + "src": "16280:53:9", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "13187:6:7" + "src": "16306:6:9" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "13199:9:7" + "src": "16318:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13210:2:7", + "src": "16329:2:9", "type": "", "value": "32" } @@ -43684,25 +53588,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "13195:3:7" + "src": "16314:3:9" }, "nodeType": "YulFunctionCall", - "src": "13195:18:7" + "src": "16314:18:9" } ], "functionName": { "name": "abi_encode_string", "nodeType": "YulIdentifier", - "src": "13169:17:7" + "src": "16288:17:9" }, "nodeType": "YulFunctionCall", - "src": "13169:45:7" + "src": "16288:45:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "13161:4:7" + "src": "16280:4:9" } ] } @@ -43714,13 +53618,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "13090:9:7", + "src": "16209:9:9", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "13101:6:7", + "src": "16220:6:9", "type": "" } ], @@ -43728,41 +53632,220 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "13112:4:7", + "src": "16231:4:9", "type": "" } ], - "src": "13000:220:7" + "src": "16119:220:9" }, { "body": { "nodeType": "YulBlock", - "src": "13362:150:7", + "src": "16518:173:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16535:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16546:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16528:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "16528:21:9" + }, + "nodeType": "YulExpressionStatement", + "src": "16528:21:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16569:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16580:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16565:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "16565:18:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16585:2:9", + "type": "", + "value": "23" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16558:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "16558:30:9" + }, + "nodeType": "YulExpressionStatement", + "src": "16558:30:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16608:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16619:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16604:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "16604:18:9" + }, + { + "hexValue": "5461736b2063616e6e6f742062652063616e63656c6564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16624:25:9", + "type": "", + "value": "Task cannot be canceled" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16597:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "16597:53:9" + }, + "nodeType": "YulExpressionStatement", + "src": "16597:53:9" + }, + { + "nodeType": "YulAssignment", + "src": "16659:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16671:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16682:2:9", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16667:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "16667:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16659:4:9" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_784e567ba03dff6623f8e7bbee52b701bfd622c294c48e22d5da37cfabe25ac0__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "16495:9:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "16509:4:9", + "type": "" + } + ], + "src": "16344:347:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16833:150:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "13372:27:7", + "src": "16843:27:9", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "13392:6:7" + "src": "16863:6:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "13386:5:7" + "src": "16857:5:9" }, "nodeType": "YulFunctionCall", - "src": "13386:13:7" + "src": "16857:13:9" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", - "src": "13376:6:7", + "src": "16847:6:9", "type": "" } ] @@ -43775,12 +53858,12 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "13447:6:7" + "src": "16918:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13455:4:7", + "src": "16926:4:9", "type": "", "value": "0x20" } @@ -43788,62 +53871,62 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "13443:3:7" + "src": "16914:3:9" }, "nodeType": "YulFunctionCall", - "src": "13443:17:7" + "src": "16914:17:9" }, { "name": "pos", "nodeType": "YulIdentifier", - "src": "13462:3:7" + "src": "16933:3:9" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "13467:6:7" + "src": "16938:6:9" } ], "functionName": { "name": "copy_memory_to_memory_with_cleanup", "nodeType": "YulIdentifier", - "src": "13408:34:7" + "src": "16879:34:9" }, "nodeType": "YulFunctionCall", - "src": "13408:66:7" + "src": "16879:66:9" }, "nodeType": "YulExpressionStatement", - "src": "13408:66:7" + "src": "16879:66:9" }, { "nodeType": "YulAssignment", - "src": "13483:23:7", + "src": "16954:23:9", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "13494:3:7" + "src": "16965:3:9" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "13499:6:7" + "src": "16970:6:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "13490:3:7" + "src": "16961:3:9" }, "nodeType": "YulFunctionCall", - "src": "13490:16:7" + "src": "16961:16:9" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "13483:3:7" + "src": "16954:3:9" } ] } @@ -43855,13 +53938,13 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "13338:3:7", + "src": "16809:3:9", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "13343:6:7", + "src": "16814:6:9", "type": "" } ], @@ -43869,16 +53952,16 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "13354:3:7", + "src": "16825:3:9", "type": "" } ], - "src": "13225:287:7" + "src": "16696:287:9" }, { "body": { "nodeType": "YulBlock", - "src": "13691:242:7", + "src": "17162:242:9", "statements": [ { "expression": { @@ -43886,12 +53969,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "13708:9:7" + "src": "17179:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13719:2:7", + "src": "17190:2:9", "type": "", "value": "32" } @@ -43899,13 +53982,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "13701:6:7" + "src": "17172:6:9" }, "nodeType": "YulFunctionCall", - "src": "13701:21:7" + "src": "17172:21:9" }, "nodeType": "YulExpressionStatement", - "src": "13701:21:7" + "src": "17172:21:9" }, { "expression": { @@ -43915,12 +53998,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "13742:9:7" + "src": "17213:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13753:2:7", + "src": "17224:2:9", "type": "", "value": "32" } @@ -43928,15 +54011,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "13738:3:7" + "src": "17209:3:9" }, "nodeType": "YulFunctionCall", - "src": "13738:18:7" + "src": "17209:18:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13758:2:7", + "src": "17229:2:9", "type": "", "value": "52" } @@ -43944,13 +54027,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "13731:6:7" + "src": "17202:6:9" }, "nodeType": "YulFunctionCall", - "src": "13731:30:7" + "src": "17202:30:9" }, "nodeType": "YulExpressionStatement", - "src": "13731:30:7" + "src": "17202:30:9" }, { "expression": { @@ -43960,12 +54043,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "13781:9:7" + "src": "17252:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13792:2:7", + "src": "17263:2:9", "type": "", "value": "64" } @@ -43973,16 +54056,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "13777:3:7" + "src": "17248:3:9" }, "nodeType": "YulFunctionCall", - "src": "13777:18:7" + "src": "17248:18:9" }, { "hexValue": "5472616e7366657248656c7065723a3a736166655472616e736665724554483a", "kind": "string", "nodeType": "YulLiteral", - "src": "13797:34:7", + "src": "17268:34:9", "type": "", "value": "TransferHelper::safeTransferETH:" } @@ -43990,13 +54073,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "13770:6:7" + "src": "17241:6:9" }, "nodeType": "YulFunctionCall", - "src": "13770:62:7" + "src": "17241:62:9" }, "nodeType": "YulExpressionStatement", - "src": "13770:62:7" + "src": "17241:62:9" }, { "expression": { @@ -44006,12 +54089,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "13852:9:7" + "src": "17323:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13863:2:7", + "src": "17334:2:9", "type": "", "value": "96" } @@ -44019,16 +54102,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "13848:3:7" + "src": "17319:3:9" }, "nodeType": "YulFunctionCall", - "src": "13848:18:7" + "src": "17319:18:9" }, { "hexValue": "20455448207472616e73666572206661696c6564", "kind": "string", "nodeType": "YulLiteral", - "src": "13868:22:7", + "src": "17339:22:9", "type": "", "value": " ETH transfer failed" } @@ -44036,28 +54119,28 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "13841:6:7" + "src": "17312:6:9" }, "nodeType": "YulFunctionCall", - "src": "13841:50:7" + "src": "17312:50:9" }, "nodeType": "YulExpressionStatement", - "src": "13841:50:7" + "src": "17312:50:9" }, { "nodeType": "YulAssignment", - "src": "13900:27:7", + "src": "17371:27:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "13912:9:7" + "src": "17383:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13923:3:7", + "src": "17394:3:9", "type": "", "value": "128" } @@ -44065,16 +54148,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "13908:3:7" + "src": "17379:3:9" }, "nodeType": "YulFunctionCall", - "src": "13908:19:7" + "src": "17379:19:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "13900:4:7" + "src": "17371:4:9" } ] } @@ -44086,7 +54169,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "13668:9:7", + "src": "17139:9:9", "type": "" } ], @@ -44094,28 +54177,29 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "13682:4:7", + "src": "17153:4:9", "type": "" } ], - "src": "13517:416:7" + "src": "16988:416:9" } ] }, - "contents": "{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory_1962() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 0x80)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_string(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function abi_decode_string(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let array_1 := allocate_memory(array_allocation_size_string(_1))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n mstore(add(add(array_1, _1), 0x20), 0)\n array := array_1\n }\n function abi_decode_tuple_t_string_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n value1 := calldataload(add(headStart, 32))\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function abi_encode_enum_TaskStatus(value, pos)\n {\n if iszero(lt(value, 4))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(pos, value)\n }\n function abi_encode_tuple_t_struct$_TaskData_$714_memory_ptr__to_t_struct$_TaskData_$714_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), mload(value0))\n let memberValue0 := mload(add(value0, 32))\n mstore(add(headStart, 64), 0xe0)\n let tail_1 := abi_encode_string(memberValue0, add(headStart, 256))\n let memberValue0_1 := mload(add(value0, 64))\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 96), and(memberValue0_1, _1))\n let memberValue0_2 := mload(add(value0, 96))\n abi_encode_enum_TaskStatus(memberValue0_2, add(headStart, 128))\n mstore(add(headStart, 160), and(mload(add(value0, 128)), _1))\n mstore(add(headStart, 192), mload(add(value0, 160)))\n let memberValue0_3 := mload(add(value0, 192))\n mstore(add(headStart, 0xe0), add(sub(tail_1, headStart), not(31)))\n tail := abi_encode_string(memberValue0_3, tail_1)\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_AgentsRegistry_$506__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_enum$_TaskStatus_$698__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n abi_encode_enum_TaskStatus(value0, headStart)\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 64)\n let srcPtr := add(value0, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function abi_decode_tuple_t_uint256t_string_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_string(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_uint256_t_string_memory_ptr_t_address_t_enum$_TaskStatus_$698_t_address_t_uint256_t_string_memory_ptr__to_t_uint256_t_string_memory_ptr_t_address_t_uint8_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), 224)\n let tail_1 := abi_encode_string(value1, add(headStart, 224))\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n abi_encode_enum_TaskStatus(value3, add(headStart, 96))\n mstore(add(headStart, 128), and(value4, _1))\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), sub(tail_1, headStart))\n tail := abi_encode_string(value6, tail_1)\n }\n function abi_decode_tuple_t_struct$_Proposal_$1039_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 32\n if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }\n let offset := mload(headStart)\n let _2 := 0xffffffffffffffff\n if gt(offset, _2) { revert(0, 0) }\n let _3 := add(headStart, offset)\n if slt(sub(dataEnd, _3), 0x80) { revert(0, 0) }\n let value := allocate_memory_1962()\n let value_1 := mload(_3)\n validator_revert_address(value_1)\n mstore(value, value_1)\n let offset_1 := mload(add(_3, _1))\n if gt(offset_1, _2) { revert(0, 0) }\n let _4 := add(_3, offset_1)\n if iszero(slt(add(_4, 0x1f), dataEnd)) { revert(0, 0) }\n let _5 := mload(_4)\n let array := allocate_memory(array_allocation_size_string(_5))\n mstore(array, _5)\n if gt(add(add(_4, _5), _1), dataEnd) { revert(0, 0) }\n copy_memory_to_memory_with_cleanup(add(_4, _1), add(array, _1), _5)\n mstore(add(value, _1), array)\n mstore(add(value, 64), mload(add(_3, 64)))\n mstore(add(value, 96), mload(add(_3, 96)))\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_bcf95e6a362746bd232f2b944afd538b26aa461607b394f948bce2609a1a50c9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Proposal not found\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_eaa01effe6abd0543e9529d3961b0f5d26980f0661c156a79b89c39a093463f7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 13)\n mstore(add(headStart, 64), \"Invalid price\")\n tail := add(headStart, 96)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_string_memory_ptr__to_t_uint256_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_string(value2, add(headStart, 96))\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n ret := add(value, 1)\n }\n function abi_encode_tuple_t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 14)\n mstore(add(headStart, 64), \"Not authorized\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_35c761622bcc8ab75f9adfaf21a4872a39cd06f2745d5488272d29f1f753f270__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 19)\n mstore(add(headStart, 64), \"Invalid task status\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_stringliteral_43d7bec223ecf9eb06ea147e7d564bc71c2448662d62a4ea86ce71fc4518b350__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 52)\n mstore(add(headStart, 64), \"TransferHelper::safeTransferETH:\")\n mstore(add(headStart, 96), \" ETH transfer failed\")\n tail := add(headStart, 128)\n }\n}", - "id": 7, + "contents": "{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory_2417() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 0xa0)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_string(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function abi_decode_string(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let array_1 := allocate_memory(array_allocation_size_string(_1))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n mstore(add(add(array_1, _1), 0x20), 0)\n array := array_1\n }\n function abi_decode_tuple_t_string_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n value1 := calldataload(add(headStart, 32))\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_address(value, pos)\n {\n mstore(pos, and(value, sub(shl(160, 1), 1)))\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function abi_encode_enum_TaskStatus(value, pos)\n {\n if iszero(lt(value, 4))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(pos, value)\n }\n function abi_encode_uint8(value, pos)\n { mstore(pos, and(value, 0xff)) }\n function abi_encode_tuple_t_struct$_TaskData_$878_memory_ptr__to_t_struct$_TaskData_$878_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), mload(value0))\n let memberValue0 := mload(add(value0, 32))\n let _1 := 0x0100\n mstore(add(headStart, 64), _1)\n let tail_1 := abi_encode_string(memberValue0, add(headStart, 288))\n mstore(add(headStart, 96), and(mload(add(value0, 64)), sub(shl(160, 1), 1)))\n let memberValue0_1 := mload(add(value0, 96))\n abi_encode_enum_TaskStatus(memberValue0_1, add(headStart, 128))\n let memberValue0_2 := mload(add(value0, 128))\n abi_encode_address(memberValue0_2, add(headStart, 160))\n mstore(add(headStart, 192), mload(add(value0, 160)))\n let memberValue0_3 := mload(add(value0, 192))\n mstore(add(headStart, 224), add(sub(tail_1, headStart), not(31)))\n let tail_2 := abi_encode_string(memberValue0_3, tail_1)\n let memberValue0_4 := mload(add(value0, 224))\n abi_encode_uint8(memberValue0_4, add(headStart, _1))\n tail := tail_2\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_AgentsRegistry_$670__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_enum$_TaskStatus_$860__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n abi_encode_enum_TaskStatus(value0, headStart)\n }\n function abi_decode_tuple_t_uint256t_uint8(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n value1 := value\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 64)\n let srcPtr := add(value0, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function abi_decode_tuple_t_uint256t_string_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_string(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_uint256_t_string_memory_ptr_t_address_t_enum$_TaskStatus_$860_t_address_t_uint256_t_string_memory_ptr_t_uint8__to_t_uint256_t_string_memory_ptr_t_address_t_uint8_t_address_t_uint256_t_string_memory_ptr_t_uint8__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := 256\n mstore(headStart, value0)\n mstore(add(headStart, 32), _1)\n let tail_1 := abi_encode_string(value1, add(headStart, _1))\n let _2 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _2))\n abi_encode_enum_TaskStatus(value3, add(headStart, 96))\n mstore(add(headStart, 128), and(value4, _2))\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), sub(tail_1, headStart))\n tail := abi_encode_string(value6, tail_1)\n mstore(add(headStart, 224), and(value7, 0xff))\n }\n function abi_decode_bool_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_struct$_ServiceProposal_$1403_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 32\n if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }\n let offset := mload(headStart)\n let _2 := 0xffffffffffffffff\n if gt(offset, _2) { revert(0, 0) }\n let _3 := add(headStart, offset)\n if slt(sub(dataEnd, _3), 0xa0) { revert(0, 0) }\n let value := allocate_memory_2417()\n let value_1 := mload(_3)\n validator_revert_address(value_1)\n mstore(value, value_1)\n let offset_1 := mload(add(_3, _1))\n if gt(offset_1, _2) { revert(0, 0) }\n let _4 := add(_3, offset_1)\n if iszero(slt(add(_4, 0x1f), dataEnd)) { revert(0, 0) }\n let _5 := mload(_4)\n let array := allocate_memory(array_allocation_size_string(_5))\n mstore(array, _5)\n if gt(add(add(_4, _5), _1), dataEnd) { revert(0, 0) }\n copy_memory_to_memory_with_cleanup(add(_4, _1), add(array, _1), _5)\n mstore(add(value, _1), array)\n mstore(add(value, 64), mload(add(_3, 64)))\n mstore(add(value, 96), mload(add(_3, 96)))\n mstore(add(value, 128), abi_decode_bool_fromMemory(add(_3, 128)))\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_add139ef5e0ce81551c750d068d2eb9f9e6c61a45817f3add2fc789b89b93829__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"ServiceProposal not found\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_eaa01effe6abd0543e9529d3961b0f5d26980f0661c156a79b89c39a093463f7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 13)\n mstore(add(headStart, 64), \"Invalid price\")\n tail := add(headStart, 96)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_string_memory_ptr__to_t_uint256_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_string(value2, add(headStart, 96))\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n ret := add(value, 1)\n }\n function abi_encode_tuple_t_stringliteral_8b01433edf8e1c1ecc76c5925a92e74cb9845acafce91ff571223021d8950f7c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"Not the issuer of the task\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_a08755c006bba216d153388cc97acf5e536a500c0ec88cade64bd6b2f0d0e27d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 21)\n mstore(add(headStart, 64), \"Task is not completed\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_306fe74d51ecec7b72bc35613a90b4c93840ded0ff8f63d0daef622fd6053b19__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Task got rating already\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_c137d625e69877210f78bfe5d3113cccc58db43b2ac3bb8f673d723a397aae3e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Rating must be between 0 and 100\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, 0xff))\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_fac3bac318c0d00994f57b0f2f4c643c313072b71db2302bf4b900309cc50b36__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 14)\n mstore(add(headStart, 64), \"Not authorized\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_35c761622bcc8ab75f9adfaf21a4872a39cd06f2745d5488272d29f1f753f270__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 19)\n mstore(add(headStart, 64), \"Invalid task status\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_784e567ba03dff6623f8e7bbee52b701bfd622c294c48e22d5da37cfabe25ac0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Task cannot be canceled\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_stringliteral_43d7bec223ecf9eb06ea147e7d564bc71c2448662d62a4ea86ce71fc4518b350__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 52)\n mstore(add(headStart, 64), \"TransferHelper::safeTransferETH:\")\n mstore(add(headStart, 96), \" ETH transfer failed\")\n tail := add(headStart, 128)\n }\n}", + "id": 9, "language": "Yul", "name": "#utility.yul" } ], "immutableReferences": {}, "linkReferences": {}, - "object": "6080604052600436106100a75760003560e01c8063639241ab11610064578063639241ab146101db578063715018a61461020857806374aaa7601461021f5780638d9776721461023f5780638da5cb5b14610272578063f2fde38b1461029057600080fd5b806304fe2b34146100ac57806307b31818146100d55780630d1cfcae146101265780631d65e77e146101465780632a2b3a9d146101665780635c622a0e14610194575b600080fd5b6100bf6100ba366004610f27565b6102b0565b6040516100cc9190610ff4565b60405180910390f35b3480156100e157600080fd5b5061010e6100f0366004611083565b6000908152600160205260409020600301546001600160a01b031690565b6040516001600160a01b0390911681526020016100cc565b34801561013257600080fd5b5060045461010e906001600160a01b031681565b34801561015257600080fd5b506100bf610161366004611083565b610672565b34801561017257600080fd5b506101866101813660046110b1565b61082f565b6040519081526020016100cc565b3480156101a057600080fd5b506101ce6101af366004611083565b600090815260016020526040902060020154600160a01b900460ff1690565b6040516100cc91906110dd565b3480156101e757600080fd5b506101fb6101f63660046110eb565b610860565b6040516100cc919061110f565b34801561021457600080fd5b5061021d6108cc565b005b34801561022b57600080fd5b5061021d61023a366004611153565b6108e0565b34801561024b57600080fd5b5061025f61025a366004611083565b610ae9565b6040516100cc979695949392919061119a565b34801561027e57600080fd5b506000546001600160a01b031661010e565b34801561029c57600080fd5b5061021d6102ab3660046110eb565b610c4a565b6102b8610de4565b600480546040516318feeb1560e31b81529182018490526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610304573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261032c91908101906111fe565b80519091506001600160a01b03166103805760405162461bcd60e51b8152602060048201526012602482015271141c9bdc1bdcd85b081b9bdd08199bdd5b9960721b60448201526064015b60405180910390fd5b348160400151146103c35760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420707269636560981b6044820152606401610377565b600354600081815260016020819052604090912091825581016103e68682611357565b5060028181018054336001600160a01b031991821681178355600485018890558551600380870180549094166001600160a01b0390921691909117909255600090815260209384526040812091548254600181810185559383529490912090930192909255805460ff60a01b1916600160a01b830217905550815160035460608401516040516001600160a01b039093169233927f5c005bbbb9da508c37935b1a9f270836e0be1fd11d4d47119f925a3ff33820e9926104a7928b90611417565b60405180910390a3600380549060006104bf83611436565b9190505550806040518060e0016040529081600082015481526020016001820180546104ea906112cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610516906112cf565b80156105635780601f1061053857610100808354040283529160200191610563565b820191906000526020600020905b81548152906001019060200180831161054657829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff1660038111156105a0576105a0610fbc565b60038111156105b1576105b1610fbc565b815260038201546001600160a01b03166020820152600482015460408201526005820180546060909201916105e5906112cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610611906112cf565b801561065e5780601f106106335761010080835404028352916020019161065e565b820191906000526020600020905b81548152906001019060200180831161064157829003601f168201915b505050505081525050925050505b92915050565b61067a610de4565b600082815260016020818152604092839020835160e08101909452805484529182018054918401916106ab906112cf565b80601f01602080910402602001604051908101604052809291908181526020018280546106d7906112cf565b80156107245780601f106106f957610100808354040283529160200191610724565b820191906000526020600020905b81548152906001019060200180831161070757829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff16600381111561076157610761610fbc565b600381111561077257610772610fbc565b815260038201546001600160a01b03166020820152600482015460408201526005820180546060909201916107a6906112cf565b80601f01602080910402602001604051908101604052809291908181526020018280546107d2906112cf565b801561081f5780601f106107f45761010080835404028352916020019161081f565b820191906000526020600020905b81548152906001019060200180831161080257829003601f168201915b5050505050815250509050919050565b6002602052816000526040600020818154811061084b57600080fd5b90600052602060002001600091509150505481565b6001600160a01b0381166000908152600260209081526040918290208054835181840281018401909452808452606093928301828280156108c057602002820191906000526020600020905b8154815260200190600101908083116108ac575b50505050509050919050565b6108d4610c88565b6108de6000610cb5565b565b600082815260016020526040902060038101546001600160a01b031633148061091357506000546001600160a01b031633145b6109505760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610377565b60016002820154600160a01b900460ff16600381111561097257610972610fbc565b146109b55760405162461bcd60e51b8152602060048201526013602482015272496e76616c6964207461736b2073746174757360681b6044820152606401610377565b60028101805460ff60a01b1916600160a11b179055600581016109d88382611357565b5060048054828201546040516318feeb1560e31b8152928301526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a4f91908101906111fe565b9050610a6381600001518260400151610d05565b600282015460405185917fd76ef80cfb1ce0c70d0cbc0ab1b9f2f298a78f9fca5c841be963ae9a5d721bb491610aa391600160a01b900460ff16906110dd565b60405180910390a2837f7e6ffc29fe63759579d96a0457a8f2e08339aca345bd469f59dc2e61f82a5aeb84604051610adb919061145d565b60405180910390a250505050565b600160208190526000918252604090912080549181018054610b0a906112cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610b36906112cf565b8015610b835780601f10610b5857610100808354040283529160200191610b83565b820191906000526020600020905b815481529060010190602001808311610b6657829003601f168201915b5050505060028301546003840154600485015460058601805495966001600160a01b0380861697600160a01b90960460ff16965090931693919291610bc7906112cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf3906112cf565b8015610c405780601f10610c1557610100808354040283529160200191610c40565b820191906000526020600020905b815481529060010190602001808311610c2357829003601f168201915b5050505050905087565b610c52610c88565b6001600160a01b038116610c7c57604051631e4fbdf760e01b815260006004820152602401610377565b610c8581610cb5565b50565b6000546001600160a01b031633146108de5760405163118cdaa760e01b8152336004820152602401610377565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516000808252602082019092526001600160a01b038416908390604051610d2f9190611470565b60006040518083038185875af1925050503d8060008114610d6c576040519150601f19603f3d011682016040523d82523d6000602084013e610d71565b606091505b5050905080610ddf5760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b6064820152608401610377565b505050565b6040518060e00160405280600081526020016060815260200160006001600160a01b0316815260200160006003811115610e2057610e20610fbc565b8152600060208201819052604082015260609081015290565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715610e7257610e72610e39565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610ea157610ea1610e39565b604052919050565b600067ffffffffffffffff821115610ec357610ec3610e39565b50601f01601f191660200190565b600082601f830112610ee257600080fd5b8135610ef5610ef082610ea9565b610e78565b818152846020838601011115610f0a57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215610f3a57600080fd5b823567ffffffffffffffff811115610f5157600080fd5b610f5d85828601610ed1565b95602094909401359450505050565b60005b83811015610f87578181015183820152602001610f6f565b50506000910152565b60008151808452610fa8816020860160208601610f6c565b601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b60048110610ff057634e487b7160e01b600052602160045260246000fd5b9052565b60208152815160208201526000602083015160e0604084015261101b610100840182610f90565b60408501516001600160a01b039081166060868101919091528601519192506110476080860183610fd2565b8060808701511660a0860152505060a084015160c084015260c0840151601f198483030160e085015261107a8282610f90565b95945050505050565b60006020828403121561109557600080fd5b5035919050565b6001600160a01b0381168114610c8557600080fd5b600080604083850312156110c457600080fd5b82356110cf8161109c565b946020939093013593505050565b6020810161066c8284610fd2565b6000602082840312156110fd57600080fd5b81356111088161109c565b9392505050565b6020808252825182820181905260009190848201906040850190845b818110156111475783518352928401929184019160010161112b565b50909695505050505050565b6000806040838503121561116657600080fd5b82359150602083013567ffffffffffffffff81111561118457600080fd5b61119085828601610ed1565b9150509250929050565b87815260e0602082015260006111b360e0830189610f90565b6001600160a01b0388811660408501526111d06060850189610fd2565b8616608084015260a0830185905282810360c08401526111f08185610f90565b9a9950505050505050505050565b6000602080838503121561121157600080fd5b825167ffffffffffffffff8082111561122957600080fd5b908401906080828703121561123d57600080fd5b611245610e4f565b82516112508161109c565b8152828401518281111561126357600080fd5b83019150601f8201871361127657600080fd5b8151611284610ef082610ea9565b818152888683860101111561129857600080fd5b6112a782878301888701610f6c565b8086840152505060408301516040820152606083015160608201528094505050505092915050565b600181811c908216806112e357607f821691505b60208210810361130357634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610ddf57600081815260208120601f850160051c810160208610156113305750805b601f850160051c820191505b8181101561134f5782815560010161133c565b505050505050565b815167ffffffffffffffff81111561137157611371610e39565b6113858161137f84546112cf565b84611309565b602080601f8311600181146113ba57600084156113a25750858301515b600019600386901b1c1916600185901b17855561134f565b600085815260208120601f198616915b828110156113e9578886015182559484019460019091019084016113ca565b50858210156114075787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b83815282602082015260606040820152600061107a6060830184610f90565b60006001820161145657634e487b7160e01b600052601160045260246000fd5b5060010190565b6020815260006111086020830184610f90565b60008251611482818460208701610f6c565b919091019291505056fea2646970667358221220c35ebf53f5dd4739af86dfa25f3f4dcfe7cff47dc404b994ee73376a44f040cd64736f6c63430008140033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA7 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x639241AB GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x639241AB EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x208 JUMPI DUP1 PUSH4 0x74AAA760 EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x8D977672 EQ PUSH2 0x23F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x290 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4FE2B34 EQ PUSH2 0xAC JUMPI DUP1 PUSH4 0x7B31818 EQ PUSH2 0xD5 JUMPI DUP1 PUSH4 0xD1CFCAE EQ PUSH2 0x126 JUMPI DUP1 PUSH4 0x1D65E77E EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x2A2B3A9D EQ PUSH2 0x166 JUMPI DUP1 PUSH4 0x5C622A0E EQ PUSH2 0x194 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBF PUSH2 0xBA CALLDATASIZE PUSH1 0x4 PUSH2 0xF27 JUMP JUMPDEST PUSH2 0x2B0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP2 SWAP1 PUSH2 0xFF4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10E PUSH2 0xF0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1083 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x132 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x10E SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBF PUSH2 0x161 CALLDATASIZE PUSH1 0x4 PUSH2 0x1083 JUMP JUMPDEST PUSH2 0x672 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x172 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x186 PUSH2 0x181 CALLDATASIZE PUSH1 0x4 PUSH2 0x10B1 JUMP JUMPDEST PUSH2 0x82F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CE PUSH2 0x1AF CALLDATASIZE PUSH1 0x4 PUSH2 0x1083 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP2 SWAP1 PUSH2 0x10DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FB PUSH2 0x1F6 CALLDATASIZE PUSH1 0x4 PUSH2 0x10EB JUMP JUMPDEST PUSH2 0x860 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP2 SWAP1 PUSH2 0x110F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x214 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21D PUSH2 0x8CC JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21D PUSH2 0x23A CALLDATASIZE PUSH1 0x4 PUSH2 0x1153 JUMP JUMPDEST PUSH2 0x8E0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25F PUSH2 0x25A CALLDATASIZE PUSH1 0x4 PUSH2 0x1083 JUMP JUMPDEST PUSH2 0xAE9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x119A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x10E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21D PUSH2 0x2AB CALLDATASIZE PUSH1 0x4 PUSH2 0x10EB JUMP JUMPDEST PUSH2 0xC4A JUMP JUMPDEST PUSH2 0x2B8 PUSH2 0xDE4 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18FEEB15 PUSH1 0xE3 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC7F758A8 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x304 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x32C SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x11FE JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x380 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x141C9BDC1BDCD85B081B9BDD08199BDD5B99 PUSH1 0x72 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLVALUE DUP2 PUSH1 0x40 ADD MLOAD EQ PUSH2 0x3C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x496E76616C6964207072696365 PUSH1 0x98 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x377 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP2 DUP3 SSTORE DUP2 ADD PUSH2 0x3E6 DUP7 DUP3 PUSH2 0x1357 JUMP JUMPDEST POP PUSH1 0x2 DUP2 DUP2 ADD DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND DUP2 OR DUP4 SSTORE PUSH1 0x4 DUP6 ADD DUP9 SWAP1 SSTORE DUP6 MLOAD PUSH1 0x3 DUP1 DUP8 ADD DUP1 SLOAD SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SLOAD DUP3 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP6 SSTORE SWAP4 DUP4 MSTORE SWAP5 SWAP1 SWAP2 KECCAK256 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP3 SSTORE DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL DUP4 MUL OR SWAP1 SSTORE POP DUP2 MLOAD PUSH1 0x3 SLOAD PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 CALLER SWAP3 PUSH32 0x5C005BBBB9DA508C37935B1A9F270836E0BE1FD11D4D47119F925A3FF33820E9 SWAP3 PUSH2 0x4A7 SWAP3 DUP12 SWAP1 PUSH2 0x1417 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x3 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x4BF DUP4 PUSH2 0x1436 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH2 0x4EA SWAP1 PUSH2 0x12CF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x516 SWAP1 PUSH2 0x12CF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x563 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x538 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x563 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x546 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x5A0 JUMPI PUSH2 0x5A0 PUSH2 0xFBC JUMP JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x5B1 JUMPI PUSH2 0x5B1 PUSH2 0xFBC JUMP JUMPDEST DUP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD DUP1 SLOAD PUSH1 0x60 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x5E5 SWAP1 PUSH2 0x12CF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x611 SWAP1 PUSH2 0x12CF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x65E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x633 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x65E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x641 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP3 POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x67A PUSH2 0xDE4 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0xE0 DUP2 ADD SWAP1 SWAP5 MSTORE DUP1 SLOAD DUP5 MSTORE SWAP2 DUP3 ADD DUP1 SLOAD SWAP2 DUP5 ADD SWAP2 PUSH2 0x6AB SWAP1 PUSH2 0x12CF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x6D7 SWAP1 PUSH2 0x12CF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x724 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6F9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x724 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x707 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x761 JUMPI PUSH2 0x761 PUSH2 0xFBC JUMP JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x772 JUMPI PUSH2 0x772 PUSH2 0xFBC JUMP JUMPDEST DUP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD DUP1 SLOAD PUSH1 0x60 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x7A6 SWAP1 PUSH2 0x12CF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x7D2 SWAP1 PUSH2 0x12CF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x81F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x7F4 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x81F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x802 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x84B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD DUP2 DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x8C0 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x8AC JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8D4 PUSH2 0xC88 JUMP JUMPDEST PUSH2 0x8DE PUSH1 0x0 PUSH2 0xCB5 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 PUSH2 0x913 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST PUSH2 0x950 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x139BDD08185D5D1A1BDC9A5E9959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x377 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x972 JUMPI PUSH2 0x972 PUSH2 0xFBC JUMP JUMPDEST EQ PUSH2 0x9B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x496E76616C6964207461736B20737461747573 PUSH1 0x68 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x377 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA1 SHL OR SWAP1 SSTORE PUSH1 0x5 DUP2 ADD PUSH2 0x9D8 DUP4 DUP3 PUSH2 0x1357 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD DUP3 DUP3 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x18FEEB15 PUSH1 0xE3 SHL DUP2 MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC7F758A8 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA27 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xA4F SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x11FE JUMP JUMPDEST SWAP1 POP PUSH2 0xA63 DUP2 PUSH1 0x0 ADD MLOAD DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0xD05 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x40 MLOAD DUP6 SWAP2 PUSH32 0xD76EF80CFB1CE0C70D0CBC0AB1B9F2F298A78F9FCA5C841BE963AE9A5D721BB4 SWAP2 PUSH2 0xAA3 SWAP2 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 PUSH2 0x10DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP4 PUSH32 0x7E6FFC29FE63759579D96A0457A8F2E08339ACA345BD469F59DC2E61F82A5AEB DUP5 PUSH1 0x40 MLOAD PUSH2 0xADB SWAP2 SWAP1 PUSH2 0x145D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD SWAP2 DUP2 ADD DUP1 SLOAD PUSH2 0xB0A SWAP1 PUSH2 0x12CF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xB36 SWAP1 PUSH2 0x12CF JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB83 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB58 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB83 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB66 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 DUP6 ADD SLOAD PUSH1 0x5 DUP7 ADD DUP1 SLOAD SWAP6 SWAP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND SWAP8 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP7 DIV PUSH1 0xFF AND SWAP7 POP SWAP1 SWAP4 AND SWAP4 SWAP2 SWAP3 SWAP2 PUSH2 0xBC7 SWAP1 PUSH2 0x12CF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xBF3 SWAP1 PUSH2 0x12CF JUMP JUMPDEST DUP1 ISZERO PUSH2 0xC40 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xC15 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC40 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xC23 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP8 JUMP JUMPDEST PUSH2 0xC52 PUSH2 0xC88 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xC7C JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x377 JUMP JUMPDEST PUSH2 0xC85 DUP2 PUSH2 0xCB5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x8DE JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x377 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP4 SWAP1 PUSH1 0x40 MLOAD PUSH2 0xD2F SWAP2 SWAP1 PUSH2 0x1470 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xD6C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xD71 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xDDF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x34 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A3A736166655472616E736665724554483A PUSH1 0x44 DUP3 ADD MSTORE PUSH20 0x8115512081D1C985B9CD9995C8819985A5B1959 PUSH1 0x62 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x377 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xE20 JUMPI PUSH2 0xE20 PUSH2 0xFBC JUMP JUMPDEST DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 SWAP1 DUP2 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xE72 JUMPI PUSH2 0xE72 PUSH2 0xE39 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xEA1 JUMPI PUSH2 0xEA1 PUSH2 0xE39 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xEC3 JUMPI PUSH2 0xEC3 PUSH2 0xE39 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xEE2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xEF5 PUSH2 0xEF0 DUP3 PUSH2 0xEA9 JUMP JUMPDEST PUSH2 0xE78 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0xF0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF5D DUP6 DUP3 DUP7 ADD PUSH2 0xED1 JUMP JUMPDEST SWAP6 PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF87 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xF6F JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xFA8 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xF6C JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0xFF0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0xE0 PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x101B PUSH2 0x100 DUP5 ADD DUP3 PUSH2 0xF90 JUMP JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x60 DUP7 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP7 ADD MLOAD SWAP2 SWAP3 POP PUSH2 0x1047 PUSH1 0x80 DUP7 ADD DUP4 PUSH2 0xFD2 JUMP JUMPDEST DUP1 PUSH1 0x80 DUP8 ADD MLOAD AND PUSH1 0xA0 DUP7 ADD MSTORE POP POP PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0xC0 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0xE0 DUP6 ADD MSTORE PUSH2 0x107A DUP3 DUP3 PUSH2 0xF90 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1095 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xC85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x10C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x10CF DUP2 PUSH2 0x109C JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x66C DUP3 DUP5 PUSH2 0xFD2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1108 DUP2 PUSH2 0x109C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1147 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x112B JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1184 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1190 DUP6 DUP3 DUP7 ADD PUSH2 0xED1 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP8 DUP2 MSTORE PUSH1 0xE0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x11B3 PUSH1 0xE0 DUP4 ADD DUP10 PUSH2 0xF90 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x11D0 PUSH1 0x60 DUP6 ADD DUP10 PUSH2 0xFD2 JUMP JUMPDEST DUP7 AND PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0xA0 DUP4 ADD DUP6 SWAP1 MSTORE DUP3 DUP2 SUB PUSH1 0xC0 DUP5 ADD MSTORE PUSH2 0x11F0 DUP2 DUP6 PUSH2 0xF90 JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1211 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP5 ADD SWAP1 PUSH1 0x80 DUP3 DUP8 SUB SLT ISZERO PUSH2 0x123D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1245 PUSH2 0xE4F JUMP JUMPDEST DUP3 MLOAD PUSH2 0x1250 DUP2 PUSH2 0x109C JUMP JUMPDEST DUP2 MSTORE DUP3 DUP5 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x1263 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD SWAP2 POP PUSH1 0x1F DUP3 ADD DUP8 SGT PUSH2 0x1276 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1284 PUSH2 0xEF0 DUP3 PUSH2 0xEA9 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP9 DUP7 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x1298 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12A7 DUP3 DUP8 DUP4 ADD DUP9 DUP8 ADD PUSH2 0xF6C JUMP JUMPDEST DUP1 DUP7 DUP5 ADD MSTORE POP POP PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x12E3 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1303 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xDDF JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x1330 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x134F JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x133C JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1371 JUMPI PUSH2 0x1371 PUSH2 0xE39 JUMP JUMPDEST PUSH2 0x1385 DUP2 PUSH2 0x137F DUP5 SLOAD PUSH2 0x12CF JUMP JUMPDEST DUP5 PUSH2 0x1309 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x13BA JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x13A2 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x134F JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x13E9 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x13CA JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x1407 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP4 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x107A PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xF90 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x1456 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1108 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xF90 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1482 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xF6C JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 0x5E 0xBF MSTORE8 CREATE2 0xDD SELFBALANCE CODECOPY 0xAF DUP7 0xDF LOG2 PUSH0 EXTCODEHASH 0x4D 0xCF 0xE7 0xCF DELEGATECALL PUSH30 0xC404B994EE73376A44F040CD64736F6C6343000814003300000000000000 ", - "sourceMap": "380:3309:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1596:799;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3572:115;;;;;;;;;;-1:-1:-1;3572:115:4;;;;;:::i;:::-;3632:7;3658:13;;;:5;:13;;;;;:22;;;-1:-1:-1;;;;;3658:22:4;;3572:115;;;;-1:-1:-1;;;;;3999:32:7;;;3981:51;;3969:2;3954:18;3572:115:4;3835:203:7;836:35:4;;;;;;;;;;-1:-1:-1;836:35:4;;;;-1:-1:-1;;;;;836:35:4;;;3332:110;;;;;;;;;;-1:-1:-1;3332:110:4;;;;;:::i;:::-;;:::i;750:48::-;;;;;;;;;;-1:-1:-1;750:48:4;;;;;:::i;:::-;;:::i;:::-;;;4875:25:7;;;4863:2;4848:18;750:48:4;4729:177:7;3448:114:4;;;;;;;;;;-1:-1:-1;3448:114:4;;;;;:::i;:::-;3506:10;3535:13;;;:5;:13;;;;;:20;;;-1:-1:-1;;;3535:20:4;;;;;3448:114;;;;;;;;:::i;3200:126::-;;;;;;;;;;-1:-1:-1;3200:126:4;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2293:101:0:-;;;;;;;;;;;;;:::i;:::-;;2571:622:4;;;;;;;;;;-1:-1:-1;2571:622:4;;;;;:::i;:::-;;:::i;703:41::-;;;;;;;;;;-1:-1:-1;703:41:4;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;:::i;1638:85:0:-;;;;;;;;;;-1:-1:-1;1684:7:0;1710:6;-1:-1:-1;;;;;1710:6:0;1638:85;;2543:215;;;;;;;;;;-1:-1:-1;2543:215:0;;;;;:::i;:::-;;:::i;1596:799:4:-;1706:15;;:::i;:::-;1760:13;;;:37;;-1:-1:-1;;;1760:37:4;;;;;4875:25:7;;;1733:24:4;;-1:-1:-1;;;;;1760:13:4;;;;:25;;4848:18:7;;1760:37:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1760:37:4;;;;;;;;;;;;:::i;:::-;1815:15;;1733:64;;-1:-1:-1;;;;;;1815:29:4;1807:60;;;;-1:-1:-1;;;1807:60:4;;8629:2:7;1807:60:4;;;8611:21:7;8668:2;8648:18;;;8641:30;-1:-1:-1;;;8687:18:7;;;8680:48;8745:18;;1807:60:4;;;;;;;;;1903:9;1885:8;:14;;;:27;1877:53;;;;-1:-1:-1;;;1877:53:4;;8976:2:7;1877:53:4;;;8958:21:7;9015:2;8995:18;;;8988:30;-1:-1:-1;;;9034:18:7;;;9027:43;9087:18;;1877:53:4;8774:337:7;1877:53:4;1971:10;;1941:21;1965:17;;;:5;:17;;;;;;;;1992:20;;;2022:11;;:20;2036:6;2022:11;:20;:::i;:::-;-1:-1:-1;2052:11:4;;;;:24;;2066:10;-1:-1:-1;;;;;;2052:24:4;;;;;;;2086:15;;;:28;;;2140:15;;2124:13;;;;:31;;;;;-1:-1:-1;;;;;2124:31:4;;;;;;;;;;-1:-1:-1;2165:23:4;;;;;;;;;;2194:10;;2165:40;;-1:-1:-1;2165:40:4;;;;;;;;;;;;;;;;;;;2215:33;;-1:-1:-1;;;;2215:33:4;-1:-1:-1;;;;2215:33:4;;;;-1:-1:-1;2287:15:4;;2304:10;;2316:19;;;;2263:81;;-1:-1:-1;;;;;2263:81:4;;;;2275:10;;2263:81;;;;2337:6;;2263:81;:::i;:::-;;;;;;;;2355:10;:12;;;:10;:12;;;:::i;:::-;;;;;;2384:4;2377:11;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2377:11:4;;;-1:-1:-1;;2377:11:4;;;;-1:-1:-1;;;;;2377:11:4;;;;;;;;;;;-1:-1:-1;;;2377:11:4;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2377:11:4;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1596:799;;;;;:::o;3332:110::-;3388:15;;:::i;:::-;3422:13;;;;:5;:13;;;;;;;;;3415:20;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3415:20:4;;;-1:-1:-1;;3415:20:4;;;;-1:-1:-1;;;;;3415:20:4;;;;;;;;;;;-1:-1:-1;;;3415:20:4;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3415:20:4;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3332:110;;;:::o;750:48::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3200:126::-;-1:-1:-1;;;;;3300:19:4;;;;;;:11;:19;;;;;;;;;3293:26;;;;;;;;;;;;;;;;;3265:16;;3293:26;;;3300:19;3293:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3200:126;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;2571:622:4:-;2650:21;2674:13;;;:5;:13;;;;;2719;;;;-1:-1:-1;;;;;2719:13:4;2705:10;:27;;:52;;-1:-1:-1;1684:7:0;1710:6;-1:-1:-1;;;;;1710:6:0;2736:10:4;:21;2705:52;2697:79;;;;-1:-1:-1;;;2697:79:4;;12511:2:7;2697:79:4;;;12493:21:7;12550:2;12530:18;;;12523:30;-1:-1:-1;;;12569:18:7;;;12562:44;12623:18;;2697:79:4;12309:338:7;2697:79:4;2809:19;2794:11;;;;-1:-1:-1;;;2794:11:4;;;;:34;;;;;;;;:::i;:::-;;2786:66;;;;-1:-1:-1;;;2786:66:4;;12854:2:7;2786:66:4;;;12836:21:7;12893:2;12873:18;;;12866:30;-1:-1:-1;;;12912:18:7;;;12905:49;12971:18;;2786:66:4;12652:343:7;2786:66:4;2877:20;2863:11;;:34;;-1:-1:-1;;;;2863:34:4;-1:-1:-1;;;2863:34:4;;;2907:11;;;:20;2921:6;2907:11;:20;:::i;:::-;-1:-1:-1;2964:13:4;;;2990:15;;;;2964:42;;-1:-1:-1;;;2964:42:4;;;;;4875:25:7;2937:24:4;;-1:-1:-1;;;;;2964:13:4;;;;:25;;4848:18:7;;2964:42:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2964:42:4;;;;;;;;;;;;:::i;:::-;2937:69;;3025:63;3056:8;:15;;;3073:8;:14;;;3025:30;:63::i;:::-;3130:11;;;;3104:38;;3122:6;;3104:38;;;;-1:-1:-1;;;3130:11:4;;;;;3104:38;:::i;:::-;;;;;;;;3171:6;3157:29;3179:6;3157:29;;;;;;:::i;:::-;;;;;;;;2640:553;;2571:622;;:::o;703:41::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;703:41:4;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;703:41:4;;;;-1:-1:-1;;;703:41:4;;;;;;-1:-1:-1;703:41:4;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2543:215:0:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:0;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:0;;2700:1:::1;2672:31;::::0;::::1;3981:51:7::0;3954:18;;2672:31:0::1;3835:203:7::0;2623:91:0::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;735:10:1;1855:23:0;1851:101;;1901:40;;-1:-1:-1;;;1901:40:0;;735:10:1;1901:40:0;;;3981:51:7;3954:18;;1901:40:0;3835:203:7;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;1573:214:6:-;1685:12;;;1645;1685;;;;;;;;;-1:-1:-1;;;;;1663:7:6;;;1678:5;;1663:35;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1644:54;;;1716:7;1708:72;;;;-1:-1:-1;;;1708:72:6;;13719:2:7;1708:72:6;;;13701:21:7;13758:2;13738:18;;;13731:30;13797:34;13777:18;;;13770:62;-1:-1:-1;;;13848:18:7;;;13841:50;13908:19;;1708:72:6;13517:416:7;1708:72:6;1634:153;1573:214;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;14:127:7:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:253;218:2;212:9;260:4;248:17;;295:18;280:34;;316:22;;;277:62;274:88;;;342:18;;:::i;:::-;378:2;371:22;146:253;:::o;404:275::-;475:2;469:9;540:2;521:13;;-1:-1:-1;;517:27:7;505:40;;575:18;560:34;;596:22;;;557:62;554:88;;;622:18;;:::i;:::-;658:2;651:22;404:275;;-1:-1:-1;404:275:7:o;684:187::-;733:4;766:18;758:6;755:30;752:56;;;788:18;;:::i;:::-;-1:-1:-1;854:2:7;833:15;-1:-1:-1;;829:29:7;860:4;825:40;;684:187::o;876:464::-;919:5;972:3;965:4;957:6;953:17;949:27;939:55;;990:1;987;980:12;939:55;1026:6;1013:20;1057:49;1073:32;1102:2;1073:32;:::i;:::-;1057:49;:::i;:::-;1131:2;1122:7;1115:19;1177:3;1170:4;1165:2;1157:6;1153:15;1149:26;1146:35;1143:55;;;1194:1;1191;1184:12;1143:55;1259:2;1252:4;1244:6;1240:17;1233:4;1224:7;1220:18;1207:55;1307:1;1282:16;;;1300:4;1278:27;1271:38;;;;1286:7;876:464;-1:-1:-1;;;876:464:7:o;1345:390::-;1423:6;1431;1484:2;1472:9;1463:7;1459:23;1455:32;1452:52;;;1500:1;1497;1490:12;1452:52;1540:9;1527:23;1573:18;1565:6;1562:30;1559:50;;;1605:1;1602;1595:12;1559:50;1628;1670:7;1661:6;1650:9;1646:22;1628:50;:::i;:::-;1618:60;1725:2;1710:18;;;;1697:32;;-1:-1:-1;;;;1345:390:7:o;1740:250::-;1825:1;1835:113;1849:6;1846:1;1843:13;1835:113;;;1925:11;;;1919:18;1906:11;;;1899:39;1871:2;1864:10;1835:113;;;-1:-1:-1;;1982:1:7;1964:16;;1957:27;1740:250::o;1995:271::-;2037:3;2075:5;2069:12;2102:6;2097:3;2090:19;2118:76;2187:6;2180:4;2175:3;2171:14;2164:4;2157:5;2153:16;2118:76;:::i;:::-;2248:2;2227:15;-1:-1:-1;;2223:29:7;2214:39;;;;2255:4;2210:50;;1995:271;-1:-1:-1;;1995:271:7:o;2271:127::-;2332:10;2327:3;2323:20;2320:1;2313:31;2363:4;2360:1;2353:15;2387:4;2384:1;2377:15;2403:238;2485:1;2478:5;2475:12;2465:143;;2530:10;2525:3;2521:20;2518:1;2511:31;2565:4;2562:1;2555:15;2593:4;2590:1;2583:15;2465:143;2617:18;;2403:238::o;2646:999::-;2825:2;2814:9;2807:21;2870:6;2864:13;2859:2;2848:9;2844:18;2837:41;2788:4;2925:2;2917:6;2913:15;2907:22;2965:4;2960:2;2949:9;2945:18;2938:32;2993:52;3040:3;3029:9;3025:19;3011:12;2993:52;:::i;:::-;3094:2;3082:15;;3076:22;-1:-1:-1;;;;;3172:23:7;;;3167:2;3152:18;;;3145:51;;;;3233:15;;3227:22;2979:66;;-1:-1:-1;3258:63:7;3316:3;3301:19;;3227:22;3258:63;:::i;:::-;3387:2;3380:3;3372:6;3368:16;3362:23;3358:32;3352:3;3341:9;3337:19;3330:61;;;3446:3;3438:6;3434:16;3428:23;3422:3;3411:9;3407:19;3400:52;3501:3;3493:6;3489:16;3483:23;3576:2;3572:7;3560:9;3552:6;3548:22;3544:36;3537:4;3526:9;3522:20;3515:66;3598:41;3632:6;3616:14;3598:41;:::i;:::-;3590:49;2646:999;-1:-1:-1;;;;;2646:999:7:o;3650:180::-;3709:6;3762:2;3750:9;3741:7;3737:23;3733:32;3730:52;;;3778:1;3775;3768:12;3730:52;-1:-1:-1;3801:23:7;;3650:180;-1:-1:-1;3650:180:7:o;4273:131::-;-1:-1:-1;;;;;4348:31:7;;4338:42;;4328:70;;4394:1;4391;4384:12;4409:315;4477:6;4485;4538:2;4526:9;4517:7;4513:23;4509:32;4506:52;;;4554:1;4551;4544:12;4506:52;4593:9;4580:23;4612:31;4637:5;4612:31;:::i;:::-;4662:5;4714:2;4699:18;;;;4686:32;;-1:-1:-1;;;4409:315:7:o;4911:209::-;5057:2;5042:18;;5069:45;5046:9;5096:6;5069:45;:::i;5125:247::-;5184:6;5237:2;5225:9;5216:7;5212:23;5208:32;5205:52;;;5253:1;5250;5243:12;5205:52;5292:9;5279:23;5311:31;5336:5;5311:31;:::i;:::-;5361:5;5125:247;-1:-1:-1;;;5125:247:7:o;5377:632::-;5548:2;5600:21;;;5670:13;;5573:18;;;5692:22;;;5519:4;;5548:2;5771:15;;;;5745:2;5730:18;;;5519:4;5814:169;5828:6;5825:1;5822:13;5814:169;;;5889:13;;5877:26;;5958:15;;;;5923:12;;;;5850:1;5843:9;5814:169;;;-1:-1:-1;6000:3:7;;5377:632;-1:-1:-1;;;;;;5377:632:7:o;6014:390::-;6092:6;6100;6153:2;6141:9;6132:7;6128:23;6124:32;6121:52;;;6169:1;6166;6159:12;6121:52;6205:9;6192:23;6182:33;;6266:2;6255:9;6251:18;6238:32;6293:18;6285:6;6282:30;6279:50;;;6325:1;6322;6315:12;6279:50;6348;6390:7;6381:6;6370:9;6366:22;6348:50;:::i;:::-;6338:60;;;6014:390;;;;;:::o;6409:831::-;6758:6;6747:9;6740:25;6801:3;6796:2;6785:9;6781:18;6774:31;6721:4;6828:46;6869:3;6858:9;6854:19;6846:6;6828:46;:::i;:::-;-1:-1:-1;;;;;6948:15:7;;;6943:2;6928:18;;6921:43;6973:54;7023:2;7008:18;;7000:6;6973:54;:::i;:::-;7064:15;;7058:3;7043:19;;7036:44;7111:3;7096:19;;7089:35;;;7161:22;;;7155:3;7140:19;;7133:51;7201:33;7165:6;7219;7201:33;:::i;:::-;7193:41;6409:831;-1:-1:-1;;;;;;;;;;6409:831:7:o;7245:1177::-;7341:6;7372:2;7415;7403:9;7394:7;7390:23;7386:32;7383:52;;;7431:1;7428;7421:12;7383:52;7464:9;7458:16;7493:18;7534:2;7526:6;7523:14;7520:34;;;7550:1;7547;7540:12;7520:34;7573:22;;;;7629:4;7611:16;;;7607:27;7604:47;;;7647:1;7644;7637:12;7604:47;7673:22;;:::i;:::-;7725:2;7719:9;7737:33;7762:7;7737:33;:::i;:::-;7779:22;;7832:11;;;7826:18;7856:16;;;7853:36;;;7885:1;7882;7875:12;7853:36;7908:17;;;-1:-1:-1;7956:4:7;7948:13;;7944:27;-1:-1:-1;7934:55:7;;7985:1;7982;7975:12;7934:55;8014:2;8008:9;8039:49;8055:32;8084:2;8055:32;:::i;8039:49::-;8111:2;8104:5;8097:17;8151:7;8146:2;8141;8137;8133:11;8129:20;8126:33;8123:53;;;8172:1;8169;8162:12;8123:53;8185:67;8249:2;8244;8237:5;8233:14;8228:2;8224;8220:11;8185:67;:::i;:::-;8284:5;8279:2;8272:5;8268:14;8261:29;;;8336:2;8332;8328:11;8322:18;8317:2;8310:5;8306:14;8299:42;8387:2;8383;8379:11;8373:18;8368:2;8361:5;8357:14;8350:42;8411:5;8401:15;;;;;;7245:1177;;;;:::o;9116:380::-;9195:1;9191:12;;;;9238;;;9259:61;;9313:4;9305:6;9301:17;9291:27;;9259:61;9366:2;9358:6;9355:14;9335:18;9332:38;9329:161;;9412:10;9407:3;9403:20;9400:1;9393:31;9447:4;9444:1;9437:15;9475:4;9472:1;9465:15;9329:161;;9116:380;;;:::o;9627:545::-;9729:2;9724:3;9721:11;9718:448;;;9765:1;9790:5;9786:2;9779:17;9835:4;9831:2;9821:19;9905:2;9893:10;9889:19;9886:1;9882:27;9876:4;9872:38;9941:4;9929:10;9926:20;9923:47;;;-1:-1:-1;9964:4:7;9923:47;10019:2;10014:3;10010:12;10007:1;10003:20;9997:4;9993:31;9983:41;;10074:82;10092:2;10085:5;10082:13;10074:82;;;10137:17;;;10118:1;10107:13;10074:82;;;10078:3;;;9627:545;;;:::o;10348:1352::-;10474:3;10468:10;10501:18;10493:6;10490:30;10487:56;;;10523:18;;:::i;:::-;10552:97;10642:6;10602:38;10634:4;10628:11;10602:38;:::i;:::-;10596:4;10552:97;:::i;:::-;10704:4;;10768:2;10757:14;;10785:1;10780:663;;;;11487:1;11504:6;11501:89;;;-1:-1:-1;11556:19:7;;;11550:26;11501:89;-1:-1:-1;;10305:1:7;10301:11;;;10297:24;10293:29;10283:40;10329:1;10325:11;;;10280:57;11603:81;;10750:944;;10780:663;9574:1;9567:14;;;9611:4;9598:18;;-1:-1:-1;;10816:20:7;;;10934:236;10948:7;10945:1;10942:14;10934:236;;;11037:19;;;11031:26;11016:42;;11129:27;;;;11097:1;11085:14;;;;10964:19;;10934:236;;;10938:3;11198:6;11189:7;11186:19;11183:201;;;11259:19;;;11253:26;-1:-1:-1;;11342:1:7;11338:14;;;11354:3;11334:24;11330:37;11326:42;11311:58;11296:74;;11183:201;-1:-1:-1;;;;;11430:1:7;11414:14;;;11410:22;11397:36;;-1:-1:-1;10348:1352:7:o;11705:362::-;11910:6;11899:9;11892:25;11953:6;11948:2;11937:9;11933:18;11926:34;11996:2;11991;11980:9;11976:18;11969:30;11873:4;12016:45;12057:2;12046:9;12042:18;12034:6;12016:45;:::i;12072:232::-;12111:3;12132:17;;;12129:140;;12191:10;12186:3;12182:20;12179:1;12172:31;12226:4;12223:1;12216:15;12254:4;12251:1;12244:15;12129:140;-1:-1:-1;12296:1:7;12285:13;;12072:232::o;13000:220::-;13149:2;13138:9;13131:21;13112:4;13169:45;13210:2;13199:9;13195:18;13187:6;13169:45;:::i;13225:287::-;13354:3;13392:6;13386:13;13408:66;13467:6;13462:3;13455:4;13447:6;13443:17;13408:66;:::i;:::-;13490:16;;;;;13225:287;-1:-1:-1;;13225:287:7:o" + "object": "6080604052600436106100dd5760003560e01c8063639241ab1161007f5780637eec20a8116100595780637eec20a8146102955780638d977672146102b55780638da5cb5b146102e9578063f2fde38b1461030757600080fd5b8063639241ab14610233578063715018a61461026057806374aaa7601461027557600080fd5b80631d65e77e116100bb5780631d65e77e1461017c5780632a2b3a9d1461019c5780635c622a0e146101ca5780636298eee01461021157600080fd5b806304fe2b34146100e257806307b318181461010b5780630d1cfcae1461015c575b600080fd5b6100f56100f03660046114d2565b610327565b604051610102919061159f565b60405180910390f35b34801561011757600080fd5b50610144610126366004611649565b6000908152600160205260409020600301546001600160a01b031690565b6040516001600160a01b039091168152602001610102565b34801561016857600080fd5b50600454610144906001600160a01b031681565b34801561018857600080fd5b506100f5610197366004611649565b610704565b3480156101a857600080fd5b506101bc6101b7366004611677565b6108d0565b604051908152602001610102565b3480156101d657600080fd5b506102046101e5366004611649565b600090815260016020526040902060020154600160a01b900460ff1690565b60405161010291906116a3565b34801561021d57600080fd5b5061023161022c3660046116b1565b610901565b005b34801561023f57600080fd5b5061025361024e3660046116e7565b610bd2565b604051610102919061170b565b34801561026c57600080fd5b50610231610c3e565b34801561028157600080fd5b5061023161029036600461174f565b610c52565b3480156102a157600080fd5b506102316102b0366004611649565b610e46565b3480156102c157600080fd5b506102d56102d0366004611649565b611082565b604051610102989796959493929190611796565b3480156102f557600080fd5b506000546001600160a01b0316610144565b34801561031357600080fd5b506102316103223660046116e7565b6111ec565b61032f611386565b600480546040516318feeb1560e31b81529182018490526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa15801561037b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103a3919081019061181e565b80519091506001600160a01b03166104025760405162461bcd60e51b815260206004820152601960248201527f5365727669636550726f706f73616c206e6f7420666f756e640000000000000060448201526064015b60405180910390fd5b348160400151146104455760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420707269636560981b60448201526064016103f9565b600354600081815260016020819052604090912091825581016104688682611985565b5060028181018054336001600160a01b031991821681178355600485018890558551600380870180549094166001600160a01b0390921691909117909255600090815260209384526040812091548254600181810185559383529490912090930192909255805460ff60a01b1916600160a01b830217905550815160035460608401516040516001600160a01b039093169233927f5c005bbbb9da508c37935b1a9f270836e0be1fd11d4d47119f925a3ff33820e992610529928b90611a45565b60405180910390a36003805490600061054183611a6d565b919050555080604051806101000160405290816000820154815260200160018201805461056d906118fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610599906118fd565b80156105e65780601f106105bb576101008083540402835291602001916105e6565b820191906000526020600020905b8154815290600101906020018083116105c957829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff16600381111561062357610623611567565b600381111561063457610634611567565b815260038201546001600160a01b0316602082015260048201546040820152600582018054606090920191610668906118fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610694906118fd565b80156106e15780601f106106b6576101008083540402835291602001916106e1565b820191906000526020600020905b8154815290600101906020018083116106c457829003601f168201915b50505091835250506006919091015460ff16602090910152925050505b92915050565b61070c611386565b600082815260016020818152604092839020835161010081019094528054845291820180549184019161073e906118fd565b80601f016020809104026020016040519081016040528092919081815260200182805461076a906118fd565b80156107b75780601f1061078c576101008083540402835291602001916107b7565b820191906000526020600020905b81548152906001019060200180831161079a57829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff1660038111156107f4576107f4611567565b600381111561080557610805611567565b815260038201546001600160a01b0316602082015260048201546040820152600582018054606090920191610839906118fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610865906118fd565b80156108b25780601f10610887576101008083540402835291602001916108b2565b820191906000526020600020905b81548152906001019060200180831161089557829003601f168201915b50505091835250506006919091015460ff1660209091015292915050565b600260205281600052604060002081815481106108ec57600080fd5b90600052602060002001600091509150505481565b60008281526001602052604090206002015482906001600160a01b0316331461096c5760405162461bcd60e51b815260206004820152601a60248201527f4e6f742074686520697373756572206f6620746865207461736b00000000000060448201526064016103f9565b6000838152600160205260409020600280820154600160a01b900460ff16600381111561099b5761099b611567565b146109e05760405162461bcd60e51b815260206004820152601560248201527415185cdac81a5cc81b9bdd0818dbdb5c1b195d1959605a1b60448201526064016103f9565b600681015460ff1615610a355760405162461bcd60e51b815260206004820152601760248201527f5461736b20676f7420726174696e6720616c726561647900000000000000000060448201526064016103f9565b60648360ff161115610a895760405162461bcd60e51b815260206004820181905260248201527f526174696e67206d757374206265206265747765656e203020616e642031303060448201526064016103f9565b60068101805460ff191660ff851617905560048054818301546040516318feeb1560e31b8152928301526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610ae8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b10919081019061181e565b6004805482516040516370370a8160e01b81526001600160a01b039182169381019390935260ff8816602484015292935091909116906370370a81906044016020604051808303816000875af1158015610b6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b929190611a94565b5060405160ff8516815285907f0f9189bfc5977d44b1a00920e53a6a0e00229f6c53e76b73fc7e0581ae99abdc9060200160405180910390a25050505050565b6001600160a01b038116600090815260026020908152604091829020805483518184028101840190945280845260609392830182828015610c3257602002820191906000526020600020905b815481526020019060010190808311610c1e575b50505050509050919050565b610c4661122a565b610c506000611257565b565b600082815260016020526040902060038101546001600160a01b03163314610cad5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b60448201526064016103f9565b60016002820154600160a01b900460ff166003811115610ccf57610ccf611567565b14610d125760405162461bcd60e51b8152602060048201526013602482015272496e76616c6964207461736b2073746174757360681b60448201526064016103f9565b60028101805460ff60a01b1916600160a11b17905560058101610d358382611985565b5060048054828201546040516318feeb1560e31b8152928301526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610d84573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610dac919081019061181e565b9050610dc0816000015182604001516112a7565b600282015460405185917fd76ef80cfb1ce0c70d0cbc0ab1b9f2f298a78f9fca5c841be963ae9a5d721bb491610e0091600160a01b900460ff16906116a3565b60405180910390a2837f7e6ffc29fe63759579d96a0457a8f2e08339aca345bd469f59dc2e61f82a5aeb84604051610e389190611aad565b60405180910390a250505050565b60008181526001602052604090206002015481906001600160a01b03163314610eb15760405162461bcd60e51b815260206004820152601a60248201527f4e6f742074686520697373756572206f6620746865207461736b00000000000060448201526064016103f9565b6000828152600160205260409020600280820154600160a01b900460ff166003811115610ee057610ee0611567565b14158015610f0e575060036002820154600160a01b900460ff166003811115610f0b57610f0b611567565b14155b610f5a5760405162461bcd60e51b815260206004820152601760248201527f5461736b2063616e6e6f742062652063616e63656c656400000000000000000060448201526064016103f9565b600281018054600360a01b60ff60a01b1990911617905560048054818301546040516318feeb1560e31b8152928301526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610fbf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fe7919081019061181e565b60028301546040820151919250611009916001600160a01b03909116906112a7565b600282015460405185917fd76ef80cfb1ce0c70d0cbc0ab1b9f2f298a78f9fca5c841be963ae9a5d721bb49161104991600160a01b900460ff16906116a3565b60405180910390a260405184907f1aa8a90c7d7a86bac690072d3f3d726bb8ebbe1989e158530440963f04c11eb290600090a250505050565b6001602081905260009182526040909120805491810180546110a3906118fd565b80601f01602080910402602001604051908101604052809291908181526020018280546110cf906118fd565b801561111c5780601f106110f15761010080835404028352916020019161111c565b820191906000526020600020905b8154815290600101906020018083116110ff57829003601f168201915b5050505060028301546003840154600485015460058601805495966001600160a01b0380861697600160a01b90960460ff16965090931693919291611160906118fd565b80601f016020809104026020016040519081016040528092919081815260200182805461118c906118fd565b80156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050506006909301549192505060ff1688565b6111f461122a565b6001600160a01b03811661121e57604051631e4fbdf760e01b8152600060048201526024016103f9565b61122781611257565b50565b6000546001600160a01b03163314610c505760405163118cdaa760e01b81523360048201526024016103f9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516000808252602082019092526001600160a01b0384169083906040516112d19190611ac0565b60006040518083038185875af1925050503d806000811461130e576040519150601f19603f3d011682016040523d82523d6000602084013e611313565b606091505b50509050806113815760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b60648201526084016103f9565b505050565b604051806101000160405280600081526020016060815260200160006001600160a01b03168152602001600060038111156113c3576113c3611567565b81526000602082018190526040820181905260608083015260809091015290565b634e487b7160e01b600052604160045260246000fd5b60405160a0810167ffffffffffffffff8111828210171561141d5761141d6113e4565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561144c5761144c6113e4565b604052919050565b600067ffffffffffffffff82111561146e5761146e6113e4565b50601f01601f191660200190565b600082601f83011261148d57600080fd5b81356114a061149b82611454565b611423565b8181528460208386010111156114b557600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156114e557600080fd5b823567ffffffffffffffff8111156114fc57600080fd5b6115088582860161147c565b95602094909401359450505050565b60005b8381101561153257818101518382015260200161151a565b50506000910152565b60008151808452611553816020860160208601611517565b601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b6004811061159b57634e487b7160e01b600052602160045260246000fd5b9052565b6020815281516020820152600060208301516101008060408501526115c861012085018361153b565b915060018060a01b03604086015116606085015260608501516115ee608086018261157d565b5060808501516001600160a01b03811660a08601525060a085015160c085015260c0850151601f198584030160e0860152611629838261153b565b92505060e085015161163f8286018260ff169052565b5090949350505050565b60006020828403121561165b57600080fd5b5035919050565b6001600160a01b038116811461122757600080fd5b6000806040838503121561168a57600080fd5b823561169581611662565b946020939093013593505050565b602081016106fe828461157d565b600080604083850312156116c457600080fd5b82359150602083013560ff811681146116dc57600080fd5b809150509250929050565b6000602082840312156116f957600080fd5b813561170481611662565b9392505050565b6020808252825182820181905260009190848201906040850190845b8181101561174357835183529284019291840191600101611727565b50909695505050505050565b6000806040838503121561176257600080fd5b82359150602083013567ffffffffffffffff81111561178057600080fd5b61178c8582860161147c565b9150509250929050565b60006101008a83528060208401526117b08184018b61153b565b6001600160a01b038a811660408601529091506117d0606085018a61157d565b8716608084015260a0830186905282810360c08401526117f0818661153b565b91505060ff831660e08301529998505050505050505050565b8051801515811461181957600080fd5b919050565b6000602080838503121561183157600080fd5b825167ffffffffffffffff8082111561184957600080fd5b9084019060a0828703121561185d57600080fd5b6118656113fa565b825161187081611662565b8152828401518281111561188357600080fd5b83019150601f8201871361189657600080fd5b81516118a461149b82611454565b81815288868386010111156118b857600080fd5b6118c782878301888701611517565b8086840152505060408301516040820152606083015160608201526118ee60808401611809565b60808201529695505050505050565b600181811c9082168061191157607f821691505b60208210810361193157634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561138157600081815260208120601f850160051c8101602086101561195e5750805b601f850160051c820191505b8181101561197d5782815560010161196a565b505050505050565b815167ffffffffffffffff81111561199f5761199f6113e4565b6119b3816119ad84546118fd565b84611937565b602080601f8311600181146119e857600084156119d05750858301515b600019600386901b1c1916600185901b17855561197d565b600085815260208120601f198616915b82811015611a17578886015182559484019460019091019084016119f8565b5085821015611a355787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b838152826020820152606060408201526000611a64606083018461153b565b95945050505050565b600060018201611a8d57634e487b7160e01b600052601160045260246000fd5b5060010190565b600060208284031215611aa657600080fd5b5051919050565b602081526000611704602083018461153b565b60008251611ad2818460208701611517565b919091019291505056fea264697066735822122098bd83b23d81389b73e03b06ee07ca1b56c4d4bfdea60cc35bd0c593da9fedd664736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDD JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x639241AB GT PUSH2 0x7F JUMPI DUP1 PUSH4 0x7EEC20A8 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0x7EEC20A8 EQ PUSH2 0x295 JUMPI DUP1 PUSH4 0x8D977672 EQ PUSH2 0x2B5 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2E9 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x307 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x639241AB EQ PUSH2 0x233 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0x74AAA760 EQ PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1D65E77E GT PUSH2 0xBB JUMPI DUP1 PUSH4 0x1D65E77E EQ PUSH2 0x17C JUMPI DUP1 PUSH4 0x2A2B3A9D EQ PUSH2 0x19C JUMPI DUP1 PUSH4 0x5C622A0E EQ PUSH2 0x1CA JUMPI DUP1 PUSH4 0x6298EEE0 EQ PUSH2 0x211 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4FE2B34 EQ PUSH2 0xE2 JUMPI DUP1 PUSH4 0x7B31818 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0xD1CFCAE EQ PUSH2 0x15C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF5 PUSH2 0xF0 CALLDATASIZE PUSH1 0x4 PUSH2 0x14D2 JUMP JUMPDEST PUSH2 0x327 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x102 SWAP2 SWAP1 PUSH2 0x159F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x144 PUSH2 0x126 CALLDATASIZE PUSH1 0x4 PUSH2 0x1649 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x102 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x168 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x144 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x188 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF5 PUSH2 0x197 CALLDATASIZE PUSH1 0x4 PUSH2 0x1649 JUMP JUMPDEST PUSH2 0x704 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BC PUSH2 0x1B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1677 JUMP JUMPDEST PUSH2 0x8D0 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x102 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x204 PUSH2 0x1E5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1649 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x102 SWAP2 SWAP1 PUSH2 0x16A3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x231 PUSH2 0x22C CALLDATASIZE PUSH1 0x4 PUSH2 0x16B1 JUMP JUMPDEST PUSH2 0x901 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x24E CALLDATASIZE PUSH1 0x4 PUSH2 0x16E7 JUMP JUMPDEST PUSH2 0xBD2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x102 SWAP2 SWAP1 PUSH2 0x170B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x231 PUSH2 0xC3E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x231 PUSH2 0x290 CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH2 0xC52 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x231 PUSH2 0x2B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1649 JUMP JUMPDEST PUSH2 0xE46 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D5 PUSH2 0x2D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1649 JUMP JUMPDEST PUSH2 0x1082 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x102 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1796 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x144 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x313 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x231 PUSH2 0x322 CALLDATASIZE PUSH1 0x4 PUSH2 0x16E7 JUMP JUMPDEST PUSH2 0x11EC JUMP JUMPDEST PUSH2 0x32F PUSH2 0x1386 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18FEEB15 PUSH1 0xE3 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC7F758A8 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x37B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x3A3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x181E JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x402 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5365727669636550726F706F73616C206E6F7420666F756E6400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLVALUE DUP2 PUSH1 0x40 ADD MLOAD EQ PUSH2 0x445 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x496E76616C6964207072696365 PUSH1 0x98 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3F9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP2 DUP3 SSTORE DUP2 ADD PUSH2 0x468 DUP7 DUP3 PUSH2 0x1985 JUMP JUMPDEST POP PUSH1 0x2 DUP2 DUP2 ADD DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND DUP2 OR DUP4 SSTORE PUSH1 0x4 DUP6 ADD DUP9 SWAP1 SSTORE DUP6 MLOAD PUSH1 0x3 DUP1 DUP8 ADD DUP1 SLOAD SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP3 SSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SLOAD DUP3 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP6 SSTORE SWAP4 DUP4 MSTORE SWAP5 SWAP1 SWAP2 KECCAK256 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP3 SSTORE DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL DUP4 MUL OR SWAP1 SSTORE POP DUP2 MLOAD PUSH1 0x3 SLOAD PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 CALLER SWAP3 PUSH32 0x5C005BBBB9DA508C37935B1A9F270836E0BE1FD11D4D47119F925A3FF33820E9 SWAP3 PUSH2 0x529 SWAP3 DUP12 SWAP1 PUSH2 0x1A45 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x3 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x541 DUP4 PUSH2 0x1A6D JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP DUP1 PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH2 0x56D SWAP1 PUSH2 0x18FD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x599 SWAP1 PUSH2 0x18FD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x5E6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x5BB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x5E6 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x5C9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x623 JUMPI PUSH2 0x623 PUSH2 0x1567 JUMP JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x634 JUMPI PUSH2 0x634 PUSH2 0x1567 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD DUP1 SLOAD PUSH1 0x60 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x668 SWAP1 PUSH2 0x18FD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x694 SWAP1 PUSH2 0x18FD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6E1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6B6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6E1 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6C4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x6 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE SWAP3 POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x70C PUSH2 0x1386 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP4 MLOAD PUSH2 0x100 DUP2 ADD SWAP1 SWAP5 MSTORE DUP1 SLOAD DUP5 MSTORE SWAP2 DUP3 ADD DUP1 SLOAD SWAP2 DUP5 ADD SWAP2 PUSH2 0x73E SWAP1 PUSH2 0x18FD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x76A SWAP1 PUSH2 0x18FD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7B7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x78C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x7B7 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x79A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x7F4 JUMPI PUSH2 0x7F4 PUSH2 0x1567 JUMP JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x805 JUMPI PUSH2 0x805 PUSH2 0x1567 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD DUP1 SLOAD PUSH1 0x60 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x839 SWAP1 PUSH2 0x18FD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x865 SWAP1 PUSH2 0x18FD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x8B2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x887 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x8B2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x895 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x6 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x8EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x96C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F742074686520697373756572206F6620746865207461736B000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3F9 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 DUP1 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x99B JUMPI PUSH2 0x99B PUSH2 0x1567 JUMP JUMPDEST EQ PUSH2 0x9E0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x15185CDAC81A5CC81B9BDD0818DBDB5C1B195D1959 PUSH1 0x5A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3F9 JUMP JUMPDEST PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xA35 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5461736B20676F7420726174696E6720616C7265616479000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3F9 JUMP JUMPDEST PUSH1 0x64 DUP4 PUSH1 0xFF AND GT ISZERO PUSH2 0xA89 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x526174696E67206D757374206265206265747765656E203020616E6420313030 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3F9 JUMP JUMPDEST PUSH1 0x6 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF DUP6 AND OR SWAP1 SSTORE PUSH1 0x4 DUP1 SLOAD DUP2 DUP4 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x18FEEB15 PUSH1 0xE3 SHL DUP2 MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC7F758A8 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAE8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xB10 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x181E JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD DUP3 MLOAD PUSH1 0x40 MLOAD PUSH4 0x70370A81 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0xFF DUP9 AND PUSH1 0x24 DUP5 ADD MSTORE SWAP3 SWAP4 POP SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x70370A81 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB6E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB92 SWAP2 SWAP1 PUSH2 0x1A94 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0xFF DUP6 AND DUP2 MSTORE DUP6 SWAP1 PUSH32 0xF9189BFC5977D44B1A00920E53A6A0E00229F6C53E76B73FC7E0581AE99ABDC SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD DUP2 DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xC32 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0xC1E JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC46 PUSH2 0x122A JUMP JUMPDEST PUSH2 0xC50 PUSH1 0x0 PUSH2 0x1257 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xCAD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x139BDD08185D5D1A1BDC9A5E9959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3F9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xCCF JUMPI PUSH2 0xCCF PUSH2 0x1567 JUMP JUMPDEST EQ PUSH2 0xD12 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x496E76616C6964207461736B20737461747573 PUSH1 0x68 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3F9 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA1 SHL OR SWAP1 SSTORE PUSH1 0x5 DUP2 ADD PUSH2 0xD35 DUP4 DUP3 PUSH2 0x1985 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD DUP3 DUP3 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x18FEEB15 PUSH1 0xE3 SHL DUP2 MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC7F758A8 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD84 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xDAC SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x181E JUMP JUMPDEST SWAP1 POP PUSH2 0xDC0 DUP2 PUSH1 0x0 ADD MLOAD DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0x12A7 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x40 MLOAD DUP6 SWAP2 PUSH32 0xD76EF80CFB1CE0C70D0CBC0AB1B9F2F298A78F9FCA5C841BE963AE9A5D721BB4 SWAP2 PUSH2 0xE00 SWAP2 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 PUSH2 0x16A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP4 PUSH32 0x7E6FFC29FE63759579D96A0457A8F2E08339ACA345BD469F59DC2E61F82A5AEB DUP5 PUSH1 0x40 MLOAD PUSH2 0xE38 SWAP2 SWAP1 PUSH2 0x1AAD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xEB1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F742074686520697373756572206F6620746865207461736B000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3F9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 DUP1 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xEE0 JUMPI PUSH2 0xEE0 PUSH2 0x1567 JUMP JUMPDEST EQ ISZERO DUP1 ISZERO PUSH2 0xF0E JUMPI POP PUSH1 0x3 PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xF0B JUMPI PUSH2 0xF0B PUSH2 0x1567 JUMP JUMPDEST EQ ISZERO JUMPDEST PUSH2 0xF5A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5461736B2063616E6E6F742062652063616E63656C6564000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3F9 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x3 PUSH1 0xA0 SHL PUSH1 0xFF PUSH1 0xA0 SHL NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x4 DUP1 SLOAD DUP2 DUP4 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x18FEEB15 PUSH1 0xE3 SHL DUP2 MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC7F758A8 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFBF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xFE7 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x181E JUMP JUMPDEST PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x40 DUP3 ADD MLOAD SWAP2 SWAP3 POP PUSH2 0x1009 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH2 0x12A7 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x40 MLOAD DUP6 SWAP2 PUSH32 0xD76EF80CFB1CE0C70D0CBC0AB1B9F2F298A78F9FCA5C841BE963AE9A5D721BB4 SWAP2 PUSH2 0x1049 SWAP2 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 PUSH2 0x16A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x40 MLOAD DUP5 SWAP1 PUSH32 0x1AA8A90C7D7A86BAC690072D3F3D726BB8EBBE1989E158530440963F04C11EB2 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD SWAP2 DUP2 ADD DUP1 SLOAD PUSH2 0x10A3 SWAP1 PUSH2 0x18FD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x10CF SWAP1 PUSH2 0x18FD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x111C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x10F1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x111C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x10FF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 DUP6 ADD SLOAD PUSH1 0x5 DUP7 ADD DUP1 SLOAD SWAP6 SWAP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND SWAP8 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP7 DIV PUSH1 0xFF AND SWAP7 POP SWAP1 SWAP4 AND SWAP4 SWAP2 SWAP3 SWAP2 PUSH2 0x1160 SWAP1 PUSH2 0x18FD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x118C SWAP1 PUSH2 0x18FD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x11D9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x11AE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x11D9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x11BC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP PUSH1 0x6 SWAP1 SWAP4 ADD SLOAD SWAP2 SWAP3 POP POP PUSH1 0xFF AND DUP9 JUMP JUMPDEST PUSH2 0x11F4 PUSH2 0x122A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x121E JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3F9 JUMP JUMPDEST PUSH2 0x1227 DUP2 PUSH2 0x1257 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC50 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3F9 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP4 SWAP1 PUSH1 0x40 MLOAD PUSH2 0x12D1 SWAP2 SWAP1 PUSH2 0x1AC0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x130E JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1313 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1381 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x34 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657248656C7065723A3A736166655472616E736665724554483A PUSH1 0x44 DUP3 ADD MSTORE PUSH20 0x8115512081D1C985B9CD9995C8819985A5B1959 PUSH1 0x62 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3F9 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x13C3 JUMPI PUSH2 0x13C3 PUSH2 0x1567 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP4 ADD MSTORE PUSH1 0x80 SWAP1 SWAP2 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xA0 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x141D JUMPI PUSH2 0x141D PUSH2 0x13E4 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x144C JUMPI PUSH2 0x144C PUSH2 0x13E4 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x146E JUMPI PUSH2 0x146E PUSH2 0x13E4 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x148D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x14A0 PUSH2 0x149B DUP3 PUSH2 0x1454 JUMP JUMPDEST PUSH2 0x1423 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x14B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1508 DUP6 DUP3 DUP7 ADD PUSH2 0x147C JUMP JUMPDEST SWAP6 PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1532 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x151A JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1553 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1517 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x159B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x100 DUP1 PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x15C8 PUSH2 0x120 DUP6 ADD DUP4 PUSH2 0x153B JUMP JUMPDEST SWAP2 POP PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB PUSH1 0x40 DUP7 ADD MLOAD AND PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x60 DUP6 ADD MLOAD PUSH2 0x15EE PUSH1 0x80 DUP7 ADD DUP3 PUSH2 0x157D JUMP JUMPDEST POP PUSH1 0x80 DUP6 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0xA0 DUP7 ADD MSTORE POP PUSH1 0xA0 DUP6 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0x1F NOT DUP6 DUP5 SUB ADD PUSH1 0xE0 DUP7 ADD MSTORE PUSH2 0x1629 DUP4 DUP3 PUSH2 0x153B JUMP JUMPDEST SWAP3 POP POP PUSH1 0xE0 DUP6 ADD MLOAD PUSH2 0x163F DUP3 DUP7 ADD DUP3 PUSH1 0xFF AND SWAP1 MSTORE JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x165B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1227 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x168A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1695 DUP2 PUSH2 0x1662 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x6FE DUP3 DUP5 PUSH2 0x157D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x16C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x16DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1704 DUP2 PUSH2 0x1662 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1743 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1727 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1762 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1780 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x178C DUP6 DUP3 DUP7 ADD PUSH2 0x147C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100 DUP11 DUP4 MSTORE DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x17B0 DUP2 DUP5 ADD DUP12 PUSH2 0x153B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x40 DUP7 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x17D0 PUSH1 0x60 DUP6 ADD DUP11 PUSH2 0x157D JUMP JUMPDEST DUP8 AND PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0xA0 DUP4 ADD DUP7 SWAP1 MSTORE DUP3 DUP2 SUB PUSH1 0xC0 DUP5 ADD MSTORE PUSH2 0x17F0 DUP2 DUP7 PUSH2 0x153B JUMP JUMPDEST SWAP2 POP POP PUSH1 0xFF DUP4 AND PUSH1 0xE0 DUP4 ADD MSTORE SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1819 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1831 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1849 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP5 ADD SWAP1 PUSH1 0xA0 DUP3 DUP8 SUB SLT ISZERO PUSH2 0x185D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1865 PUSH2 0x13FA JUMP JUMPDEST DUP3 MLOAD PUSH2 0x1870 DUP2 PUSH2 0x1662 JUMP JUMPDEST DUP2 MSTORE DUP3 DUP5 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x1883 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD SWAP2 POP PUSH1 0x1F DUP3 ADD DUP8 SGT PUSH2 0x1896 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x18A4 PUSH2 0x149B DUP3 PUSH2 0x1454 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP9 DUP7 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x18B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18C7 DUP3 DUP8 DUP4 ADD DUP9 DUP8 ADD PUSH2 0x1517 JUMP JUMPDEST DUP1 DUP7 DUP5 ADD MSTORE POP POP PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x18EE PUSH1 0x80 DUP5 ADD PUSH2 0x1809 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1911 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1931 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1381 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x195E JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x197D JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x196A JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x199F JUMPI PUSH2 0x199F PUSH2 0x13E4 JUMP JUMPDEST PUSH2 0x19B3 DUP2 PUSH2 0x19AD DUP5 SLOAD PUSH2 0x18FD JUMP JUMPDEST DUP5 PUSH2 0x1937 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x19E8 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x19D0 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x197D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1A17 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x19F8 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x1A35 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP4 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1A64 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x153B JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x1A8D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1AA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1704 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x153B JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1AD2 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1517 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP9 0xBD DUP4 0xB2 RETURNDATASIZE DUP2 CODESIZE SWAP12 PUSH20 0xE03B06EE07CA1B56C4D4BFDEA60CC35BD0C593DA SWAP16 0xED 0xD6 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "380:5116:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1904:813;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5379:115;;;;;;;;;;-1:-1:-1;5379:115:4;;;;;:::i;:::-;5439:7;5465:13;;;:5;:13;;;;;:22;;;-1:-1:-1;;;;;5465:22:4;;5379:115;;;;-1:-1:-1;;;;;4336:32:9;;;4318:51;;4306:2;4291:18;5379:115:4;4172:203:9;860:35:4;;;;;;;;;;-1:-1:-1;860:35:4;;;;-1:-1:-1;;;;;860:35:4;;;5139:110;;;;;;;;;;-1:-1:-1;5139:110:4;;;;;:::i;:::-;;:::i;774:48::-;;;;;;;;;;-1:-1:-1;774:48:4;;;;;:::i;:::-;;:::i;:::-;;;5212:25:9;;;5200:2;5185:18;774:48:4;5066:177:9;5255:114:4;;;;;;;;;;-1:-1:-1;5255:114:4;;;;;:::i;:::-;5313:10;5342:13;;;:5;:13;;;;;:20;;;-1:-1:-1;;;5342:20:4;;;;;5255:114;;;;;;;;:::i;3670:584::-;;;;;;;;;;-1:-1:-1;3670:584:4;;;;;:::i;:::-;;:::i;:::-;;5007:126;;;;;;;;;;-1:-1:-1;5007:126:4;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2293:101:0:-;;;;;;;;;;;;;:::i;2893:604:4:-;;;;;;;;;;-1:-1:-1;2893:604:4;;;;;:::i;:::-;;:::i;4403:598::-;;;;;;;;;;-1:-1:-1;4403:598:4;;;;;:::i;:::-;;:::i;727:41::-;;;;;;;;;;-1:-1:-1;727:41:4;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;:::i;1638:85:0:-;;;;;;;;;;-1:-1:-1;1684:7:0;1710:6;-1:-1:-1;;;;;1710:6:0;1638:85;;2543:215;;;;;;;;;;-1:-1:-1;2543:215:0;;;;;:::i;:::-;;:::i;1904:813:4:-;2014:15;;:::i;:::-;2075:13;;;:37;;-1:-1:-1;;;2075:37:4;;;;;5212:25:9;;;2041:31:4;;-1:-1:-1;;;;;2075:13:4;;;;:25;;5185:18:9;;2075:37:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2075:37:4;;;;;;;;;;;;:::i;:::-;2130:15;;2041:71;;-1:-1:-1;;;;;;2130:29:4;2122:67;;;;-1:-1:-1;;;2122:67:4;;9657:2:9;2122:67:4;;;9639:21:9;9696:2;9676:18;;;9669:30;9735:27;9715:18;;;9708:55;9780:18;;2122:67:4;;;;;;;;;2225:9;2207:8;:14;;;:27;2199:53;;;;-1:-1:-1;;;2199:53:4;;10011:2:9;2199:53:4;;;9993:21:9;10050:2;10030:18;;;10023:30;-1:-1:-1;;;10069:18:9;;;10062:43;10122:18;;2199:53:4;9809:337:9;2199:53:4;2293:10;;2263:21;2287:17;;;:5;:17;;;;;;;;2314:20;;;2344:11;;:20;2358:6;2344:11;:20;:::i;:::-;-1:-1:-1;2374:11:4;;;;:24;;2388:10;-1:-1:-1;;;;;;2374:24:4;;;;;;;2408:15;;;:28;;;2462:15;;2446:13;;;;:31;;;;;-1:-1:-1;;;;;2446:31:4;;;;;;;;;;-1:-1:-1;2487:23:4;;;;;;;;;;2516:10;;2487:40;;-1:-1:-1;2487:40:4;;;;;;;;;;;;;;;;;;;2537:33;;-1:-1:-1;;;;2537:33:4;-1:-1:-1;;;;2537:33:4;;;;-1:-1:-1;2609:15:4;;2626:10;;2638:19;;;;2585:81;;-1:-1:-1;;;;;2585:81:4;;;;2597:10;;2585:81;;;;2659:6;;2585:81;:::i;:::-;;;;;;;;2677:10;:12;;;:10;:12;;;:::i;:::-;;;;;;2706:4;2699:11;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2699:11:4;;;-1:-1:-1;;2699:11:4;;;;-1:-1:-1;;;;;2699:11:4;;;;;;;;;;;-1:-1:-1;;;2699:11:4;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2699:11:4;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2699:11:4;;;-1:-1:-1;;2699:11:4;;;;;;;;;;;;;;-1:-1:-1;;;1904:813:4;;;;;:::o;5139:110::-;5195:15;;:::i;:::-;5229:13;;;;:5;:13;;;;;;;;;5222:20;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5222:20:4;;;-1:-1:-1;;5222:20:4;;;;-1:-1:-1;;;;;5222:20:4;;;;;;;;;;;-1:-1:-1;;;5222:20:4;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;5222:20:4;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5222:20:4;;;-1:-1:-1;;5222:20:4;;;;;;;;;;;;;;5139:110;-1:-1:-1;;5139:110:4:o;774:48::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3670:584::-;974:13;;;;:5;:13;;;;;:20;;;:13;;-1:-1:-1;;;;;974:20:4;960:10;:34;952:73;;;;-1:-1:-1;;;952:73:4;;13546:2:9;952:73:4;;;13528:21:9;13585:2;13565:18;;;13558:30;13624:28;13604:18;;;13597:56;13670:18;;952:73:4;13344:350:9;952:73:4;3760:21:::1;3784:13:::0;;;:5:::1;:13;::::0;;;;3831:20:::1;3816:11:::0;;::::1;::::0;-1:-1:-1;;;3816:11:4;::::1;;;:35;::::0;::::1;;;;;;:::i;:::-;;3808:69;;;::::0;-1:-1:-1;;;3808:69:4;;13901:2:9;3808:69:4::1;::::0;::::1;13883:21:9::0;13940:2;13920:18;;;13913:30;-1:-1:-1;;;13959:18:9;;;13952:51;14020:18;;3808:69:4::1;13699:345:9::0;3808:69:4::1;3895:11;::::0;::::1;::::0;::::1;;:16:::0;3887:52:::1;;;::::0;-1:-1:-1;;;3887:52:4;;14251:2:9;3887:52:4::1;::::0;::::1;14233:21:9::0;14290:2;14270:18;;;14263:30;14329:25;14309:18;;;14302:53;14372:18;;3887:52:4::1;14049:347:9::0;3887:52:4::1;3982:3;3972:6;:13;;;;3949:73;;;::::0;-1:-1:-1;;;3949:73:4;;14603:2:9;3949:73:4::1;::::0;::::1;14585:21:9::0;;;14622:18;;;14615:30;14681:34;14661:18;;;14654:62;14733:18;;3949:73:4::1;14401:356:9::0;3949:73:4::1;4041:11;::::0;::::1;:20:::0;;-1:-1:-1;;4041:20:4::1;;::::0;::::1;;::::0;;4105:13:::1;::::0;;4131:15;;::::1;::::0;4105:42:::1;::::0;-1:-1:-1;;;4105:42:4;;;;::::1;5212:25:9::0;-1:-1:-1;;;;;;;4105:13:4;;::::1;::::0;:25:::1;::::0;5185:18:9;;4105:42:4::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;4105:42:4::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;4158:13;::::0;;4182:15;;4158:48:::1;::::0;-1:-1:-1;;;4158:48:4;;-1:-1:-1;;;;;14952:32:9;;;4158:48:4;;::::1;14934:51:9::0;;;;15033:4;15021:17;;15001:18;;;14994:45;4182:15:4;;-1:-1:-1;4158:13:4;;;::::1;::::0;:23:::1;::::0;14907:18:9;;4158:48:4::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;4222:25:4::1;::::0;15411:4:9;15399:17;;15381:36;;4232:6:4;;4222:25:::1;::::0;15369:2:9;15354:18;4222:25:4::1;;;;;;;3750:504;;3670:584:::0;;;:::o;5007:126::-;-1:-1:-1;;;;;5107:19:4;;;;;;:11;:19;;;;;;;;;5100:26;;;;;;;;;;;;;;;;;5072:16;;5100:26;;;5107:19;5100:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5007:126;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;2893:604:4:-;2972:21;2996:13;;;:5;:13;;;;;3041;;;;-1:-1:-1;;;;;3041:13:4;3027:10;:27;3019:54;;;;-1:-1:-1;;;3019:54:4;;15630:2:9;3019:54:4;;;15612:21:9;15669:2;15649:18;;;15642:30;-1:-1:-1;;;15688:18:9;;;15681:44;15742:18;;3019:54:4;15428:338:9;3019:54:4;3106:19;3091:11;;;;-1:-1:-1;;;3091:11:4;;;;:34;;;;;;;;:::i;:::-;;3083:66;;;;-1:-1:-1;;;3083:66:4;;15973:2:9;3083:66:4;;;15955:21:9;16012:2;15992:18;;;15985:30;-1:-1:-1;;;16031:18:9;;;16024:49;16090:18;;3083:66:4;15771:343:9;3083:66:4;3174:20;3160:11;;:34;;-1:-1:-1;;;;3160:34:4;-1:-1:-1;;;3160:34:4;;;3204:11;;;:20;3218:6;3204:11;:20;:::i;:::-;-1:-1:-1;3268:13:4;;;3294:15;;;;3268:42;;-1:-1:-1;;;3268:42:4;;;;;5212:25:9;3234:31:4;;-1:-1:-1;;;;;3268:13:4;;;;:25;;5185:18:9;;3268:42:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3268:42:4;;;;;;;;;;;;:::i;:::-;3234:76;;3329:63;3360:8;:15;;;3377:8;:14;;;3329:30;:63::i;:::-;3434:11;;;;3408:38;;3426:6;;3408:38;;;;-1:-1:-1;;;3434:11:4;;;;;3408:38;:::i;:::-;;;;;;;;3475:6;3461:29;3483:6;3461:29;;;;;;:::i;:::-;;;;;;;;2962:535;;2893:604;;:::o;4403:598::-;974:13;;;;:5;:13;;;;;:20;;;:13;;-1:-1:-1;;;;;974:20:4;960:10;:34;952:73;;;;-1:-1:-1;;;952:73:4;;13546:2:9;952:73:4;;;13528:21:9;13585:2;13565:18;;;13558:30;13624:28;13604:18;;;13597:56;13670:18;;952:73:4;13344:350:9;952:73:4;4481:21:::1;4505:13:::0;;;:5:::1;:13;::::0;;;;4551:20:::1;4536:11:::0;;::::1;::::0;-1:-1:-1;;;4536:11:4;::::1;;;:35;::::0;::::1;;;;;;:::i;:::-;;;:73;;;;-1:-1:-1::0;4590:19:4::1;4575:11;::::0;::::1;::::0;-1:-1:-1;;;4575:11:4;::::1;;;:34;::::0;::::1;;;;;;:::i;:::-;;;4536:73;4528:109;;;::::0;-1:-1:-1;;;4528:109:4;;16546:2:9;4528:109:4::1;::::0;::::1;16528:21:9::0;16585:2;16565:18;;;16558:30;16624:25;16604:18;;;16597:53;16667:18;;4528:109:4::1;16344:347:9::0;4528:109:4::1;4656:11;::::0;::::1;:33:::0;;-1:-1:-1;;;;;;;4656:33:4;;::::1;;::::0;;4733:13:::1;::::0;;4759:15;;::::1;::::0;4733:42:::1;::::0;-1:-1:-1;;;4733:42:4;;;;::::1;5212:25:9::0;-1:-1:-1;;;;;;;4733:13:4;;::::1;::::0;:25:::1;::::0;5185:18:9;;4733:42:4::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;4733:42:4::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;4869:11;::::0;::::1;::::0;4882:14:::1;::::0;::::1;::::0;4699:76;;-1:-1:-1;4838:59:4::1;::::0;-1:-1:-1;;;;;4869:11:4;;::::1;::::0;4838:30:::1;:59::i;:::-;4947:11;::::0;::::1;::::0;4921:38:::1;::::0;4939:6;;4921:38:::1;::::0;::::1;::::0;-1:-1:-1;;;4947:11:4;::::1;;;::::0;4921:38:::1;:::i;:::-;;;;;;;;4974:20;::::0;4987:6;;4974:20:::1;::::0;;;::::1;4471:530;;4403:598:::0;;:::o;727:41::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;727:41:4;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;727:41:4;;;;-1:-1:-1;;;727:41:4;;;;;;-1:-1:-1;727:41:4;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;727:41:4;;;;;;;-1:-1:-1;;727:41:4;;;:::o;2543:215:0:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:0;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:0;;2700:1:::1;2672:31;::::0;::::1;4318:51:9::0;4291:18;;2672:31:0::1;4172:203:9::0;2623:91:0::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;735:10:1;1855:23:0;1851:101;;1901:40;;-1:-1:-1;;;1901:40:0;;735:10:1;1901:40:0;;;4318:51:9;4291:18;;1901:40:0;4172:203:9;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;1573:214:8:-;1685:12;;;1645;1685;;;;;;;;;-1:-1:-1;;;;;1663:7:8;;;1678:5;;1663:35;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1644:54;;;1716:7;1708:72;;;;-1:-1:-1;;;1708:72:8;;17190:2:9;1708:72:8;;;17172:21:9;17229:2;17209:18;;;17202:30;17268:34;17248:18;;;17241:62;-1:-1:-1;;;17319:18:9;;;17312:50;17379:19;;1708:72:8;16988:416:9;1708:72:8;1634:153;1573:214;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:127:9:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:253;218:2;212:9;260:4;248:17;;295:18;280:34;;316:22;;;277:62;274:88;;;342:18;;:::i;:::-;378:2;371:22;146:253;:::o;404:275::-;475:2;469:9;540:2;521:13;;-1:-1:-1;;517:27:9;505:40;;575:18;560:34;;596:22;;;557:62;554:88;;;622:18;;:::i;:::-;658:2;651:22;404:275;;-1:-1:-1;404:275:9:o;684:187::-;733:4;766:18;758:6;755:30;752:56;;;788:18;;:::i;:::-;-1:-1:-1;854:2:9;833:15;-1:-1:-1;;829:29:9;860:4;825:40;;684:187::o;876:464::-;919:5;972:3;965:4;957:6;953:17;949:27;939:55;;990:1;987;980:12;939:55;1026:6;1013:20;1057:49;1073:32;1102:2;1073:32;:::i;:::-;1057:49;:::i;:::-;1131:2;1122:7;1115:19;1177:3;1170:4;1165:2;1157:6;1153:15;1149:26;1146:35;1143:55;;;1194:1;1191;1184:12;1143:55;1259:2;1252:4;1244:6;1240:17;1233:4;1224:7;1220:18;1207:55;1307:1;1282:16;;;1300:4;1278:27;1271:38;;;;1286:7;876:464;-1:-1:-1;;;876:464:9:o;1345:390::-;1423:6;1431;1484:2;1472:9;1463:7;1459:23;1455:32;1452:52;;;1500:1;1497;1490:12;1452:52;1540:9;1527:23;1573:18;1565:6;1562:30;1559:50;;;1605:1;1602;1595:12;1559:50;1628;1670:7;1661:6;1650:9;1646:22;1628:50;:::i;:::-;1618:60;1725:2;1710:18;;;;1697:32;;-1:-1:-1;;;;1345:390:9:o;1740:250::-;1825:1;1835:113;1849:6;1846:1;1843:13;1835:113;;;1925:11;;;1919:18;1906:11;;;1899:39;1871:2;1864:10;1835:113;;;-1:-1:-1;;1982:1:9;1964:16;;1957:27;1740:250::o;1995:271::-;2037:3;2075:5;2069:12;2102:6;2097:3;2090:19;2118:76;2187:6;2180:4;2175:3;2171:14;2164:4;2157:5;2153:16;2118:76;:::i;:::-;2248:2;2227:15;-1:-1:-1;;2223:29:9;2214:39;;;;2255:4;2210:50;;1995:271;-1:-1:-1;;1995:271:9:o;2380:127::-;2441:10;2436:3;2432:20;2429:1;2422:31;2472:4;2469:1;2462:15;2496:4;2493:1;2486:15;2512:238;2594:1;2587:5;2584:12;2574:143;;2639:10;2634:3;2630:20;2627:1;2620:31;2674:4;2671:1;2664:15;2702:4;2699:1;2692:15;2574:143;2726:18;;2512:238::o;2835:1147::-;3014:2;3003:9;2996:21;3059:6;3053:13;3048:2;3037:9;3033:18;3026:41;2977:4;3114:2;3106:6;3102:15;3096:22;3137:6;3179:2;3174;3163:9;3159:18;3152:30;3205:52;3252:3;3241:9;3237:19;3223:12;3205:52;:::i;:::-;3191:66;;3338:1;3334;3329:3;3325:11;3321:19;3315:2;3307:6;3303:15;3297:22;3293:48;3288:2;3277:9;3273:18;3266:76;3391:2;3383:6;3379:15;3373:22;3404:63;3462:3;3451:9;3447:19;3431:14;3404:63;:::i;:::-;-1:-1:-1;3516:3:9;3504:16;;3498:23;-1:-1:-1;;;;;2337:31:9;;3580:3;3565:19;;2325:44;3530:55;3640:3;3632:6;3628:16;3622:23;3616:3;3605:9;3601:19;3594:52;3695:3;3687:6;3683:16;3677:23;3769:2;3765:7;3753:9;3745:6;3741:22;3737:36;3731:3;3720:9;3716:19;3709:65;3797:41;3831:6;3815:14;3797:41;:::i;:::-;3783:55;;;3887:3;3879:6;3875:16;3869:23;3901:52;3949:2;3938:9;3934:18;3918:14;2822:4;2811:16;2799:29;;2755:75;3901:52;-1:-1:-1;3970:6:9;;2835:1147;-1:-1:-1;;;;2835:1147:9:o;3987:180::-;4046:6;4099:2;4087:9;4078:7;4074:23;4070:32;4067:52;;;4115:1;4112;4105:12;4067:52;-1:-1:-1;4138:23:9;;3987:180;-1:-1:-1;3987:180:9:o;4610:131::-;-1:-1:-1;;;;;4685:31:9;;4675:42;;4665:70;;4731:1;4728;4721:12;4746:315;4814:6;4822;4875:2;4863:9;4854:7;4850:23;4846:32;4843:52;;;4891:1;4888;4881:12;4843:52;4930:9;4917:23;4949:31;4974:5;4949:31;:::i;:::-;4999:5;5051:2;5036:18;;;;5023:32;;-1:-1:-1;;;4746:315:9:o;5248:209::-;5394:2;5379:18;;5406:45;5383:9;5433:6;5406:45;:::i;5462:337::-;5528:6;5536;5589:2;5577:9;5568:7;5564:23;5560:32;5557:52;;;5605:1;5602;5595:12;5557:52;5641:9;5628:23;5618:33;;5701:2;5690:9;5686:18;5673:32;5745:4;5738:5;5734:16;5727:5;5724:27;5714:55;;5765:1;5762;5755:12;5714:55;5788:5;5778:15;;;5462:337;;;;;:::o;5804:247::-;5863:6;5916:2;5904:9;5895:7;5891:23;5887:32;5884:52;;;5932:1;5929;5922:12;5884:52;5971:9;5958:23;5990:31;6015:5;5990:31;:::i;:::-;6040:5;5804:247;-1:-1:-1;;;5804:247:9:o;6056:632::-;6227:2;6279:21;;;6349:13;;6252:18;;;6371:22;;;6198:4;;6227:2;6450:15;;;;6424:2;6409:18;;;6198:4;6493:169;6507:6;6504:1;6501:13;6493:169;;;6568:13;;6556:26;;6637:15;;;;6602:12;;;;6529:1;6522:9;6493:169;;;-1:-1:-1;6679:3:9;;6056:632;-1:-1:-1;;;;;;6056:632:9:o;6693:390::-;6771:6;6779;6832:2;6820:9;6811:7;6807:23;6803:32;6800:52;;;6848:1;6845;6838:12;6800:52;6884:9;6871:23;6861:33;;6945:2;6934:9;6930:18;6917:32;6972:18;6964:6;6961:30;6958:50;;;7004:1;7001;6994:12;6958:50;7027;7069:7;7060:6;7049:9;7045:22;7027:50;:::i;:::-;7017:60;;;6693:390;;;;;:::o;7088:930::-;7424:4;7453:3;7483:6;7472:9;7465:25;7526:2;7521;7510:9;7506:18;7499:30;7552:45;7593:2;7582:9;7578:18;7570:6;7552:45;:::i;:::-;-1:-1:-1;;;;;7671:15:9;;;7666:2;7651:18;;7644:43;7538:59;;-1:-1:-1;7696:54:9;7746:2;7731:18;;7723:6;7696:54;:::i;:::-;7787:15;;7781:3;7766:19;;7759:44;7834:3;7819:19;;7812:35;;;7884:22;;;7878:3;7863:19;;7856:51;7924:33;7888:6;7942;7924:33;:::i;:::-;7916:41;;;8006:4;7998:6;7994:17;7988:3;7977:9;7973:19;7966:46;7088:930;;;;;;;;;;;:::o;8023:164::-;8099:13;;8148;;8141:21;8131:32;;8121:60;;8177:1;8174;8167:12;8121:60;8023:164;;;:::o;8192:1258::-;8295:6;8326:2;8369;8357:9;8348:7;8344:23;8340:32;8337:52;;;8385:1;8382;8375:12;8337:52;8418:9;8412:16;8447:18;8488:2;8480:6;8477:14;8474:34;;;8504:1;8501;8494:12;8474:34;8527:22;;;;8583:4;8565:16;;;8561:27;8558:47;;;8601:1;8598;8591:12;8558:47;8627:22;;:::i;:::-;8679:2;8673:9;8691:33;8716:7;8691:33;:::i;:::-;8733:22;;8786:11;;;8780:18;8810:16;;;8807:36;;;8839:1;8836;8829:12;8807:36;8862:17;;;-1:-1:-1;8910:4:9;8902:13;;8898:27;-1:-1:-1;8888:55:9;;8939:1;8936;8929:12;8888:55;8968:2;8962:9;8993:49;9009:32;9038:2;9009:32;:::i;8993:49::-;9065:2;9058:5;9051:17;9105:7;9100:2;9095;9091;9087:11;9083:20;9080:33;9077:53;;;9126:1;9123;9116:12;9077:53;9139:67;9203:2;9198;9191:5;9187:14;9182:2;9178;9174:11;9139:67;:::i;:::-;9238:5;9233:2;9226:5;9222:14;9215:29;;;9290:2;9286;9282:11;9276:18;9271:2;9264:5;9260:14;9253:42;9341:2;9337;9333:11;9327:18;9322:2;9315:5;9311:14;9304:42;9379:40;9414:3;9410:2;9406:12;9379:40;:::i;:::-;9373:3;9362:15;;9355:65;9366:5;8192:1258;-1:-1:-1;;;;;;8192:1258:9:o;10151:380::-;10230:1;10226:12;;;;10273;;;10294:61;;10348:4;10340:6;10336:17;10326:27;;10294:61;10401:2;10393:6;10390:14;10370:18;10367:38;10364:161;;10447:10;10442:3;10438:20;10435:1;10428:31;10482:4;10479:1;10472:15;10510:4;10507:1;10500:15;10364:161;;10151:380;;;:::o;10662:545::-;10764:2;10759:3;10756:11;10753:448;;;10800:1;10825:5;10821:2;10814:17;10870:4;10866:2;10856:19;10940:2;10928:10;10924:19;10921:1;10917:27;10911:4;10907:38;10976:4;10964:10;10961:20;10958:47;;;-1:-1:-1;10999:4:9;10958:47;11054:2;11049:3;11045:12;11042:1;11038:20;11032:4;11028:31;11018:41;;11109:82;11127:2;11120:5;11117:13;11109:82;;;11172:17;;;11153:1;11142:13;11109:82;;;11113:3;;;10662:545;;;:::o;11383:1352::-;11509:3;11503:10;11536:18;11528:6;11525:30;11522:56;;;11558:18;;:::i;:::-;11587:97;11677:6;11637:38;11669:4;11663:11;11637:38;:::i;:::-;11631:4;11587:97;:::i;:::-;11739:4;;11803:2;11792:14;;11820:1;11815:663;;;;12522:1;12539:6;12536:89;;;-1:-1:-1;12591:19:9;;;12585:26;12536:89;-1:-1:-1;;11340:1:9;11336:11;;;11332:24;11328:29;11318:40;11364:1;11360:11;;;11315:57;12638:81;;11785:944;;11815:663;10609:1;10602:14;;;10646:4;10633:18;;-1:-1:-1;;11851:20:9;;;11969:236;11983:7;11980:1;11977:14;11969:236;;;12072:19;;;12066:26;12051:42;;12164:27;;;;12132:1;12120:14;;;;11999:19;;11969:236;;;11973:3;12233:6;12224:7;12221:19;12218:201;;;12294:19;;;12288:26;-1:-1:-1;;12377:1:9;12373:14;;;12389:3;12369:24;12365:37;12361:42;12346:58;12331:74;;12218:201;-1:-1:-1;;;;;12465:1:9;12449:14;;;12445:22;12432:36;;-1:-1:-1;11383:1352:9:o;12740:362::-;12945:6;12934:9;12927:25;12988:6;12983:2;12972:9;12968:18;12961:34;13031:2;13026;13015:9;13011:18;13004:30;12908:4;13051:45;13092:2;13081:9;13077:18;13069:6;13051:45;:::i;:::-;13043:53;12740:362;-1:-1:-1;;;;;12740:362:9:o;13107:232::-;13146:3;13167:17;;;13164:140;;13226:10;13221:3;13217:20;13214:1;13207:31;13261:4;13258:1;13251:15;13289:4;13286:1;13279:15;13164:140;-1:-1:-1;13331:1:9;13320:13;;13107:232::o;15050:184::-;15120:6;15173:2;15161:9;15152:7;15148:23;15144:32;15141:52;;;15189:1;15186;15179:12;15141:52;-1:-1:-1;15212:16:9;;15050:184;-1:-1:-1;15050:184:9:o;16119:220::-;16268:2;16257:9;16250:21;16231:4;16288:45;16329:2;16318:9;16314:18;16306:6;16288:45;:::i;16696:287::-;16825:3;16863:6;16857:13;16879:66;16938:6;16933:3;16926:4;16918:6;16914:17;16879:66;:::i;:::-;16961:16;;;;;16696:287;-1:-1:-1;;16696:287:9:o" }, "methodIdentifiers": { "agentRegistry()": "0d1cfcae", + "cancelTask(uint256)": "7eec20a8", "completeTask(uint256,string)": "74aaa760", "createTask(string,uint256)": "04fe2b34", "getAssignee(uint256)": "07b31818", @@ -44124,12 +54208,114 @@ "getTasksByIssuer(address)": "639241ab", "issuerTasks(address,uint256)": "2a2b3a9d", "owner()": "8da5cb5b", + "rateTask(uint256,uint8)": "6298eee0", "renounceOwnership()": "715018a6", "tasks(uint256)": "8d977672", "transferOwnership(address)": "f2fde38b" } }, - "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract AgentsRegistry\",\"name\":\"_agentRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"serviceName\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IProposalStruct.Proposal\",\"name\":\"proposal\",\"type\":\"tuple\"}],\"name\":\"ProposalApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"}],\"name\":\"TaskAssigned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"result\",\"type\":\"string\"}],\"name\":\"TaskCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"assignee\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"prompt\",\"type\":\"string\"}],\"name\":\"TaskCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum TaskRegistry.TaskStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"TaskStatusChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"agentRegistry\",\"outputs\":[{\"internalType\":\"contract AgentsRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"result\",\"type\":\"string\"}],\"name\":\"completeTask\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"prompt\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"createTask\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"prompt\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"enum TaskRegistry.TaskStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"assignee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"result\",\"type\":\"string\"}],\"internalType\":\"struct TaskRegistry.TaskData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"getAssignee\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"getStatus\",\"outputs\":[{\"internalType\":\"enum TaskRegistry.TaskStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"getTask\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"prompt\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"enum TaskRegistry.TaskStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"assignee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"result\",\"type\":\"string\"}],\"internalType\":\"struct TaskRegistry.TaskData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"}],\"name\":\"getTasksByIssuer\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"issuerTasks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tasks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"prompt\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"enum TaskRegistry.TaskStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"assignee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"result\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"leonprou\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"completeTask(uint256,string)\":{\"details\":\"Completes a task with the given result.\",\"params\":{\"result\":\"The result or output of the completed task.\",\"taskId\":\"The ID of the task.\"}},\"createTask(string,uint256)\":{\"details\":\"Creates a new task with the given prompt and task type.\",\"params\":{\"prompt\":\"The description or prompt of the task.\"},\"returns\":{\"_0\":\"taskId The ID of the newly created task.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"TaskRegistry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A smart contract that stores information about the tasks issued for the agent service providers.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/TaskRegistry.sol\":\"TaskRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/AgentsRegistry.sol\":{\"keccak256\":\"0xa8ac31890b6bd6c348b34a7e8e2a364f56a45ca1b6bf91ba4ac30f7b9a9d5479\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79850d07565e9a9685acf093c2c78a766a5d1b6e5b4f7dff0a4f058ca878fcfe\",\"dweb:/ipfs/QmdsQpZhWhbUsNt9RtdW6JbXB6uQU3SgehGFxUs1J6uhHH\"]},\"contracts/ServiceRegistry.sol\":{\"keccak256\":\"0xa86b05303aaeee4c1437e7857fb03fe70473bed68f68c50dbabc261bfa6cdca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://069be2bed01b0f80d688a4b5da526051507245c340745a58f2bd78fbf3700373\",\"dweb:/ipfs/QmWU9yZSLZNJvZaXNRPem7AySUL94aTaCAR1TGTdcnPmmA\"]},\"contracts/TaskRegistry.sol\":{\"keccak256\":\"0x9ed180faa59817d594bdd411a2356df6f8874ce0a57f65446c2db8d6d9864a99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11c1881541b88421ed24e2dbabe34cc3d46246b5d417e60c2e826ad2fac9f532\",\"dweb:/ipfs/QmPshYRWXwJnSrGMtDq9u4YjqkEw5AU6qPc3fdCTaJ2ddz\"]},\"contracts/interfaces/IProposalStruct.sol\":{\"keccak256\":\"0x9d05f54eb20cbe5f8e11fb0b8229714378d8b9956771d308ca8550d27728fd10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://665b3367f5eabd0a4e09ec1f77c992391617be5410b02755811ebb278a457320\",\"dweb:/ipfs/QmNWdoe8B2y92uKvCZECJNPobKL8ieEww2H3AkHEddoojf\"]},\"contracts/lib/TransferHelper.sol\":{\"keccak256\":\"0x65e08c88e7925dc1d5c0f7e774896f11af45bca8067ceeaa35ff4c93128c62c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd6919f03addec5eb18403934c51848d7e4f71f44359d429755cc82155d3e072\",\"dweb:/ipfs/QmeNazpowCEm8Q54cSoHPtvF5wofLnrAwVh4g71G4oVZ1w\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract AgentsRegistry\",\"name\":\"_agentRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"serviceName\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"}],\"indexed\":false,\"internalType\":\"struct IProposalStruct.ServiceProposal\",\"name\":\"proposal\",\"type\":\"tuple\"}],\"name\":\"ProposalApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"}],\"name\":\"TaskAssigned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"TaskCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"result\",\"type\":\"string\"}],\"name\":\"TaskCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"assignee\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"prompt\",\"type\":\"string\"}],\"name\":\"TaskCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"rating\",\"type\":\"uint8\"}],\"name\":\"TaskRated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum TaskRegistry.TaskStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"TaskStatusChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"agentRegistry\",\"outputs\":[{\"internalType\":\"contract AgentsRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"cancelTask\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"result\",\"type\":\"string\"}],\"name\":\"completeTask\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"prompt\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"createTask\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"prompt\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"enum TaskRegistry.TaskStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"assignee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"result\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"rating\",\"type\":\"uint8\"}],\"internalType\":\"struct TaskRegistry.TaskData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"getAssignee\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"getStatus\",\"outputs\":[{\"internalType\":\"enum TaskRegistry.TaskStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"getTask\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"prompt\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"enum TaskRegistry.TaskStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"assignee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"result\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"rating\",\"type\":\"uint8\"}],\"internalType\":\"struct TaskRegistry.TaskData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"}],\"name\":\"getTasksByIssuer\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"issuerTasks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"rating\",\"type\":\"uint8\"}],\"name\":\"rateTask\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tasks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"prompt\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"enum TaskRegistry.TaskStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"assignee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"result\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"rating\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"leonprou\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"cancelTask(uint256)\":{\"details\":\"Cancels a task that is in ASSIGNED status and refunds the payment.\",\"params\":{\"taskId\":\"The ID of the task to cancel.\"}},\"completeTask(uint256,string)\":{\"details\":\"Completes a task with the given result.\",\"params\":{\"result\":\"The result or output of the completed task.\",\"taskId\":\"The ID of the task.\"}},\"createTask(string,uint256)\":{\"details\":\"Creates a new task with the given prompt and task type.\",\"params\":{\"prompt\":\"The description or prompt of the task.\"},\"returns\":{\"_0\":\"taskId The ID of the newly created task.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"rateTask(uint256,uint8)\":{\"details\":\"Rated a completed task, called by the task issuer\",\"params\":{\"rating\":\"task rating from 0 to 100.\",\"taskId\":\"The ID of the task.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"TaskRegistry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A smart contract that stores information about the tasks issued for the agent service providers.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/TaskRegistry.sol\":\"TaskRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/AgentsRegistry.sol\":{\"keccak256\":\"0x07f5115ea2dcfe7c0381855050bc78f01136fd6afb262b5aa737f7ee6cb46710\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cabafa7ed0a571aa40e9de621c5b8667c064991c4e92102c61f538f970391338\",\"dweb:/ipfs/QmT7CUvFwh6wQe1N3WP3KpiRZkozPmBjmXFPZSh5vSqtTW\"]},\"contracts/ServiceRegistry.sol\":{\"keccak256\":\"0xb367bc3088ecb4af04c654422f9e91de35d5c452d25c8864f3e889453fcb0407\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c797fc6a3ee833460e6fe4c3904d7e49b68c4a676af701300218ee9783ab0eea\",\"dweb:/ipfs/QmaCpR7npnQ1RGt3qukufy7gxyi6kymHhHNgE32jMNJk3F\"]},\"contracts/TaskRegistry.sol\":{\"keccak256\":\"0xcdf5f1d0b810f88c36f96779b29d2de6d4abd800f29b0de4798eb27f5acfdd56\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b3c09da2b0f81e1f1a2a7a0fe07ac4097b9a6991142ed89f57904522dd223f4\",\"dweb:/ipfs/QmcYM1MC78aU4FKEAwrKKbX9MTq8Gisdkjfzg2hwA1jreY\"]},\"contracts/interfaces/IProposalStruct.sol\":{\"keccak256\":\"0xbad0d64e6949e412f091cc0ae54bb69e309e3daba7af543b06e45b844345348b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbdafaad17f053b7ec71589121f142080b467f2346c34ca5a18e2077f06788f4\",\"dweb:/ipfs/Qmdbjv7ZH6uCtvzi9qTXyd9CWx8jtEwjy9WFDYbXZfSYjn\"]},\"contracts/lib/TransferHelper.sol\":{\"keccak256\":\"0x65e08c88e7925dc1d5c0f7e774896f11af45bca8067ceeaa35ff4c93128c62c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd6919f03addec5eb18403934c51848d7e4f71f44359d429755cc82155d3e072\",\"dweb:/ipfs/QmeNazpowCEm8Q54cSoHPtvF5wofLnrAwVh4g71G4oVZ1w\"]}},\"version\":1}" + } + }, + "contracts/interfaces/IAgent.sol": { + "IAgent": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "agent", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newReputation", + "type": "uint256" + } + ], + "name": "ReputationUpdated", + "type": "event" + }, + { + "inputs": [], + "name": "getReputation", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getSkills", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "level", + "type": "uint256" + } + ], + "internalType": "struct IAgent.Skill[]", + "name": "", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_reputation", + "type": "uint256" + } + ], + "name": "updateReputation", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "getReputation()": "ffe6a18e", + "getSkills()": "fdd76bb3", + "updateReputation(uint256)": "f43970f3" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newReputation\",\"type\":\"uint256\"}],\"name\":\"ReputationUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getReputation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSkills\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"}],\"internalType\":\"struct IAgent.Skill[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_reputation\",\"type\":\"uint256\"}],\"name\":\"updateReputation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IAgent.sol\":\"IAgent\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IAgent.sol\":{\"keccak256\":\"0xadaff7e04cddb50f6027a94b38444c9f99744894725d9726ec5a859901d6c562\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b90d278721fa47b11983627a7c461310ae55a2923f8b6e70103971f9210e274b\",\"dweb:/ipfs/QmXkpVmndBCsxrHrKT9wmfP5mmAf3keLDLp3YSxEJkq9x8\"]}},\"version\":1}" } }, "contracts/interfaces/IProposalStruct.sol": { @@ -44155,7 +54341,150 @@ }, "methodIdentifiers": {} }, - "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IProposalStruct.sol\":\"IProposalStruct\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IProposalStruct.sol\":{\"keccak256\":\"0x9d05f54eb20cbe5f8e11fb0b8229714378d8b9956771d308ca8550d27728fd10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://665b3367f5eabd0a4e09ec1f77c992391617be5410b02755811ebb278a457320\",\"dweb:/ipfs/QmNWdoe8B2y92uKvCZECJNPobKL8ieEww2H3AkHEddoojf\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IProposalStruct.sol\":\"IProposalStruct\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IProposalStruct.sol\":{\"keccak256\":\"0xbad0d64e6949e412f091cc0ae54bb69e309e3daba7af543b06e45b844345348b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbdafaad17f053b7ec71589121f142080b467f2346c34ca5a18e2077f06788f4\",\"dweb:/ipfs/Qmdbjv7ZH6uCtvzi9qTXyd9CWx8jtEwjy9WFDYbXZfSYjn\"]}},\"version\":1}" + } + }, + "contracts/interfaces/ITask.sol": { + "ITask": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "taskId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "assignee", + "type": "address" + } + ], + "name": "TaskAssigned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "taskId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "name": "TaskExecuted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "taskId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "enum ITask.TaskStatus", + "name": "status", + "type": "uint8" + } + ], + "name": "TaskStatusChanged", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "execute", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getAssignee", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getStatus", + "outputs": [ + { + "internalType": "enum ITask.TaskStatus", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "execute(bytes,address,uint256)": "ef17a55e", + "getAssignee()": "aa92e29f", + "getStatus()": "4e69d560" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"assignee\",\"type\":\"address\"}],\"name\":\"TaskAssigned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"name\":\"TaskExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum ITask.TaskStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"TaskStatusChanged\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAssignee\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStatus\",\"outputs\":[{\"internalType\":\"enum ITask.TaskStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ITask.sol\":\"ITask\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/ITask.sol\":{\"keccak256\":\"0x68d4e254ecbc2f10745b8833e4bf15e0aac74e1dd5cfe99c9eeb57e76aeefcde\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a5f2db58c42eeff50b937dc29c671d4355c667bd5dcc5438203e63cd57ae3bc\",\"dweb:/ipfs/QmRzFjBeTBEuFHdpTR1Cz9SkEA6PCpSbnH4kiHvAnCn92e\"]}},\"version\":1}" } }, "contracts/lib/TransferHelper.sol": { @@ -44168,7 +54497,7 @@ "linkReferences": {}, "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122085b80507e318490f89aacc84ba4fec48af437f0af4c9f4a27df42a6238c1dec064736f6c63430008140033", "opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP6 0xB8 SDIV SMOD 0xE3 XOR 0x49 0xF DUP10 0xAA 0xCC DUP5 0xBA 0x4F 0xEC BASEFEE 0xAF NUMBER PUSH32 0xAF4C9F4A27DF42A6238C1DEC064736F6C634300081400330000000000000000 ", - "sourceMap": "168:1621:6:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;168:1621:6;;;;;;;;;;;;;;;;;" + "sourceMap": "168:1621:8:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;168:1621:8;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "functionDebugData": {}, @@ -44177,7 +54506,7 @@ "linkReferences": {}, "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122085b80507e318490f89aacc84ba4fec48af437f0af4c9f4a27df42a6238c1dec064736f6c63430008140033", "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP6 0xB8 SDIV SMOD 0xE3 XOR 0x49 0xF DUP10 0xAA 0xCC DUP5 0xBA 0x4F 0xEC BASEFEE 0xAF NUMBER PUSH32 0xAF4C9F4A27DF42A6238C1DEC064736F6C634300081400330000000000000000 ", - "sourceMap": "168:1621:6:-:0;;;;;;;;" + "sourceMap": "168:1621:8:-:0;;;;;;;;" }, "methodIdentifiers": {} }, diff --git a/packages/contracts/ignition/deployments/chain-84532/deployed_addresses.json b/packages/contracts/ignition/deployments/chain-84532/deployed_addresses.json index 14657bb..d8bc929 100644 --- a/packages/contracts/ignition/deployments/chain-84532/deployed_addresses.json +++ b/packages/contracts/ignition/deployments/chain-84532/deployed_addresses.json @@ -1,5 +1,5 @@ { - "ServiceRegistryModule#ServiceRegistry": "0xC59D70954BFFf1aB687aB28E86324703B5D23dcC", - "AgentsRegistryModule#AgentsRegistry": "0xd5aD1B6c462C7cCF641Df8cdac356bc4a7C20400", - "TaskRegistryModule#TaskRegistry": "0x7eaB59d9121c76eF44a101C2c1d2121cC8e871fd" + "ServiceRegistryModule#ServiceRegistry": "0x68A88024060fD8Fe4dE848de1abB7F6d9225cCa8", + "AgentsRegistryModule#AgentsRegistry": "0xABC2AC53Aaf217B70825701c1a5aB750CD60DbaF", + "TaskRegistryModule#TaskRegistry": "0x859bBE15EfbE62fD51DB5C24B01048A73839E141" } diff --git a/packages/contracts/ignition/deployments/chain-84532/journal.jsonl b/packages/contracts/ignition/deployments/chain-84532/journal.jsonl index ae3f077..3eeb319 100644 --- a/packages/contracts/ignition/deployments/chain-84532/journal.jsonl +++ b/packages/contracts/ignition/deployments/chain-84532/journal.jsonl @@ -1,17 +1,17 @@ {"chainId":84532,"type":"DEPLOYMENT_INITIALIZE"} -{"artifactId":"ServiceRegistryModule#ServiceRegistry","constructorArgs":[],"contractName":"ServiceRegistry","dependencies":[],"from":"0x2c37691967de1a1e4ee68ae4d745059720a6db7f","futureId":"ServiceRegistryModule#ServiceRegistry","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"ServiceRegistryModule#ServiceRegistry","networkInteraction":{"data":"0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610e34806100a56000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80637f3ed719116100665780637f3ed719146101005780638da5cb5b14610113578063b405166b1461012e578063ef57d88414610151578063f2fde38b1461016457600080fd5b806306237526146100985780633017ba09146100b4578063715018a6146100d6578063794758be146100e0575b600080fd5b6100a160025481565b6040519081526020015b60405180910390f35b6100c76100c2366004610a54565b610177565b6040516100ab93929190610ae1565b6100de61033c565b005b6100f36100ee366004610a54565b610350565b6040516100ab9190610b24565b6100de61010e366004610b85565b61055a565b6000546040516001600160a01b0390911681526020016100ab565b61014161013c366004610a54565b6106c6565b60405190151581526020016100ab565b6100f361015f366004610b85565b610745565b6100de610172366004610c0d565b6108f6565b805160208183018101805160018252928201919093012091528054819061019d90610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546101c990610c3d565b80156102165780601f106101eb57610100808354040283529160200191610216565b820191906000526020600020905b8154815290600101906020018083116101f957829003601f168201915b50505050509080600101805461022b90610c3d565b80601f016020809104026020016040519081016040528092919081815260200182805461025790610c3d565b80156102a45780601f10610279576101008083540402835291602001916102a4565b820191906000526020600020905b81548152906001019060200180831161028757829003601f168201915b5050505050908060020180546102b990610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546102e590610c3d565b80156103325780601f1061030757610100808354040283529160200191610332565b820191906000526020600020905b81548152906001019060200180831161031557829003601f168201915b5050505050905083565b610344610934565b61034e6000610961565b565b61037460405180606001604052806060815260200160608152602001606081525090565b6001826040516103849190610c77565b90815260200160405180910390206040518060600160405290816000820180546103ad90610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990610c3d565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050815260200160018201805461043f90610c3d565b80601f016020809104026020016040519081016040528092919081815260200182805461046b90610c3d565b80156104b85780601f1061048d576101008083540402835291602001916104b8565b820191906000526020600020905b81548152906001019060200180831161049b57829003601f168201915b505050505081526020016002820180546104d190610c3d565b80601f01602080910402602001604051908101604052809291908181526020018280546104fd90610c3d565b801561054a5780601f1061051f5761010080835404028352916020019161054a565b820191906000526020600020905b81548152906001019060200180831161052d57829003601f168201915b5050505050815250509050919050565b610562610934565b60405163b405166b60e01b8152309063b405166b90610585908690600401610c93565b602060405180830381865afa1580156105a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c69190610ca6565b6106105760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b60448201526064015b60405180910390fd5b60405180606001604052808481526020018381526020018281525060018460405161063b9190610c77565b908152604051908190036020019020815181906106589082610d17565b506020820151600182019061066d9082610d17565b50604082015160028201906106829082610d17565b509050507f4cd09e35844ccdf25aac9862af453cedf05d8a8b765f2763be8373b55215df8d8383836040516106b993929190610ae1565b60405180910390a1505050565b60008082511161070f5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073657276696365206e616d6560601b6044820152606401610607565b60006001836040516107219190610c77565b908152604051908190036020019020805461073b90610c3d565b9050119050919050565b61076960405180606001604052806060815260200160608152602001606081525090565b610771610934565b60405163b405166b60e01b8152309063b405166b90610794908790600401610c93565b602060405180830381865afa1580156107b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d59190610ca6565b156108225760405162461bcd60e51b815260206004820152601a60248201527f5365727669636520616c726561647920726567697374657265640000000000006044820152606401610607565b60006040518060600160405280868152602001858152602001848152509050806001866040516108529190610c77565b9081526040519081900360200190208151819061086f9082610d17565b50602082015160018201906108849082610d17565b50604082015160028201906108999082610d17565b509050507fc182fe36565be4905be53a8ed353f07898b528f1625e778edf77c136748064868585856040516108d093929190610ae1565b60405180910390a1600280549060006108e883610dd7565b909155509095945050505050565b6108fe610934565b6001600160a01b03811661092857604051631e4fbdf760e01b815260006004820152602401610607565b61093181610961565b50565b6000546001600160a01b0316331461034e5760405163118cdaa760e01b8152336004820152602401610607565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126109d857600080fd5b813567ffffffffffffffff808211156109f3576109f36109b1565b604051601f8301601f19908116603f01168101908282118183101715610a1b57610a1b6109b1565b81604052838152866020858801011115610a3457600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215610a6657600080fd5b813567ffffffffffffffff811115610a7d57600080fd5b610a89848285016109c7565b949350505050565b60005b83811015610aac578181015183820152602001610a94565b50506000910152565b60008151808452610acd816020860160208601610a91565b601f01601f19169290920160200192915050565b606081526000610af46060830186610ab5565b8281036020840152610b068186610ab5565b90508281036040840152610b1a8185610ab5565b9695505050505050565b602081526000825160606020840152610b406080840182610ab5565b90506020840151601f1980858403016040860152610b5e8383610ab5565b9250604086015191508085840301606086015250610b7c8282610ab5565b95945050505050565b600080600060608486031215610b9a57600080fd5b833567ffffffffffffffff80821115610bb257600080fd5b610bbe878388016109c7565b94506020860135915080821115610bd457600080fd5b610be0878388016109c7565b93506040860135915080821115610bf657600080fd5b50610c03868287016109c7565b9150509250925092565b600060208284031215610c1f57600080fd5b81356001600160a01b0381168114610c3657600080fd5b9392505050565b600181811c90821680610c5157607f821691505b602082108103610c7157634e487b7160e01b600052602260045260246000fd5b50919050565b60008251610c89818460208701610a91565b9190910192915050565b602081526000610c366020830184610ab5565b600060208284031215610cb857600080fd5b81518015158114610c3657600080fd5b601f821115610d1257600081815260208120601f850160051c81016020861015610cef5750805b601f850160051c820191505b81811015610d0e57828155600101610cfb565b5050505b505050565b815167ffffffffffffffff811115610d3157610d316109b1565b610d4581610d3f8454610c3d565b84610cc8565b602080601f831160018114610d7a5760008415610d625750858301515b600019600386901b1c1916600185901b178555610d0e565b600085815260208120601f198616915b82811015610da957888601518255948401946001909101908401610d8a565b5085821015610dc75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060018201610df757634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220d9d13b31a10bf6dfe0cb147d4236389d36ab889b339ea5d17d968e4d3ba1034564736f6c63430008140033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"ServiceRegistryModule#ServiceRegistry","networkInteractionId":1,"nonce":640,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1000682"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000"}},"hash":"0x9158c423b8dd4b0cbadc96ca0450d426242273346848706519945f329b1bc335"},"type":"TRANSACTION_SEND"} -{"futureId":"ServiceRegistryModule#ServiceRegistry","hash":"0x9158c423b8dd4b0cbadc96ca0450d426242273346848706519945f329b1bc335","networkInteractionId":1,"receipt":{"blockHash":"0x726caef5e33d3376e132cc55f5dd4a0333a2690aad664c2c070de1a5f0ccbf17","blockNumber":22027666,"contractAddress":"0xC59D70954BFFf1aB687aB28E86324703B5D23dcC","logs":[{"address":"0xC59D70954BFFf1aB687aB28E86324703B5D23dcC","data":"0x","logIndex":20,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000002c37691967de1a1e4ee68ae4d745059720a6db7f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"ServiceRegistryModule#ServiceRegistry","result":{"address":"0xC59D70954BFFf1aB687aB28E86324703B5D23dcC","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"artifactId":"AgentsRegistryModule#AgentsRegistry","constructorArgs":["0xC59D70954BFFf1aB687aB28E86324703B5D23dcC"],"contractName":"AgentsRegistry","dependencies":["ServiceRegistryModule#ServiceRegistry"],"from":"0x2c37691967de1a1e4ee68ae4d745059720a6db7f","futureId":"AgentsRegistryModule#AgentsRegistry","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"AgentsRegistryModule#AgentsRegistry","networkInteraction":{"data":"0x608060405234801561001057600080fd5b5060405161132238038061132283398101604081905261002f916100d4565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e81610084565b50600180546001600160a01b0319166001600160a01b0392909216919091179055610104565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100e657600080fd5b81516001600160a01b03811681146100fd57600080fd5b9392505050565b61120f806101136000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063aac9f15a1161008c578063cbcf252a11610066578063cbcf252a146101ef578063f2fde38b14610202578063f5c91a0814610215578063fd66091e1461022857600080fd5b8063aac9f15a1461017c578063c3c5a547146101a0578063c7f758a8146101cf57600080fd5b8063013cf08b146100d45780632ab09d1414610100578063715018a6146101175780638da5cb5b1461012157806398366dbd146101465780639c89a0e214610169575b600080fd5b6100e76100e2366004610c9d565b61024d565b6040516100f79493929190610cfc565b60405180910390f35b61010960045481565b6040519081526020016100f7565b61011f61031b565b005b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100f7565b610159610154366004610df2565b61032f565b60405190151581526020016100f7565b610109610177366004610e93565b6106a5565b61018f61018a366004610e93565b61072e565b6040516100f7959493929190610eb5565b6101596101ae366004610e93565b6001600160a01b031660009081526002602052604090206005015460ff1690565b6101e26101dd366004610c9d565b61089f565b6040516100f79190610eff565b60015461012e906001600160a01b031681565b61011f610210366004610e93565b6109c3565b61011f610223366004610f4d565b610a01565b61023b610236366004610e93565b610aca565b6040516100f796959493929190610f77565b6003818154811061025d57600080fd5b6000918252602090912060049091020180546001820180546001600160a01b0390921693509061028c90610fcd565b80601f01602080910402602001604051908101604052809291908181526020018280546102b890610fcd565b80156103055780601f106102da57610100808354040283529160200191610305565b820191906000526020600020905b8154815290600101906020018083116102e857829003601f168201915b5050505050908060020154908060030154905084565b610323610c20565b61032d6000610c4d565b565b6001600160a01b03851660009081526002602052604081206005015460ff16156103a05760405162461bcd60e51b815260206004820152601860248201527f4167656e7420616c72656164792072656769737465726564000000000000000060448201526064015b60405180910390fd5b60015460405163b405166b60e01b81526001600160a01b039091169063b405166b906103d0908690600401611001565b602060405180830381865afa1580156103ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104119190611014565b6104565760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b6044820152606401610397565b6001600160a01b0386166000908152600260205260409020806104798782611085565b50600181016104888682611085565b506002810180546001600160a01b031990811633179091556003820180546001600160a01b038a811691841682179092556000600480860182905560058601805460ff191660019081179091556040805160808101825294855260208086018c81529186018b9052835460608701526006890180548085018255908652942085519490930290920180549390951692909516919091178355519092839291908201906105349082611085565b5060408201516002820155606090910151600391820155805460018101825560009190915281517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b600490920291820180546001600160a01b0319166001600160a01b03909216919091178155602083015183927fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c01906105d59082611085565b5060408201516002820155606090910151600390910155600480549060006105fc83611145565b9190505550336001600160a01b0316886001600160a01b03167f2a562efb52e7cec209321f57200606311256da6d2a1b19d44db7837a3209de28898960405161064692919061116c565b60405180910390a3876001600160a01b03167fe194e0bc2279adb185c748ae57db10fe2ef1005a1b5646f96235a881c88ddb798260600151878760405161068f9392919061119a565b60405180910390a2506001979650505050505050565b6001600160a01b038116600090815260026020526040812060050154829060ff166107095760405162461bcd60e51b81526020600482015260146024820152731059d95b9d081b9bdd081c9959da5cdd195c995960621b6044820152606401610397565b6001600160a01b03831660009081526002602052604090206004015491505b50919050565b6001600160a01b038082166000908152600260208190526040822090810154600382015460048301548354606096879695869586959194859460018601949283169390921691859061077f90610fcd565b80601f01602080910402602001604051908101604052809291908181526020018280546107ab90610fcd565b80156107f85780601f106107cd576101008083540402835291602001916107f8565b820191906000526020600020905b8154815290600101906020018083116107db57829003601f168201915b5050505050945083805461080b90610fcd565b80601f016020809104026020016040519081016040528092919081815260200182805461083790610fcd565b80156108845780601f1061085957610100808354040283529160200191610884565b820191906000526020600020905b81548152906001019060200180831161086757829003601f168201915b50505050509350955095509550955095505091939590929450565b6108d3604051806080016040528060006001600160a01b031681526020016060815260200160008152602001600081525090565b600382815481106108e6576108e66111c3565b6000918252602091829020604080516080810190915260049092020180546001600160a01b03168252600181018054929391929184019161092690610fcd565b80601f016020809104026020016040519081016040528092919081815260200182805461095290610fcd565b801561099f5780601f106109745761010080835404028352916020019161099f565b820191906000526020600020905b81548152906001019060200180831161098257829003601f168201915b50505050508152602001600282015481526020016003820154815250509050919050565b6109cb610c20565b6001600160a01b0381166109f557604051631e4fbdf760e01b815260006004820152602401610397565b6109fe81610c4d565b50565b610a09610c20565b6001600160a01b038216600090815260026020526040902060050154829060ff16610a6d5760405162461bcd60e51b81526020600482015260146024820152731059d95b9d081b9bdd081c9959da5cdd195c995960621b6044820152606401610397565b6001600160a01b03831660008181526002602052604090819020600401849055517ffc577563f1b9a0461e24abef1e1fcc0d33d3d881f20b5df6dda59de4aae2c82190610abd9085815260200190565b60405180910390a2505050565b600260205260009081526040902080548190610ae590610fcd565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1190610fcd565b8015610b5e5780601f10610b3357610100808354040283529160200191610b5e565b820191906000526020600020905b815481529060010190602001808311610b4157829003601f168201915b505050505090806001018054610b7390610fcd565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9f90610fcd565b8015610bec5780601f10610bc157610100808354040283529160200191610bec565b820191906000526020600020905b815481529060010190602001808311610bcf57829003601f168201915b5050505060028301546003840154600485015460059095015493946001600160a01b03928316949290911692509060ff1686565b6000546001600160a01b0316331461032d5760405163118cdaa760e01b8152336004820152602401610397565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610caf57600080fd5b5035919050565b6000815180845260005b81811015610cdc57602081850181015186830182015201610cc0565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0385168152608060208201819052600090610d2090830186610cb6565b6040830194909452506060015292915050565b80356001600160a01b0381168114610d4a57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610d7657600080fd5b813567ffffffffffffffff80821115610d9157610d91610d4f565b604051601f8301601f19908116603f01168101908282118183101715610db957610db9610d4f565b81604052838152866020858801011115610dd257600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a08688031215610e0a57600080fd5b610e1386610d33565b9450602086013567ffffffffffffffff80821115610e3057600080fd5b610e3c89838a01610d65565b95506040880135915080821115610e5257600080fd5b610e5e89838a01610d65565b94506060880135915080821115610e7457600080fd5b50610e8188828901610d65565b95989497509295608001359392505050565b600060208284031215610ea557600080fd5b610eae82610d33565b9392505050565b60a081526000610ec860a0830188610cb6565b8281036020840152610eda8188610cb6565b6001600160a01b03968716604085015294909516606083015250608001529392505050565b602080825282516001600160a01b03168282015282015160806040830152600090610f2d60a0840182610cb6565b905060408401516060840152606084015160808401528091505092915050565b60008060408385031215610f6057600080fd5b610f6983610d33565b946020939093013593505050565b60c081526000610f8a60c0830189610cb6565b8281036020840152610f9c8189610cb6565b6001600160a01b039788166040850152959096166060830152506080810192909252151560a0909101529392505050565b600181811c90821680610fe157607f821691505b60208210810361072857634e487b7160e01b600052602260045260246000fd5b602081526000610eae6020830184610cb6565b60006020828403121561102657600080fd5b81518015158114610eae57600080fd5b601f82111561108057600081815260208120601f850160051c8101602086101561105d5750805b601f850160051c820191505b8181101561107c57828155600101611069565b5050505b505050565b815167ffffffffffffffff81111561109f5761109f610d4f565b6110b3816110ad8454610fcd565b84611036565b602080601f8311600181146110e857600084156110d05750858301515b600019600386901b1c1916600185901b17855561107c565b600085815260208120601f198616915b82811015611117578886015182559484019460019091019084016110f8565b50858210156111355787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006001820161116557634e487b7160e01b600052601160045260246000fd5b5060010190565b60408152600061117f6040830185610cb6565b82810360208401526111918185610cb6565b95945050505050565b8381526060602082015260006111b36060830185610cb6565b9050826040830152949350505050565b634e487b7160e01b600052603260045260246000fdfea26469706673582212202fe5e950305276469a5e1b110d11d1a15beca558b7c205b065d06b11c61cfe7964736f6c63430008140033000000000000000000000000c59d70954bfff1ab687ab28e86324703b5d23dcc","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"AgentsRegistryModule#AgentsRegistry","networkInteractionId":1,"nonce":641,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1000686"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000"}},"hash":"0xac87134a591428adbc817f8b9c3bfc22e925d839b751b8101361748011b9b471"},"type":"TRANSACTION_SEND"} -{"futureId":"AgentsRegistryModule#AgentsRegistry","hash":"0xac87134a591428adbc817f8b9c3bfc22e925d839b751b8101361748011b9b471","networkInteractionId":1,"receipt":{"blockHash":"0x80f2c76926da8cd87ebc754005b1073e199c47b97307233183877a9f7ab502e6","blockNumber":22027673,"contractAddress":"0xd5aD1B6c462C7cCF641Df8cdac356bc4a7C20400","logs":[{"address":"0xd5aD1B6c462C7cCF641Df8cdac356bc4a7C20400","data":"0x","logIndex":32,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000002c37691967de1a1e4ee68ae4d745059720a6db7f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"AgentsRegistryModule#AgentsRegistry","result":{"address":"0xd5aD1B6c462C7cCF641Df8cdac356bc4a7C20400","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"artifactId":"TaskRegistryModule#TaskRegistry","constructorArgs":["0xd5aD1B6c462C7cCF641Df8cdac356bc4a7C20400"],"contractName":"TaskRegistry","dependencies":["AgentsRegistryModule#AgentsRegistry"],"from":"0x2c37691967de1a1e4ee68ae4d745059720a6db7f","futureId":"TaskRegistryModule#TaskRegistry","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"TaskRegistryModule#TaskRegistry","networkInteraction":{"data":"0x608060405234801561001057600080fd5b506040516115d53803806115d583398101604081905261002f916100d4565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e81610084565b50600480546001600160a01b0319166001600160a01b0392909216919091179055610104565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100e657600080fd5b81516001600160a01b03811681146100fd57600080fd5b9392505050565b6114c2806101136000396000f3fe6080604052600436106100a75760003560e01c8063639241ab11610064578063639241ab146101db578063715018a61461020857806374aaa7601461021f5780638d9776721461023f5780638da5cb5b14610272578063f2fde38b1461029057600080fd5b806304fe2b34146100ac57806307b31818146100d55780630d1cfcae146101265780631d65e77e146101465780632a2b3a9d146101665780635c622a0e14610194575b600080fd5b6100bf6100ba366004610f27565b6102b0565b6040516100cc9190610ff4565b60405180910390f35b3480156100e157600080fd5b5061010e6100f0366004611083565b6000908152600160205260409020600301546001600160a01b031690565b6040516001600160a01b0390911681526020016100cc565b34801561013257600080fd5b5060045461010e906001600160a01b031681565b34801561015257600080fd5b506100bf610161366004611083565b610672565b34801561017257600080fd5b506101866101813660046110b1565b61082f565b6040519081526020016100cc565b3480156101a057600080fd5b506101ce6101af366004611083565b600090815260016020526040902060020154600160a01b900460ff1690565b6040516100cc91906110dd565b3480156101e757600080fd5b506101fb6101f63660046110eb565b610860565b6040516100cc919061110f565b34801561021457600080fd5b5061021d6108cc565b005b34801561022b57600080fd5b5061021d61023a366004611153565b6108e0565b34801561024b57600080fd5b5061025f61025a366004611083565b610ae9565b6040516100cc979695949392919061119a565b34801561027e57600080fd5b506000546001600160a01b031661010e565b34801561029c57600080fd5b5061021d6102ab3660046110eb565b610c4a565b6102b8610de4565b600480546040516318feeb1560e31b81529182018490526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610304573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261032c91908101906111fe565b80519091506001600160a01b03166103805760405162461bcd60e51b8152602060048201526012602482015271141c9bdc1bdcd85b081b9bdd08199bdd5b9960721b60448201526064015b60405180910390fd5b348160400151146103c35760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420707269636560981b6044820152606401610377565b600354600081815260016020819052604090912091825581016103e68682611357565b5060028181018054336001600160a01b031991821681178355600485018890558551600380870180549094166001600160a01b0390921691909117909255600090815260209384526040812091548254600181810185559383529490912090930192909255805460ff60a01b1916600160a01b830217905550815160035460608401516040516001600160a01b039093169233927f5c005bbbb9da508c37935b1a9f270836e0be1fd11d4d47119f925a3ff33820e9926104a7928b90611417565b60405180910390a3600380549060006104bf83611436565b9190505550806040518060e0016040529081600082015481526020016001820180546104ea906112cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610516906112cf565b80156105635780601f1061053857610100808354040283529160200191610563565b820191906000526020600020905b81548152906001019060200180831161054657829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff1660038111156105a0576105a0610fbc565b60038111156105b1576105b1610fbc565b815260038201546001600160a01b03166020820152600482015460408201526005820180546060909201916105e5906112cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610611906112cf565b801561065e5780601f106106335761010080835404028352916020019161065e565b820191906000526020600020905b81548152906001019060200180831161064157829003601f168201915b505050505081525050925050505b92915050565b61067a610de4565b600082815260016020818152604092839020835160e08101909452805484529182018054918401916106ab906112cf565b80601f01602080910402602001604051908101604052809291908181526020018280546106d7906112cf565b80156107245780601f106106f957610100808354040283529160200191610724565b820191906000526020600020905b81548152906001019060200180831161070757829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff16600381111561076157610761610fbc565b600381111561077257610772610fbc565b815260038201546001600160a01b03166020820152600482015460408201526005820180546060909201916107a6906112cf565b80601f01602080910402602001604051908101604052809291908181526020018280546107d2906112cf565b801561081f5780601f106107f45761010080835404028352916020019161081f565b820191906000526020600020905b81548152906001019060200180831161080257829003601f168201915b5050505050815250509050919050565b6002602052816000526040600020818154811061084b57600080fd5b90600052602060002001600091509150505481565b6001600160a01b0381166000908152600260209081526040918290208054835181840281018401909452808452606093928301828280156108c057602002820191906000526020600020905b8154815260200190600101908083116108ac575b50505050509050919050565b6108d4610c88565b6108de6000610cb5565b565b600082815260016020526040902060038101546001600160a01b031633148061091357506000546001600160a01b031633145b6109505760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610377565b60016002820154600160a01b900460ff16600381111561097257610972610fbc565b146109b55760405162461bcd60e51b8152602060048201526013602482015272496e76616c6964207461736b2073746174757360681b6044820152606401610377565b60028101805460ff60a01b1916600160a11b179055600581016109d88382611357565b5060048054828201546040516318feeb1560e31b8152928301526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a4f91908101906111fe565b9050610a6381600001518260400151610d05565b600282015460405185917fd76ef80cfb1ce0c70d0cbc0ab1b9f2f298a78f9fca5c841be963ae9a5d721bb491610aa391600160a01b900460ff16906110dd565b60405180910390a2837f7e6ffc29fe63759579d96a0457a8f2e08339aca345bd469f59dc2e61f82a5aeb84604051610adb919061145d565b60405180910390a250505050565b600160208190526000918252604090912080549181018054610b0a906112cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610b36906112cf565b8015610b835780601f10610b5857610100808354040283529160200191610b83565b820191906000526020600020905b815481529060010190602001808311610b6657829003601f168201915b5050505060028301546003840154600485015460058601805495966001600160a01b0380861697600160a01b90960460ff16965090931693919291610bc7906112cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf3906112cf565b8015610c405780601f10610c1557610100808354040283529160200191610c40565b820191906000526020600020905b815481529060010190602001808311610c2357829003601f168201915b5050505050905087565b610c52610c88565b6001600160a01b038116610c7c57604051631e4fbdf760e01b815260006004820152602401610377565b610c8581610cb5565b50565b6000546001600160a01b031633146108de5760405163118cdaa760e01b8152336004820152602401610377565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516000808252602082019092526001600160a01b038416908390604051610d2f9190611470565b60006040518083038185875af1925050503d8060008114610d6c576040519150601f19603f3d011682016040523d82523d6000602084013e610d71565b606091505b5050905080610ddf5760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b6064820152608401610377565b505050565b6040518060e00160405280600081526020016060815260200160006001600160a01b0316815260200160006003811115610e2057610e20610fbc565b8152600060208201819052604082015260609081015290565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715610e7257610e72610e39565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610ea157610ea1610e39565b604052919050565b600067ffffffffffffffff821115610ec357610ec3610e39565b50601f01601f191660200190565b600082601f830112610ee257600080fd5b8135610ef5610ef082610ea9565b610e78565b818152846020838601011115610f0a57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215610f3a57600080fd5b823567ffffffffffffffff811115610f5157600080fd5b610f5d85828601610ed1565b95602094909401359450505050565b60005b83811015610f87578181015183820152602001610f6f565b50506000910152565b60008151808452610fa8816020860160208601610f6c565b601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b60048110610ff057634e487b7160e01b600052602160045260246000fd5b9052565b60208152815160208201526000602083015160e0604084015261101b610100840182610f90565b60408501516001600160a01b039081166060868101919091528601519192506110476080860183610fd2565b8060808701511660a0860152505060a084015160c084015260c0840151601f198483030160e085015261107a8282610f90565b95945050505050565b60006020828403121561109557600080fd5b5035919050565b6001600160a01b0381168114610c8557600080fd5b600080604083850312156110c457600080fd5b82356110cf8161109c565b946020939093013593505050565b6020810161066c8284610fd2565b6000602082840312156110fd57600080fd5b81356111088161109c565b9392505050565b6020808252825182820181905260009190848201906040850190845b818110156111475783518352928401929184019160010161112b565b50909695505050505050565b6000806040838503121561116657600080fd5b82359150602083013567ffffffffffffffff81111561118457600080fd5b61119085828601610ed1565b9150509250929050565b87815260e0602082015260006111b360e0830189610f90565b6001600160a01b0388811660408501526111d06060850189610fd2565b8616608084015260a0830185905282810360c08401526111f08185610f90565b9a9950505050505050505050565b6000602080838503121561121157600080fd5b825167ffffffffffffffff8082111561122957600080fd5b908401906080828703121561123d57600080fd5b611245610e4f565b82516112508161109c565b8152828401518281111561126357600080fd5b83019150601f8201871361127657600080fd5b8151611284610ef082610ea9565b818152888683860101111561129857600080fd5b6112a782878301888701610f6c565b8086840152505060408301516040820152606083015160608201528094505050505092915050565b600181811c908216806112e357607f821691505b60208210810361130357634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610ddf57600081815260208120601f850160051c810160208610156113305750805b601f850160051c820191505b8181101561134f5782815560010161133c565b505050505050565b815167ffffffffffffffff81111561137157611371610e39565b6113858161137f84546112cf565b84611309565b602080601f8311600181146113ba57600084156113a25750858301515b600019600386901b1c1916600185901b17855561134f565b600085815260208120601f198616915b828110156113e9578886015182559484019460019091019084016113ca565b50858210156114075787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b83815282602082015260606040820152600061107a6060830184610f90565b60006001820161145657634e487b7160e01b600052601160045260246000fd5b5060010190565b6020815260006111086020830184610f90565b60008251611482818460208701610f6c565b919091019291505056fea2646970667358221220c35ebf53f5dd4739af86dfa25f3f4dcfe7cff47dc404b994ee73376a44f040cd64736f6c63430008140033000000000000000000000000d5ad1b6c462c7ccf641df8cdac356bc4a7c20400","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"TaskRegistryModule#TaskRegistry","networkInteractionId":1,"nonce":642,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1000686"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000"}},"hash":"0xb9ea6e51025b0841768e743498c665d6b0f074f27cadba9aa87998eaa8a08cbb"},"type":"TRANSACTION_SEND"} -{"futureId":"TaskRegistryModule#TaskRegistry","hash":"0xb9ea6e51025b0841768e743498c665d6b0f074f27cadba9aa87998eaa8a08cbb","networkInteractionId":1,"receipt":{"blockHash":"0xee9ab81c7ced72ac1ffcad5d7657421fc93042fbbe954ce848100634f0567c71","blockNumber":22027680,"contractAddress":"0x7eaB59d9121c76eF44a101C2c1d2121cC8e871fd","logs":[{"address":"0x7eaB59d9121c76eF44a101C2c1d2121cC8e871fd","data":"0x","logIndex":34,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000002c37691967de1a1e4ee68ae4d745059720a6db7f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"TaskRegistryModule#TaskRegistry","result":{"address":"0x7eaB59d9121c76eF44a101C2c1d2121cC8e871fd","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} \ No newline at end of file +{"artifactId":"ServiceRegistryModule#ServiceRegistry","constructorArgs":[],"contractName":"ServiceRegistry","dependencies":[],"from":"0xa9011946f3f60b427ab31bc4d82b298c32928449","futureId":"ServiceRegistryModule#ServiceRegistry","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"ServiceRegistryModule#ServiceRegistry","networkInteraction":{"data":"0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610e2c806100a56000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80637f3ed719116100665780637f3ed719146101005780638da5cb5b14610113578063b405166b1461012e578063ef57d88414610151578063f2fde38b1461016457600080fd5b806306237526146100985780633017ba09146100b4578063715018a6146100d6578063794758be146100e0575b600080fd5b6100a160025481565b6040519081526020015b60405180910390f35b6100c76100c2366004610a4c565b610177565b6040516100ab93929190610ad9565b6100de61033c565b005b6100f36100ee366004610a4c565b610350565b6040516100ab9190610b1c565b6100de61010e366004610b7d565b61055a565b6000546040516001600160a01b0390911681526020016100ab565b61014161013c366004610a4c565b6106c6565b60405190151581526020016100ab565b6100f361015f366004610b7d565b610745565b6100de610172366004610c05565b6108ee565b805160208183018101805160018252928201919093012091528054819061019d90610c35565b80601f01602080910402602001604051908101604052809291908181526020018280546101c990610c35565b80156102165780601f106101eb57610100808354040283529160200191610216565b820191906000526020600020905b8154815290600101906020018083116101f957829003601f168201915b50505050509080600101805461022b90610c35565b80601f016020809104026020016040519081016040528092919081815260200182805461025790610c35565b80156102a45780601f10610279576101008083540402835291602001916102a4565b820191906000526020600020905b81548152906001019060200180831161028757829003601f168201915b5050505050908060020180546102b990610c35565b80601f01602080910402602001604051908101604052809291908181526020018280546102e590610c35565b80156103325780601f1061030757610100808354040283529160200191610332565b820191906000526020600020905b81548152906001019060200180831161031557829003601f168201915b5050505050905083565b61034461092c565b61034e6000610959565b565b61037460405180606001604052806060815260200160608152602001606081525090565b6001826040516103849190610c6f565b90815260200160405180910390206040518060600160405290816000820180546103ad90610c35565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990610c35565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050815260200160018201805461043f90610c35565b80601f016020809104026020016040519081016040528092919081815260200182805461046b90610c35565b80156104b85780601f1061048d576101008083540402835291602001916104b8565b820191906000526020600020905b81548152906001019060200180831161049b57829003601f168201915b505050505081526020016002820180546104d190610c35565b80601f01602080910402602001604051908101604052809291908181526020018280546104fd90610c35565b801561054a5780601f1061051f5761010080835404028352916020019161054a565b820191906000526020600020905b81548152906001019060200180831161052d57829003601f168201915b5050505050815250509050919050565b61056261092c565b60405163b405166b60e01b8152309063b405166b90610585908690600401610c8b565b602060405180830381865afa1580156105a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c69190610c9e565b6106105760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b60448201526064015b60405180910390fd5b60405180606001604052808481526020018381526020018281525060018460405161063b9190610c6f565b908152604051908190036020019020815181906106589082610d0f565b506020820151600182019061066d9082610d0f565b50604082015160028201906106829082610d0f565b509050507f4cd09e35844ccdf25aac9862af453cedf05d8a8b765f2763be8373b55215df8d8383836040516106b993929190610ad9565b60405180910390a1505050565b60008082511161070f5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073657276696365206e616d6560601b6044820152606401610607565b60006001836040516107219190610c6f565b908152604051908190036020019020805461073b90610c35565b9050119050919050565b61076960405180606001604052806060815260200160608152602001606081525090565b60405163b405166b60e01b8152309063b405166b9061078c908790600401610c8b565b602060405180830381865afa1580156107a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107cd9190610c9e565b1561081a5760405162461bcd60e51b815260206004820152601a60248201527f5365727669636520616c726561647920726567697374657265640000000000006044820152606401610607565b600060405180606001604052808681526020018581526020018481525090508060018660405161084a9190610c6f565b908152604051908190036020019020815181906108679082610d0f565b506020820151600182019061087c9082610d0f565b50604082015160028201906108919082610d0f565b509050507fc182fe36565be4905be53a8ed353f07898b528f1625e778edf77c136748064868585856040516108c893929190610ad9565b60405180910390a1600280549060006108e083610dcf565b909155509095945050505050565b6108f661092c565b6001600160a01b03811661092057604051631e4fbdf760e01b815260006004820152602401610607565b61092981610959565b50565b6000546001600160a01b0316331461034e5760405163118cdaa760e01b8152336004820152602401610607565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126109d057600080fd5b813567ffffffffffffffff808211156109eb576109eb6109a9565b604051601f8301601f19908116603f01168101908282118183101715610a1357610a136109a9565b81604052838152866020858801011115610a2c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215610a5e57600080fd5b813567ffffffffffffffff811115610a7557600080fd5b610a81848285016109bf565b949350505050565b60005b83811015610aa4578181015183820152602001610a8c565b50506000910152565b60008151808452610ac5816020860160208601610a89565b601f01601f19169290920160200192915050565b606081526000610aec6060830186610aad565b8281036020840152610afe8186610aad565b90508281036040840152610b128185610aad565b9695505050505050565b602081526000825160606020840152610b386080840182610aad565b90506020840151601f1980858403016040860152610b568383610aad565b9250604086015191508085840301606086015250610b748282610aad565b95945050505050565b600080600060608486031215610b9257600080fd5b833567ffffffffffffffff80821115610baa57600080fd5b610bb6878388016109bf565b94506020860135915080821115610bcc57600080fd5b610bd8878388016109bf565b93506040860135915080821115610bee57600080fd5b50610bfb868287016109bf565b9150509250925092565b600060208284031215610c1757600080fd5b81356001600160a01b0381168114610c2e57600080fd5b9392505050565b600181811c90821680610c4957607f821691505b602082108103610c6957634e487b7160e01b600052602260045260246000fd5b50919050565b60008251610c81818460208701610a89565b9190910192915050565b602081526000610c2e6020830184610aad565b600060208284031215610cb057600080fd5b81518015158114610c2e57600080fd5b601f821115610d0a57600081815260208120601f850160051c81016020861015610ce75750805b601f850160051c820191505b81811015610d0657828155600101610cf3565b5050505b505050565b815167ffffffffffffffff811115610d2957610d296109a9565b610d3d81610d378454610c35565b84610cc0565b602080601f831160018114610d725760008415610d5a5750858301515b600019600386901b1c1916600185901b178555610d06565b600085815260208120601f198616915b82811015610da157888601518255948401946001909101908401610d82565b5085821015610dbf5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060018201610def57634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212206f9c7481cdfdbc6350d53b34a07d196f444172352584059ffa61f853c81d633764736f6c63430008140033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"ServiceRegistryModule#ServiceRegistry","networkInteractionId":1,"nonce":0,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1001070"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000"}},"hash":"0x24e3acad5d8f2e3f5f4830babe51ddb16bb1c892b3346efd23ef167fc19b2b1c"},"type":"TRANSACTION_SEND"} +{"futureId":"ServiceRegistryModule#ServiceRegistry","hash":"0x24e3acad5d8f2e3f5f4830babe51ddb16bb1c892b3346efd23ef167fc19b2b1c","networkInteractionId":1,"receipt":{"blockHash":"0x1232157761941bb2eb3ccd0da28339245fe1a155538022b8543b82eaa699c5c4","blockNumber":23026978,"contractAddress":"0x68A88024060fD8Fe4dE848de1abB7F6d9225cCa8","logs":[{"address":"0x68A88024060fD8Fe4dE848de1abB7F6d9225cCa8","data":"0x","logIndex":63,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000a9011946f3f60b427ab31bc4d82b298c32928449"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"ServiceRegistryModule#ServiceRegistry","result":{"address":"0x68A88024060fD8Fe4dE848de1abB7F6d9225cCa8","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"artifactId":"AgentsRegistryModule#AgentsRegistry","constructorArgs":["0x68A88024060fD8Fe4dE848de1abB7F6d9225cCa8"],"contractName":"AgentsRegistry","dependencies":["ServiceRegistryModule#ServiceRegistry"],"from":"0xa9011946f3f60b427ab31bc4d82b298c32928449","futureId":"AgentsRegistryModule#AgentsRegistry","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"AgentsRegistryModule#AgentsRegistry","networkInteraction":{"data":"0x608060405234801561001057600080fd5b50604051620019a3380380620019a3833981016040819052610031916100d9565b338061005757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61006081610089565b50600180546001600160a01b0319166001600160a01b0392909216919091178155600555610109565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100eb57600080fd5b81516001600160a01b038116811461010257600080fd5b9392505050565b61188a80620001196000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80639e498f16116100a2578063cbcf252a11610071578063cbcf252a1461025e578063d7071b1f14610271578063f2fde38b14610284578063f3a1a46614610297578063fd66091e146102aa57600080fd5b80639e498f16146101f8578063aac9f15a1461020b578063b2d780691461022b578063c7f758a81461023e57600080fd5b80637b5c219d116100de5780637b5c219d146101715780638da5cb5b1461019457806398366dbd146101b95780639c89a0e2146101cc57600080fd5b8063013cf08b146101105780632ab09d141461013d57806370370a8114610154578063715018a614610167575b600080fd5b61012361011e366004611222565b6102cf565b604051610134959493929190611281565b60405180910390f35b61014660055481565b604051908152602001610134565b6101466101623660046112e0565b610395565b61016f610558565b005b61018461017f3660046112e0565b61056c565b6040519015158152602001610134565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610134565b6101466101c73660046113ad565b6106d1565b6101466101da36600461144e565b6001600160a01b031660009081526003602052604090206004015490565b6002546101a1906001600160a01b031681565b61021e61021936600461144e565b6109af565b6040516101349190611470565b61016f61023936600461144e565b610b81565b61025161024c366004611222565b610bf3565b60405161013491906114ec565b6001546101a1906001600160a01b031681565b61016f61027f36600461144e565b610d18565b61016f61029236600461144e565b610d8a565b6101466102a5366004611546565b610dc8565b6102bd6102b836600461144e565b611004565b6040516101349695949392919061159d565b600460205260009081526040902080546001820180546001600160a01b0390921692916102fb906115f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610327906115f1565b80156103745780601f1061034957610100808354040283529160200191610374565b820191906000526020600020905b81548152906001019060200180831161035757829003601f168201915b50505050600283015460038401546004909401549293909290915060ff1685565b6002546000906001600160a01b031633146103f75760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420746865205461736b526567697374727920636f6e747261637400000060448201526064015b60405180910390fd5b60648211156104485760405162461bcd60e51b815260206004820181905260248201527f526174696e67206d757374206265206265747765656e203020616e642031303060448201526064016103ee565b6001600160a01b0383166000908152600360205260408120600501805460019290610474908490611641565b90915550506001600160a01b038316600090815260036020526040902060050154826104a1600183611654565b6001600160a01b0386166000908152600360205260409020600401546104c79190611667565b6104d19190611641565b6104db919061167e565b6001600160a01b038416600081815260036020526040908190206004018390555190917ffc577563f1b9a0461e24abef1e1fcc0d33d3d881f20b5df6dda59de4aae2c8219161052c91815260200190565b60405180910390a2506001600160a01b0382166000908152600360205260409020600401545b92915050565b610560611157565b61056a6000611184565b565b6001600160a01b03808316600090815260036020526040812060020154909184911633146105dc5760405162461bcd60e51b815260206004820152601a60248201527f4e6f7420746865206f776e6572206f6620746865206167656e7400000000000060448201526064016103ee565b6000838152600460205260409020546001600160a01b038581169116146106455760405162461bcd60e51b815260206004820152601960248201527f5365727669636550726f706f73616c206e6f7420666f756e640000000000000060448201526064016103ee565b600083815260046020526040812080546001600160a01b03191681559061066f60018301826111d4565b506000600282018190556003820155600401805460ff191690556040518381526001600160a01b038516907f45204680e8152470a4bb058a5049426c93d82614d97945e5b6541e67aba4a8f29060200160405180910390a25060019392505050565b6001600160a01b038581166000908152600360208190526040822001549091161561073e5760405162461bcd60e51b815260206004820152601860248201527f4167656e7420616c72656164792072656769737465726564000000000000000060448201526064016103ee565b60015460405163b405166b60e01b81526001600160a01b039091169063b405166b9061076e9086906004016116a0565b602060405180830381865afa15801561078b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107af91906116b3565b6107f45760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b60448201526064016103ee565b6001600160a01b0386166000908152600360205260409020806108178782611724565b50600181016108268682611724565b506002810180546001600160a01b031990811633179091556003820180546001600160a01b038a81169184168217909255600060048086018290556040805160a08101825293845260208085018b81528583018b9052600554606087018190526080870186905285529290529091208251815494169390941692909217835590519091829160018201906108ba9082611724565b5060408201516002820155606082015160038201556080909101516004909101805460ff1916911515919091179055600580549060006108f9836117e4565b9190505550336001600160a01b0316886001600160a01b03167f2a562efb52e7cec209321f57200606311256da6d2a1b19d44db7837a3209de2889896040516109439291906117fd565b60405180910390a3876001600160a01b03167fe194e0bc2279adb185c748ae57db10fe2ef1005a1b5646f96235a881c88ddb798260600151878760405161098c9392919061182b565b60405180910390a260016005546109a39190611654565b98975050505050505050565b6109fa6040518060c00160405280606081526020016060815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081525090565b6001600160a01b03821660009081526003602052604090819020815160c081019092528054909190829082908290610a31906115f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5d906115f1565b8015610aaa5780601f10610a7f57610100808354040283529160200191610aaa565b820191906000526020600020905b815481529060010190602001808311610a8d57829003601f168201915b50505050508152602001600182018054610ac3906115f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610aef906115f1565b8015610b3c5780601f10610b1157610100808354040283529160200191610b3c565b820191906000526020600020905b815481529060010190602001808311610b1f57829003601f168201915b505050918352505060028201546001600160a01b0390811660208301526003830154166040820152600482015460608201526005909101546080909101529392505050565b610b89611157565b6001600160a01b038116610bd15760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016103ee565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610c306040518060a0016040528060006001600160a01b031681526020016060815260200160008152602001600081526020016000151581525090565b600082815260046020908152604091829020825160a0810190935280546001600160a01b031683526001810180549192840191610c6c906115f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610c98906115f1565b8015610ce55780601f10610cba57610100808354040283529160200191610ce5565b820191906000526020600020905b815481529060010190602001808311610cc857829003601f168201915b5050509183525050600282015460208201526003820154604082015260049091015460ff16151560609091015292915050565b610d20611157565b6001600160a01b038116610d685760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016103ee565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b610d92611157565b6001600160a01b038116610dbc57604051631e4fbdf760e01b8152600060048201526024016103ee565b610dc581611184565b50565b6001600160a01b0380841660009081526003602052604081206002015490918591163314610e385760405162461bcd60e51b815260206004820152601a60248201527f4e6f7420746865206f776e6572206f6620746865206167656e7400000000000060448201526064016103ee565b60015460405163b405166b60e01b81526001600160a01b039091169063b405166b90610e689087906004016116a0565b602060405180830381865afa158015610e85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea991906116b3565b610eee5760405162461bcd60e51b815260206004820152601660248201527514d95c9d9a58d9481b9bdd081c9959da5cdd195c995960521b60448201526064016103ee565b6040805160a0810182526001600160a01b0387811682526020808301888152838501889052600554606085018190526001608086018190526000918252600490935294909420835181546001600160a01b031916931692909217825592519192839290820190610f5e9082611724565b5060408201516002820155606082015160038201556080909101516004909101805460ff191691151591909117905560058054906000610f9d836117e4565b9190505550856001600160a01b03167fe194e0bc2279adb185c748ae57db10fe2ef1005a1b5646f96235a881c88ddb7982606001518787604051610fe39392919061182b565b60405180910390a26001600554610ffa9190611654565b9695505050505050565b60036020526000908152604090208054819061101f906115f1565b80601f016020809104026020016040519081016040528092919081815260200182805461104b906115f1565b80156110985780601f1061106d57610100808354040283529160200191611098565b820191906000526020600020905b81548152906001019060200180831161107b57829003601f168201915b5050505050908060010180546110ad906115f1565b80601f01602080910402602001604051908101604052809291908181526020018280546110d9906115f1565b80156111265780601f106110fb57610100808354040283529160200191611126565b820191906000526020600020905b81548152906001019060200180831161110957829003601f168201915b5050505060028301546003840154600485015460059095015493946001600160a01b03928316949290911692509086565b6000546001600160a01b0316331461056a5760405163118cdaa760e01b81523360048201526024016103ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5080546111e0906115f1565b6000825580601f106111f0575050565b601f016020900490600052602060002090810190610dc591905b8082111561121e576000815560010161120a565b5090565b60006020828403121561123457600080fd5b5035919050565b6000815180845260005b8181101561126157602081850181015186830182015201611245565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038616815260a0602082018190526000906112a59083018761123b565b6040830195909552506060810192909252151560809091015292915050565b80356001600160a01b03811681146112db57600080fd5b919050565b600080604083850312156112f357600080fd5b6112fc836112c4565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261133157600080fd5b813567ffffffffffffffff8082111561134c5761134c61130a565b604051601f8301601f19908116603f011681019082821181831017156113745761137461130a565b8160405283815286602085880101111561138d57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a086880312156113c557600080fd5b6113ce866112c4565b9450602086013567ffffffffffffffff808211156113eb57600080fd5b6113f789838a01611320565b9550604088013591508082111561140d57600080fd5b61141989838a01611320565b9450606088013591508082111561142f57600080fd5b5061143c88828901611320565b95989497509295608001359392505050565b60006020828403121561146057600080fd5b611469826112c4565b9392505050565b602081526000825160c0602084015261148c60e084018261123b565b90506020840151601f198483030160408501526114a9828261123b565b915050604084015160018060a01b0380821660608601528060608701511660808601525050608084015160a084015260a084015160c08401528091505092915050565b602080825282516001600160a01b03168282015282015160a0604083015260009061151a60c084018261123b565b905060408401516060840152606084015160808401526080840151151560a08401528091505092915050565b60008060006060848603121561155b57600080fd5b611564846112c4565b9250602084013567ffffffffffffffff81111561158057600080fd5b61158c86828701611320565b925050604084013590509250925092565b60c0815260006115b060c083018961123b565b82810360208401526115c2818961123b565b6001600160a01b03978816604085015295909616606083015250608081019290925260a0909101529392505050565b600181811c9082168061160557607f821691505b60208210810361162557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156105525761055261162b565b818103818111156105525761055261162b565b80820281158282048414176105525761055261162b565b60008261169b57634e487b7160e01b600052601260045260246000fd5b500490565b602081526000611469602083018461123b565b6000602082840312156116c557600080fd5b8151801515811461146957600080fd5b601f82111561171f57600081815260208120601f850160051c810160208610156116fc5750805b601f850160051c820191505b8181101561171b57828155600101611708565b5050505b505050565b815167ffffffffffffffff81111561173e5761173e61130a565b6117528161174c84546115f1565b846116d5565b602080601f831160018114611787576000841561176f5750858301515b600019600386901b1c1916600185901b17855561171b565b600085815260208120601f198616915b828110156117b657888601518255948401946001909101908401611797565b50858210156117d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000600182016117f6576117f661162b565b5060010190565b604081526000611810604083018561123b565b8281036020840152611822818561123b565b95945050505050565b838152606060208201526000611844606083018561123b565b905082604083015294935050505056fea26469706673582212202255def4b16ca5ed4bfdfe6c197c6e8cff9a21c7a547e18a955c433c677b32a464736f6c6343000814003300000000000000000000000068a88024060fd8fe4de848de1abb7f6d9225cca8","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"AgentsRegistryModule#AgentsRegistry","networkInteractionId":1,"nonce":1,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1001068"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000"}},"hash":"0xf8d4f9d1f09b87f74abc2b60383d873fc6142fb4bff339abf770f11ac325c00d"},"type":"TRANSACTION_SEND"} +{"futureId":"AgentsRegistryModule#AgentsRegistry","hash":"0xf8d4f9d1f09b87f74abc2b60383d873fc6142fb4bff339abf770f11ac325c00d","networkInteractionId":1,"receipt":{"blockHash":"0x2573140b6834a78d98c077e57256da1074f00e97347351025dcd5b1525de9281","blockNumber":23026985,"contractAddress":"0xABC2AC53Aaf217B70825701c1a5aB750CD60DbaF","logs":[{"address":"0xABC2AC53Aaf217B70825701c1a5aB750CD60DbaF","data":"0x","logIndex":57,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000a9011946f3f60b427ab31bc4d82b298c32928449"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"AgentsRegistryModule#AgentsRegistry","result":{"address":"0xABC2AC53Aaf217B70825701c1a5aB750CD60DbaF","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"artifactId":"TaskRegistryModule#TaskRegistry","constructorArgs":["0xABC2AC53Aaf217B70825701c1a5aB750CD60DbaF"],"contractName":"TaskRegistry","dependencies":["AgentsRegistryModule#AgentsRegistry"],"from":"0xa9011946f3f60b427ab31bc4d82b298c32928449","futureId":"TaskRegistryModule#TaskRegistry","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"TaskRegistryModule#TaskRegistry","networkInteraction":{"data":"0x60806040523480156200001157600080fd5b5060405162001c3638038062001c368339810160408190526200003491620000e2565b33806200005b57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000668162000092565b50600480546001600160a01b0319166001600160a01b0392909216919091179055600160035562000114565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215620000f557600080fd5b81516001600160a01b03811681146200010d57600080fd5b9392505050565b611b1280620001246000396000f3fe6080604052600436106100dd5760003560e01c8063639241ab1161007f5780637eec20a8116100595780637eec20a8146102955780638d977672146102b55780638da5cb5b146102e9578063f2fde38b1461030757600080fd5b8063639241ab14610233578063715018a61461026057806374aaa7601461027557600080fd5b80631d65e77e116100bb5780631d65e77e1461017c5780632a2b3a9d1461019c5780635c622a0e146101ca5780636298eee01461021157600080fd5b806304fe2b34146100e257806307b318181461010b5780630d1cfcae1461015c575b600080fd5b6100f56100f03660046114d2565b610327565b604051610102919061159f565b60405180910390f35b34801561011757600080fd5b50610144610126366004611649565b6000908152600160205260409020600301546001600160a01b031690565b6040516001600160a01b039091168152602001610102565b34801561016857600080fd5b50600454610144906001600160a01b031681565b34801561018857600080fd5b506100f5610197366004611649565b610704565b3480156101a857600080fd5b506101bc6101b7366004611677565b6108d0565b604051908152602001610102565b3480156101d657600080fd5b506102046101e5366004611649565b600090815260016020526040902060020154600160a01b900460ff1690565b60405161010291906116a3565b34801561021d57600080fd5b5061023161022c3660046116b1565b610901565b005b34801561023f57600080fd5b5061025361024e3660046116e7565b610bd2565b604051610102919061170b565b34801561026c57600080fd5b50610231610c3e565b34801561028157600080fd5b5061023161029036600461174f565b610c52565b3480156102a157600080fd5b506102316102b0366004611649565b610e46565b3480156102c157600080fd5b506102d56102d0366004611649565b611082565b604051610102989796959493929190611796565b3480156102f557600080fd5b506000546001600160a01b0316610144565b34801561031357600080fd5b506102316103223660046116e7565b6111ec565b61032f611386565b600480546040516318feeb1560e31b81529182018490526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa15801561037b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103a3919081019061181e565b80519091506001600160a01b03166104025760405162461bcd60e51b815260206004820152601960248201527f5365727669636550726f706f73616c206e6f7420666f756e640000000000000060448201526064015b60405180910390fd5b348160400151146104455760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420707269636560981b60448201526064016103f9565b600354600081815260016020819052604090912091825581016104688682611985565b5060028181018054336001600160a01b031991821681178355600485018890558551600380870180549094166001600160a01b0390921691909117909255600090815260209384526040812091548254600181810185559383529490912090930192909255805460ff60a01b1916600160a01b830217905550815160035460608401516040516001600160a01b039093169233927f5c005bbbb9da508c37935b1a9f270836e0be1fd11d4d47119f925a3ff33820e992610529928b90611a45565b60405180910390a36003805490600061054183611a6d565b919050555080604051806101000160405290816000820154815260200160018201805461056d906118fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610599906118fd565b80156105e65780601f106105bb576101008083540402835291602001916105e6565b820191906000526020600020905b8154815290600101906020018083116105c957829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff16600381111561062357610623611567565b600381111561063457610634611567565b815260038201546001600160a01b0316602082015260048201546040820152600582018054606090920191610668906118fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610694906118fd565b80156106e15780601f106106b6576101008083540402835291602001916106e1565b820191906000526020600020905b8154815290600101906020018083116106c457829003601f168201915b50505091835250506006919091015460ff16602090910152925050505b92915050565b61070c611386565b600082815260016020818152604092839020835161010081019094528054845291820180549184019161073e906118fd565b80601f016020809104026020016040519081016040528092919081815260200182805461076a906118fd565b80156107b75780601f1061078c576101008083540402835291602001916107b7565b820191906000526020600020905b81548152906001019060200180831161079a57829003601f168201915b505050918352505060028201546001600160a01b0381166020830152604090910190600160a01b900460ff1660038111156107f4576107f4611567565b600381111561080557610805611567565b815260038201546001600160a01b0316602082015260048201546040820152600582018054606090920191610839906118fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610865906118fd565b80156108b25780601f10610887576101008083540402835291602001916108b2565b820191906000526020600020905b81548152906001019060200180831161089557829003601f168201915b50505091835250506006919091015460ff1660209091015292915050565b600260205281600052604060002081815481106108ec57600080fd5b90600052602060002001600091509150505481565b60008281526001602052604090206002015482906001600160a01b0316331461096c5760405162461bcd60e51b815260206004820152601a60248201527f4e6f742074686520697373756572206f6620746865207461736b00000000000060448201526064016103f9565b6000838152600160205260409020600280820154600160a01b900460ff16600381111561099b5761099b611567565b146109e05760405162461bcd60e51b815260206004820152601560248201527415185cdac81a5cc81b9bdd0818dbdb5c1b195d1959605a1b60448201526064016103f9565b600681015460ff1615610a355760405162461bcd60e51b815260206004820152601760248201527f5461736b20676f7420726174696e6720616c726561647900000000000000000060448201526064016103f9565b60648360ff161115610a895760405162461bcd60e51b815260206004820181905260248201527f526174696e67206d757374206265206265747765656e203020616e642031303060448201526064016103f9565b60068101805460ff191660ff851617905560048054818301546040516318feeb1560e31b8152928301526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610ae8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b10919081019061181e565b6004805482516040516370370a8160e01b81526001600160a01b039182169381019390935260ff8816602484015292935091909116906370370a81906044016020604051808303816000875af1158015610b6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b929190611a94565b5060405160ff8516815285907f0f9189bfc5977d44b1a00920e53a6a0e00229f6c53e76b73fc7e0581ae99abdc9060200160405180910390a25050505050565b6001600160a01b038116600090815260026020908152604091829020805483518184028101840190945280845260609392830182828015610c3257602002820191906000526020600020905b815481526020019060010190808311610c1e575b50505050509050919050565b610c4661122a565b610c506000611257565b565b600082815260016020526040902060038101546001600160a01b03163314610cad5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b60448201526064016103f9565b60016002820154600160a01b900460ff166003811115610ccf57610ccf611567565b14610d125760405162461bcd60e51b8152602060048201526013602482015272496e76616c6964207461736b2073746174757360681b60448201526064016103f9565b60028101805460ff60a01b1916600160a11b17905560058101610d358382611985565b5060048054828201546040516318feeb1560e31b8152928301526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610d84573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610dac919081019061181e565b9050610dc0816000015182604001516112a7565b600282015460405185917fd76ef80cfb1ce0c70d0cbc0ab1b9f2f298a78f9fca5c841be963ae9a5d721bb491610e0091600160a01b900460ff16906116a3565b60405180910390a2837f7e6ffc29fe63759579d96a0457a8f2e08339aca345bd469f59dc2e61f82a5aeb84604051610e389190611aad565b60405180910390a250505050565b60008181526001602052604090206002015481906001600160a01b03163314610eb15760405162461bcd60e51b815260206004820152601a60248201527f4e6f742074686520697373756572206f6620746865207461736b00000000000060448201526064016103f9565b6000828152600160205260409020600280820154600160a01b900460ff166003811115610ee057610ee0611567565b14158015610f0e575060036002820154600160a01b900460ff166003811115610f0b57610f0b611567565b14155b610f5a5760405162461bcd60e51b815260206004820152601760248201527f5461736b2063616e6e6f742062652063616e63656c656400000000000000000060448201526064016103f9565b600281018054600360a01b60ff60a01b1990911617905560048054818301546040516318feeb1560e31b8152928301526000916001600160a01b039091169063c7f758a890602401600060405180830381865afa158015610fbf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fe7919081019061181e565b60028301546040820151919250611009916001600160a01b03909116906112a7565b600282015460405185917fd76ef80cfb1ce0c70d0cbc0ab1b9f2f298a78f9fca5c841be963ae9a5d721bb49161104991600160a01b900460ff16906116a3565b60405180910390a260405184907f1aa8a90c7d7a86bac690072d3f3d726bb8ebbe1989e158530440963f04c11eb290600090a250505050565b6001602081905260009182526040909120805491810180546110a3906118fd565b80601f01602080910402602001604051908101604052809291908181526020018280546110cf906118fd565b801561111c5780601f106110f15761010080835404028352916020019161111c565b820191906000526020600020905b8154815290600101906020018083116110ff57829003601f168201915b5050505060028301546003840154600485015460058601805495966001600160a01b0380861697600160a01b90960460ff16965090931693919291611160906118fd565b80601f016020809104026020016040519081016040528092919081815260200182805461118c906118fd565b80156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050506006909301549192505060ff1688565b6111f461122a565b6001600160a01b03811661121e57604051631e4fbdf760e01b8152600060048201526024016103f9565b61122781611257565b50565b6000546001600160a01b03163314610c505760405163118cdaa760e01b81523360048201526024016103f9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516000808252602082019092526001600160a01b0384169083906040516112d19190611ac0565b60006040518083038185875af1925050503d806000811461130e576040519150601f19603f3d011682016040523d82523d6000602084013e611313565b606091505b50509050806113815760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b60648201526084016103f9565b505050565b604051806101000160405280600081526020016060815260200160006001600160a01b03168152602001600060038111156113c3576113c3611567565b81526000602082018190526040820181905260608083015260809091015290565b634e487b7160e01b600052604160045260246000fd5b60405160a0810167ffffffffffffffff8111828210171561141d5761141d6113e4565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561144c5761144c6113e4565b604052919050565b600067ffffffffffffffff82111561146e5761146e6113e4565b50601f01601f191660200190565b600082601f83011261148d57600080fd5b81356114a061149b82611454565b611423565b8181528460208386010111156114b557600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156114e557600080fd5b823567ffffffffffffffff8111156114fc57600080fd5b6115088582860161147c565b95602094909401359450505050565b60005b8381101561153257818101518382015260200161151a565b50506000910152565b60008151808452611553816020860160208601611517565b601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b6004811061159b57634e487b7160e01b600052602160045260246000fd5b9052565b6020815281516020820152600060208301516101008060408501526115c861012085018361153b565b915060018060a01b03604086015116606085015260608501516115ee608086018261157d565b5060808501516001600160a01b03811660a08601525060a085015160c085015260c0850151601f198584030160e0860152611629838261153b565b92505060e085015161163f8286018260ff169052565b5090949350505050565b60006020828403121561165b57600080fd5b5035919050565b6001600160a01b038116811461122757600080fd5b6000806040838503121561168a57600080fd5b823561169581611662565b946020939093013593505050565b602081016106fe828461157d565b600080604083850312156116c457600080fd5b82359150602083013560ff811681146116dc57600080fd5b809150509250929050565b6000602082840312156116f957600080fd5b813561170481611662565b9392505050565b6020808252825182820181905260009190848201906040850190845b8181101561174357835183529284019291840191600101611727565b50909695505050505050565b6000806040838503121561176257600080fd5b82359150602083013567ffffffffffffffff81111561178057600080fd5b61178c8582860161147c565b9150509250929050565b60006101008a83528060208401526117b08184018b61153b565b6001600160a01b038a811660408601529091506117d0606085018a61157d565b8716608084015260a0830186905282810360c08401526117f0818661153b565b91505060ff831660e08301529998505050505050505050565b8051801515811461181957600080fd5b919050565b6000602080838503121561183157600080fd5b825167ffffffffffffffff8082111561184957600080fd5b9084019060a0828703121561185d57600080fd5b6118656113fa565b825161187081611662565b8152828401518281111561188357600080fd5b83019150601f8201871361189657600080fd5b81516118a461149b82611454565b81815288868386010111156118b857600080fd5b6118c782878301888701611517565b8086840152505060408301516040820152606083015160608201526118ee60808401611809565b60808201529695505050505050565b600181811c9082168061191157607f821691505b60208210810361193157634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561138157600081815260208120601f850160051c8101602086101561195e5750805b601f850160051c820191505b8181101561197d5782815560010161196a565b505050505050565b815167ffffffffffffffff81111561199f5761199f6113e4565b6119b3816119ad84546118fd565b84611937565b602080601f8311600181146119e857600084156119d05750858301515b600019600386901b1c1916600185901b17855561197d565b600085815260208120601f198616915b82811015611a17578886015182559484019460019091019084016119f8565b5085821015611a355787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b838152826020820152606060408201526000611a64606083018461153b565b95945050505050565b600060018201611a8d57634e487b7160e01b600052601160045260246000fd5b5060010190565b600060208284031215611aa657600080fd5b5051919050565b602081526000611704602083018461153b565b60008251611ad2818460208701611517565b919091019291505056fea264697066735822122098bd83b23d81389b73e03b06ee07ca1b56c4d4bfdea60cc35bd0c593da9fedd664736f6c63430008140033000000000000000000000000abc2ac53aaf217b70825701c1a5ab750cd60dbaf","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"TaskRegistryModule#TaskRegistry","networkInteractionId":1,"nonce":2,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1001062"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000"}},"hash":"0xc2734f1095ddb8d93ab2d8448dd721deaef906b131da6f99b60214d534a50677"},"type":"TRANSACTION_SEND"} +{"futureId":"TaskRegistryModule#TaskRegistry","hash":"0xc2734f1095ddb8d93ab2d8448dd721deaef906b131da6f99b60214d534a50677","networkInteractionId":1,"receipt":{"blockHash":"0xaf459cc18234c78165ef445e3bc4a5395cbf56f95f5b6c1e2fa8aa2df64f6bce","blockNumber":23026993,"contractAddress":"0x859bBE15EfbE62fD51DB5C24B01048A73839E141","logs":[{"address":"0x859bBE15EfbE62fD51DB5C24B01048A73839E141","data":"0x","logIndex":148,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000a9011946f3f60b427ab31bc4d82b298c32928449"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"TaskRegistryModule#TaskRegistry","result":{"address":"0x859bBE15EfbE62fD51DB5C24B01048A73839E141","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} \ No newline at end of file diff --git a/packages/contracts/package.json b/packages/contracts/package.json index 96bb5be..9f0ece4 100644 --- a/packages/contracts/package.json +++ b/packages/contracts/package.json @@ -23,7 +23,8 @@ "@openzeppelin/contracts": "^5.1.0", "chai": "4.5.0", "dotenv": "16.4.5", - "hardhat": "^2.22.16", - "ensemble-sdk": "file:../sdk" + "ensemble-sdk": "file:../sdk", + "hardhat": "^2.22.18", + "solidity-coverage": "0.8.14" } } diff --git a/packages/contracts/pnpm-lock.yaml b/packages/contracts/pnpm-lock.yaml index 20857b4..652f715 100644 --- a/packages/contracts/pnpm-lock.yaml +++ b/packages/contracts/pnpm-lock.yaml @@ -10,13 +10,13 @@ importers: dependencies: '@nomicfoundation/hardhat-ignition': specifier: 0.15.8 - version: 0.15.8(@nomicfoundation/hardhat-verify@2.0.12(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) + version: 0.15.8(@nomicfoundation/hardhat-verify@2.0.12(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) '@nomicfoundation/hardhat-ignition-ethers': specifier: 0.15.8 - version: 0.15.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.4)(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(@nomicfoundation/hardhat-ignition@0.15.8(@nomicfoundation/hardhat-verify@2.0.12(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(@nomicfoundation/ignition-core@0.15.8)(ethers@6.13.4)(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) + version: 0.15.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.4)(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(@nomicfoundation/hardhat-ignition@0.15.8(@nomicfoundation/hardhat-verify@2.0.12(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(@nomicfoundation/ignition-core@0.15.8)(ethers@6.13.4)(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) '@nomicfoundation/hardhat-toolbox': specifier: ^5.0.0 - version: 5.0.0(mnfi2nz2h6atuhdi2shadauaxi) + version: 5.0.0(ybf7yyu73niphz4ddp4gb63whq) '@openzeppelin/contracts': specifier: ^5.1.0 version: 5.1.0 @@ -30,8 +30,11 @@ importers: specifier: file:../sdk version: '@ensemble-ai/sdk@file:../sdk(@types/node@22.10.1)(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))' hardhat: - specifier: ^2.22.16 - version: 2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2) + specifier: ^2.22.18 + version: 2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2) + solidity-coverage: + specifier: 0.8.14 + version: 0.8.14(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) packages: @@ -203,6 +206,12 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@chainsafe/is-ip@2.1.0': + resolution: {integrity: sha512-KIjt+6IfysQ4GCv66xihEitBjvhU/bixbbbFxdJ1sqCp4uJ0wuZiYBPhksZoy4lfaF0k9cwNzY5upEW/VWdw3w==} + + '@chainsafe/netmask@2.0.0': + resolution: {integrity: sha512-I3Z+6SWUoaljh3TBzCnCxjlUyN8tA+NAk5L6m9IxvCf1BENQTePzPMis97CoN/iMW1St3WN+AWCCRp+TTBRiDg==} + '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -416,10 +425,22 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@leichtgewicht/ip-codec@2.0.5': + resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} + '@metamask/eth-sig-util@4.0.1': resolution: {integrity: sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==} engines: {node: '>=12.0.0'} + '@multiformats/dns@1.0.6': + resolution: {integrity: sha512-nt/5UqjMPtyvkG9BQYdJ4GfLK3nMqGpFZOzf4hAmIa0sJh2LlS9YKXZ4FgwBDsaHvzZqR/rUFIywIc7pkHNNuw==} + + '@multiformats/mafmt@12.1.6': + resolution: {integrity: sha512-tlJRfL21X+AKn9b5i5VnaTD6bNttpSpcqwKVmDmSHLwxoz97fAHaepqFOk/l1fIu94nImIXneNbhsJx/RQNIww==} + + '@multiformats/multiaddr@12.4.0': + resolution: {integrity: sha512-FL7yBTLijJ5JkO044BGb2msf+uJLrwpD6jD6TkXlbjA9N12+18HT40jvd4o5vL4LOJMc86dPX6tGtk/uI9kYKg==} + '@noble/curves@1.2.0': resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==} @@ -456,36 +477,36 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@nomicfoundation/edr-darwin-arm64@0.6.5': - resolution: {integrity: sha512-A9zCCbbNxBpLgjS1kEJSpqxIvGGAX4cYbpDYCU2f3jVqOwaZ/NU761y1SvuCRVpOwhoCXqByN9b7HPpHi0L4hw==} + '@nomicfoundation/edr-darwin-arm64@0.7.0': + resolution: {integrity: sha512-vAH20oh4GaSB/iQFTRcoO8jLc0CLd9XuLY9I7vtcqZWAiM4U1J4Y8cu67PWmtxbvUQOqXR7S6FtAr8/AlWm14g==} engines: {node: '>= 18'} - '@nomicfoundation/edr-darwin-x64@0.6.5': - resolution: {integrity: sha512-x3zBY/v3R0modR5CzlL6qMfFMdgwd6oHrWpTkuuXnPFOX8SU31qq87/230f4szM+ukGK8Hi+mNq7Ro2VF4Fj+w==} + '@nomicfoundation/edr-darwin-x64@0.7.0': + resolution: {integrity: sha512-WHDdIrPvLlgXQr2eKypBM5xOZAwdxhDAEQIvEMQL8tEEm2qYW2bliUlssBPrs8E3bdivFbe1HizImslMAfU3+g==} engines: {node: '>= 18'} - '@nomicfoundation/edr-linux-arm64-gnu@0.6.5': - resolution: {integrity: sha512-HGpB8f1h8ogqPHTyUpyPRKZxUk2lu061g97dOQ/W4CxevI0s/qiw5DB3U3smLvSnBHKOzYS1jkxlMeGN01ky7A==} + '@nomicfoundation/edr-linux-arm64-gnu@0.7.0': + resolution: {integrity: sha512-WXpJB54ukz1no7gxCPXVEw9pgl/9UZ/WO3l1ctyv/T7vOygjqA4SUd6kppTs6MNXAuTiisPtvJ/fmvHiMBLrsw==} engines: {node: '>= 18'} - '@nomicfoundation/edr-linux-arm64-musl@0.6.5': - resolution: {integrity: sha512-ESvJM5Y9XC03fZg9KaQg3Hl+mbx7dsSkTIAndoJS7X2SyakpL9KZpOSYrDk135o8s9P9lYJdPOyiq+Sh+XoCbQ==} + '@nomicfoundation/edr-linux-arm64-musl@0.7.0': + resolution: {integrity: sha512-1iZYOcEgc+zJI7JQrlAFziuy9sBz1WgnIx3HIIu0J7lBRZ/AXeHHgATb+4InqxtEx9O3W8A0s7f11SyFqJL4Aw==} engines: {node: '>= 18'} - '@nomicfoundation/edr-linux-x64-gnu@0.6.5': - resolution: {integrity: sha512-HCM1usyAR1Ew6RYf5AkMYGvHBy64cPA5NMbaeY72r0mpKaH3txiMyydcHibByOGdQ8iFLWpyUdpl1egotw+Tgg==} + '@nomicfoundation/edr-linux-x64-gnu@0.7.0': + resolution: {integrity: sha512-wSjC94WcR5MM8sg9w3OsAmT6+bbmChJw6uJKoXR3qscps/jdhjzJWzfgT0XGRq3XMUfimyafW2RWOyfX3ouhrQ==} engines: {node: '>= 18'} - '@nomicfoundation/edr-linux-x64-musl@0.6.5': - resolution: {integrity: sha512-nB2uFRyczhAvWUH7NjCsIO6rHnQrof3xcCe6Mpmnzfl2PYcGyxN7iO4ZMmRcQS7R1Y670VH6+8ZBiRn8k43m7A==} + '@nomicfoundation/edr-linux-x64-musl@0.7.0': + resolution: {integrity: sha512-Us22+AZ7wkG1mZwxqE4S4ZcuwkEA5VrUiBOJSvKHGOgy6vFvB/Euh5Lkp4GovwjrtiXuvyGO2UmtkzymZKDxZw==} engines: {node: '>= 18'} - '@nomicfoundation/edr-win32-x64-msvc@0.6.5': - resolution: {integrity: sha512-B9QD/4DSSCFtWicO8A3BrsnitO1FPv7axB62wq5Q+qeJ50yJlTmyeGY3cw62gWItdvy2mh3fRM6L1LpnHiB77A==} + '@nomicfoundation/edr-win32-x64-msvc@0.7.0': + resolution: {integrity: sha512-HAry0heTsWkzReVtjHwoIq3BgFCvXpVhJ5qPmTnegZGsr/KxqvMmHyDMifzKao4bycU8yrpTSyOiAJt27RWjzQ==} engines: {node: '>= 18'} - '@nomicfoundation/edr@0.6.5': - resolution: {integrity: sha512-tAqMslLP+/2b2sZP4qe9AuGxG3OkQ5gGgHE4isUuq6dUVjwCRPFhAOhpdFl+OjY5P3yEv3hmq9HjUGRa2VNjng==} + '@nomicfoundation/edr@0.7.0': + resolution: {integrity: sha512-+Zyu7TE47TGNcPhOfWLPA/zISs32WDMXrhSWdWYyPHDVn/Uux5TVuOeScKb0BR/R8EJ+leR8COUF/EGxvDOVKg==} engines: {node: '>= 18'} '@nomicfoundation/ethereumjs-common@4.0.4': @@ -728,6 +749,9 @@ packages: '@types/concat-stream@1.6.1': resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==} + '@types/dns-packet@5.6.5': + resolution: {integrity: sha512-qXOC7XLOEe43ehtWJCMnQXvgcIpv6rPmQ1jXT98Ad8A3TB1Ue50jsCbSSSyuazScEuZ/Q026vHbrOTVkmwA+7Q==} + '@types/form-data@0.0.33': resolution: {integrity: sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==} @@ -942,6 +966,9 @@ packages: base-x@3.0.10: resolution: {integrity: sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==} + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + bech32@1.1.4: resolution: {integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==} @@ -1004,6 +1031,9 @@ packages: buffer-xor@1.0.3: resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + bytes@3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} @@ -1187,6 +1217,10 @@ packages: crypt@0.0.2: resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} + data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} + death@1.1.0: resolution: {integrity: sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w==} @@ -1261,6 +1295,10 @@ packages: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} + dns-packet@5.6.1: + resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} + engines: {node: '>=6'} + dotenv@16.4.5: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} @@ -1389,6 +1427,9 @@ packages: resolution: {integrity: sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==} engines: {node: '>=6.5.0', npm: '>=3'} + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + evp_bytestokey@1.0.3: resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} @@ -1434,6 +1475,10 @@ packages: picomatch: optional: true + fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -1471,6 +1516,10 @@ packages: resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} engines: {node: '>= 6'} + formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + fp-ts@1.19.3: resolution: {integrity: sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==} @@ -1598,8 +1647,8 @@ packages: peerDependencies: hardhat: ^2.0.2 - hardhat@2.22.17: - resolution: {integrity: sha512-tDlI475ccz4d/dajnADUTRc1OJ3H8fpP9sWhXhBPpYsQOg8JHq5xrDimo53UhWPl7KJmAeDCm1bFG74xvpGRpg==} + hardhat@2.22.18: + resolution: {integrity: sha512-2+kUz39gvMo56s75cfLBhiFedkQf+gXdrwCcz4R/5wW0oBdwiyfj2q9BIkMoaA0WIGYYMU2I1Cc4ucTunhfjzw==} hasBin: true peerDependencies: ts-node: '*' @@ -1640,6 +1689,9 @@ packages: hash.js@1.1.7: resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + hashlru@2.3.0: + resolution: {integrity: sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==} + hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -1680,6 +1732,9 @@ packages: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -1755,6 +1810,10 @@ packages: resolution: {integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==} engines: {node: '>=6.5.0', npm: '>=3'} + is-ipfs@8.0.4: + resolution: {integrity: sha512-upkO6a8WgBSZMMmuPzmF2NQLWXtiJtHxdEfEiMWrOzCKoZ+XEiM0XlK4fFMfo/PyiRmPMJ4PsNrXyvJeqMrJXA==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -1777,6 +1836,10 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + iso-url@1.2.1: + resolution: {integrity: sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==} + engines: {node: '>=12'} + istanbul-lib-coverage@3.2.2: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} @@ -2015,6 +2078,7 @@ packages: lodash.isequal@4.5.0: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. lodash.truncate@4.4.2: resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} @@ -2117,6 +2181,9 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + multiformats@13.3.2: + resolution: {integrity: sha512-qbB0CQDt3QKfiAzZ5ZYjLFOs+zW43vA4uyM8g27PeEuXZybUOFyjrVdP93HPBHMoglibwfkdVwbzfUq8qGcH6g==} + natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -2134,9 +2201,17 @@ packages: node-addon-api@5.1.0: resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==} + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + node-emoji@1.11.0: resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} + node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + node-gyp-build@4.8.4: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true @@ -2216,6 +2291,14 @@ packages: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} + p-queue@8.1.0: + resolution: {integrity: sha512-mxLDbbGIBEXTJL0zEx8JIylaj3xQ7Z/7eEVjcF9fJX4DBiH9oqe+oahYnlKKxm0Ci9TlWTyhSHgygxMxjIB2jw==} + engines: {node: '>=18'} + + p-timeout@6.1.4: + resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} + engines: {node: '>=14.16'} + p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -2268,6 +2351,9 @@ packages: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} + pinata-web3@0.5.4: + resolution: {integrity: sha512-w98wheqt+2LRzNgU5+xZaPP3JZA8Cp33O647zU6AF0zYk15py9ti8g2Bl/7rwXyua3CN+EzHgzcu1wgKnhSZ8w==} + pirates@4.0.6: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} @@ -2292,6 +2378,9 @@ packages: process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + progress-events@1.0.1: + resolution: {integrity: sha512-MOzLIwhpt64KIVN64h1MwdKWiyKFNc/S6BoYKPIVUHFg0/eIEyBulhWCgn678v/4c0ri3FdGuzXymNCv02MUIw==} + promise@8.3.0: resolution: {integrity: sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==} @@ -2731,6 +2820,15 @@ packages: engines: {node: '>=0.8.0'} hasBin: true + uint8-varint@2.0.4: + resolution: {integrity: sha512-FwpTa7ZGA/f/EssWAb5/YV6pHgVF1fViKdW8cWaEarjB8t7NyofSWBdOTyFPaGuUG4gx3v1O3PQ8etsiOs3lcw==} + + uint8arraylist@2.4.8: + resolution: {integrity: sha512-vc1PlGOzglLF0eae1M8mLRTBivsvrGsdmJ5RbK3e+QRvRLOZfZhQROTwH/OfyF3+ZVUg9/8hE8bmKP2CvP9quQ==} + + uint8arrays@5.1.0: + resolution: {integrity: sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==} + undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} @@ -2779,6 +2877,10 @@ packages: walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} + web3-utils@1.10.4: resolution: {integrity: sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==} engines: {node: '>=8.0.0'} @@ -3088,6 +3190,12 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} + '@chainsafe/is-ip@2.1.0': {} + + '@chainsafe/netmask@2.0.0': + dependencies: + '@chainsafe/is-ip': 2.1.0 + '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 @@ -3101,10 +3209,12 @@ snapshots: graphql: 16.9.0 graphql-request: 7.1.2(graphql@16.9.0) jest: 29.7.0(@types/node@22.10.1)(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2)) + pinata-web3: 0.5.4 transitivePeerDependencies: - '@types/node' - babel-plugin-macros - bufferutil + - debug - node-notifier - supports-color - ts-node @@ -3581,6 +3691,8 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@leichtgewicht/ip-codec@2.0.5': {} + '@metamask/eth-sig-util@4.0.1': dependencies: ethereumjs-abi: 0.6.8 @@ -3589,6 +3701,29 @@ snapshots: tweetnacl: 1.0.3 tweetnacl-util: 0.15.1 + '@multiformats/dns@1.0.6': + dependencies: + '@types/dns-packet': 5.6.5 + buffer: 6.0.3 + dns-packet: 5.6.1 + hashlru: 2.3.0 + p-queue: 8.1.0 + progress-events: 1.0.1 + uint8arrays: 5.1.0 + + '@multiformats/mafmt@12.1.6': + dependencies: + '@multiformats/multiaddr': 12.4.0 + + '@multiformats/multiaddr@12.4.0': + dependencies: + '@chainsafe/is-ip': 2.1.0 + '@chainsafe/netmask': 2.0.0 + '@multiformats/dns': 1.0.6 + multiformats: 13.3.2 + uint8-varint: 2.0.4 + uint8arrays: 5.1.0 + '@noble/curves@1.2.0': dependencies: '@noble/hashes': 1.3.2 @@ -3619,29 +3754,29 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@nomicfoundation/edr-darwin-arm64@0.6.5': {} + '@nomicfoundation/edr-darwin-arm64@0.7.0': {} - '@nomicfoundation/edr-darwin-x64@0.6.5': {} + '@nomicfoundation/edr-darwin-x64@0.7.0': {} - '@nomicfoundation/edr-linux-arm64-gnu@0.6.5': {} + '@nomicfoundation/edr-linux-arm64-gnu@0.7.0': {} - '@nomicfoundation/edr-linux-arm64-musl@0.6.5': {} + '@nomicfoundation/edr-linux-arm64-musl@0.7.0': {} - '@nomicfoundation/edr-linux-x64-gnu@0.6.5': {} + '@nomicfoundation/edr-linux-x64-gnu@0.7.0': {} - '@nomicfoundation/edr-linux-x64-musl@0.6.5': {} + '@nomicfoundation/edr-linux-x64-musl@0.7.0': {} - '@nomicfoundation/edr-win32-x64-msvc@0.6.5': {} + '@nomicfoundation/edr-win32-x64-msvc@0.7.0': {} - '@nomicfoundation/edr@0.6.5': + '@nomicfoundation/edr@0.7.0': dependencies: - '@nomicfoundation/edr-darwin-arm64': 0.6.5 - '@nomicfoundation/edr-darwin-x64': 0.6.5 - '@nomicfoundation/edr-linux-arm64-gnu': 0.6.5 - '@nomicfoundation/edr-linux-arm64-musl': 0.6.5 - '@nomicfoundation/edr-linux-x64-gnu': 0.6.5 - '@nomicfoundation/edr-linux-x64-musl': 0.6.5 - '@nomicfoundation/edr-win32-x64-msvc': 0.6.5 + '@nomicfoundation/edr-darwin-arm64': 0.7.0 + '@nomicfoundation/edr-darwin-x64': 0.7.0 + '@nomicfoundation/edr-linux-arm64-gnu': 0.7.0 + '@nomicfoundation/edr-linux-arm64-musl': 0.7.0 + '@nomicfoundation/edr-linux-x64-gnu': 0.7.0 + '@nomicfoundation/edr-linux-x64-musl': 0.7.0 + '@nomicfoundation/edr-win32-x64-msvc': 0.7.0 '@nomicfoundation/ethereumjs-common@4.0.4': dependencies: @@ -3663,43 +3798,43 @@ snapshots: '@nomicfoundation/ethereumjs-rlp': 5.0.4 ethereum-cryptography: 0.1.3 - '@nomicfoundation/hardhat-chai-matchers@2.0.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.4)(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(chai@4.5.0)(ethers@6.13.4)(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2))': + '@nomicfoundation/hardhat-chai-matchers@2.0.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.4)(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(chai@4.5.0)(ethers@6.13.4)(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2))': dependencies: - '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@6.13.4)(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) + '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@6.13.4)(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) '@types/chai-as-promised': 7.1.8 chai: 4.5.0 chai-as-promised: 7.1.2(chai@4.5.0) deep-eql: 4.1.4 ethers: 6.13.4 - hardhat: 2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2) + hardhat: 2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2) ordinal: 1.0.3 - '@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.4)(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2))': + '@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.4)(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2))': dependencies: debug: 4.3.7(supports-color@8.1.1) ethers: 6.13.4 - hardhat: 2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2) + hardhat: 2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2) lodash.isequal: 4.5.0 transitivePeerDependencies: - supports-color - '@nomicfoundation/hardhat-ignition-ethers@0.15.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.4)(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(@nomicfoundation/hardhat-ignition@0.15.8(@nomicfoundation/hardhat-verify@2.0.12(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(@nomicfoundation/ignition-core@0.15.8)(ethers@6.13.4)(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2))': + '@nomicfoundation/hardhat-ignition-ethers@0.15.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.4)(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(@nomicfoundation/hardhat-ignition@0.15.8(@nomicfoundation/hardhat-verify@2.0.12(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(@nomicfoundation/ignition-core@0.15.8)(ethers@6.13.4)(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2))': dependencies: - '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@6.13.4)(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) - '@nomicfoundation/hardhat-ignition': 0.15.8(@nomicfoundation/hardhat-verify@2.0.12(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) + '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@6.13.4)(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) + '@nomicfoundation/hardhat-ignition': 0.15.8(@nomicfoundation/hardhat-verify@2.0.12(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) '@nomicfoundation/ignition-core': 0.15.8 ethers: 6.13.4 - hardhat: 2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2) + hardhat: 2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2) - '@nomicfoundation/hardhat-ignition@0.15.8(@nomicfoundation/hardhat-verify@2.0.12(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2))': + '@nomicfoundation/hardhat-ignition@0.15.8(@nomicfoundation/hardhat-verify@2.0.12(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2))': dependencies: - '@nomicfoundation/hardhat-verify': 2.0.12(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) + '@nomicfoundation/hardhat-verify': 2.0.12(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) '@nomicfoundation/ignition-core': 0.15.8 '@nomicfoundation/ignition-ui': 0.15.8 chalk: 4.1.2 debug: 4.3.7(supports-color@8.1.1) fs-extra: 10.1.0 - hardhat: 2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2) + hardhat: 2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2) json5: 2.2.3 prompts: 2.4.2 transitivePeerDependencies: @@ -3707,39 +3842,39 @@ snapshots: - supports-color - utf-8-validate - '@nomicfoundation/hardhat-network-helpers@1.0.12(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2))': + '@nomicfoundation/hardhat-network-helpers@1.0.12(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2))': dependencies: ethereumjs-util: 7.1.5 - hardhat: 2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2) + hardhat: 2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2) - '@nomicfoundation/hardhat-toolbox@5.0.0(mnfi2nz2h6atuhdi2shadauaxi)': + '@nomicfoundation/hardhat-toolbox@5.0.0(ybf7yyu73niphz4ddp4gb63whq)': dependencies: - '@nomicfoundation/hardhat-chai-matchers': 2.0.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.4)(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(chai@4.5.0)(ethers@6.13.4)(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) - '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@6.13.4)(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) - '@nomicfoundation/hardhat-ignition-ethers': 0.15.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.4)(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(@nomicfoundation/hardhat-ignition@0.15.8(@nomicfoundation/hardhat-verify@2.0.12(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(@nomicfoundation/ignition-core@0.15.8)(ethers@6.13.4)(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) - '@nomicfoundation/hardhat-network-helpers': 1.0.12(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) - '@nomicfoundation/hardhat-verify': 2.0.12(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) + '@nomicfoundation/hardhat-chai-matchers': 2.0.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.4)(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(chai@4.5.0)(ethers@6.13.4)(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) + '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@6.13.4)(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) + '@nomicfoundation/hardhat-ignition-ethers': 0.15.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.4)(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(@nomicfoundation/hardhat-ignition@0.15.8(@nomicfoundation/hardhat-verify@2.0.12(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)))(@nomicfoundation/ignition-core@0.15.8)(ethers@6.13.4)(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) + '@nomicfoundation/hardhat-network-helpers': 1.0.12(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) + '@nomicfoundation/hardhat-verify': 2.0.12(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) '@typechain/ethers-v6': 0.5.1(ethers@6.13.4)(typechain@8.3.2(typescript@5.7.2))(typescript@5.7.2) - '@typechain/hardhat': 9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.4)(typechain@8.3.2(typescript@5.7.2))(typescript@5.7.2))(ethers@6.13.4)(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2))(typechain@8.3.2(typescript@5.7.2)) + '@typechain/hardhat': 9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.4)(typechain@8.3.2(typescript@5.7.2))(typescript@5.7.2))(ethers@6.13.4)(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2))(typechain@8.3.2(typescript@5.7.2)) '@types/chai': 4.3.20 '@types/mocha': 10.0.10 '@types/node': 22.10.1 chai: 4.5.0 ethers: 6.13.4 - hardhat: 2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2) - hardhat-gas-reporter: 1.0.10(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) - solidity-coverage: 0.8.14(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) + hardhat: 2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2) + hardhat-gas-reporter: 1.0.10(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) + solidity-coverage: 0.8.14(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)) ts-node: 10.9.2(@types/node@22.10.1)(typescript@5.7.2) typechain: 8.3.2(typescript@5.7.2) typescript: 5.7.2 - '@nomicfoundation/hardhat-verify@2.0.12(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2))': + '@nomicfoundation/hardhat-verify@2.0.12(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2))': dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/address': 5.7.0 cbor: 8.1.0 debug: 4.3.7(supports-color@8.1.1) - hardhat: 2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2) + hardhat: 2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2) lodash.clonedeep: 4.5.0 picocolors: 1.1.1 semver: 6.3.1 @@ -3904,12 +4039,12 @@ snapshots: typechain: 8.3.2(typescript@5.7.2) typescript: 5.7.2 - '@typechain/hardhat@9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.4)(typechain@8.3.2(typescript@5.7.2))(typescript@5.7.2))(ethers@6.13.4)(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2))(typechain@8.3.2(typescript@5.7.2))': + '@typechain/hardhat@9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.4)(typechain@8.3.2(typescript@5.7.2))(typescript@5.7.2))(ethers@6.13.4)(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2))(typechain@8.3.2(typescript@5.7.2))': dependencies: '@typechain/ethers-v6': 0.5.1(ethers@6.13.4)(typechain@8.3.2(typescript@5.7.2))(typescript@5.7.2) ethers: 6.13.4 fs-extra: 9.1.0 - hardhat: 2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2) + hardhat: 2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2) typechain: 8.3.2(typescript@5.7.2) '@types/babel__core@7.20.5': @@ -3951,6 +4086,10 @@ snapshots: dependencies: '@types/node': 22.10.1 + '@types/dns-packet@5.6.5': + dependencies: + '@types/node': 22.10.1 + '@types/form-data@0.0.33': dependencies: '@types/node': 22.10.1 @@ -4175,6 +4314,8 @@ snapshots: dependencies: safe-buffer: 5.2.1 + base64-js@1.5.1: {} + bech32@1.1.4: {} binary-extensions@2.3.0: {} @@ -4249,6 +4390,11 @@ snapshots: buffer-xor@1.0.3: {} + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + bytes@3.1.2: {} call-bind@1.0.7: @@ -4458,6 +4604,8 @@ snapshots: crypt@0.0.2: {} + data-uri-to-buffer@4.0.1: {} + death@1.1.0: {} debug@4.3.7(supports-color@8.1.1): @@ -4506,6 +4654,10 @@ snapshots: dependencies: path-type: 4.0.0 + dns-packet@5.6.1: + dependencies: + '@leichtgewicht/ip-codec': 2.0.5 + dotenv@16.4.5: {} dotenv@16.4.7: {} @@ -4716,6 +4868,8 @@ snapshots: is-hex-prefixed: 1.0.0 strip-hex-prefix: 1.0.0 + eventemitter3@5.0.1: {} + evp_bytestokey@1.0.3: dependencies: md5.js: 1.3.5 @@ -4771,6 +4925,11 @@ snapshots: optionalDependencies: picomatch: 4.0.2 + fetch-blob@3.2.0: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.3.3 + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -4808,6 +4967,10 @@ snapshots: combined-stream: 1.0.8 mime-types: 2.1.35 + formdata-polyfill@4.0.10: + dependencies: + fetch-blob: 3.2.0 + fp-ts@1.19.3: {} fs-extra@10.1.0: @@ -4952,11 +5115,11 @@ snapshots: optionalDependencies: uglify-js: 3.19.3 - hardhat-gas-reporter@1.0.10(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)): + hardhat-gas-reporter@1.0.10(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)): dependencies: array-uniq: 1.0.3 eth-gas-reporter: 0.2.27 - hardhat: 2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2) + hardhat: 2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2) sha1: 1.1.1 transitivePeerDependencies: - '@codechecks/client' @@ -4964,11 +5127,11 @@ snapshots: - debug - utf-8-validate - hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2): + hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2): dependencies: '@ethersproject/abi': 5.7.0 '@metamask/eth-sig-util': 4.0.1 - '@nomicfoundation/edr': 0.6.5 + '@nomicfoundation/edr': 0.7.0 '@nomicfoundation/ethereumjs-common': 4.0.4 '@nomicfoundation/ethereumjs-tx': 5.0.4 '@nomicfoundation/ethereumjs-util': 9.0.4 @@ -5046,6 +5209,8 @@ snapshots: inherits: 2.0.4 minimalistic-assert: 1.0.1 + hashlru@2.3.0: {} + hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -5094,6 +5259,8 @@ snapshots: dependencies: safer-buffer: 2.1.2 + ieee754@1.2.1: {} + ignore@5.3.2: {} immer@10.0.2: {} @@ -5148,6 +5315,14 @@ snapshots: is-hex-prefixed@1.0.0: {} + is-ipfs@8.0.4: + dependencies: + '@multiformats/mafmt': 12.1.6 + '@multiformats/multiaddr': 12.4.0 + iso-url: 1.2.1 + multiformats: 13.3.2 + uint8arrays: 5.1.0 + is-number@7.0.0: {} is-plain-obj@2.1.0: {} @@ -5160,6 +5335,8 @@ snapshots: isexe@2.0.0: {} + iso-url@1.2.1: {} + istanbul-lib-coverage@3.2.2: {} istanbul-lib-instrument@5.2.1: @@ -5687,6 +5864,8 @@ snapshots: ms@2.1.3: {} + multiformats@13.3.2: {} + natural-compare@1.4.0: {} ndjson@2.0.0: @@ -5703,10 +5882,18 @@ snapshots: node-addon-api@5.1.0: {} + node-domexception@1.0.0: {} + node-emoji@1.11.0: dependencies: lodash: 4.17.21 + node-fetch@3.3.2: + dependencies: + data-uri-to-buffer: 4.0.1 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 + node-gyp-build@4.8.4: {} node-int64@0.4.0: {} @@ -5777,6 +5964,13 @@ snapshots: dependencies: aggregate-error: 3.1.0 + p-queue@8.1.0: + dependencies: + eventemitter3: 5.0.1 + p-timeout: 6.1.4 + + p-timeout@6.1.4: {} + p-try@2.2.0: {} parse-cache-control@1.0.1: {} @@ -5816,6 +6010,15 @@ snapshots: pify@4.0.1: {} + pinata-web3@0.5.4: + dependencies: + axios: 1.7.9 + form-data: 4.0.1 + is-ipfs: 8.0.4 + node-fetch: 3.3.2 + transitivePeerDependencies: + - debug + pirates@4.0.6: {} pkg-dir@4.2.0: @@ -5834,6 +6037,8 @@ snapshots: process-nextick-args@2.0.1: {} + progress-events@1.0.1: {} + promise@8.3.0: dependencies: asap: 2.0.6 @@ -6054,7 +6259,7 @@ snapshots: transitivePeerDependencies: - debug - solidity-coverage@0.8.14(hardhat@2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)): + solidity-coverage@0.8.14(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2)): dependencies: '@ethersproject/abi': 5.7.0 '@solidity-parser/parser': 0.19.0 @@ -6065,7 +6270,7 @@ snapshots: ghost-testrpc: 0.0.2 global-modules: 2.0.0 globby: 10.0.2 - hardhat: 2.22.17(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2) + hardhat: 2.22.18(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2))(typescript@5.7.2) jsonschema: 1.4.1 lodash: 4.17.21 mocha: 10.8.2 @@ -6318,6 +6523,19 @@ snapshots: uglify-js@3.19.3: optional: true + uint8-varint@2.0.4: + dependencies: + uint8arraylist: 2.4.8 + uint8arrays: 5.1.0 + + uint8arraylist@2.4.8: + dependencies: + uint8arrays: 5.1.0 + + uint8arrays@5.1.0: + dependencies: + multiformats: 13.3.2 + undici-types@6.19.8: {} undici-types@6.20.0: {} @@ -6356,6 +6574,8 @@ snapshots: dependencies: makeerror: 1.0.12 + web-streams-polyfill@3.3.3: {} + web3-utils@1.10.4: dependencies: '@ethereumjs/util': 8.1.0 diff --git a/packages/contracts/test/AgentRegistry.test.js b/packages/contracts/test/AgentRegistry.test.js index 3e8c576..4350734 100644 --- a/packages/contracts/test/AgentRegistry.test.js +++ b/packages/contracts/test/AgentRegistry.test.js @@ -5,77 +5,205 @@ describe("AgentRegistry", function () { let AgentRegistry; let registry; let admin, agentOwner, agentAddress; + let agentUri = "https://ipfs.io/ipfs/bafkreigzpb44ndvlsfazfymmf6yvquoregceik56vyskf7e35joel7yati"; beforeEach(async function () { - [admin, agentOwner, agentAddress] = await ethers.getSigners(); + [admin, agentOwner, agentAddress, eveAddress] = await ethers.getSigners(); ServiceRegistry = await ethers.getContractFactory("ServiceRegistry"); serviceRegistry = await ServiceRegistry.deploy(); AgentRegistry = await ethers.getContractFactory("AgentsRegistry"); registry = await AgentRegistry.deploy(serviceRegistry.target); }); - it("Should not register an agent if the service is not registered", async function () { - await expect( - registry.connect(agentOwner).registerAgent( + describe('#Setters', () => { + it("should set the address of the TaskRegistry contract", async function () { + const newTaskRegistryAddress = agentAddress; + await registry.connect(admin).setTaskRegistry(newTaskRegistryAddress); + expect(await registry.taskRegistry()).to.equal(newTaskRegistryAddress); + }); + + it("should set the address of the ServiceRegistry contract", async function () { + const newServiceRegistryAddress = agentAddress; + await registry.connect(admin).setServiceRegistry(newServiceRegistryAddress); + expect(await registry.serviceRegistry()).to.equal(newServiceRegistryAddress); + }); + }) + + describe('#RegisterAgent', () => { + this.beforeEach(async function () { + await serviceRegistry.registerService("Service1", "Category1", "Description1"); + }) + it("Should not register an agent if the service is not registered", async function () { + await expect( + registry.connect(agentOwner).registerAgent( + agentAddress, + "Service Agent", + agentUri, + "NonExistentService", + ethers.parseEther("0.01") + ) + ).to.be.revertedWith("Service not registered"); + }); + + it("Should register new agent", async function () { + const request = registry.connect(agentOwner).registerAgent( + agentAddress, "Service Agent", - "https://uri", + agentUri, + "Service1", + ethers.parseEther("0.01") + ); + + await expect(request) + .to.emit(registry, "AgentRegistered") + .withArgs(agentAddress, agentOwner, "Service Agent", agentUri) + .to.emit(registry, "ProposalAdded") + .withArgs(agentAddress, 1, "Service1", ethers.parseEther("0.01")); + + const agentData = await registry.getAgentData(agentAddress); + + expect(agentData.name).to.equal("Service Agent"); + expect(agentData.agentUri).to.equal(agentUri); + expect(agentData.owner).to.equal(agentOwner.address); + expect(agentData.agent).to.equal(agentAddress); + expect(agentData.reputation).to.equal(0); + + const proposalId = 1; + const proposal = await registry.getProposal(proposalId); + expect(proposal.issuer).to.equal(agentAddress); + expect(proposal.serviceName).to.equal("Service1"); + expect(proposal.price).to.equal(ethers.parseEther("0.01")); + expect(proposal.proposalId).to.equal(proposalId); + }); + + it("Should not register the same agent twice", async function () { + await registry.connect(agentOwner).registerAgent( agentAddress, - "NonExistentService", + "Service Agent", + agentUri, + "Service1", ethers.parseEther("0.01") - ) - ).to.be.revertedWith("Service not registered"); - }); + ); + + await expect( + registry.connect(agentOwner).registerAgent( + agentAddress, + "Service Agent", + agentUri, + "Service1", + ethers.parseEther("0.01") + ) + ).to.be.revertedWith("Agent already registered"); + }); + }) - it("Should register new agent", async function () { - await serviceRegistry.registerService("Service1", "Category1", "Description1"); - const request = registry.connect(agentOwner).registerAgent( - "Service Agent", - "https://uri", - agentAddress, - "Service1", - ethers.parseEther("0.01") - ); - - await expect(request) - .to.emit(registry, "AgentRegistered") - .withArgs(agentAddress, agentOwner, "Service Agent", "https://uri") - .to.emit(registry, "ProposalAdded") - .withArgs(agentAddress, 0, "Service1", ethers.parseEther("0.01")); - - const agentData = await registry.getAgentData(agentAddress); - expect(agentData.name).to.equal("Service Agent"); - expect(agentData.agentUri).to.equal("https://uri"); - expect(agentData.owner).to.equal(agentOwner.address); - expect(agentData.agent).to.equal(agentAddress); - expect(agentData.reputation).to.equal(0); - - const proposal = await registry.getProposal(0); - expect(proposal.issuer).to.equal(agentAddress); - expect(proposal.serviceName).to.equal("Service1"); - expect(proposal.price).to.equal(ethers.parseEther("0.01")); - expect(proposal.proposalId).to.equal(0); - }); - it("Should not register the same agent twice", async function () { - await serviceRegistry.registerService("Service1", "Category1", "Description1"); - await registry.connect(agentOwner).registerAgent( - "Service Agent", - "https://uri", - agentAddress, - "Service1", - ethers.parseEther("0.01") - ); - - await expect( + describe('#Proposals', () => { + + beforeEach(async function () { + // await serviceRegistry.registerService("Service1", "Category1", "Description1"); registry.connect(agentOwner).registerAgent( - "Service Agent", - "https://uri", agentAddress, + "Service Agent", + agentUri, "Service1", ethers.parseEther("0.01") - ) - ).to.be.revertedWith("Agent already registered"); + ); + }); + + + it("Should add a proposal", async function () { + await registry.connect(agentOwner).addProposal(agentAddress, "Service1", ethers.parseEther("0.02")); + const proposalId = 2 + expect(await registry.getProposal(proposalId)).to.deep.equal([ + agentAddress.address, + "Service1", + ethers.parseEther("0.02"), + proposalId, + true + ]); + }); + + it("Should not add a proposal if service is not registered", async function () { + await expect(registry.connect(agentOwner).addProposal(agentAddress, "NonExistentService", ethers.parseEther("0.02"))) + .to.be.revertedWith("Service not registered"); + }); + + it("Should remove a proposal", async function () { + + await registry.connect(agentOwner).addProposal(agentAddress, "Service1", ethers.parseEther("0.02")); + + await registry.connect(agentOwner).removeProposal(agentAddress, 2); + + expect(await registry.getProposal(2)).to.deep.equal([ + ethers.ZeroAddress, + "", + 0, + 0, + false + ]); + + + await registry.connect(agentOwner).removeProposal(agentAddress, 1); + + expect(await registry.getProposal(1)).to.deep.equal([ + ethers.ZeroAddress, + "", + 0, + 0, + false + ]); + }); }); - + + describe('#Reputation', () => { + + beforeEach(async () => { + await registry.connect(agentOwner).registerAgent( + agentAddress, + "Service Agent", + agentUri, + "Service1", + ethers.parseEther("0.01") + ); + }) + it("Should only allow taskRegistry to add a rating", async function () { + // Attempt to add a rating from a different address + await expect(registry.connect(agentOwner).addRating(agentAddress, 50)).to.be.revertedWith("Not the TaskRegistry contract"); + + await registry.connect(admin).setTaskRegistry(admin); + + await expect(registry.connect(admin).addRating(agentAddress, 50)).to.not.be.reverted; + }); + + it("Should add a rating", async function () { + await registry.connect(admin).setTaskRegistry(admin); + + await expect(registry.connect(admin).addRating(agentAddress, 50)) + .to.emit(registry, "ReputationUpdated") + .withArgs(agentAddress, 50); + let agentData = await registry.getAgentData(agentAddress); + expect(agentData.reputation).to.equal(50); + expect(agentData.totalRatings).to.equal(1); + expect(await registry.getReputation(agentAddress)).to.equal(50); + + await expect(registry.connect(admin).addRating(agentAddress, 100)) + .to.emit(registry, "ReputationUpdated") + .withArgs(agentAddress, 75); + + agentData = await registry.getAgentData(agentAddress); + expect(agentData.reputation).to.equal(75); + expect(agentData.totalRatings).to.equal(2); + + await expect(registry.connect(admin).addRating(agentAddress, 30)) + .to.emit(registry, "ReputationUpdated") + .withArgs(agentAddress, 60); + + agentData = await registry.getAgentData(agentAddress); + expect(agentData.reputation).to.equal(60); + expect(agentData.totalRatings).to.equal(3); + }) + }) + }); diff --git a/packages/contracts/test/TaskRegistry.test.js b/packages/contracts/test/TaskRegistry.test.js index c133d80..f63496b 100644 --- a/packages/contracts/test/TaskRegistry.test.js +++ b/packages/contracts/test/TaskRegistry.test.js @@ -3,23 +3,25 @@ const { ethers } = require("hardhat"); describe("TaskRegistry", function () { let TaskRegistry, taskRegistry, AgentsRegistry, agentsRegistry; - let agentOwner, agentAddress, taskIssuer, addr4; + let agentOwner, agentAddress, taskIssuer, eveAddress; let taskPrice = ethers.parseEther("0.01"); - let proposalId = 0; + let proposalId = 1; let prompt = "Test prompt"; async function setup() { await serviceRegistry.registerService("Service1", "Category1", "Description1"); await agentsRegistry.connect(agentOwner).registerAgent( + agentAddress, "Service Agent", "https://uri", - agentAddress, "Service1", taskPrice ); + + await agentsRegistry.setTaskRegistry(taskRegistry); } beforeEach(async function () { - [taskIssuer, agentOwner, agentAddress, addr4] = await ethers.getSigners(); + [taskIssuer, agentOwner, agentAddress, eveAddress] = await ethers.getSigners(); ServiceRegistry = await ethers.getContractFactory("ServiceRegistry"); serviceRegistry = await ServiceRegistry.deploy(); @@ -51,7 +53,6 @@ describe("TaskRegistry", function () { }); it("should fail if the price is incorrect", async function () { - const proposalId = 0; const wrongTaskPrice = ethers.parseEther("0.02"); @@ -86,7 +87,7 @@ describe("TaskRegistry", function () { .to.emit(taskRegistry, "TaskCreated") .withArgs(taskIssuer, agentAddress, 1, proposalId, prompt); - await expect(taskRegistry.connect(addr4).completeTask(1, "Test result")) + await expect(taskRegistry.connect(eveAddress).completeTask(1, "Test result")) .to.be.revertedWith("Not authorized"); }); @@ -102,66 +103,82 @@ describe("TaskRegistry", function () { }); }); - // describe("getTasksByOwner", function () { - // it("should return tasks by owner", async function () { - // const proposalId = 1; - // const prompt = "Test prompt"; - // const price = ethers.parseEther("1"); - - // await agentsRegistry.registerAgent("Agent1", "uri1", addr1.address, "Service1", price); - // await taskRegistry.createTask(prompt, proposalId, { value: price }); - - // const tasks = await taskRegistry.getTasksByOwner(owner.address); - // expect(tasks.length).to.equal(1); - // expect(tasks[0]).to.equal(1); - // }); - // }); - - // describe("getTask", function () { - // it("should return task details", async function () { - // const proposalId = 1; - // const prompt = "Test prompt"; - // const price = ethers.parseEther("1"); - - // await agentsRegistry.registerAgent("Agent1", "uri1", addr1.address, "Service1", price); - // await taskRegistry.createTask(prompt, proposalId, { value: price }); - - // const task = await taskRegistry.getTask(1); - // expect(task.prompt).to.equal(prompt); - // expect(task.owner).to.equal(owner.address); - // expect(task.status).to.equal(0); // TaskStatus.CREATED - // expect(task.proposalId).to.equal(proposalId); - // }); - // }); - - // describe("getStatus", function () { - // it("should return task status", async function () { - // const proposalId = 1; - // const prompt = "Test prompt"; - // const price = ethers.parseEther("1"); - - // await agentsRegistry.registerAgent("Agent1", "uri1", addr1.address, "Service1", price); - // await taskRegistry.createTask(prompt, proposalId, { value: price }); - - // const status = await taskRegistry.getStatus(1); - // expect(status).to.equal(0); // TaskStatus.CREATED - // }); - // }); - - // describe("getAssignee", function () { - // it("should return task assignee", async function () { - // const proposalId = 1; - // const prompt = "Test prompt"; - // const price = ethers.parseEther("1"); - - // await agentsRegistry.registerAgent("Agent1", "uri1", addr1.address, "Service1", price); - // await taskRegistry.createTask(prompt, proposalId, { value: price }); - - // const task = await taskRegistry.getTask(1); - // task.assignee = addr1.address; - - // const assignee = await taskRegistry.getAssignee(1); - // expect(assignee).to.equal(addr1.address); - // }); - // }); + describe("rateTask", function () { + beforeEach(async function () { + await setup(); + + await expect(taskRegistry.createTask(prompt, proposalId, { value: taskPrice })).not.to.be.reverted + await expect(taskRegistry.connect(agentAddress).completeTask(1, "Test result")) + .and.to.emit(taskRegistry, "TaskCompleted") + .withArgs(1, "Test result"); + }); + + it("should rate a task", async function () { + const rating = 80; // Example rating + await expect(taskRegistry.connect(taskIssuer).rateTask(1, rating)) + .to.emit(taskRegistry, "TaskRated") + .withArgs(1, rating); + + const updatedTask = await taskRegistry.getTask(1); + expect(updatedTask.rating).to.equal(rating); + }); + + it("should fail if not the issuer", async function () { + await expect(taskRegistry.connect(eveAddress).rateTask(1, 80)) + .to.be.revertedWith("Not the issuer of the task"); + }); + + it("should fail if task is not completed", async function () { + await expect(taskRegistry.createTask(prompt, proposalId, { value: taskPrice })).not.to.be.reverted + + await expect(taskRegistry.connect(taskIssuer).rateTask(2, 80)) + .to.be.revertedWith("Task is not completed"); + }); + + it("should fail if rating is out of range", async function () { + await expect(taskRegistry.connect(taskIssuer).rateTask(1, 101)) + .to.be.revertedWith("Rating must be between 0 and 100"); + }); + + it("should only rate task ones", async function () { + const rating = 80; // Example rating + await expect(taskRegistry.connect(taskIssuer).rateTask(1, rating)) + .to.emit(taskRegistry, "TaskRated") + .withArgs(1, rating); + + await expect(taskRegistry.connect(taskIssuer).rateTask(1, rating)) + .to.be.revertedWith("Task got rating already"); + }); + }); + + describe("cancelTask", function () { + beforeEach(async function () { + await setup(); + + await expect(taskRegistry.createTask(prompt, proposalId, { value: taskPrice })).not.to.be.reverted + }); + + it("should cancel a task", async function () { + await expect(taskRegistry.connect(taskIssuer).cancelTask(1)) + .to.emit(taskRegistry, "TaskCanceled") + .withArgs(1); + + const updatedTask = await taskRegistry.getTask(1); + expect(updatedTask.status).to.equal(3); + }); + + it("should not cancel a task twice", async function () { + await expect(taskRegistry.connect(taskIssuer).cancelTask(1)) + .to.emit(taskRegistry, "TaskCanceled") + .withArgs(1); + + await expect(taskRegistry.connect(taskIssuer).cancelTask(1)) + .to.be.revertedWith("Task cannot be canceled"); + }); + + it("should fail if not the issuer", async function () { + await expect(taskRegistry.connect(eveAddress).cancelTask(1)) + .to.be.revertedWith("Not the issuer of the task"); + }); + }); }); diff --git a/packages/sdk/.gitignore b/packages/sdk/.gitignore index 585bde3..2bda749 100644 --- a/packages/sdk/.gitignore +++ b/packages/sdk/.gitignore @@ -9,6 +9,7 @@ yarn-error.log* # TypeScript *.tsbuildinfo +typechain/ # Logs logs diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 64644b1..c07674d 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@ensemble-ai/sdk", - "version": "0.2.9", + "version": "0.3.0", "description": "TypeScript SDK for the Agentic Hub", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -8,7 +8,9 @@ "build": "tsc", "watch-build": "tsc --watch", "test": "jest", - "docs": "typedoc" + "docs": "typedoc", + "typechain": "typechain --target ethers-v6 ./src/abi/*.json --out-dir ./typechain", + "postinstall": "npm run typechain" }, "dependencies": { "@jest/globals": "^29.7.0", @@ -24,11 +26,13 @@ "@babel/preset-typescript": "^7.26.0", "@graphprotocol/client-cli": "^3.0.7", "@swc/jest": "^0.2.37", + "@typechain/ethers-v6": "^0.5.1", "@types/chai": "^5.0.1", "@types/jest": "^29.5.14", "@types/node": "^20.10.0", "jest": "^29.7.0", "ts-jest": "^29.2.5", + "typechain": "^8.3.2", "typedoc": "^0.27.4", "typescript": "^5.3.2" } diff --git a/packages/sdk/pnpm-lock.yaml b/packages/sdk/pnpm-lock.yaml index 99c82af..744ecbb 100644 --- a/packages/sdk/pnpm-lock.yaml +++ b/packages/sdk/pnpm-lock.yaml @@ -38,10 +38,13 @@ importers: version: 7.26.0(@babel/core@7.26.9) '@graphprotocol/client-cli': specifier: ^3.0.7 - version: 3.0.7(@envelop/core@5.1.0)(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/store@0.102.13)(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/delegate@10.2.13(graphql@16.10.0))(@graphql-tools/merge@9.0.19(graphql@16.10.0))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(@graphql-tools/wrap@10.0.31(graphql@16.10.0))(@types/node@20.17.19)(encoding@0.1.13)(graphql-tag@2.12.6(graphql@16.10.0))(graphql-yoga@5.12.0(graphql@16.10.0))(graphql@16.10.0) + version: 3.0.7(@envelop/core@5.1.0)(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/store@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/utils@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/delegate@10.2.13(graphql@16.10.0))(@graphql-tools/merge@9.0.19(graphql@16.10.0))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(@graphql-tools/wrap@10.0.31(graphql@16.10.0))(@types/node@20.17.19)(encoding@0.1.13)(graphql-tag@2.12.6(graphql@16.10.0))(graphql-yoga@5.12.0(graphql@16.10.0))(graphql@16.10.0) '@swc/jest': specifier: ^0.2.37 version: 0.2.37(@swc/core@1.10.18) + '@typechain/ethers-v6': + specifier: ^0.5.1 + version: 0.5.1(ethers@6.13.5)(typechain@8.3.2(typescript@5.7.3))(typescript@5.7.3) '@types/chai': specifier: ^5.0.1 version: 5.0.1 @@ -54,6 +57,9 @@ importers: ts-jest: specifier: ^29.2.5 version: 29.2.5(@babel/core@7.26.9)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.9))(jest@29.7.0(@types/node@20.17.19))(typescript@5.7.3) + typechain: + specifier: ^8.3.2 + version: 8.3.2(typescript@5.7.3) typedoc: specifier: ^0.27.4 version: 0.27.7(typescript@5.7.3) @@ -1206,6 +1212,13 @@ packages: '@swc/types@0.1.17': resolution: {integrity: sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==} + '@typechain/ethers-v6@0.5.1': + resolution: {integrity: sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA==} + peerDependencies: + ethers: 6.x + typechain: ^8.3.2 + typescript: '>=4.7.0' + '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -1251,6 +1264,9 @@ packages: '@types/node@22.7.5': resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} + '@types/prettier@2.7.3': + resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} + '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -1339,6 +1355,10 @@ packages: resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -1374,6 +1394,14 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + array-back@3.1.0: + resolution: {integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==} + engines: {node: '>=6'} + + array-back@4.0.2: + resolution: {integrity: sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==} + engines: {node: '>=8'} + array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} @@ -1501,6 +1529,10 @@ packages: resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} engines: {node: '>=4'} + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -1550,10 +1582,16 @@ packages: collect-v8-coverage@1.0.2: resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -1565,6 +1603,14 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} + command-line-args@5.2.1: + resolution: {integrity: sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==} + engines: {node: '>=4.0.0'} + + command-line-usage@6.1.3: + resolution: {integrity: sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==} + engines: {node: '>=8.0.0'} + common-tags@1.8.2: resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} engines: {node: '>=4.0.0'} @@ -1641,6 +1687,10 @@ packages: resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} engines: {node: '>=6'} + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} @@ -1757,6 +1807,10 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + escape-string-regexp@2.0.0: resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} engines: {node: '>=8'} @@ -1840,6 +1894,10 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + find-replace@3.0.0: + resolution: {integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==} + engines: {node: '>=4.0.0'} + find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -1868,6 +1926,10 @@ packages: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} + fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + fs-minipass@2.1.0: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} @@ -1943,6 +2005,10 @@ packages: engines: {node: 20 || >=22} hasBin: true + glob@7.1.7: + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + deprecated: Glob versions prior to v9 are no longer supported + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -2015,6 +2081,10 @@ packages: resolution: {integrity: sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -2372,6 +2442,9 @@ packages: resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} hasBin: true + js-sha3@0.8.0: + resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -2414,6 +2487,9 @@ packages: jsonc-parser@3.3.1: resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} @@ -2438,6 +2514,9 @@ packages: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + lodash.get@4.4.2: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} deprecated: This package is deprecated. Use the optional chaining (?.) operator instead. @@ -2825,6 +2904,11 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + pretty-format@29.7.0: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2867,6 +2951,10 @@ packages: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} + reduce-flatten@2.0.0: + resolution: {integrity: sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==} + engines: {node: '>=6'} + regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} @@ -3032,6 +3120,9 @@ packages: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} + string-format@2.0.0: + resolution: {integrity: sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==} + string-length@4.0.2: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} engines: {node: '>=10'} @@ -3067,6 +3158,10 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -3086,6 +3181,10 @@ packages: resolution: {integrity: sha512-c7AfkZ9udatCuAy9RSfiGPpeOKKUAUK5e1cXadLOGUjasdxqYqAK0jTNkM/FSEyJ3a5Ra27j/tw/PS0qLmaF/A==} engines: {node: '>=18'} + table-layout@1.0.2: + resolution: {integrity: sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==} + engines: {node: '>=8.0.0'} + tar@6.2.1: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} @@ -3115,6 +3214,15 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + ts-command-line-args@2.5.1: + resolution: {integrity: sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==} + hasBin: true + + ts-essentials@7.0.3: + resolution: {integrity: sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==} + peerDependencies: + typescript: '>=3.7.0' + ts-jest@29.2.5: resolution: {integrity: sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==} engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} @@ -3166,6 +3274,12 @@ packages: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} + typechain@8.3.2: + resolution: {integrity: sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==} + hasBin: true + peerDependencies: + typescript: '>=4.3.0' + typedoc@0.27.7: resolution: {integrity: sha512-K/JaUPX18+61W3VXek1cWC5gwmuLvYTOXJzBvD9W7jFvbPnefRnCHQCEPw7MSNrP/Hj7JJrhZtDDLKdcYm6ucg==} engines: {node: '>= 18'} @@ -3178,6 +3292,14 @@ packages: engines: {node: '>=14.17'} hasBin: true + typical@4.0.0: + resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==} + engines: {node: '>=8'} + + typical@5.2.0: + resolution: {integrity: sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==} + engines: {node: '>=8'} + uWebSockets.js@https://codeload.github.com/uNetworking/uWebSockets.js/tar.gz/6609a88ffa9a16ac5158046761356ce03250a0df: resolution: {tarball: https://codeload.github.com/uNetworking/uWebSockets.js/tar.gz/6609a88ffa9a16ac5158046761356ce03250a0df} version: 20.51.0 @@ -3213,6 +3335,10 @@ packages: resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + unixify@1.0.0: resolution: {integrity: sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==} engines: {node: '>=0.10.0'} @@ -3276,6 +3402,10 @@ packages: wide-align@1.1.5: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + wordwrapjs@4.0.1: + resolution: {integrity: sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==} + engines: {node: '>=8.0.0'} + wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} @@ -3861,7 +3991,7 @@ snapshots: '@shikijs/types': 1.29.2 '@shikijs/vscode-textmate': 10.0.2 - '@graphprotocol/client-add-source-name@2.0.7(@graphql-mesh/types@0.102.13)(@graphql-tools/delegate@10.2.13(graphql@16.10.0))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(@graphql-tools/wrap@10.0.31(graphql@16.10.0))(graphql@16.10.0)': + '@graphprotocol/client-add-source-name@2.0.7(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/delegate@10.2.13(graphql@16.10.0))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(@graphql-tools/wrap@10.0.31(graphql@16.10.0))(graphql@16.10.0)': dependencies: '@graphql-mesh/types': 0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) '@graphql-tools/delegate': 10.2.13(graphql@16.10.0) @@ -3871,7 +4001,7 @@ snapshots: lodash: 4.17.21 tslib: 2.8.1 - '@graphprotocol/client-auto-pagination@2.0.7(@graphql-mesh/types@0.102.13)(@graphql-tools/delegate@10.2.13(graphql@16.10.0))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(@graphql-tools/wrap@10.0.31(graphql@16.10.0))(graphql@16.10.0)': + '@graphprotocol/client-auto-pagination@2.0.7(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/delegate@10.2.13(graphql@16.10.0))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(@graphql-tools/wrap@10.0.31(graphql@16.10.0))(graphql@16.10.0)': dependencies: '@graphql-mesh/types': 0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) '@graphql-tools/delegate': 10.2.13(graphql@16.10.0) @@ -3881,9 +4011,9 @@ snapshots: lodash: 4.17.21 tslib: 2.8.1 - '@graphprotocol/client-auto-type-merging@2.0.7(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/delegate@10.2.13(graphql@16.10.0))(graphql@16.10.0)': + '@graphprotocol/client-auto-type-merging@2.0.7(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/utils@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/delegate@10.2.13(graphql@16.10.0))(graphql@16.10.0)': dependencies: - '@graphql-mesh/transform-type-merging': 0.102.13(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(graphql@16.10.0)(tslib@2.8.1) + '@graphql-mesh/transform-type-merging': 0.102.13(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/utils@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(graphql@16.10.0)(tslib@2.8.1) '@graphql-mesh/types': 0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) '@graphql-tools/delegate': 10.2.13(graphql@16.10.0) graphql: 16.10.0 @@ -3891,9 +4021,9 @@ snapshots: transitivePeerDependencies: - '@graphql-mesh/utils' - '@graphprotocol/client-block-tracking@2.0.6(@graphql-mesh/store@0.102.13)(@graphql-tools/delegate@10.2.13(graphql@16.10.0))(@types/node@20.17.19)(graphql@16.10.0)': + '@graphprotocol/client-block-tracking@2.0.6(@graphql-mesh/store@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/delegate@10.2.13(graphql@16.10.0))(@types/node@20.17.19)(graphql@16.10.0)': dependencies: - '@graphql-mesh/fusion-runtime': 0.8.14(@graphql-mesh/store@0.102.13)(@types/node@20.17.19)(graphql@16.10.0) + '@graphql-mesh/fusion-runtime': 0.8.14(@graphql-mesh/store@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@types/node@20.17.19)(graphql@16.10.0) '@graphql-tools/delegate': 10.2.13(graphql@16.10.0) '@graphql-tools/utils': 10.8.1(graphql@16.10.0) graphql: 16.10.0 @@ -3902,15 +4032,15 @@ snapshots: - '@graphql-mesh/store' - '@types/node' - '@graphprotocol/client-cli@3.0.7(@envelop/core@5.1.0)(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/store@0.102.13)(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/delegate@10.2.13(graphql@16.10.0))(@graphql-tools/merge@9.0.19(graphql@16.10.0))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(@graphql-tools/wrap@10.0.31(graphql@16.10.0))(@types/node@20.17.19)(encoding@0.1.13)(graphql-tag@2.12.6(graphql@16.10.0))(graphql-yoga@5.12.0(graphql@16.10.0))(graphql@16.10.0)': + '@graphprotocol/client-cli@3.0.7(@envelop/core@5.1.0)(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/store@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/utils@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/delegate@10.2.13(graphql@16.10.0))(@graphql-tools/merge@9.0.19(graphql@16.10.0))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(@graphql-tools/wrap@10.0.31(graphql@16.10.0))(@types/node@20.17.19)(encoding@0.1.13)(graphql-tag@2.12.6(graphql@16.10.0))(graphql-yoga@5.12.0(graphql@16.10.0))(graphql@16.10.0)': dependencies: - '@graphprotocol/client-add-source-name': 2.0.7(@graphql-mesh/types@0.102.13)(@graphql-tools/delegate@10.2.13(graphql@16.10.0))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(@graphql-tools/wrap@10.0.31(graphql@16.10.0))(graphql@16.10.0) - '@graphprotocol/client-auto-pagination': 2.0.7(@graphql-mesh/types@0.102.13)(@graphql-tools/delegate@10.2.13(graphql@16.10.0))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(@graphql-tools/wrap@10.0.31(graphql@16.10.0))(graphql@16.10.0) - '@graphprotocol/client-auto-type-merging': 2.0.7(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/delegate@10.2.13(graphql@16.10.0))(graphql@16.10.0) - '@graphprotocol/client-block-tracking': 2.0.6(@graphql-mesh/store@0.102.13)(@graphql-tools/delegate@10.2.13(graphql@16.10.0))(@types/node@20.17.19)(graphql@16.10.0) + '@graphprotocol/client-add-source-name': 2.0.7(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/delegate@10.2.13(graphql@16.10.0))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(@graphql-tools/wrap@10.0.31(graphql@16.10.0))(graphql@16.10.0) + '@graphprotocol/client-auto-pagination': 2.0.7(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/delegate@10.2.13(graphql@16.10.0))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(@graphql-tools/wrap@10.0.31(graphql@16.10.0))(graphql@16.10.0) + '@graphprotocol/client-auto-type-merging': 2.0.7(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/utils@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/delegate@10.2.13(graphql@16.10.0))(graphql@16.10.0) + '@graphprotocol/client-block-tracking': 2.0.6(@graphql-mesh/store@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/delegate@10.2.13(graphql@16.10.0))(@types/node@20.17.19)(graphql@16.10.0) '@graphprotocol/client-polling-live': 2.0.1(@envelop/core@5.1.0)(@graphql-tools/merge@9.0.19(graphql@16.10.0))(graphql@16.10.0) '@graphql-mesh/cli': 0.95.4(encoding@0.1.13)(graphql-tag@2.12.6(graphql@16.10.0))(graphql-yoga@5.12.0(graphql@16.10.0))(graphql@16.10.0) - '@graphql-mesh/graphql': 0.102.16(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/store@0.102.13)(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(@types/node@20.17.19)(graphql@16.10.0)(tslib@2.8.1) + '@graphql-mesh/graphql': 0.102.16(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/store@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/utils@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(@types/node@20.17.19)(graphql@16.10.0)(tslib@2.8.1) graphql: 16.10.0 tslib: 2.8.1 transitivePeerDependencies: @@ -4090,7 +4220,7 @@ snapshots: object-inspect: 1.13.2 tslib: 2.6.2 - '@graphql-mesh/cache-localforage@0.102.13(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(graphql@16.10.0)(tslib@2.8.1)': + '@graphql-mesh/cache-localforage@0.102.13(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/utils@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(graphql@16.10.0)(tslib@2.8.1)': dependencies: '@graphql-mesh/types': 0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) '@graphql-mesh/utils': 0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) @@ -4106,11 +4236,11 @@ snapshots: '@graphql-codegen/typescript-generic-sdk': 3.1.0(encoding@0.1.13)(graphql-tag@2.12.6(graphql@16.10.0))(graphql@16.10.0) '@graphql-codegen/typescript-operations': 4.4.1(encoding@0.1.13)(graphql@16.10.0) '@graphql-codegen/typescript-resolvers': 4.4.2(encoding@0.1.13)(graphql@16.10.0) - '@graphql-mesh/config': 0.104.12(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/runtime@0.103.12(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/store@0.102.13)(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql-yoga@5.12.0(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) + '@graphql-mesh/config': 0.104.12(im6abykltmuwentprkp4b7bmhy) '@graphql-mesh/cross-helpers': 0.4.10(graphql@16.10.0) - '@graphql-mesh/http': 0.103.12(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/runtime@0.103.12(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) + '@graphql-mesh/http': 0.103.12(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/runtime@0.103.12(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/utils@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/utils@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) '@graphql-mesh/include': 0.1.0 - '@graphql-mesh/runtime': 0.103.12(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) + '@graphql-mesh/runtime': 0.103.12(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/utils@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) '@graphql-mesh/store': 0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) '@graphql-mesh/types': 0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) '@graphql-mesh/utils': 0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) @@ -4143,14 +4273,14 @@ snapshots: - supports-color - utf-8-validate - '@graphql-mesh/config@0.104.12(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/runtime@0.103.12(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/store@0.102.13)(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql-yoga@5.12.0(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1)': + '@graphql-mesh/config@0.104.12(im6abykltmuwentprkp4b7bmhy)': dependencies: '@envelop/core': 5.1.0 - '@graphql-mesh/cache-localforage': 0.102.13(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(graphql@16.10.0)(tslib@2.8.1) + '@graphql-mesh/cache-localforage': 0.102.13(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/utils@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(graphql@16.10.0)(tslib@2.8.1) '@graphql-mesh/cross-helpers': 0.4.10(graphql@16.10.0) - '@graphql-mesh/merger-bare': 0.102.11(@graphql-mesh/store@0.102.13)(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) - '@graphql-mesh/merger-stitching': 0.102.11(@graphql-mesh/store@0.102.13)(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) - '@graphql-mesh/runtime': 0.103.12(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) + '@graphql-mesh/merger-bare': 0.102.11(@graphql-mesh/store@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/utils@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) + '@graphql-mesh/merger-stitching': 0.102.11(@graphql-mesh/store@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/utils@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) + '@graphql-mesh/runtime': 0.103.12(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/utils@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) '@graphql-mesh/store': 0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) '@graphql-mesh/types': 0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) '@graphql-mesh/utils': 0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) @@ -4175,11 +4305,11 @@ snapshots: graphql: 16.10.0 path-browserify: 1.0.1 - '@graphql-mesh/fusion-runtime@0.8.14(@graphql-mesh/store@0.102.13)(@types/node@20.17.19)(graphql@16.10.0)': + '@graphql-mesh/fusion-runtime@0.8.14(@graphql-mesh/store@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@types/node@20.17.19)(graphql@16.10.0)': dependencies: '@envelop/core': 5.1.0 '@graphql-mesh/cross-helpers': 0.4.10(graphql@16.10.0) - '@graphql-mesh/runtime': 0.103.12(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) + '@graphql-mesh/runtime': 0.103.12(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/utils@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) '@graphql-mesh/transport-common': 0.7.29(graphql@16.10.0) '@graphql-mesh/types': 0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) '@graphql-mesh/utils': 0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) @@ -4199,7 +4329,7 @@ snapshots: - '@graphql-mesh/store' - '@types/node' - '@graphql-mesh/graphql@0.102.16(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/store@0.102.13)(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(@types/node@20.17.19)(graphql@16.10.0)(tslib@2.8.1)': + '@graphql-mesh/graphql@0.102.16(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/store@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/utils@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(@types/node@20.17.19)(graphql@16.10.0)(tslib@2.8.1)': dependencies: '@graphql-mesh/cross-helpers': 0.4.10(graphql@16.10.0) '@graphql-mesh/store': 0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) @@ -4220,10 +4350,10 @@ snapshots: - uWebSockets.js - utf-8-validate - '@graphql-mesh/http@0.103.12(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/runtime@0.103.12(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1)': + '@graphql-mesh/http@0.103.12(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/runtime@0.103.12(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/utils@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/utils@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1)': dependencies: '@graphql-mesh/cross-helpers': 0.4.10(graphql@16.10.0) - '@graphql-mesh/runtime': 0.103.12(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) + '@graphql-mesh/runtime': 0.103.12(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/utils@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) '@graphql-mesh/types': 0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) '@graphql-mesh/utils': 0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) '@graphql-tools/utils': 10.8.1(graphql@16.10.0) @@ -4238,9 +4368,9 @@ snapshots: get-tsconfig: 4.10.0 jiti: 1.21.7 - '@graphql-mesh/merger-bare@0.102.11(@graphql-mesh/store@0.102.13)(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1)': + '@graphql-mesh/merger-bare@0.102.11(@graphql-mesh/store@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/utils@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1)': dependencies: - '@graphql-mesh/merger-stitching': 0.102.11(@graphql-mesh/store@0.102.13)(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) + '@graphql-mesh/merger-stitching': 0.102.11(@graphql-mesh/store@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/utils@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) '@graphql-mesh/types': 0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) '@graphql-mesh/utils': 0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) '@graphql-tools/schema': 10.0.7(graphql@16.10.0) @@ -4250,7 +4380,7 @@ snapshots: transitivePeerDependencies: - '@graphql-mesh/store' - '@graphql-mesh/merger-stitching@0.102.11(@graphql-mesh/store@0.102.13)(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1)': + '@graphql-mesh/merger-stitching@0.102.11(@graphql-mesh/store@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/utils@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1)': dependencies: '@graphql-mesh/store': 0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) '@graphql-mesh/types': 0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) @@ -4262,7 +4392,7 @@ snapshots: graphql: 16.10.0 tslib: 2.8.1 - '@graphql-mesh/runtime@0.103.12(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1)': + '@graphql-mesh/runtime@0.103.12(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/utils@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1)': dependencies: '@envelop/core': 5.1.0 '@envelop/extended-validation': 4.1.0(@envelop/core@5.1.0)(graphql@16.10.0) @@ -4309,7 +4439,7 @@ snapshots: lodash.get: 4.4.2 tslib: 2.8.1 - '@graphql-mesh/transform-type-merging@0.102.13(@graphql-mesh/types@0.102.13)(@graphql-mesh/utils@0.102.13)(graphql@16.10.0)(tslib@2.8.1)': + '@graphql-mesh/transform-type-merging@0.102.13(@graphql-mesh/types@0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(@graphql-mesh/utils@0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1))(graphql@16.10.0)(tslib@2.8.1)': dependencies: '@graphql-mesh/types': 0.102.13(@graphql-mesh/store@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) '@graphql-mesh/utils': 0.102.13(@graphql-mesh/cross-helpers@0.4.10(graphql@16.10.0))(@graphql-mesh/types@0.102.13)(@graphql-tools/utils@10.8.1(graphql@16.10.0))(graphql@16.10.0)(tslib@2.8.1) @@ -5040,6 +5170,14 @@ snapshots: dependencies: '@swc/counter': 0.1.3 + '@typechain/ethers-v6@0.5.1(ethers@6.13.5)(typechain@8.3.2(typescript@5.7.3))(typescript@5.7.3)': + dependencies: + ethers: 6.13.5 + lodash: 4.17.21 + ts-essentials: 7.0.3(typescript@5.7.3) + typechain: 8.3.2(typescript@5.7.3) + typescript: 5.7.3 + '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.26.9 @@ -5102,6 +5240,8 @@ snapshots: dependencies: undici-types: 6.19.8 + '@types/prettier@2.7.3': {} + '@types/stack-utils@2.0.3': {} '@types/unist@3.0.3': {} @@ -5196,6 +5336,10 @@ snapshots: ansi-regex@6.1.0: {} + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 @@ -5227,6 +5371,10 @@ snapshots: argparse@2.0.1: {} + array-back@3.1.0: {} + + array-back@4.0.2: {} + array-union@2.1.0: {} asap@2.0.6: {} @@ -5430,6 +5578,12 @@ snapshots: pathval: 1.1.1 type-detect: 4.1.0 + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 @@ -5508,10 +5662,16 @@ snapshots: collect-v8-coverage@1.0.2: {} + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + color-convert@2.0.1: dependencies: color-name: 1.1.4 + color-name@1.1.3: {} + color-name@1.1.4: {} color-support@1.1.3: @@ -5521,6 +5681,20 @@ snapshots: dependencies: delayed-stream: 1.0.0 + command-line-args@5.2.1: + dependencies: + array-back: 3.1.0 + find-replace: 3.0.0 + lodash.camelcase: 4.3.0 + typical: 4.0.0 + + command-line-usage@6.1.3: + dependencies: + array-back: 4.0.2 + chalk: 2.4.2 + table-layout: 1.0.2 + typical: 5.2.0 + common-tags@1.8.2: {} concat-map@0.0.1: {} @@ -5594,6 +5768,8 @@ snapshots: dependencies: type-detect: 4.1.0 + deep-extend@0.6.0: {} + deepmerge@4.3.1: {} delayed-stream@1.0.0: {} @@ -5685,6 +5861,8 @@ snapshots: escalade@3.2.0: {} + escape-string-regexp@1.0.5: {} + escape-string-regexp@2.0.0: {} esprima@4.0.1: {} @@ -5798,6 +5976,10 @@ snapshots: dependencies: to-regex-range: 5.0.1 + find-replace@3.0.0: + dependencies: + array-back: 3.1.0 + find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -5823,6 +6005,12 @@ snapshots: dependencies: fetch-blob: 3.2.0 + fs-extra@7.0.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + fs-minipass@2.1.0: dependencies: minipass: 3.3.6 @@ -5924,6 +6112,15 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 2.0.0 + glob@7.1.7: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -5999,6 +6196,8 @@ snapshots: graphql@16.10.0: {} + has-flag@3.0.0: {} + has-flag@4.0.0: {} has-symbols@1.1.0: {} @@ -6541,6 +6740,8 @@ snapshots: jiti@1.21.7: {} + js-sha3@0.8.0: {} + js-tokens@4.0.0: {} js-yaml@3.14.1: @@ -6575,6 +6776,10 @@ snapshots: jsonc-parser@3.3.1: {} + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + kleur@3.0.3: {} leven@3.1.0: {} @@ -6597,6 +6802,8 @@ snapshots: dependencies: p-locate: 4.1.0 + lodash.camelcase@4.3.0: {} + lodash.get@4.4.2: {} lodash.memoize@4.1.2: {} @@ -6765,8 +6972,7 @@ snapshots: yallist: 4.0.0 optional: true - mkdirp@1.0.4: - optional: true + mkdirp@1.0.4: {} mkdirp@3.0.1: {} @@ -7000,6 +7206,8 @@ snapshots: dependencies: find-up: 4.1.0 + prettier@2.8.8: {} + pretty-format@29.7.0: dependencies: '@jest/schemas': 29.6.3 @@ -7043,6 +7251,8 @@ snapshots: util-deprecate: 1.0.2 optional: true + reduce-flatten@2.0.0: {} + regenerator-runtime@0.14.1: {} relay-runtime@12.0.0(encoding@0.1.13): @@ -7191,6 +7401,8 @@ snapshots: streamsearch@1.1.0: {} + string-format@2.0.0: {} + string-length@4.0.2: dependencies: char-regex: 1.0.2 @@ -7227,6 +7439,10 @@ snapshots: strip-json-comments@3.1.1: {} + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -7247,6 +7463,13 @@ snapshots: timeout-signal: 2.0.0 whatwg-mimetype: 4.0.0 + table-layout@1.0.2: + dependencies: + array-back: 4.0.2 + deep-extend: 0.6.0 + typical: 5.2.0 + wordwrapjs: 4.0.1 + tar@6.2.1: dependencies: chownr: 2.0.0 @@ -7279,6 +7502,17 @@ snapshots: tr46@0.0.3: {} + ts-command-line-args@2.5.1: + dependencies: + chalk: 4.1.2 + command-line-args: 5.2.1 + command-line-usage: 6.1.3 + string-format: 2.0.0 + + ts-essentials@7.0.3(typescript@5.7.3): + dependencies: + typescript: 5.7.3 + ts-jest@29.2.5(@babel/core@7.26.9)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.9))(jest@29.7.0(@types/node@20.17.19))(typescript@5.7.3): dependencies: bs-logger: 0.2.6 @@ -7314,6 +7548,22 @@ snapshots: type-fest@0.21.3: {} + typechain@8.3.2(typescript@5.7.3): + dependencies: + '@types/prettier': 2.7.3 + debug: 4.4.0 + fs-extra: 7.0.1 + glob: 7.1.7 + js-sha3: 0.8.0 + lodash: 4.17.21 + mkdirp: 1.0.4 + prettier: 2.8.8 + ts-command-line-args: 2.5.1 + ts-essentials: 7.0.3(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + typedoc@0.27.7(typescript@5.7.3): dependencies: '@gerrit0/mini-shiki': 1.27.2 @@ -7325,6 +7575,10 @@ snapshots: typescript@5.7.3: {} + typical@4.0.0: {} + + typical@5.2.0: {} + uWebSockets.js@https://codeload.github.com/uNetworking/uWebSockets.js/tar.gz/6609a88ffa9a16ac5158046761356ce03250a0df: optional: true @@ -7359,6 +7613,8 @@ snapshots: imurmurhash: 0.1.4 optional: true + universalify@0.1.2: {} + unixify@1.0.0: dependencies: normalize-path: 2.1.1 @@ -7421,6 +7677,11 @@ snapshots: string-width: 4.2.3 optional: true + wordwrapjs@4.0.1: + dependencies: + reduce-flatten: 2.0.0 + typical: 5.2.0 + wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 diff --git a/packages/sdk/src/abi/AgentsRegistry.abi.json b/packages/sdk/src/abi/AgentsRegistry.json similarity index 73% rename from packages/sdk/src/abi/AgentsRegistry.abi.json rename to packages/sdk/src/abi/AgentsRegistry.json index 17f99cd..5ab28c6 100644 --- a/packages/sdk/src/abi/AgentsRegistry.abi.json +++ b/packages/sdk/src/abi/AgentsRegistry.json @@ -125,11 +125,11 @@ { "indexed": false, "internalType": "uint256", - "name": "newReputation", + "name": "proposalId", "type": "uint256" } ], - "name": "ReputationUpdated", + "name": "ProposalRemoved", "type": "event" }, { @@ -144,38 +144,69 @@ { "indexed": false, "internalType": "uint256", - "name": "name", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "price", "type": "uint256" } ], - "name": "ServiceAdded", + "name": "ProposalUpdated", "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "", + "name": "agent", "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newReputation", + "type": "uint256" } ], - "name": "agents", - "outputs": [ + "name": "ReputationUpdated", + "type": "event" + }, + { + "inputs": [ { - "internalType": "string", - "name": "name", - "type": "string" + "internalType": "address", + "name": "agent", + "type": "address" }, { "internalType": "string", - "name": "agentUri", + "name": "serviceName", "type": "string" }, { - "internalType": "address", - "name": "owner", - "type": "address" - }, + "internalType": "uint256", + "name": "servicePrice", + "type": "uint256" + } + ], + "name": "addProposal", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { "internalType": "address", "name": "agent", @@ -183,27 +214,30 @@ }, { "internalType": "uint256", - "name": "reputation", + "name": "_rating", "type": "uint256" - }, + } + ], + "name": "addRating", + "outputs": [ { - "internalType": "bool", - "name": "isRegistered", - "type": "bool" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "_agent", + "name": "", "type": "address" } ], - "name": "getAgentData", + "name": "agents", "outputs": [ { "internalType": "string", @@ -229,6 +263,11 @@ "internalType": "uint256", "name": "reputation", "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalRatings", + "type": "uint256" } ], "stateMutability": "view", @@ -237,37 +276,47 @@ { "inputs": [ { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" + "internalType": "address", + "name": "_agent", + "type": "address" } ], - "name": "getProposal", + "name": "getAgentData", "outputs": [ { "components": [ { - "internalType": "address", - "name": "issuer", - "type": "address" + "internalType": "string", + "name": "name", + "type": "string" }, { "internalType": "string", - "name": "serviceName", + "name": "agentUri", "type": "string" }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "agent", + "type": "address" + }, { "internalType": "uint256", - "name": "price", + "name": "reputation", "type": "uint256" }, { "internalType": "uint256", - "name": "proposalId", + "name": "totalRatings", "type": "uint256" } ], - "internalType": "struct IProposalStruct.Proposal", + "internalType": "struct AgentsRegistry.AgentData", "name": "", "type": "tuple" } @@ -278,17 +327,44 @@ { "inputs": [ { - "internalType": "address", - "name": "agent", - "type": "address" + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" } ], - "name": "getReputation", + "name": "getProposal", "outputs": [ { - "internalType": "uint256", + "components": [ + { + "internalType": "address", + "name": "issuer", + "type": "address" + }, + { + "internalType": "string", + "name": "serviceName", + "type": "string" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "isActive", + "type": "bool" + } + ], + "internalType": "struct IProposalStruct.ServiceProposal", "name": "", - "type": "uint256" + "type": "tuple" } ], "stateMutability": "view", @@ -302,12 +378,12 @@ "type": "address" } ], - "name": "isRegistered", + "name": "getReputation", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], "stateMutability": "view", @@ -368,6 +444,11 @@ "internalType": "uint256", "name": "proposalId", "type": "uint256" + }, + { + "internalType": "bool", + "name": "isActive", + "type": "bool" } ], "stateMutability": "view", @@ -402,6 +483,30 @@ } ], "name": "registerAgent", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "agent", + "type": "address" + }, + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "removeProposal", "outputs": [ { "internalType": "bool", @@ -436,11 +541,11 @@ "inputs": [ { "internalType": "address", - "name": "newOwner", + "name": "_serviceRegistry", "type": "address" } ], - "name": "transferOwnership", + "name": "setServiceRegistry", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -449,18 +554,39 @@ "inputs": [ { "internalType": "address", - "name": "agent", + "name": "_taskRegistry", "type": "address" - }, + } + ], + "name": "setTaskRegistry", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "taskRegistry", + "outputs": [ { - "internalType": "uint256", - "name": "_reputation", - "type": "uint256" + "internalType": "address", + "name": "", + "type": "address" } ], - "name": "updateReputation", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } -] \ No newline at end of file +] diff --git a/packages/sdk/src/abi/ServiceRegistry.abi.json b/packages/sdk/src/abi/ServiceRegistry.json similarity index 88% rename from packages/sdk/src/abi/ServiceRegistry.abi.json rename to packages/sdk/src/abi/ServiceRegistry.json index 9cdae83..6ee85bd 100644 --- a/packages/sdk/src/abi/ServiceRegistry.abi.json +++ b/packages/sdk/src/abi/ServiceRegistry.json @@ -49,15 +49,15 @@ "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "uint256", - "name": "serviceId", - "type": "uint256" + "indexed": false, + "internalType": "string", + "name": "name", + "type": "string" }, { "indexed": false, "internalType": "string", - "name": "name", + "name": "category", "type": "string" }, { @@ -74,15 +74,15 @@ "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "uint256", - "name": "serviceId", - "type": "uint256" + "indexed": false, + "internalType": "string", + "name": "name", + "type": "string" }, { "indexed": false, "internalType": "string", - "name": "name", + "name": "category", "type": "string" }, { @@ -270,5 +270,28 @@ "outputs": [], "stateMutability": "nonpayable", "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "category", + "type": "string" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "updateService", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" } -] \ No newline at end of file +] diff --git a/packages/sdk/src/abi/TaskRegistry.abi.json b/packages/sdk/src/abi/TaskRegistry.json similarity index 82% rename from packages/sdk/src/abi/TaskRegistry.abi.json rename to packages/sdk/src/abi/TaskRegistry.json index f7530f0..c903f19 100644 --- a/packages/sdk/src/abi/TaskRegistry.abi.json +++ b/packages/sdk/src/abi/TaskRegistry.json @@ -81,10 +81,15 @@ "internalType": "uint256", "name": "proposalId", "type": "uint256" + }, + { + "internalType": "bool", + "name": "isActive", + "type": "bool" } ], "indexed": false, - "internalType": "struct IProposalStruct.Proposal", + "internalType": "struct IProposalStruct.ServiceProposal", "name": "proposal", "type": "tuple" } @@ -111,6 +116,19 @@ "name": "TaskAssigned", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "taskId", + "type": "uint256" + } + ], + "name": "TaskCanceled", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -167,6 +185,25 @@ "name": "TaskCreated", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "taskId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "rating", + "type": "uint8" + } + ], + "name": "TaskRated", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -199,6 +236,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "taskId", + "type": "uint256" + } + ], + "name": "cancelTask", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -263,6 +313,16 @@ "internalType": "uint256", "name": "proposalId", "type": "uint256" + }, + { + "internalType": "string", + "name": "result", + "type": "string" + }, + { + "internalType": "uint8", + "name": "rating", + "type": "uint8" } ], "internalType": "struct TaskRegistry.TaskData", @@ -352,6 +412,16 @@ "internalType": "uint256", "name": "proposalId", "type": "uint256" + }, + { + "internalType": "string", + "name": "result", + "type": "string" + }, + { + "internalType": "uint8", + "name": "rating", + "type": "uint8" } ], "internalType": "struct TaskRegistry.TaskData", @@ -418,6 +488,24 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "taskId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "rating", + "type": "uint8" + } + ], + "name": "rateTask", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], "name": "renounceOwnership", @@ -464,6 +552,16 @@ "internalType": "uint256", "name": "proposalId", "type": "uint256" + }, + { + "internalType": "string", + "name": "result", + "type": "string" + }, + { + "internalType": "uint8", + "name": "rating", + "type": "uint8" } ], "stateMutability": "view", @@ -482,4 +580,4 @@ "stateMutability": "nonpayable", "type": "function" } -] \ No newline at end of file +] diff --git a/packages/sdk/src/ensemble.ts b/packages/sdk/src/ensemble.ts index 6edb74e..cbcc8b8 100644 --- a/packages/sdk/src/ensemble.ts +++ b/packages/sdk/src/ensemble.ts @@ -1,62 +1,65 @@ import { ethers } from "ethers"; import { PinataSDK } from "pinata-web3"; -import { AgentData, AgentMetadata, ContractConfig, TaskData, TaskCreationParams, Service } from "./types"; -import { ContractService } from "./services/ContractService"; +import { + AgentData, + AgentMetadata, + ContractConfig, + TaskData, + TaskCreationParams, + Service, +} from "./types"; import { TaskService } from "./services/TaskService"; import { AgentService } from "./services/AgentService"; import { ServiceRegistryService } from "./services/ServiceRegistryService"; -import TaskRegistryABI from './abi/TaskRegistry.abi.json'; -import AgentRegistryABI from './abi/AgentsRegistry.abi.json'; -import ServiceRegistryABI from './abi/ServiceRegistry.abi.json'; +import { + AgentsRegistry__factory, + ServiceRegistry__factory, + TaskRegistry__factory, +} from "../typechain"; export class Ensemble { - protected contractService: ContractService; - private taskService: TaskService; - private agentService: AgentService; - private serviceRegisterService: ServiceRegistryService; - - - /** - * Constructor for the Ensemble class. - * @param {ContractConfig} config - The configuration for the Ensemble. - * @param {ethers.Signer} signer - The signer for the Ensemble. - */ - constructor(config: ContractConfig, signer: ethers.Signer, ipfsSDK: PinataSDK) { - - this.contractService = new ContractService( - new ethers.JsonRpcProvider(config.network.rpcUrl), - signer - ); - - // Initialize services - const serviceRegistry = this.contractService.createContract( + constructor( + private readonly taskService: TaskService, + private readonly agentService: AgentService, + private readonly serviceRegistryService: ServiceRegistryService + ) {} + + static create( + config: ContractConfig, + signer: ethers.Signer, + ipfsSDK: PinataSDK + ) { + const serviceRegistry = ServiceRegistry__factory.connect( config.serviceRegistryAddress, - ServiceRegistryABI + signer ); - const agentRegistry = this.contractService.createContract( + const agentRegistry = AgentsRegistry__factory.connect( config.agentRegistryAddress, - AgentRegistryABI + signer ); - const taskRegistry = this.contractService.createContract( + const taskRegistry = TaskRegistry__factory.connect( config.taskRegistryAddress, - TaskRegistryABI + signer ); - this.serviceRegisterService = new ServiceRegistryService(serviceRegistry); - this.agentService = new AgentService(agentRegistry, signer, ipfsSDK); - this.taskService = new TaskService(taskRegistry, this.agentService); + + const serviceRegistryService = new ServiceRegistryService(serviceRegistry); + const agentService = new AgentService(agentRegistry, signer, ipfsSDK); + const taskService = new TaskService(taskRegistry, agentService); + + return new Ensemble(taskService, agentService, serviceRegistryService); } /** * Starts the Ensemble subscription to the task service. */ async start() { - this.taskService.subscribe() + this.taskService.subscribe(); } async stop() { - this.taskService.unsubscribe() + this.taskService.unsubscribe(); } /** @@ -80,9 +83,9 @@ export class Ensemble { /** * Gets tasks by issuer. * @param {string} issuer - The owner of the tasks. - * @returns {Promise} A promise that resolves to the task IDs. + * @returns {Promise} A promise that resolves to the task IDs. */ - async getTasksByIssuer(issuer: string): Promise { + async getTasksByIssuer(issuer: string): Promise { return this.taskService.getTasksByIssuer(issuer); } @@ -95,18 +98,46 @@ export class Ensemble { async completeTask(taskId: string, result: string): Promise { return this.taskService.completeTask(taskId, result); } - + + /** + * Assigns a rating to a task. + * @param {string} taskId - The ID of the task. + * @param {number} rating - The rating. + * @returns {Promise} A promise that resolves when the task is assigned. + */ + async rateTask(taskId: string, rating: number): Promise { + return this.taskService.rateTask(taskId, rating); + } + + /** + * Cancels a task. + * @param {string} taskId - The ID of the task. + * @returns {Promise} A promise that resolves when the task is canceled. + */ + async cancelTask(taskId: string): Promise { + return this.taskService.cancelTask(taskId); + } + /** * Registers a new agent. - * @param {string} address - The address of the agent.. - * @param {string} name - The name of the agent. + * @param {string} address - The address of the agent. * @param {AgentMetadata} metadata - The metadata of the agent. * @param {string} serviceName - The name of the service. * @param {number} servicePrice - The price of the service. * @returns {Promise} A promise that resolves to the agent address. */ - async registerAgent(address: string, metadata: AgentMetadata, serviceName: string, servicePrice: number): Promise { - return this.agentService.registerAgent(address, metadata, serviceName, servicePrice); + async registerAgent( + address: string, + metadata: AgentMetadata, + serviceName: string, + servicePrice: number + ): Promise { + return this.agentService.registerAgent( + address, + metadata, + serviceName, + servicePrice + ); } /** @@ -126,30 +157,14 @@ export class Ensemble { return this.agentService.getAgent(agentId); } - /** - * Gets all the agents for a specific service. - * @param {string} serviceId - The id of the service. - * @returns {Promise} A promise that resolves to a list of agent data. - */ - async getAgentsByServiceId(serviceId: string): Promise { - return this.agentService.getAgentsByServiceId(serviceId); - } - - /** - * Checks if an agent is registered. - * @param {string} agentAddress - The address of the agent. - * @returns {Promise} A promise that resolves to a boolean indicating if the agent is registered. - */ - async isAgentRegistered(agentId: string): Promise { - return this.agentService.isAgentRegistered(agentId); - } - /** * Sets a listener for new tasks. * @param {function} listener - The listener function. * @returns {Promise} A promise that resolves when the listener is set. */ - async setOnNewTaskListener(listener: (task: TaskData) => void) { + async setOnNewTaskListener( + listener: (task: TaskData) => void + ): Promise { return this.taskService.setOnNewTaskListener(listener); } @@ -159,7 +174,7 @@ export class Ensemble { * @returns {Promise} A promise that resolves to a boolean indicating if the service is registered. */ async registerService(service: Service): Promise { - return this.serviceRegisterService.registerService(service); + return this.serviceRegistryService.registerService(service); } /** @@ -168,8 +183,8 @@ export class Ensemble { * @returns {Promise} A promise that resolves to the service. */ async getService(name: string): Promise { - return this.serviceRegisterService.getService(name); + return this.serviceRegistryService.getService(name); } -} +} -export default Ensemble; \ No newline at end of file +export default Ensemble; diff --git a/packages/sdk/src/index.ts b/packages/sdk/src/index.ts new file mode 100644 index 0000000..4f03da0 --- /dev/null +++ b/packages/sdk/src/index.ts @@ -0,0 +1,13 @@ +import Ensemble from "./ensemble" +import { AgentService } from "./services/AgentService" +import { TaskService } from "./services/TaskService" +import { ContractService } from "./services/ContractService" +import { ServiceRegistryService } from "./services/ServiceRegistryService" + +export { + Ensemble, + AgentService, + TaskService, + ContractService, + ServiceRegistryService +} diff --git a/packages/sdk/src/services/AgentService.ts b/packages/sdk/src/services/AgentService.ts index e7c34f6..7fd3bdf 100644 --- a/packages/sdk/src/services/AgentService.ts +++ b/packages/sdk/src/services/AgentService.ts @@ -1,19 +1,22 @@ import { ethers } from "ethers"; import { AgentData, Proposal, AgentMetadata } from "../types"; -import { AgentAlreadyRegisteredError, ServiceNotRegisteredError } from "../errors"; +import { + AgentAlreadyRegisteredError, + ServiceNotRegisteredError, +} from "../errors"; import { PinataSDK } from "pinata-web3"; +import { AgentsRegistry } from "../../typechain"; export class AgentService { - constructor( - private agentRegistry: ethers.Contract, - private signer: ethers.Signer, - private ipfsSDK: PinataSDK + private readonly agentRegistry: AgentsRegistry, + private readonly signer: ethers.Signer, + private readonly ipfsSDK: PinataSDK ) {} /** - * Gets the address of the agent. - * @returns {Promise} A promise that resolves to the agent address. + * Gets the address of the signer. + * @returns {Promise} A promise that resolves to the signer address. */ async getAddress(): Promise { return this.signer.getAddress(); @@ -27,34 +30,31 @@ export class AgentService { * @param {number} servicePrice - The price of the service. * @returns {Promise} A promise that resolves to the agent address. */ - async registerAgent(address: string, metadata: AgentMetadata, serviceName: string, servicePrice: number): Promise { + async registerAgent( + address: string, + metadata: AgentMetadata, + serviceName: string, + servicePrice: number + ): Promise { try { - debugger console.log(`registering agent ${address} with metadata: ${metadata}`); + const uploadResponse = await this.ipfsSDK.upload.json(metadata); - metadata - const agentURI = `ipfs://${uploadResponse.IpfsHash}` + const agentURI = `ipfs://${uploadResponse.IpfsHash}`; const tx = await this.agentRegistry.registerAgent( - address, - metadata.name, - agentURI, - serviceName, + address, + metadata.name, + agentURI, + serviceName, servicePrice ); + console.log(`transaction to register agent was sent. tx: ${tx}`); - const receipt = await tx.wait(); - - if (receipt.status === 0) { - throw new Error("Transaction reverted: Agent registration failed"); - } - const event = this.findEventInReceipt(receipt, "AgentRegistered"); - if (!event?.args) { - throw new Error("Agent registration failed: Event not emitted"); - } + await tx.wait(); + return true; - } catch (error: any) { console.error({ error }); if (error.reason === "Service not registered") { @@ -65,21 +65,59 @@ export class AgentService { throw error; } } -} + } + /** + * Add a proposal for an agent. + * @param {string} agentAddress The address of the agent. + * @param {string} serviceName The name of the service. + * @param {number} servicePrice The price of the service. + * @returns {Promise} A promise that resolves to a boolean indicating if the proposal was added. + */ + async addProposal( + agentAddress: string, + serviceName: string, + servicePrice: number + ): Promise { + try { + const tx = await this.agentRegistry.addProposal( + agentAddress, + serviceName, + servicePrice + ); - findEventInReceipt(receipt: any, eventName: string): ethers.EventLog { - const events = receipt.logs.map((log: any) => { - try { - const event = this.agentRegistry.interface.parseLog(log); - return event; - } catch (e) { - console.error('error:', e); - return null; - } - }).filter((event: any) => event !== null); - const event = events?.find((e: { name: string }) => e.name === eventName); - return event; + const receipt = await tx.wait(); + + return receipt ? true : false; + } catch (error) { + console.error(error); + return false; + } + } + + /** + * Remove the proposal of an agent. + * @param {string} agentAddress The address of the agent. + * @param {string} proposalId The ID of the proposal. + * @returns {Promise} A promise that resolves to a boolean indicating if the proposal was removed. + */ + async removeProposal( + agentAddress: string, + proposalId: string + ): Promise { + try { + const tx = await this.agentRegistry.removeProposal( + agentAddress, + proposalId + ); + + const receipt = await tx.wait(); + + return receipt ? true : false; + } catch (error) { + console.error(error); + return false; + } } /** @@ -88,58 +126,48 @@ export class AgentService { * @returns {Promise} A promise that resolves to the agent data. */ async getAgent(agentAddress: string): Promise { - const [name, uri, address, reputation, proposals] = await this.agentRegistry.getAgentData(agentAddress); - const isRegistered = await this.agentRegistry.isRegistered(agentAddress); + const { name, agentUri, owner, agent, reputation, totalRatings } = + await this.agentRegistry.getAgentData(agentAddress); return { name, - uri, - address, + agentUri, + owner, + agent, reputation, - proposals, - isRegistered + totalRatings, }; } /** - * Checks if an agent is registered. - * @param {string} agentAddress - The address of the agent. - * @returns {Promise} A promise that resolves to a boolean indicating if the agent is registered. + * Gets a proposal by ID. + * @param {string} proposalId - The ID of the proposal. + * @returns {Promise} A promise that resolves to the proposal. */ - async isAgentRegistered(agentAddress: string): Promise { - return await this.agentRegistry.isRegistered(agentAddress); + async getProposal(proposalId: string): Promise { + const { + proposalId: id, + issuer, + price, + serviceName, + isActive, + } = await this.agentRegistry.getProposal(proposalId); + + return { + id, + issuer, + price, + serviceName, + isActive, + }; } - /** - * Gets all the agents for a specific service. - * @param {string} serviceName - The name of the service. - * @returns {Promise} A promise that resolves to a list of agent data. + /** + * The reputation of an agent. + * @param {string} agentAddress The address of the agent + * @returns {Promise} A promise that resolves to the reputation of the agent. */ - async getAgentsByServiceId(serviceId: string): Promise { - const agentAddresses: string[] = await this.agentRegistry.getAgentsByServiceId(serviceId); - - const agents: AgentData[] = []; - for (const address of agentAddresses) { - const agent = await this.agentRegistry.getAgentData(address); - agents.push({ - name: agent[0], - uri: agent[1], - owner: agent[2], - address: agent[3], - reputation: agent[4], - isRegistered: true, - proposals: agent[5] - }); - } - return agents; - } - - /** - * Gets a proposal by ID. - * @param {string} proposalId - The ID of the proposal. - * @returns {Promise} A promise that resolves to the proposal. - */ - async getProposal(proposalId: string): Promise { - return this.agentRegistry.getProposal(proposalId); - } -} \ No newline at end of file + async getReputation(agentAddress: string): Promise { + return this.agentRegistry.getReputation(agentAddress); + } +} diff --git a/packages/sdk/src/services/ServiceRegistryService.ts b/packages/sdk/src/services/ServiceRegistryService.ts index 86c4395..2b8317f 100644 --- a/packages/sdk/src/services/ServiceRegistryService.ts +++ b/packages/sdk/src/services/ServiceRegistryService.ts @@ -1,56 +1,46 @@ -import { ethers } from "ethers"; import { Service } from "../types"; import { ServiceAlreadyRegisteredError } from "../errors"; +import { ServiceRegistry } from "../../typechain"; export class ServiceRegistryService { - private serviceRegistry: ethers.Contract; - - constructor(serviceRegistry: ethers.Contract) { - this.serviceRegistry = serviceRegistry; - } - - - /** - * @param service The service to register - * @returns A promise that resolves when the service is registered - */ - async registerService(service: Service): Promise { - try { - console.log(`Registering service: ${service.name}`); - - const tx = await this.serviceRegistry.registerService(service.name, service.category, service.description); - console.log(`Transaction sent for service ${service.name}: ${tx.hash}`); - - const receipt = await tx.wait(); - console.log(`Transaction confirmed for service ${service.name}: ${receipt.transactionHash}`); - - return true; - - } catch(error: any) { - console.error(`Error registering service ${service.name}:`, error); - if (error.reason === "Service already registered") { - throw new ServiceAlreadyRegisteredError(service.name); - } - throw error; - } - } - /** - * Gets a service by name. - * @param {string} name - The name of the service. - * @returns {Promise} A promise that resolves to the service. - */ - async getService(name: string): Promise { - const service = await this.serviceRegistry.getService(name); - return service; - } - - // async getAllServices(): Promise { - // const services = await this.serviceRegistry.getAllServices(); - // return services.map((service: any) => ({ - // name: service.name, - // category: service.category, - // description: service.description - // })); - // } - -} \ No newline at end of file + constructor(private readonly serviceRegistry: ServiceRegistry) {} + + /** + * @param service The service to register + * @returns A promise that resolves when the service is registered + */ + async registerService(service: Service): Promise { + try { + console.log(`Registering service: ${service.name}`); + + const tx = await this.serviceRegistry.registerService( + service.name, + service.category, + service.description + ); + console.log(`Transaction sent for service ${service.name}: ${tx.hash}`); + + const receipt = await tx.wait(); + console.log( + `Transaction confirmed for service ${service.name}: ${receipt?.hash}` + ); + + return true; + } catch (error: any) { + console.error(`Error registering service ${service.name}:`, error); + if (error.reason === "Service already registered") { + throw new ServiceAlreadyRegisteredError(service.name); + } + throw error; + } + } + /** + * Gets a service by name. + * @param {string} name - The name of the service. + * @returns {Promise} A promise that resolves to the service. + */ + async getService(name: string): Promise { + const service = await this.serviceRegistry.getService(name); + return service; + } +} diff --git a/packages/sdk/src/services/TaskService.ts b/packages/sdk/src/services/TaskService.ts index 793cc33..7305ac1 100644 --- a/packages/sdk/src/services/TaskService.ts +++ b/packages/sdk/src/services/TaskService.ts @@ -1,17 +1,16 @@ -import { BigNumberish, ethers } from "ethers"; +import { ethers } from "ethers"; import { TaskCreationParams, TaskData, TaskStatus } from "../types"; import { ProposalNotFoundError } from "../errors"; import { AgentService } from "./AgentService"; +import { TaskRegistry } from "../../typechain"; export class TaskService { - private taskRegistry: ethers.Contract; - protected onNewTask: (task: TaskData) => void = () => {}; - agentService: AgentService; - - constructor(taskRegistry: ethers.Contract, agentService: any) { - this.taskRegistry = taskRegistry; - this.agentService = agentService; - } + private onNewTask: (task: TaskData) => void = () => {}; + + constructor( + private readonly taskRegistry: TaskRegistry, + private readonly agentService: AgentService + ) {} /** * Creates a new task. @@ -21,11 +20,15 @@ export class TaskService { async createTask(params: TaskCreationParams): Promise { try { const proposal = await this.agentService.getProposal(params.proposalId); + const tx = await this.taskRegistry.createTask( - params.prompt, params.proposalId, - { value: proposal.price }); + params.prompt, + params.proposalId, + { value: proposal.price } + ); const receipt = await tx.wait(); - + + const event = this.findEventInReceipt(receipt, "TaskCreated"); // if (!event?.args?.[1]) { // throw new Error("Task creation failed: No task address in event"); @@ -33,13 +36,14 @@ export class TaskService { // const taskId = event.args[1]; const taskId = event.args[2]; const prompt = event.args[4]; + return { id: taskId, assignee: event.args[1], prompt: prompt, - status: TaskStatus.CREATED, + status: BigInt(TaskStatus.CREATED), issuer: event.args[0], - proposalId: params.proposalId + proposalId: BigInt(params.proposalId), }; } catch (error: any) { // console.error("Task creation failed:", error); @@ -56,7 +60,8 @@ export class TaskService { * @returns {Promise} A promise that resolves to the task data. */ async getTaskData(taskId: string): Promise { - const [id, prompt, issuer, status, assignee, proposalId] = await this.taskRegistry.tasks(taskId); + const { id, prompt, issuer, status, assignee, proposalId, rating } = + await this.taskRegistry.tasks(taskId); return { id, @@ -64,16 +69,17 @@ export class TaskService { assignee: assignee || undefined, status, issuer, - proposalId: proposalId + rating, + proposalId, }; } /** * Gets tasks by issuer. * @param {string} issuer - The issuer of the tasks. - * @returns {Promise} A promise that resolves to the task IDs. + * @returns {Promise} A promise that resolves to the task IDs. */ - async getTasksByIssuer(issuer: string): Promise { + async getTasksByIssuer(issuer: string): Promise { return this.taskRegistry.getTasksByIssuer(issuer); } @@ -93,17 +99,60 @@ export class TaskService { } } + /** + * Assigns a rating to a task. + * @param {string} taskId - The ID of the task. + * @param {number} rating - The rating. + * @returns {Promise} A promise that resolves when the task is assigned. + */ + async rateTask(taskId: string, rating: number): Promise { + try { + const tx = await this.taskRegistry.rateTask(taskId, rating); + await tx.wait(); + } catch (error) { + console.error("Rating task failed:", error); + throw error; + } + } + + /** + * Cancels a task. + * @param {string} taskId - The ID of the task. + * @returns {Promise} A promise that resolves when the task is canceled. + */ + async cancelTask(taskId: string): Promise { + try { + const tx = await this.taskRegistry.cancelTask(taskId); + await tx.wait(); + } catch (error) { + console.error("Canceling task failed:", error); + throw error; + } + } + /** * Subscribes to new task creation events. */ public subscribe() { console.log("Subscribing to TaskCreated events"); const filter = this.taskRegistry.filters.TaskCreated(); - this.taskRegistry.on(filter, ({ args: [ issuer, assignee, taskId, proposalId, prompt ] }) => { - console.log(`New Task Created Event => Issuer: ${issuer} - Assignee: ${assignee} - TaskId: ${taskId} - ProposalId: ${proposalId} - Prompt: ${prompt}`); - - this.onNewTask({ issuer, assignee, id: taskId, prompt, status: TaskStatus.CREATED, proposalId: issuer }); - }); + + this.taskRegistry.on( + filter, + (issuer, assignee, taskId, proposalId, prompt) => { + console.log( + `New Task Created Event => Issuer: ${issuer} - Assignee: ${assignee} - TaskId: ${taskId} - ProposalId: ${proposalId} - Prompt: ${prompt}` + ); + + this.onNewTask({ + issuer, + id: taskId, + prompt, + status: BigInt(TaskStatus.CREATED), + proposalId + }); + } + ); } /** @@ -120,21 +169,23 @@ export class TaskService { */ setOnNewTaskListener(listener: (task: TaskData) => void) { this.onNewTask = listener; - } + } findEventInReceipt(receipt: any, eventName: string): ethers.EventLog { - const events = receipt.logs.map((log: any) => { - try { - const event = this.taskRegistry.interface.parseLog(log); - return event; - } catch (e) { - console.error('error:', e); - return null; - } - }).filter((event: any) => event !== null); + const events = receipt.logs + .map((log: any) => { + try { + const event = this.taskRegistry.interface.parseLog(log); + return event; + } catch (e) { + console.error("error:", e); + return null; + } + }) + .filter((event: any) => event !== null); const event = events?.find((e: { name: string }) => e.name === eventName); - return event + return event; } // ... other task-related methods -} \ No newline at end of file +} diff --git a/packages/sdk/src/types.ts b/packages/sdk/src/types.ts index e6f5efb..3f5eb35 100644 --- a/packages/sdk/src/types.ts +++ b/packages/sdk/src/types.ts @@ -44,23 +44,25 @@ export enum TaskStatus { CREATED, ASSIGNED, COMPLETED, - FAILED + CANCELED } export interface TaskData { - id: string; + id: bigint; prompt: string; assignee?: string; - status: TaskStatus; + status: bigint; issuer: string; - proposalId: string; + proposalId: bigint; + rating?: bigint; } export interface Proposal { - id: string; + id: bigint; + issuer: string; price: BigNumberish; - taskId: string; - agent: string; + serviceName: string; + isActive: boolean; } export interface Skill { @@ -76,12 +78,11 @@ export interface Service { export interface AgentData { name: string; - uri: string; - owner?: string; - address: string; + agentUri: string; + owner: string; + agent: string; reputation: BigNumberish; - isRegistered?: boolean; - proposals: Proposal[]; + totalRatings: BigNumberish; } export interface TaskCreationParams { diff --git a/packages/sdk/test/agent.test.ts b/packages/sdk/test/agent.test.ts deleted file mode 100644 index 0a03859..0000000 --- a/packages/sdk/test/agent.test.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { Ensemble } from "../src"; -import { AgentAlreadyRegisteredError, ServiceNotRegisteredError } from "../src/errors"; -import { setupSdk } from "./utils"; - - -describe("AgentService Integration Tests", () => { - let sdk: Ensemble; - - beforeEach(async () => { - sdk = setupSdk(); - await sdk.start(); - }); - - it("should fail to register an agent without a service", async () => { - const agentName = "Agent-test"; - const agentUri = "https://example.com"; - const agentAddress = process.env.AGENT_ADDRESS!; - const serviceName = "Bull-Post-test"; - const servicePrice = 100; - - await expect(sdk.registerAgent(agentAddress, agentName, agentUri, serviceName, servicePrice)) - .rejects - .toThrow(ServiceNotRegisteredError); - }); - - it("should register an agent successfully", async () => { - - const agentName = "Agent1"; - const agentUri = "https://example.com"; - const agentAddress = process.env.AGENT_ADDRESS!; - const serviceName = "Bull-Post"; - const servicePrice = 100; - - await sdk.registerService({ - name: serviceName, - category: "Social Service", - description: "This is a KOL service." - }); - - const isRegistered = await sdk.registerAgent(agentAddress, agentName, agentUri, serviceName, servicePrice); - - expect(isRegistered).toEqual(true); - - const agentData = await sdk.getAgent(agentAddress); - - expect(agentData.name).toEqual(agentName); - expect(agentData.uri).toEqual(agentUri); - // TODO: fix this - // expect(agentData.proposals[0].price).toEqual(serviceName); - // expect(agentData.proposals[0].agent).toEqual(servicePrice); - }); - - it("should not register the same agent twice", async () => { - const agentName = "Agent-double-register"; - const agentUri = "https://example.com"; - const agentAddress = process.env.AGENT_ADDRESS!; - const serviceName = "Bull-Post"; - const servicePrice = 100; - - await expect(sdk.registerAgent(agentAddress, agentName, agentUri, serviceName, servicePrice)) - .rejects - .toThrow(AgentAlreadyRegisteredError); - - // const isRegistered = await sdk.registerAgent(agentName, agentUri, agentAddress, serviceName, servicePrice); - - // expect(isRegistered).toEqual(true); - - // await expect(sdk.registerAgent(agentName, agentUri, agentAddress, serviceName, servicePrice)) - // .rejects - // .toThrow(AgentAlreadyRegisteredError); - }); -}); diff --git a/packages/sdk/test/ensemble.test.ts b/packages/sdk/test/ensemble.test.ts new file mode 100644 index 0000000..b0d0da9 --- /dev/null +++ b/packages/sdk/test/ensemble.test.ts @@ -0,0 +1,206 @@ +import { + AgentService, + ContractService, + Ensemble, + ServiceRegistryService, + TaskService, +} from "../src"; +import { + AgentAlreadyRegisteredError, + ServiceAlreadyRegisteredError, + ServiceNotRegisteredError, +} from "../src/errors"; +import { AgentMetadata } from "../src/types"; + +describe("Ensemble Unit Tests", () => { + let sdk: Ensemble; + let agentService: jest.Mocked; + let serviceRegistryService: jest.Mocked; + let taskService: jest.Mocked; + + beforeEach(async () => { + const contractServiceMock = {} as unknown as jest.Mocked; + + taskService = { + createTask: jest.fn(), + } as unknown as jest.Mocked; + + agentService = { + registerAgent: jest.fn(), + } as unknown as jest.Mocked; + + serviceRegistryService = { + registerService: jest.fn(), + } as unknown as jest.Mocked; + + sdk = new Ensemble( + taskService, + agentService, + serviceRegistryService + ); + }); + + it("should fail to register an agent without a service", async () => { + const agentMetadata: AgentMetadata = { + name: "Agent-test", + description: "This is an agent for testing.", + imageURI: "https://example.com/image.jpg", + socials: { + twitter: "https://twitter.com/agent-test", + telegram: "https://t.me/agent-test", + dexscreener: "https://dexscreener.com/agent-test", + }, + attributes: [ + { + trait_type: "Test", + value: "Test", + }, + ], + }; + const agentAddress = "0x123"; + const serviceName = "Bull-Post-test"; + const servicePrice = 100; + + agentService.registerAgent.mockRejectedValueOnce( + new ServiceNotRegisteredError("Service not registered") + ); + + await expect( + sdk.registerAgent(agentAddress, agentMetadata, serviceName, servicePrice) + ).rejects.toThrow(ServiceNotRegisteredError); + }); + + it("should register an agent successfully", async () => { + const agentMetadata: AgentMetadata = { + name: "Agent-test", + description: "This is an agent for testing.", + imageURI: "https://example.com/image.jpg", + socials: { + twitter: "https://twitter.com/agent-test", + telegram: "https://t.me/agent-test", + dexscreener: "https://dexscreener.com/agent-test", + }, + attributes: [ + { + trait_type: "Test", + value: "Test", + }, + ], + }; + + const agentAddress = process.env.AGENT_ADDRESS!; + const serviceName = "Bull-Post"; + const servicePrice = 100; + + agentService.registerAgent.mockResolvedValueOnce(true); + + const isRegistered = await sdk.registerAgent( + agentAddress, + agentMetadata, + serviceName, + servicePrice + ); + + expect(isRegistered).toEqual(true); + }); + + it("should not register the same agent twice", async () => { + const agentMetadata: AgentMetadata = { + name: "Agent-test", + description: "This is an agent for testing.", + imageURI: "https://example.com/image.jpg", + socials: { + twitter: "https://twitter.com/agent-test", + telegram: "https://t.me/agent-test", + dexscreener: "https://dexscreener.com/agent-test", + }, + attributes: [ + { + trait_type: "Test", + value: "Test", + }, + ], + }; + + agentService.registerAgent.mockRejectedValueOnce( + new AgentAlreadyRegisteredError("Agent already registered") + ); + + const agentAddress = process.env.AGENT_ADDRESS!; + const serviceName = "Bull-Post"; + const servicePrice = 100; + + await expect( + sdk.registerAgent(agentAddress, agentMetadata, serviceName, servicePrice) + ).rejects.toThrow(AgentAlreadyRegisteredError); + }); + + it("should successfully register a service", async () => { + const service = { + name: "Test Service", + category: "Utility", + description: "This is a test service.", + }; + + serviceRegistryService.registerService.mockResolvedValueOnce(true); + + const response = await sdk.registerService(service); + + expect(response).toEqual(true); + }); + + it("should fail to register the same service twice", async () => { + const service = { + name: "Test Service Failed", + category: "Utility", + description: "This is a test service.", + }; + + serviceRegistryService.registerService.mockResolvedValueOnce(true); + serviceRegistryService.registerService.mockRejectedValueOnce( + new ServiceAlreadyRegisteredError(service.name) + ); + + await sdk.registerService(service); + await expect(sdk.registerService(service)).rejects.toThrow( + ServiceAlreadyRegisteredError + ); + }); + + it("should not create a task without a proposal", async () => { + const nonExistentProposalId = "1234"; + + taskService.createTask.mockRejectedValueOnce( + new Error("Proposal not found") + ); + + await expect( + sdk.createTask({ + prompt: "This is a test task.", + proposalId: nonExistentProposalId, + }) + ).rejects.toThrow(Error); + }); + + it("should create a task", async () => { + const proposalId = "0"; + + const task = { + id: BigInt("0"), + prompt: "This is a test task.", + status: BigInt(0), + issuer: process.env.ACCOUNT_ADDRESS!, + proposalId: BigInt(proposalId), + rating: BigInt(0), + }; + + taskService.createTask.mockResolvedValueOnce(task); + + const response = await sdk.createTask({ + prompt: "This is a test task.", + proposalId: proposalId, + }); + + expect(response).toEqual(task); + }); +}); diff --git a/packages/sdk/test/service.test.ts b/packages/sdk/test/service.test.ts deleted file mode 100644 index d283878..0000000 --- a/packages/sdk/test/service.test.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { Ensemble, Service } from "../src"; -import { ServiceAlreadyRegisteredError } from "../src/errors"; -import { setupSdk } from "./utils"; - - -describe("ServiceRegistryService", () => { - let sdk: Ensemble; - - beforeEach(async () => { - sdk = setupSdk(); - }); - - it("should successfully register a service", async () => { - const service: Service = { - name: "Test Service", - category: "Utility", - description: "This is a test service.", - }; - - const response = await sdk.registerService(service); - console.log({ response }); - - const serviceResponse = await sdk.getService("Test Service"); - - expect(serviceResponse.name).toEqual(service.name); - expect(serviceResponse.category).toEqual(service.category); - expect(serviceResponse.description).toEqual(service.description); - }); - - it("should fail to register the same service twice", async () => { - const service: Service = { - name: "Test Service Failed", - category: "Utility", - description: "This is a test service.", - }; - - await sdk.registerService(service); - await expect(sdk.registerService(service)).rejects.toThrow(ServiceAlreadyRegisteredError); - }); - - // it("should get all services", async () => { - // const services = await sdk.getAllServices(); - // console.log(services); - // expect(services.length).toEqual(1); - // }); - -}); diff --git a/packages/sdk/test/task.test.ts b/packages/sdk/test/task.test.ts deleted file mode 100644 index 32e02ce..0000000 --- a/packages/sdk/test/task.test.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { Ensemble } from "../"; -import { setupSdk } from "./utils"; - -describe("TaskService", () => { - let sdk: Ensemble; - - beforeAll(() => { - sdk = setupSdk(); - }); - - afterAll(async() => { - sdk.stop(); - await new Promise((resolve) => setTimeout(resolve, 1000)); - }) - - it("should not create a task without a proposal", async () => { - const nonExistentProposalId = "1234"; - await expect(sdk.createTask({ - prompt: "This is a test task.", - proposalId: nonExistentProposalId - })).rejects.toThrow(Error); - }); - - it("should create a task and verify event logs", async () => { - sdk.start(); - // wait for 1 seconds to allow the SDK to start - await new Promise((resolve) => setTimeout(resolve, 2000)); - - const agentName = "Agent1"; - const agentUri = "https://example.com"; - const agentAddress = process.env.AGENT_ADDRESS!; - const serviceName = "Bull-Post"; - const servicePrice = 100; - - await sdk.registerService({ - name: serviceName, - category: "Social Service", - description: "This is a KOL service." - }); - - const isRegistered = await sdk.registerAgent(agentAddress, agentName, agentUri, serviceName, servicePrice); - expect(isRegistered).toEqual(true); - - - const proposalId = "0"; - const task = await sdk.createTask({ - prompt: "This is a test task.", - proposalId: proposalId - }) - - expect(task.id).toEqual(0n); - expect(task.prompt).toEqual("This is a test task."); - expect(task.status).toEqual(0); - expect(task.issuer).toEqual(process.env.ACCOUNT_ADDRESS!); - expect(task.proposalId).toEqual(proposalId); - - const eventPromise = new Promise((resolve) => { - sdk.setOnNewTaskListener((task) => { - console.log("Received event in the test:", task); - resolve(task); - }); - }); - const newTask = await eventPromise as { prompt: string }; - expect(newTask.prompt).toBe(task.prompt); - }) - - it('should complete a task', async () => { - const agentSdk = setupSdk('agent'); - const result = await agentSdk.completeTask('0', 'Done'); - console.log(result); - - const task = await agentSdk.getTaskData('0'); - console.log(task); - expect(task.status).toBe(2n); - // const task = { - // prompt: 'This is a test task.' - // } - // const newTask = await eventPromise as { prompt: string }; - // expect(newTask.prompt).toBe(task.prompt); - }); -}); \ No newline at end of file diff --git a/packages/sdk/tsconfig.json b/packages/sdk/tsconfig.json index aaa63a3..4a41a0f 100644 --- a/packages/sdk/tsconfig.json +++ b/packages/sdk/tsconfig.json @@ -11,6 +11,4 @@ "forceConsistentCasingInFileNames": true, "resolveJsonModule": true }, - "include": ["src", "jest.config.js", "index.ts", "scripts/data"], - "exclude": ["node_modules", "dist", "test"] - } +} diff --git a/packages/subgraph/abis/AgentsRegistry.json b/packages/subgraph/abis/AgentsRegistry.json index 2c0e6c1..17f99cd 100644 --- a/packages/subgraph/abis/AgentsRegistry.json +++ b/packages/subgraph/abis/AgentsRegistry.json @@ -463,4 +463,4 @@ "stateMutability": "nonpayable", "type": "function" } -] +] \ No newline at end of file diff --git a/packages/subgraph/abis/ServiceRegistry.json b/packages/subgraph/abis/ServiceRegistry.json index 6ee85bd..9cdae83 100644 --- a/packages/subgraph/abis/ServiceRegistry.json +++ b/packages/subgraph/abis/ServiceRegistry.json @@ -49,15 +49,15 @@ "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "string", - "name": "name", - "type": "string" + "indexed": true, + "internalType": "uint256", + "name": "serviceId", + "type": "uint256" }, { "indexed": false, "internalType": "string", - "name": "category", + "name": "name", "type": "string" }, { @@ -74,15 +74,15 @@ "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "string", - "name": "name", - "type": "string" + "indexed": true, + "internalType": "uint256", + "name": "serviceId", + "type": "uint256" }, { "indexed": false, "internalType": "string", - "name": "category", + "name": "name", "type": "string" }, { @@ -270,28 +270,5 @@ "outputs": [], "stateMutability": "nonpayable", "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "category", - "type": "string" - }, - { - "internalType": "string", - "name": "description", - "type": "string" - } - ], - "name": "updateService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" } -] +] \ No newline at end of file diff --git a/packages/subgraph/abis/TaskRegistry.json b/packages/subgraph/abis/TaskRegistry.json index cdeb59d..f13fb0d 100644 --- a/packages/subgraph/abis/TaskRegistry.json +++ b/packages/subgraph/abis/TaskRegistry.json @@ -81,10 +81,15 @@ "internalType": "uint256", "name": "proposalId", "type": "uint256" + }, + { + "internalType": "bool", + "name": "isActive", + "type": "bool" } ], "indexed": false, - "internalType": "struct IProposalStruct.Proposal", + "internalType": "struct IProposalStruct.ServiceProposal", "name": "proposal", "type": "tuple" } @@ -111,6 +116,19 @@ "name": "TaskAssigned", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "taskId", + "type": "uint256" + } + ], + "name": "TaskCanceled", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -167,6 +185,25 @@ "name": "TaskCreated", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "taskId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "rating", + "type": "uint8" + } + ], + "name": "TaskRated", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -199,6 +236,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "taskId", + "type": "uint256" + } + ], + "name": "cancelTask", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -263,6 +313,16 @@ "internalType": "uint256", "name": "proposalId", "type": "uint256" + }, + { + "internalType": "string", + "name": "result", + "type": "string" + }, + { + "internalType": "uint8", + "name": "rating", + "type": "uint8" } ], "internalType": "struct TaskRegistry.TaskData", @@ -352,6 +412,16 @@ "internalType": "uint256", "name": "proposalId", "type": "uint256" + }, + { + "internalType": "string", + "name": "result", + "type": "string" + }, + { + "internalType": "uint8", + "name": "rating", + "type": "uint8" } ], "internalType": "struct TaskRegistry.TaskData", @@ -418,6 +488,24 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "taskId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "rating", + "type": "uint8" + } + ], + "name": "rateTask", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], "name": "renounceOwnership", @@ -464,6 +552,16 @@ "internalType": "uint256", "name": "proposalId", "type": "uint256" + }, + { + "internalType": "string", + "name": "result", + "type": "string" + }, + { + "internalType": "uint8", + "name": "rating", + "type": "uint8" } ], "stateMutability": "view", @@ -482,4 +580,4 @@ "stateMutability": "nonpayable", "type": "function" } -] +] \ No newline at end of file diff --git a/packages/subgraph/schema.graphql b/packages/subgraph/schema.graphql index 1864a6b..1059b50 100644 --- a/packages/subgraph/schema.graphql +++ b/packages/subgraph/schema.graphql @@ -1,5 +1,5 @@ type Service @entity { - id: String! + id: ID! name: String! category: String! description: String! @@ -11,9 +11,9 @@ type Agent @entity { agentUri: String! owner: Bytes! reputation: BigInt! - isRegistered: Boolean! metadata: IpfsMetadata tasks: [Task!]! @derivedFrom(field: "assignee") + proposals: [Proposal!]! @derivedFrom(field: "issuer") } type Task @entity { @@ -24,6 +24,7 @@ type Task @entity { assignee: Agent! proposalId: BigInt! result: String + rating: BigInt! } type Proposal @entity { @@ -31,6 +32,7 @@ type Proposal @entity { issuer: Agent! service: String! price: BigInt! + isRemoved: Boolean! } type IpfsMetadata @entity { @@ -42,4 +44,5 @@ type IpfsMetadata @entity { telegram: String dexscreener: String github: String + website: String } diff --git a/packages/subgraph/src/agents-registry.ts b/packages/subgraph/src/agents-registry.ts index 2240881..d053e13 100644 --- a/packages/subgraph/src/agents-registry.ts +++ b/packages/subgraph/src/agents-registry.ts @@ -6,7 +6,6 @@ import { } from "../generated/AgentsRegistry/AgentsRegistry" import { Agent, - IpfsMetadata, Proposal } from "../generated/schema" import { getContentPath } from "./utils"; @@ -21,7 +20,6 @@ export function handleAgentRegistered(event: AgentRegistered): void { entity.owner = event.params.owner; entity.agentUri = event.params.agentUri; entity.reputation = BigInt.fromString('0'); - entity.isRegistered = true; let contentPath = getContentPath(event.params.agentUri); @@ -50,7 +48,18 @@ export function handleProposalAdded(event: ProposalAdded): void { entity.issuer = event.params.agent.toHex(); entity.price = event.params.price; entity.service = event.params.name; + entity.isRemoved = false; entity.save() } +export function handleProposalRemoved(event: ProposalAdded): void { + let entity = Proposal.load(event.params.proposalId.toString()); + if (entity == null) { + return + } + + entity.isRemoved = true; + + entity.save() +} diff --git a/packages/subgraph/src/service-registry.ts b/packages/subgraph/src/service-registry.ts index 2a93a0d..49c8e71 100644 --- a/packages/subgraph/src/service-registry.ts +++ b/packages/subgraph/src/service-registry.ts @@ -2,23 +2,21 @@ import { ServiceRegistered, ServiceUpdated } from '../generated/ServiceRegistry/ import { Service } from '../generated/schema' export function handleServiceRegistered(event: ServiceRegistered): void { - let entity = new Service(event.params.name); + let entity = new Service(event.params.serviceId.toString()); entity.name = event.params.name; - entity.category = event.params.category; entity.description = event.params.description; entity.save(); } export function handleServiceUpdated(event: ServiceUpdated): void { - let entity = Service.load(event.params.name); + let entity = Service.load(event.params.serviceId.toString()); if (entity == null) { return } entity.name = event.params.name; - entity.category = event.params.category; entity.description = event.params.description; entity.save(); diff --git a/packages/subgraph/src/task-registry.ts b/packages/subgraph/src/task-registry.ts index 70fa944..2d2beba 100644 --- a/packages/subgraph/src/task-registry.ts +++ b/packages/subgraph/src/task-registry.ts @@ -1,10 +1,11 @@ +import { BigInt } from "@graphprotocol/graph-ts"; import { TaskCreated, TaskStatusChanged, - TaskCompleted + TaskCompleted, + TaskRated } from "../generated/TaskRegistry/TaskRegistry" import { - Agent, Task, } from "../generated/schema" @@ -16,6 +17,7 @@ export function handleTaskCreated(event: TaskCreated): void { entity.proposalId = event.params.proposalId; entity.assignee = event.params.assignee.toHexString(); entity.status = '1'; + entity.rating = BigInt.fromI32(0); entity.save(); } @@ -42,3 +44,14 @@ export function handleTaskStatusCompleted(event: TaskCompleted): void { entity.save(); } +export function handleTaskRated(event: TaskRated): void { + let entity = Task.load(event.params.taskId.toString()); + if (entity == null) { + return + } + + entity.rating = BigInt.fromI32(event.params.rating); + + entity.save(); +} + diff --git a/packages/subgraph/subgraph.yaml b/packages/subgraph/subgraph.yaml index a0f4af4..f79d06a 100644 --- a/packages/subgraph/subgraph.yaml +++ b/packages/subgraph/subgraph.yaml @@ -8,9 +8,9 @@ dataSources: name: ServiceRegistry network: base-sepolia source: - address: "0xC59D70954BFFf1aB687aB28E86324703B5D23dcC" + address: "0x68A88024060fD8Fe4dE848de1abB7F6d9225cCa8" abi: ServiceRegistry - startBlock: 20412631 + startBlock: 23026978 mapping: kind: ethereum/events apiVersion: 0.0.7 @@ -21,18 +21,18 @@ dataSources: - name: ServiceRegistry file: ./abis/ServiceRegistry.json eventHandlers: - - event: ServiceRegistered(string,string,string) + - event: ServiceRegistered(indexed uint256,string,string) handler: handleServiceRegistered - - event: ServiceUpdated(string,string,string) + - event: ServiceUpdated(indexed uint256,string,string) handler: handleServiceUpdated file: ./src/service-registry.ts - kind: ethereum name: AgentsRegistry network: base-sepolia source: - address: "0xd5aD1B6c462C7cCF641Df8cdac356bc4a7C20400" + address: "0xABC2AC53Aaf217B70825701c1a5aB750CD60DbaF" abi: AgentsRegistry - startBlock: 20412638 + startBlock: 23026985 mapping: kind: ethereum/events apiVersion: 0.0.7 @@ -55,9 +55,9 @@ dataSources: name: TaskRegistry network: base-sepolia source: - address: "0x7eaB59d9121c76eF44a101C2c1d2121cC8e871fd" + address: "0x859bBE15EfbE62fD51DB5C24B01048A73839E141" abi: TaskRegistry - startBlock: 20412645 + startBlock: 23026993 mapping: kind: ethereum/events apiVersion: 0.0.7