diff --git a/.gitignore b/.gitignore index 441e0285a..6144e466c 100644 --- a/.gitignore +++ b/.gitignore @@ -50,4 +50,4 @@ crash_report.json *.env !*sample.env artifacts -deployments/hardhat +deployments diff --git a/deployments/sepolia/.chainId b/deployments/sepolia/.chainId deleted file mode 100644 index bd8d1cd44..000000000 --- a/deployments/sepolia/.chainId +++ /dev/null @@ -1 +0,0 @@ -11155111 \ No newline at end of file diff --git a/deployments/sepolia/ERC20ForwarderFactory.json b/deployments/sepolia/ERC20ForwarderFactory.json deleted file mode 100644 index c1b8892fe..000000000 --- a/deployments/sepolia/ERC20ForwarderFactory.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "address": "0xe84d966f6f87c7957719ad4bec7e3bb35a46e8b2", - "abi": [ - { - "inputs": [], - "name": "InvalidForwarderAddress", - "type": "error" - }, - { - "inputs": [], - "name": "ERC20LINK_HASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IMultiToken", - "name": "__token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "__tokenId", - "type": "uint256" - } - ], - "name": "create", - "outputs": [ - { - "internalType": "contract IERC20Forwarder", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getDeployDetails", - "outputs": [ - { - "internalType": "contract IMultiToken", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IMultiToken", - "name": "__token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "__tokenId", - "type": "uint256" - } - ], - "name": "getForwarder", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "args": [], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/ERC4626HyperdriveCoreDeployer.json b/deployments/sepolia/ERC4626HyperdriveCoreDeployer.json deleted file mode 100644 index 12ab93d3b..000000000 --- a/deployments/sepolia/ERC4626HyperdriveCoreDeployer.json +++ /dev/null @@ -1,155 +0,0 @@ -{ - "address": "0x565c87f1929794da249df77ea002745074adc527", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "address", - "name": "_target0", - "type": "address" - }, - { - "internalType": "address", - "name": "_target1", - "type": "address" - }, - { - "internalType": "address", - "name": "_target2", - "type": "address" - }, - { - "internalType": "address", - "name": "_target3", - "type": "address" - }, - { - "internalType": "address", - "name": "_target4", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deploy", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/ERC4626HyperdriveDeployerCoordinator.json b/deployments/sepolia/ERC4626HyperdriveDeployerCoordinator.json deleted file mode 100644 index 9c02a4bc1..000000000 --- a/deployments/sepolia/ERC4626HyperdriveDeployerCoordinator.json +++ /dev/null @@ -1,684 +0,0 @@ -{ - "address": "0x7f7889b86203bdca3a8287b01951149c5c461c0d", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_factory", - "type": "address" - }, - { - "internalType": "address", - "name": "_coreDeployer", - "type": "address" - }, - { - "internalType": "address", - "name": "_target0Deployer", - "type": "address" - }, - { - "internalType": "address", - "name": "_target1Deployer", - "type": "address" - }, - { - "internalType": "address", - "name": "_target2Deployer", - "type": "address" - }, - { - "internalType": "address", - "name": "_target3Deployer", - "type": "address" - }, - { - "internalType": "address", - "name": "_target4Deployer", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "AddressInsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "DeploymentAlreadyExists", - "type": "error" - }, - { - "inputs": [], - "name": "DeploymentDoesNotExist", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "HyperdriveAlreadyDeployed", - "type": "error" - }, - { - "inputs": [], - "name": "HyperdriveIsNotDeployed", - "type": "error" - }, - { - "inputs": [], - "name": "IncompleteDeployment", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientValue", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidBaseToken", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidCheckpointDuration", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidFeeAmounts", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidMinimumShareReserves", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidMinimumTransactionAmount", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidPositionDuration", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidTargetIndex", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidVaultSharesToken", - "type": "error" - }, - { - "inputs": [], - "name": "MismatchedConfig", - "type": "error" - }, - { - "inputs": [], - "name": "MismatchedExtraData", - "type": "error" - }, - { - "inputs": [], - "name": "NotPayable", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "SafeERC20FailedOperation", - "type": "error" - }, - { - "inputs": [], - "name": "SenderIsNotFactory", - "type": "error" - }, - { - "inputs": [], - "name": "TargetAlreadyDeployed", - "type": "error" - }, - { - "inputs": [], - "name": "TransferFailed", - "type": "error" - }, - { - "inputs": [], - "name": "coreDeployer", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_deploymentId", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolDeployConfig", - "name": "_deployConfig", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deploy", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_deploymentId", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolDeployConfig", - "name": "_deployConfig", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "_targetIndex", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deployTarget", - "outputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_deploymentId", - "type": "bytes32" - } - ], - "name": "deployments", - "outputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "configHash", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "extraDataHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialSharePrice", - "type": "uint256" - }, - { - "internalType": "address", - "name": "hyperdrive", - "type": "address" - }, - { - "internalType": "address", - "name": "target0", - "type": "address" - }, - { - "internalType": "address", - "name": "target1", - "type": "address" - }, - { - "internalType": "address", - "name": "target2", - "type": "address" - }, - { - "internalType": "address", - "name": "target3", - "type": "address" - }, - { - "internalType": "address", - "name": "target4", - "type": "address" - } - ], - "internalType": "struct HyperdriveDeployerCoordinator.Deployment", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_deploymentId", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "_lp", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_contribution", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_apr", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "initialize", - "outputs": [ - { - "internalType": "uint256", - "name": "lpShares", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target0Deployer", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target1Deployer", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target2Deployer", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target3Deployer", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target4Deployer", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "version", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - } - ], - "args": [ - "0x7ef54cbb6093dbbf5d171f36a5be3c6b57893dea", - "0x565c87f1929794da249df77ea002745074adc527", - "0xf64bcafda8a4d7505e4cb178531df4d186ae823a", - "0x9c68bc8f859a517c5537efb25f1f59073f685e02", - "0x104e4b72a7fe4c1b2ce141d4e92a09db581a6abb", - "0xd4851f834a60035f05e0a2f79c73c0e8f716086f", - "0xcc0127acb2c40da4785e45485a944dc2f1dfd366" - ], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/ERC4626Target0Deployer.json b/deployments/sepolia/ERC4626Target0Deployer.json deleted file mode 100644 index a8c5e9a89..000000000 --- a/deployments/sepolia/ERC4626Target0Deployer.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "address": "0xf64bcafda8a4d7505e4cb178531df4d186ae823a", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deploy", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/ERC4626Target1Deployer.json b/deployments/sepolia/ERC4626Target1Deployer.json deleted file mode 100644 index 917817f18..000000000 --- a/deployments/sepolia/ERC4626Target1Deployer.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "address": "0x9c68bc8f859a517c5537efb25f1f59073f685e02", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deploy", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/ERC4626Target2Deployer.json b/deployments/sepolia/ERC4626Target2Deployer.json deleted file mode 100644 index 48f11c9d1..000000000 --- a/deployments/sepolia/ERC4626Target2Deployer.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "address": "0x104e4b72a7fe4c1b2ce141d4e92a09db581a6abb", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deploy", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/ERC4626Target3Deployer.json b/deployments/sepolia/ERC4626Target3Deployer.json deleted file mode 100644 index 448f5c481..000000000 --- a/deployments/sepolia/ERC4626Target3Deployer.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "address": "0xd4851f834a60035f05e0a2f79c73c0e8f716086f", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deploy", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/ERC4626Target4Deployer.json b/deployments/sepolia/ERC4626Target4Deployer.json deleted file mode 100644 index 8563a4371..000000000 --- a/deployments/sepolia/ERC4626Target4Deployer.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "address": "0xcc0127acb2c40da4785e45485a944dc2f1dfd366", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deploy", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/HyperdriveFactory.json b/deployments/sepolia/HyperdriveFactory.json deleted file mode 100644 index 1e26b42fb..000000000 --- a/deployments/sepolia/HyperdriveFactory.json +++ /dev/null @@ -1,1851 +0,0 @@ -{ - "address": "0x7ef54cbb6093dbbf5d171f36a5be3c6b57893dea", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "hyperdriveGovernance", - "type": "address" - }, - { - "internalType": "address[]", - "name": "defaultPausers", - "type": "address[]" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "internalType": "uint256", - "name": "checkpointDurationResolution", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minCheckpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxCheckpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minPositionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPositionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minFixedAPR", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFixedAPR", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minTimeStretchAPR", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxTimeStretchAPR", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "minFees", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "maxFees", - "type": "tuple" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - } - ], - "internalType": "struct HyperdriveFactory.FactoryConfig", - "name": "_factoryConfig", - "type": "tuple" - }, - { - "internalType": "string", - "name": "_name", - "type": "string" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "DeployerCoordinatorAlreadyAdded", - "type": "error" - }, - { - "inputs": [], - "name": "DeployerCoordinatorIndexMismatch", - "type": "error" - }, - { - "inputs": [], - "name": "DeployerCoordinatorNotAdded", - "type": "error" - }, - { - "inputs": [], - "name": "EndIndexTooLarge", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidCheckpointDuration", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidCheckpointDurationResolution", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidDeployConfig", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidDeployerCoordinator", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidFees", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidFixedAPR", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidIndexes", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidMaxCheckpointDuration", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidMaxFees", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidMaxFixedAPR", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidMaxPositionDuration", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidMaxTimeStretchAPR", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidMinCheckpointDuration", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidMinFees", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidMinFixedAPR", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidMinPositionDuration", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidMinTimeStretchAPR", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidPositionDuration", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidTimeStretchAPR", - "type": "error" - }, - { - "inputs": [], - "name": "LnInvalidInput", - "type": "error" - }, - { - "inputs": [], - "name": "ReceiveLocked", - "type": "error" - }, - { - "inputs": [], - "name": "TransferFailed", - "type": "error" - }, - { - "inputs": [], - "name": "Unauthorized", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt256", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "newCheckpointDurationResolution", - "type": "uint256" - } - ], - "name": "CheckpointDurationResolutionUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address[]", - "name": "newDefaultPausers", - "type": "address[]" - } - ], - "name": "DefaultPausersUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "deployerCoordinator", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "hyperdrive", - "type": "address" - }, - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "indexed": false, - "internalType": "struct IHyperdrive.PoolDeployConfig", - "name": "config", - "type": "tuple" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "name": "Deployed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "deployerCoordinator", - "type": "address" - } - ], - "name": "DeployerCoordinatorAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "deployerCoordinator", - "type": "address" - } - ], - "name": "DeployerCoordinatorRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newFeeCollector", - "type": "address" - } - ], - "name": "FeeCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "governance", - "type": "address" - } - ], - "name": "GovernanceUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "hyperdriveGovernance", - "type": "address" - } - ], - "name": "HyperdriveGovernanceUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "newLinkerCodeHash", - "type": "bytes32" - } - ], - "name": "LinkerCodeHashUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newLinkerFactory", - "type": "address" - } - ], - "name": "LinkerFactoryUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "newMaxCheckpointDuration", - "type": "uint256" - } - ], - "name": "MaxCheckpointDurationUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "indexed": false, - "internalType": "struct IHyperdrive.Fees", - "name": "newMaxFees", - "type": "tuple" - } - ], - "name": "MaxFeesUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "newMaxFixedAPR", - "type": "uint256" - } - ], - "name": "MaxFixedAPRUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "newMaxPositionDuration", - "type": "uint256" - } - ], - "name": "MaxPositionDurationUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "newMaxTimeStretchAPR", - "type": "uint256" - } - ], - "name": "MaxTimeStretchAPRUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "newMinCheckpointDuration", - "type": "uint256" - } - ], - "name": "MinCheckpointDurationUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "indexed": false, - "internalType": "struct IHyperdrive.Fees", - "name": "newMinFees", - "type": "tuple" - } - ], - "name": "MinFeesUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "newMinFixedAPR", - "type": "uint256" - } - ], - "name": "MinFixedAPRUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "newMinPositionDuration", - "type": "uint256" - } - ], - "name": "MinPositionDurationUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "newMinTimeStretchAPR", - "type": "uint256" - } - ], - "name": "MinTimeStretchAPRUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newSweepCollector", - "type": "address" - } - ], - "name": "SweepCollectorUpdated", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_deployerCoordinator", - "type": "address" - } - ], - "name": "addDeployerCoordinator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "checkpointDurationResolution", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "defaultPausers", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_deploymentId", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "_deployerCoordinator", - "type": "address" - }, - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolDeployConfig", - "name": "_config", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "_contribution", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_fixedAPR", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_timeStretchAPR", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deployAndInitialize", - "outputs": [ - { - "internalType": "contract IHyperdrive", - "name": "", - "type": "address" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_deploymentId", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "_deployerCoordinator", - "type": "address" - }, - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolDeployConfig", - "name": "_config", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "_fixedAPR", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_timeStretchAPR", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_targetIndex", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deployTarget", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "feeCollector", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "getDeployerCoordinatorAtIndex", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "startIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "endIndex", - "type": "uint256" - } - ], - "name": "getDeployerCoordinatorsInRange", - "outputs": [ - { - "internalType": "address[]", - "name": "range", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "getInstanceAtIndex", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "startIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "endIndex", - "type": "uint256" - } - ], - "name": "getInstancesInRange", - "outputs": [ - { - "internalType": "address[]", - "name": "range", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getNumberOfDeployerCoordinators", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getNumberOfInstances", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "governance", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "hyperdriveGovernance", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "instance", - "type": "address" - } - ], - "name": "instancesToDeployerCoordinators", - "outputs": [ - { - "internalType": "address", - "name": "deployCoordinator", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "isDeployerCoordinator", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "isInstance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "linkerCodeHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "linkerFactory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maxCheckpointDuration", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maxFees", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maxFixedAPR", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maxPositionDuration", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maxTimeStretchAPR", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minCheckpointDuration", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minFees", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minFixedAPR", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minPositionDuration", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minTimeStretchAPR", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_deployerCoordinator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_index", - "type": "uint256" - } - ], - "name": "removeDeployerCoordinator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "sweepCollector", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_checkpointDurationResolution", - "type": "uint256" - } - ], - "name": "updateCheckpointDurationResolution", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "_defaultPausers_", - "type": "address[]" - } - ], - "name": "updateDefaultPausers", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_feeCollector", - "type": "address" - } - ], - "name": "updateFeeCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_governance", - "type": "address" - } - ], - "name": "updateGovernance", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_hyperdriveGovernance", - "type": "address" - } - ], - "name": "updateHyperdriveGovernance", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_linkerCodeHash", - "type": "bytes32" - } - ], - "name": "updateLinkerCodeHash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_linkerFactory", - "type": "address" - } - ], - "name": "updateLinkerFactory", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_maxCheckpointDuration", - "type": "uint256" - } - ], - "name": "updateMaxCheckpointDuration", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "__maxFees", - "type": "tuple" - } - ], - "name": "updateMaxFees", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_maxFixedAPR", - "type": "uint256" - } - ], - "name": "updateMaxFixedAPR", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_maxPositionDuration", - "type": "uint256" - } - ], - "name": "updateMaxPositionDuration", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_maxTimeStretchAPR", - "type": "uint256" - } - ], - "name": "updateMaxTimeStretchAPR", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_minCheckpointDuration", - "type": "uint256" - } - ], - "name": "updateMinCheckpointDuration", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "__minFees", - "type": "tuple" - } - ], - "name": "updateMinFees", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_minFixedAPR", - "type": "uint256" - } - ], - "name": "updateMinFixedAPR", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_minPositionDuration", - "type": "uint256" - } - ], - "name": "updateMinPositionDuration", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_minTimeStretchAPR", - "type": "uint256" - } - ], - "name": "updateMinTimeStretchAPR", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_sweepCollector", - "type": "address" - } - ], - "name": "updateSweepCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "version", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "args": [ - { - "governance": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "hyperdriveGovernance": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "defaultPausers": [ - "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8" - ], - "feeCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "sweepCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "checkpointDurationResolution": "28800", - "minCheckpointDuration": "86400", - "maxCheckpointDuration": "86400", - "minPositionDuration": "604800", - "maxPositionDuration": "2592000", - "minFixedAPR": "10000000000000000", - "maxFixedAPR": "600000000000000000", - "minTimeStretchAPR": "10000000000000000", - "maxTimeStretchAPR": "600000000000000000", - "minFees": { - "curve": "1000000000000000", - "flat": "100000000000000", - "governanceLP": "150000000000000000", - "governanceZombie": "30000000000000000" - }, - "maxFees": { - "curve": "10000000000000000", - "flat": "1000000000000000", - "governanceLP": "150000000000000000", - "governanceZombie": "30000000000000000" - }, - "linkerFactory": "0xe84d966f6f87c7957719ad4bec7e3bb35a46e8b2", - "linkerCodeHash": "0x9a69ff3b9a110deacb7d941d71222642f269891c0da9fcc15ec7c63fbd216b3f" - }, - "factory_sepolia" - ], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/HyperdriveRegistry.json b/deployments/sepolia/HyperdriveRegistry.json deleted file mode 100644 index e3a82b37f..000000000 --- a/deployments/sepolia/HyperdriveRegistry.json +++ /dev/null @@ -1,146 +0,0 @@ -{ - "address": "0xec94f9f8ce811d5df200b6622b50a00b47925675", - "abi": [ - { - "inputs": [ - { - "internalType": "string", - "name": "_name", - "type": "string" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "Unauthorized", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "governance", - "type": "address" - } - ], - "name": "GovernanceUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "hyperdrive", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "data", - "type": "uint256" - } - ], - "name": "HyperdriveInfoUpdated", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_hyperdriveInstance", - "type": "address" - } - ], - "name": "getHyperdriveInfo", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "governance", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_hyperdriveInstance", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_data", - "type": "uint256" - } - ], - "name": "setHyperdriveInfo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_governance", - "type": "address" - } - ], - "name": "updateGovernance", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "version", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "args": [ - "registry-sepolia" - ], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/MockLido.json b/deployments/sepolia/MockLido.json deleted file mode 100644 index 1d0b3c121..000000000 --- a/deployments/sepolia/MockLido.json +++ /dev/null @@ -1,1030 +0,0 @@ -{ - "address": "0x8cb2ec99cf968551408cc30c5223fa4d8c402e55", - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "_initialRate", - "type": "uint256" - }, - { - "internalType": "address", - "name": "_admin", - "type": "address" - }, - { - "internalType": "bool", - "name": "_isCompetitionMode", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "_maxMintAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "contract Authority", - "name": "newAuthority", - "type": "address" - } - ], - "name": "AuthorityUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes4", - "name": "functionSig", - "type": "bytes4" - }, - { - "indexed": false, - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "PublicCapabilityUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint8", - "name": "role", - "type": "uint8" - }, - { - "indexed": true, - "internalType": "bytes4", - "name": "functionSig", - "type": "bytes4" - }, - { - "indexed": false, - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "RoleCapabilityUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "indexed": true, - "internalType": "contract Authority", - "name": "authority", - "type": "address" - } - ], - "name": "TargetCustomAuthorityUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint8", - "name": "role", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "UserRoleUpdated", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "authority", - "outputs": [ - { - "internalType": "contract Authority", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "bytes4", - "name": "functionSig", - "type": "bytes4" - } - ], - "name": "canCall", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "role", - "type": "uint8" - }, - { - "internalType": "bytes4", - "name": "functionSig", - "type": "bytes4" - } - ], - "name": "doesRoleHaveCapability", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "role", - "type": "uint8" - } - ], - "name": "doesUserHaveRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getBufferedEther", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_sharesAmount", - "type": "uint256" - } - ], - "name": "getPooledEthByShares", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRate", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "name": "getRolesWithCapability", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_ethAmount", - "type": "uint256" - } - ], - "name": "getSharesByPooledEth", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "getTargetCustomAuthority", - "outputs": [ - { - "internalType": "contract Authority", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getTotalPooledEther", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getTotalShares", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "getUserRoles", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "name": "isCapabilityPublic", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isCompetitionMode", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maxMintAmount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "nonces", - "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": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract Authority", - "name": "newAuthority", - "type": "address" - } - ], - "name": "setAuthority", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "functionSig", - "type": "bytes4" - }, - { - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "setPublicCapability", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_rate_", - "type": "uint256" - } - ], - "name": "setRate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "role", - "type": "uint8" - }, - { - "internalType": "bytes4", - "name": "functionSig", - "type": "bytes4" - }, - { - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "setRoleCapability", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "contract Authority", - "name": "customAuthority", - "type": "address" - } - ], - "name": "setTargetCustomAuthority", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "role", - "type": "uint8" - }, - { - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "setUserRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - } - ], - "name": "sharesOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "submit", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_sharesAmount", - "type": "uint256" - } - ], - "name": "transferShares", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "internalType": "address", - "name": "_recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_sharesAmount", - "type": "uint256" - } - ], - "name": "transferSharesFrom", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [ - "35000000000000000", - "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - true, - "500000000000000000000" - ], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/MockRocketPool.json b/deployments/sepolia/MockRocketPool.json deleted file mode 100644 index d3265b6f3..000000000 --- a/deployments/sepolia/MockRocketPool.json +++ /dev/null @@ -1,998 +0,0 @@ -{ - "address": "0x9db9f2e3d04c0d2d4b5a49664a9c1801d583bb77", - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "_initialRate", - "type": "uint256" - }, - { - "internalType": "address", - "name": "_admin", - "type": "address" - }, - { - "internalType": "bool", - "name": "_isCompetitionMode", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "_maxMintAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "contract Authority", - "name": "newAuthority", - "type": "address" - } - ], - "name": "AuthorityUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes4", - "name": "functionSig", - "type": "bytes4" - }, - { - "indexed": false, - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "PublicCapabilityUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint8", - "name": "role", - "type": "uint8" - }, - { - "indexed": true, - "internalType": "bytes4", - "name": "functionSig", - "type": "bytes4" - }, - { - "indexed": false, - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "RoleCapabilityUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "indexed": true, - "internalType": "contract Authority", - "name": "authority", - "type": "address" - } - ], - "name": "TargetCustomAuthorityUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint8", - "name": "role", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "UserRoleUpdated", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "authority", - "outputs": [ - { - "internalType": "contract Authority", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "bytes4", - "name": "functionSig", - "type": "bytes4" - } - ], - "name": "canCall", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "role", - "type": "uint8" - }, - { - "internalType": "bytes4", - "name": "functionSig", - "type": "bytes4" - } - ], - "name": "doesRoleHaveCapability", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "role", - "type": "uint8" - } - ], - "name": "doesUserHaveRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_rethAmount", - "type": "uint256" - } - ], - "name": "getEthValue", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRate", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_ethAmount", - "type": "uint256" - } - ], - "name": "getRethValue", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "name": "getRolesWithCapability", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "getTargetCustomAuthority", - "outputs": [ - { - "internalType": "contract Authority", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getTotalPooledEther", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getTotalShares", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "getUserRoles", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "name": "isCapabilityPublic", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isCompetitionMode", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maxMintAmount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "nonces", - "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": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract Authority", - "name": "newAuthority", - "type": "address" - } - ], - "name": "setAuthority", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "functionSig", - "type": "bytes4" - }, - { - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "setPublicCapability", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_rate_", - "type": "uint256" - } - ], - "name": "setRate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "role", - "type": "uint8" - }, - { - "internalType": "bytes4", - "name": "functionSig", - "type": "bytes4" - }, - { - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "setRoleCapability", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "contract Authority", - "name": "customAuthority", - "type": "address" - } - ], - "name": "setTargetCustomAuthority", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "role", - "type": "uint8" - }, - { - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "setUserRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "submit", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_sharesAmount", - "type": "uint256" - } - ], - "name": "transferShares", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "internalType": "address", - "name": "_recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_sharesAmount", - "type": "uint256" - } - ], - "name": "transferSharesFrom", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [ - "35000000000000000", - "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - true, - "500000000000000000000" - ], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/RETHHyperdriveCoreDeployer.json b/deployments/sepolia/RETHHyperdriveCoreDeployer.json deleted file mode 100644 index f002186a2..000000000 --- a/deployments/sepolia/RETHHyperdriveCoreDeployer.json +++ /dev/null @@ -1,155 +0,0 @@ -{ - "address": "0x0a926f7c0ce1c0e87db305f091e77f627c64c600", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "address", - "name": "target0", - "type": "address" - }, - { - "internalType": "address", - "name": "target1", - "type": "address" - }, - { - "internalType": "address", - "name": "target2", - "type": "address" - }, - { - "internalType": "address", - "name": "target3", - "type": "address" - }, - { - "internalType": "address", - "name": "target4", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deploy", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/RETHHyperdriveDeployerCoordinator.json b/deployments/sepolia/RETHHyperdriveDeployerCoordinator.json deleted file mode 100644 index cdd02201d..000000000 --- a/deployments/sepolia/RETHHyperdriveDeployerCoordinator.json +++ /dev/null @@ -1,700 +0,0 @@ -{ - "address": "0x479dca7df65c348ce40ccc7bf6525bf0a344a296", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_factory", - "type": "address" - }, - { - "internalType": "address", - "name": "_coreDeployer", - "type": "address" - }, - { - "internalType": "address", - "name": "_target0Deployer", - "type": "address" - }, - { - "internalType": "address", - "name": "_target1Deployer", - "type": "address" - }, - { - "internalType": "address", - "name": "_target2Deployer", - "type": "address" - }, - { - "internalType": "address", - "name": "_target3Deployer", - "type": "address" - }, - { - "internalType": "address", - "name": "_target4Deployer", - "type": "address" - }, - { - "internalType": "contract IRocketTokenRETH", - "name": "_rocketTokenReth", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "AddressInsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "DeploymentAlreadyExists", - "type": "error" - }, - { - "inputs": [], - "name": "DeploymentDoesNotExist", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "HyperdriveAlreadyDeployed", - "type": "error" - }, - { - "inputs": [], - "name": "HyperdriveIsNotDeployed", - "type": "error" - }, - { - "inputs": [], - "name": "IncompleteDeployment", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientValue", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidBaseToken", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidCheckpointDuration", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidFeeAmounts", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidMinimumShareReserves", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidMinimumTransactionAmount", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidPositionDuration", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidTargetIndex", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidVaultSharesToken", - "type": "error" - }, - { - "inputs": [], - "name": "MismatchedConfig", - "type": "error" - }, - { - "inputs": [], - "name": "MismatchedExtraData", - "type": "error" - }, - { - "inputs": [], - "name": "NotPayable", - "type": "error" - }, - { - "inputs": [], - "name": "NotPayable", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "SafeERC20FailedOperation", - "type": "error" - }, - { - "inputs": [], - "name": "SenderIsNotFactory", - "type": "error" - }, - { - "inputs": [], - "name": "TargetAlreadyDeployed", - "type": "error" - }, - { - "inputs": [], - "name": "TransferFailed", - "type": "error" - }, - { - "inputs": [], - "name": "UnsupportedToken", - "type": "error" - }, - { - "inputs": [], - "name": "coreDeployer", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_deploymentId", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolDeployConfig", - "name": "_deployConfig", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deploy", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_deploymentId", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolDeployConfig", - "name": "_deployConfig", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "_targetIndex", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deployTarget", - "outputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_deploymentId", - "type": "bytes32" - } - ], - "name": "deployments", - "outputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "configHash", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "extraDataHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialSharePrice", - "type": "uint256" - }, - { - "internalType": "address", - "name": "hyperdrive", - "type": "address" - }, - { - "internalType": "address", - "name": "target0", - "type": "address" - }, - { - "internalType": "address", - "name": "target1", - "type": "address" - }, - { - "internalType": "address", - "name": "target2", - "type": "address" - }, - { - "internalType": "address", - "name": "target3", - "type": "address" - }, - { - "internalType": "address", - "name": "target4", - "type": "address" - } - ], - "internalType": "struct HyperdriveDeployerCoordinator.Deployment", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_deploymentId", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "_lp", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_contribution", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_apr", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "initialize", - "outputs": [ - { - "internalType": "uint256", - "name": "lpShares", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target0Deployer", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target1Deployer", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target2Deployer", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target3Deployer", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target4Deployer", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "version", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - } - ], - "args": [ - "0x7ef54cbb6093dbbf5d171f36a5be3c6b57893dea", - "0x0a926f7c0ce1c0e87db305f091e77f627c64c600", - "0xdd4129ce1c1d569550bb83e88b5745fe1da091a0", - "0x1a70f1d333d624ae017c84cdf793b5dfaa238038", - "0xe07514c77ed79761b8b683dcb3d3b2c9dea48dba", - "0xf688366cbb53d7e5aae67c57ad781b8cfd565fc6", - "0xd9bce11613423667a8fd85e74db9d7ce6ef65776", - "0x9db9f2e3d04c0d2d4b5a49664a9c1801d583bb77" - ], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/RETHTarget0Deployer.json b/deployments/sepolia/RETHTarget0Deployer.json deleted file mode 100644 index b65115d8b..000000000 --- a/deployments/sepolia/RETHTarget0Deployer.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "address": "0xdd4129ce1c1d569550bb83e88b5745fe1da091a0", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deploy", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/RETHTarget1Deployer.json b/deployments/sepolia/RETHTarget1Deployer.json deleted file mode 100644 index 05b9bfee8..000000000 --- a/deployments/sepolia/RETHTarget1Deployer.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "address": "0x1a70f1d333d624ae017c84cdf793b5dfaa238038", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deploy", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/RETHTarget2Deployer.json b/deployments/sepolia/RETHTarget2Deployer.json deleted file mode 100644 index df912e62a..000000000 --- a/deployments/sepolia/RETHTarget2Deployer.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "address": "0xe07514c77ed79761b8b683dcb3d3b2c9dea48dba", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deploy", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/RETHTarget3Deployer.json b/deployments/sepolia/RETHTarget3Deployer.json deleted file mode 100644 index 706334708..000000000 --- a/deployments/sepolia/RETHTarget3Deployer.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "address": "0xf688366cbb53d7e5aae67c57ad781b8cfd565fc6", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deploy", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/RETHTarget4Deployer.json b/deployments/sepolia/RETHTarget4Deployer.json deleted file mode 100644 index 058e8bfca..000000000 --- a/deployments/sepolia/RETHTarget4Deployer.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "address": "0xd9bce11613423667a8fd85e74db9d7ce6ef65776", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deploy", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/StETHHyperdriveCoreDeployer.json b/deployments/sepolia/StETHHyperdriveCoreDeployer.json deleted file mode 100644 index 9512bb065..000000000 --- a/deployments/sepolia/StETHHyperdriveCoreDeployer.json +++ /dev/null @@ -1,155 +0,0 @@ -{ - "address": "0x829712ef3834de569988a7935f0cde308a5afdd6", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "address", - "name": "target0", - "type": "address" - }, - { - "internalType": "address", - "name": "target1", - "type": "address" - }, - { - "internalType": "address", - "name": "target2", - "type": "address" - }, - { - "internalType": "address", - "name": "target3", - "type": "address" - }, - { - "internalType": "address", - "name": "target4", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deploy", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/StETHHyperdriveDeployerCoordinator.json b/deployments/sepolia/StETHHyperdriveDeployerCoordinator.json deleted file mode 100644 index 11ee9c308..000000000 --- a/deployments/sepolia/StETHHyperdriveDeployerCoordinator.json +++ /dev/null @@ -1,665 +0,0 @@ -{ - "address": "0x74dd472b3f217047cee307170bb1afa091cde928", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_factory", - "type": "address" - }, - { - "internalType": "address", - "name": "_coreDeployer", - "type": "address" - }, - { - "internalType": "address", - "name": "_target0Deployer", - "type": "address" - }, - { - "internalType": "address", - "name": "_target1Deployer", - "type": "address" - }, - { - "internalType": "address", - "name": "_target2Deployer", - "type": "address" - }, - { - "internalType": "address", - "name": "_target3Deployer", - "type": "address" - }, - { - "internalType": "address", - "name": "_target4Deployer", - "type": "address" - }, - { - "internalType": "contract ILido", - "name": "_lido", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "DeploymentAlreadyExists", - "type": "error" - }, - { - "inputs": [], - "name": "DeploymentDoesNotExist", - "type": "error" - }, - { - "inputs": [], - "name": "HyperdriveAlreadyDeployed", - "type": "error" - }, - { - "inputs": [], - "name": "HyperdriveIsNotDeployed", - "type": "error" - }, - { - "inputs": [], - "name": "IncompleteDeployment", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientValue", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidBaseToken", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidCheckpointDuration", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidFeeAmounts", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidMinimumShareReserves", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidMinimumTransactionAmount", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidPositionDuration", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidTargetIndex", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidVaultSharesToken", - "type": "error" - }, - { - "inputs": [], - "name": "MismatchedConfig", - "type": "error" - }, - { - "inputs": [], - "name": "MismatchedExtraData", - "type": "error" - }, - { - "inputs": [], - "name": "NotPayable", - "type": "error" - }, - { - "inputs": [], - "name": "SenderIsNotFactory", - "type": "error" - }, - { - "inputs": [], - "name": "TargetAlreadyDeployed", - "type": "error" - }, - { - "inputs": [], - "name": "TransferFailed", - "type": "error" - }, - { - "inputs": [], - "name": "coreDeployer", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_deploymentId", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolDeployConfig", - "name": "_deployConfig", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deploy", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_deploymentId", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolDeployConfig", - "name": "_deployConfig", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "_targetIndex", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deployTarget", - "outputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_deploymentId", - "type": "bytes32" - } - ], - "name": "deployments", - "outputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "configHash", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "extraDataHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialSharePrice", - "type": "uint256" - }, - { - "internalType": "address", - "name": "hyperdrive", - "type": "address" - }, - { - "internalType": "address", - "name": "target0", - "type": "address" - }, - { - "internalType": "address", - "name": "target1", - "type": "address" - }, - { - "internalType": "address", - "name": "target2", - "type": "address" - }, - { - "internalType": "address", - "name": "target3", - "type": "address" - }, - { - "internalType": "address", - "name": "target4", - "type": "address" - } - ], - "internalType": "struct HyperdriveDeployerCoordinator.Deployment", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "factory", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_deploymentId", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "_lp", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_contribution", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_apr", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "initialize", - "outputs": [ - { - "internalType": "uint256", - "name": "lpShares", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "lido", - "outputs": [ - { - "internalType": "contract ILido", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target0Deployer", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target1Deployer", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target2Deployer", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target3Deployer", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target4Deployer", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "version", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - } - ], - "args": [ - "0x7ef54cbb6093dbbf5d171f36a5be3c6b57893dea", - "0x829712ef3834de569988a7935f0cde308a5afdd6", - "0x1e4a0df352706ae8f91d317d95df6e4ca3750e55", - "0x4030b5e3919eab7a46a6980655e841f77c6807fb", - "0x0a69d0a4bded0072a09eb43dd3a6a1b7471d67e6", - "0x8cc9a995f93a68c142045063f9276f19504978f3", - "0x0d9e8fccf47a4e4b660074423559bc1dc70128f4", - "0x8cb2ec99cf968551408cc30c5223fa4d8c402e55" - ], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/StETHTarget0Deployer.json b/deployments/sepolia/StETHTarget0Deployer.json deleted file mode 100644 index 6c9062ae1..000000000 --- a/deployments/sepolia/StETHTarget0Deployer.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "address": "0x1e4a0df352706ae8f91d317d95df6e4ca3750e55", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deploy", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/StETHTarget1Deployer.json b/deployments/sepolia/StETHTarget1Deployer.json deleted file mode 100644 index 418d7230e..000000000 --- a/deployments/sepolia/StETHTarget1Deployer.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "address": "0x4030b5e3919eab7a46a6980655e841f77c6807fb", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deploy", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/StETHTarget2Deployer.json b/deployments/sepolia/StETHTarget2Deployer.json deleted file mode 100644 index 15aa87854..000000000 --- a/deployments/sepolia/StETHTarget2Deployer.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "address": "0x0a69d0a4bded0072a09eb43dd3a6a1b7471d67e6", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deploy", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/StETHTarget3Deployer.json b/deployments/sepolia/StETHTarget3Deployer.json deleted file mode 100644 index 3b1485f34..000000000 --- a/deployments/sepolia/StETHTarget3Deployer.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "address": "0x8cc9a995f93a68c142045063f9276f19504978f3", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deploy", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/StETHTarget4Deployer.json b/deployments/sepolia/StETHTarget4Deployer.json deleted file mode 100644 index 47b1866f8..000000000 --- a/deployments/sepolia/StETHTarget4Deployer.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "address": "0x0d9e8fccf47a4e4b660074423559bc1dc70128f4", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - } - ], - "name": "deploy", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/TEST_ERC4626_BASE.json b/deployments/sepolia/TEST_ERC4626_BASE.json deleted file mode 100644 index 9ea07327a..000000000 --- a/deployments/sepolia/TEST_ERC4626_BASE.json +++ /dev/null @@ -1,840 +0,0 @@ -{ - "address": "0x96bf962d3c02134fc7aa9441ea38715a261da60b", - "abi": [ - { - "inputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "symbol", - "type": "string" - }, - { - "internalType": "uint8", - "name": "decimals", - "type": "uint8" - }, - { - "internalType": "address", - "name": "admin", - "type": "address" - }, - { - "internalType": "bool", - "name": "isCompetitionMode_", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "maxMintAmount_", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "contract Authority", - "name": "newAuthority", - "type": "address" - } - ], - "name": "AuthorityUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes4", - "name": "functionSig", - "type": "bytes4" - }, - { - "indexed": false, - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "PublicCapabilityUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint8", - "name": "role", - "type": "uint8" - }, - { - "indexed": true, - "internalType": "bytes4", - "name": "functionSig", - "type": "bytes4" - }, - { - "indexed": false, - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "RoleCapabilityUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "indexed": true, - "internalType": "contract Authority", - "name": "authority", - "type": "address" - } - ], - "name": "TargetCustomAuthorityUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint8", - "name": "role", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "UserRoleUpdated", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "authority", - "outputs": [ - { - "internalType": "contract Authority", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "bytes4", - "name": "functionSig", - "type": "bytes4" - } - ], - "name": "canCall", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "role", - "type": "uint8" - }, - { - "internalType": "bytes4", - "name": "functionSig", - "type": "bytes4" - } - ], - "name": "doesRoleHaveCapability", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "role", - "type": "uint8" - } - ], - "name": "doesUserHaveRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "name": "getRolesWithCapability", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "getTargetCustomAuthority", - "outputs": [ - { - "internalType": "contract Authority", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "getUserRoles", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "name": "isCapabilityPublic", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isCompetitionMode", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maxMintAmount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "nonces", - "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": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract Authority", - "name": "newAuthority", - "type": "address" - } - ], - "name": "setAuthority", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "functionSig", - "type": "bytes4" - }, - { - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "setPublicCapability", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "role", - "type": "uint8" - }, - { - "internalType": "bytes4", - "name": "functionSig", - "type": "bytes4" - }, - { - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "setRoleCapability", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "contract Authority", - "name": "customAuthority", - "type": "address" - } - ], - "name": "setTargetCustomAuthority", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "role", - "type": "uint8" - }, - { - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "setUserRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/TEST_ERC4626_ERC4626Hyperdrive.json b/deployments/sepolia/TEST_ERC4626_ERC4626Hyperdrive.json deleted file mode 100644 index b0179cfa8..000000000 --- a/deployments/sepolia/TEST_ERC4626_ERC4626Hyperdrive.json +++ /dev/null @@ -1,1707 +0,0 @@ -{ - "address": "0x9FB2f4F9470d68b0bEE2860A6590277b17E806a6", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - }, - { - "internalType": "address", - "name": "_target0", - "type": "address" - }, - { - "internalType": "address", - "name": "_target1", - "type": "address" - }, - { - "internalType": "address", - "name": "_target2", - "type": "address" - }, - { - "internalType": "address", - "name": "_target3", - "type": "address" - }, - { - "internalType": "address", - "name": "_target4", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "AddressInsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "ReentrancyGuardReentrantCall", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "SafeERC20FailedOperation", - "type": "error" - }, - { - "inputs": [], - "name": "UnexpectedSuccess", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "AddLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "basePayment", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fees", - "type": "uint256" - } - ], - "name": "CollectGovernanceFee", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "checkpointTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "checkpointVaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedShorts", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedLongs", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "CreateCheckpoint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newFeeCollector", - "type": "address" - } - ], - "name": "FeeCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGovernance", - "type": "address" - } - ], - "name": "GovernanceUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "apr", - "type": "uint256" - } - ], - "name": "Initialize", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseProceeds", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isPaused", - "type": "bool" - } - ], - "name": "PauseStatusUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newPauser", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "status", - "type": "bool" - } - ], - "name": "PauserUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - } - ], - "name": "RedeemWithdrawalShares", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "RemoveLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "Sweep", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newSweepCollector", - "type": "address" - } - ], - "name": "SweepCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "stateMutability": "nonpayable", - "type": "fallback" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "addLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "name": "batchTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "checkpoint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "closeLong", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "closeShort", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "collectGovernanceFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "domainSeparator", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "initialize", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "openLong", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "openShort", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "bool", - "name": "_approved", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permitForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "redeemWithdrawalShares", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "removeLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "setApproval", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setApprovalBridge", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setFeeCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setGovernance", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "name": "setPauser", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setSweepCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IERC20", - "name": "", - "type": "address" - } - ], - "name": "sweep", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "target0", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target1", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target2", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target3", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target4", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "transferFromBridge", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [ - { - "minimumShareReserves": "1000000000000000", - "minimumTransactionAmount": "1000000000000000", - "positionDuration": "2592000", - "checkpointDuration": "86400", - "timeStretch": "0", - "governance": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "feeCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "sweepCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "fees": { - "curve": "1000000000000000", - "flat": "8333333333333", - "governanceLP": "150000000000000000", - "governanceZombie": "30000000000000000" - }, - "baseToken": "0x96bf962d3c02134fc7aa9441ea38715a261da60b", - "vaultSharesToken": "0xa6f5ad0ef6f4db6e9fa2e13318d218665c72a3ba", - "linkerFactory": "0xE84d966f6f87C7957719ad4BeC7E3bB35a46E8B2", - "linkerCodeHash": "0x9a69ff3b9a110deacb7d941d71222642f269891c0da9fcc15ec7c63fbd216b3f", - "initialVaultSharePrice": "0" - }, - "0x10355a87748CD5817ebb3a42B9FEc24ab2a1E27c", - "0xDED7325713C81253Ffa72a59A3eCEB7c1E0D1FE1", - "0x0ebA9d25C9B4A2a3Dc50f1470DF3a7CCe55E016e", - "0xD460e7C4d5B4c0F96381B872Eb43b7DeEb730340", - "0x66E62Bf93f70a0E2bf9ed165995171e1c40a0168" - ], - "numDeployments": 1, - "bytecode": "0x6102e06040523480156200001257600080fd5b5060405162001bf338038062001bf383398101604081905262000035916200055b565b6001600081905586516001600160a01b0390811660809081526020808a018051841660a0908152928b01516101a0908152928b01516101c05260c0808c01516101e052610100808d015190915260e0808d01519052610120808d0151909152928b0180515190935282519091015161014090815282516040908101516101609081529351606090810151610180908152918d01518616610200528c015161022052908b0151600a80549186166001600160a01b0319928316179055928b0151600880549186169185169190911790558a01516009805491851691909316179091558188166102405281871661026052818616610280528185166102a0528184166102c0525188516200014a9392169162000156565b5050505050506200071a565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b17909152620001b090859083906200022216565b6200021c57604080516001600160a01b038516602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b1790915262000210918691620002d316565b6200021c8482620002d3565b50505050565b6000806000846001600160a01b031684604051620002419190620006c5565b6000604051808303816000865af19150503d806000811462000280576040519150601f19603f3d011682016040523d82523d6000602084013e62000285565b606091505b5091509150818015620002b3575080511580620002b3575080806020019051810190620002b39190620006f6565b8015620002ca57506000856001600160a01b03163b115b95945050505050565b6000620002ea6001600160a01b0384168362000346565b9050805160001415801562000312575080806020019051810190620003109190620006f6565b155b156200034157604051635274afe760e01b81526001600160a01b03841660048201526024015b60405180910390fd5b505050565b606062000356838360006200035d565b9392505050565b606081471015620003845760405163cd78605960e01b815230600482015260240162000338565b600080856001600160a01b03168486604051620003a29190620006c5565b60006040518083038185875af1925050503d8060008114620003e1576040519150601f19603f3d011682016040523d82523d6000602084013e620003e6565b606091505b509092509050620003f986838362000403565b9695505050505050565b6060826200041c57620004168262000467565b62000356565b81511580156200043457506001600160a01b0384163b155b156200045f57604051639996b31560e01b81526001600160a01b038516600482015260240162000338565b508062000356565b805115620004785780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040516101c081016001600160401b0381118282101715620004c357634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b0381168114620004e157600080fd5b919050565b600060808284031215620004f957600080fd5b604051608081016001600160401b03811182821017156200052a57634e487b7160e01b600052604160045260246000fd5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b6000806000806000808688036102c08112156200057757600080fd5b610220808212156200058857600080fd5b6200059262000491565b91506200059f89620004c9565b8252620005af60208a01620004c9565b6020830152620005c260408a01620004c9565b6040830152606089015160608301526080890151608083015260a089015160a083015260c089015160c083015260e089015160e0830152610100808a01518184015250610120808a0151818401525061014062000621818b01620004c9565b90830152610160620006358a8201620004c9565b90830152610180620006498a8201620004c9565b908301526101a06200065e8b8b8301620004e6565b818401525081975062000673818a01620004c9565b96505050620006866102408801620004c9565b9350620006976102608801620004c9565b9250620006a86102808801620004c9565b9150620006b96102a08801620004c9565b90509295509295509295565b6000825160005b81811015620006e85760208186018101518583015201620006cc565b506000920191825250919050565b6000602082840312156200070957600080fd5b815180151581146200035657600080fd5b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516113a66200084d600039600081816106d9015281816109120152610c7801526000818161061e015281816108e2015281816109700152610c160152600081816105b701528181610c4c0152610ca30152600081816106a5015281816107e9015261087f0152600081816101e40152818161041b015281816107b90152818161081b0152818161084d015281816108b301528181610945015281816109a101528181610be40152610ccc015260005050600050506000505060005050600050506000505060005050600050506000505060005050600050506000505060005050600050506113a66000f3fe6080604052600436106101cd5760003560e01c80639cd241af116100f7578063d899e11211610095578063e4af29d111610064578063e4af29d114610352578063eac3e79914610693578063f3f70707146106c7578063f698da25146106fb576101cd565b8063d899e1121461060c578063dbbe807014610640578063ded0623114610653578063e44808bc14610673576101cd565b8063a6e8a859116100d1578063a6e8a859146105a5578063ab033ea914610352578063cba2e58d146105d9578063cbc13434146105ec576101cd565b80639cd241af14610585578063a22cb46514610532578063a42dce8014610352576101cd565b806330adf81f1161016f5780634ed2d6ac1161013e5780634ed2d6ac146105175780637180c8ca1461053257806377d05ff4146105525780639032c72614610565576101cd565b806330adf81f146104905780633e691db9146104c4578063414f826d146104e45780634c2ac1d914610504576101cd565b806317fad7fc116101ab57806317fad7fc146103c95780631c0f12b6146103e957806321b57d531461040957806329b23fc114610462576101cd565b806301681a621461035257806302329a2914610374578063074a6de91461038f575b3480156101d957600080fd5b5060003660606000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168585604051610229929190610d21565b600060405180830381855af49150503d8060008114610264576040519150601f19603f3d011682016040523d82523d6000602084013e610269565b606091505b509150915081156102a6576040517f8bb0a34b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006102b182610d31565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fdcc81126000000000000000000000000000000000000000000000000000000001461030457815160208301fd5b81517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8101600484019081529261034391810160200190602401610dd4565b80519650602001945050505050f35b34801561035e57600080fd5b5061037261036d366004610ec4565b6107b4565b005b34801561038057600080fd5b5061037261036d366004610efd565b34801561039b57600080fd5b506103af6103aa366004610f2a565b6107e1565b604080519283526020830191909152015b60405180910390f35b3480156103d557600080fd5b506103726103e4366004610fc6565b610816565b3480156103f557600080fd5b5061037261040436600461105b565b610848565b34801561041557600080fd5b5061043d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016103c0565b34801561046e57600080fd5b5061048261047d3660046110a3565b610878565b6040519081526020016103c0565b34801561049c57600080fd5b506104827f65619c8664d6db8aae8c236ad19598696159942a4245b23b45565cc18e97367381565b3480156104d057600080fd5b506104826104df3660046110fd565b6108ac565b3480156104f057600080fd5b506103726104ff36600461113a565b6108dd565b61048261051236600461115c565b61090b565b34801561052357600080fd5b506103726104043660046111c0565b34801561053e57600080fd5b5061037261054d36600461120a565b610940565b610482610560366004610f2a565b610969565b34801561057157600080fd5b5061037261058036600461123f565b61099c565b34801561059157600080fd5b506103726105a03660046112bd565b610bdf565b3480156105b157600080fd5b5061043d7f000000000000000000000000000000000000000000000000000000000000000081565b6103af6105e73660046110a3565b610c0e565b3480156105f857600080fd5b506103af610607366004610f2a565b610c44565b34801561061857600080fd5b5061043d7f000000000000000000000000000000000000000000000000000000000000000081565b6103af61064e3660046110a3565b610c70565b34801561065f57600080fd5b5061048261066e3660046110a3565b610c9c565b34801561067f57600080fd5b5061037261068e3660046112f5565b610cc7565b34801561069f57600080fd5b5061043d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106d357600080fd5b5061043d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561070757600080fd5b50604080518082018252600181527f310000000000000000000000000000000000000000000000000000000000000060209182015281517f2aef22f9d7df5f9d21c56d14029233f3fdaa91917727e1eb68e504d27072d6cd818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc681840152466060820152306080808301919091528351808303909101815260a09091019092528151910120610482565b6107dd7f0000000000000000000000000000000000000000000000000000000000000000610cf8565b5050565b60008061080d7f0000000000000000000000000000000000000000000000000000000000000000610cf8565b50935093915050565b61083f7f0000000000000000000000000000000000000000000000000000000000000000610cf8565b50505050505050565b6108717f0000000000000000000000000000000000000000000000000000000000000000610cf8565b5050505050565b60006108a37f0000000000000000000000000000000000000000000000000000000000000000610cf8565b50949350505050565b60006108d77f0000000000000000000000000000000000000000000000000000000000000000610cf8565b50919050565b6109067f0000000000000000000000000000000000000000000000000000000000000000610cf8565b505050565b60006109367f0000000000000000000000000000000000000000000000000000000000000000610cf8565b5095945050505050565b6109067f0000000000000000000000000000000000000000000000000000000000000000610cf8565b60006109947f0000000000000000000000000000000000000000000000000000000000000000610cf8565b509392505050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610a83604080518082018252600181527f310000000000000000000000000000000000000000000000000000000000000060209182015281517f2aef22f9d7df5f9d21c56d14029233f3fdaa91917727e1eb68e504d27072d6cd818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc681840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b60405160248101919091527f65619c8664d6db8aae8c236ad19598696159942a4245b23b45565cc18e973673604482015273ffffffffffffffffffffffffffffffffffffffff808c1660648301528a16608482015288151560a482015260c4810188905260ff871660e48201526101048101869052610124810185905261014401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f14e5f07b0000000000000000000000000000000000000000000000000000000017905251610b859190611354565b600060405180830381855af49150503d8060008114610bc0576040519150601f19603f3d011682016040523d82523d6000602084013e610bc5565b606091505b509150915081610bd757805160208201fd5b805160208201f35b610c087f0000000000000000000000000000000000000000000000000000000000000000610cf8565b50505050565b600080610c3a7f0000000000000000000000000000000000000000000000000000000000000000610cf8565b5094509492505050565b60008061080d7f0000000000000000000000000000000000000000000000000000000000000000610cf8565b600080610c3a7f0000000000000000000000000000000000000000000000000000000000000000610cf8565b60006108a37f0000000000000000000000000000000000000000000000000000000000000000610cf8565b610cf07f0000000000000000000000000000000000000000000000000000000000000000610cf8565b505050505050565b60606000808373ffffffffffffffffffffffffffffffffffffffff16600036604051610b859291905b8183823760009101908152919050565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015610d795780818460040360031b1b83161693505b505050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60005b83811015610dcb578181015183820152602001610db3565b50506000910152565b600060208284031215610de657600080fd5b815167ffffffffffffffff80821115610dfe57600080fd5b818401915084601f830112610e1257600080fd5b815181811115610e2457610e24610d81565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610e6a57610e6a610d81565b81604052828152876020848701011115610e8357600080fd5b610e94836020830160208801610db0565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610ec157600080fd5b50565b600060208284031215610ed657600080fd5b8135610ee181610e9f565b9392505050565b80358015158114610ef857600080fd5b919050565b600060208284031215610f0f57600080fd5b610ee182610ee8565b6000606082840312156108d757600080fd5b600080600060608486031215610f3f57600080fd5b8335925060208401359150604084013567ffffffffffffffff811115610f6457600080fd5b610f7086828701610f18565b9150509250925092565b60008083601f840112610f8c57600080fd5b50813567ffffffffffffffff811115610fa457600080fd5b6020830191508360208260051b8501011115610fbf57600080fd5b9250929050565b60008060008060008060808789031215610fdf57600080fd5b8635610fea81610e9f565b95506020870135610ffa81610e9f565b9450604087013567ffffffffffffffff8082111561101757600080fd5b6110238a838b01610f7a565b9096509450606089013591508082111561103c57600080fd5b5061104989828a01610f7a565b979a9699509497509295939492505050565b6000806000806080858703121561107157600080fd5b84359350602085013561108381610e9f565b9250604085013561109381610e9f565b9396929550929360600135925050565b600080600080608085870312156110b957600080fd5b843593506020850135925060408501359150606085013567ffffffffffffffff8111156110e557600080fd5b6110f187828801610f18565b91505092959194509250565b60006020828403121561110f57600080fd5b813567ffffffffffffffff81111561112657600080fd5b61113284828501610f18565b949350505050565b6000806040838503121561114d57600080fd5b50508035926020909101359150565b600080600080600060a0868803121561117457600080fd5b85359450602086013593506040860135925060608601359150608086013567ffffffffffffffff8111156111a757600080fd5b6111b388828901610f18565b9150509295509295909350565b600080600080608085870312156111d657600080fd5b8435935060208501356111e881610e9f565b92506040850135915060608501356111ff81610e9f565b939692955090935050565b6000806040838503121561121d57600080fd5b823561122881610e9f565b915061123660208401610ee8565b90509250929050565b600080600080600080600060e0888a03121561125a57600080fd5b873561126581610e9f565b9650602088013561127581610e9f565b955061128360408901610ee8565b945060608801359350608088013560ff811681146112a057600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806000606084860312156112d257600080fd5b8335925060208401356112e481610e9f565b929592945050506040919091013590565b600080600080600060a0868803121561130d57600080fd5b85359450602086013561131f81610e9f565b9350604086013561132f81610e9f565b925060608601359150608086013561134681610e9f565b809150509295509295909350565b60008251611366818460208701610db0565b919091019291505056fea2646970667358221220490897ebc66448d4da356e837a5c9752ff3f33c4b87bd1d6b4518452d3b38bfe64736f6c63430008140033" -} \ No newline at end of file diff --git a/deployments/sepolia/TEST_ERC4626_ERC4626Target0.json b/deployments/sepolia/TEST_ERC4626_ERC4626Target0.json deleted file mode 100644 index 10c22ac09..000000000 --- a/deployments/sepolia/TEST_ERC4626_ERC4626Target0.json +++ /dev/null @@ -1,1838 +0,0 @@ -{ - "address": "0x10355a87748CD5817ebb3a42B9FEc24ab2a1E27c", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "AddressInsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "BatchInputLengthMismatch", - "type": "error" - }, - { - "inputs": [], - "name": "ExpInvalidExponent", - "type": "error" - }, - { - "inputs": [], - "name": "ExpiredDeadline", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidERC20Bridge", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidFeeDestination", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidPresentValue", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidSignature", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidTimestamp", - "type": "error" - }, - { - "inputs": [], - "name": "LnInvalidInput", - "type": "error" - }, - { - "inputs": [], - "name": "ReentrancyGuardReentrantCall", - "type": "error" - }, - { - "inputs": [], - "name": "RestrictedZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ReturnData", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "SafeERC20FailedOperation", - "type": "error" - }, - { - "inputs": [], - "name": "SweepFailed", - "type": "error" - }, - { - "inputs": [], - "name": "Unauthorized", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt256", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "AddLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "basePayment", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fees", - "type": "uint256" - } - ], - "name": "CollectGovernanceFee", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "checkpointTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "checkpointVaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedShorts", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedLongs", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "CreateCheckpoint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newFeeCollector", - "type": "address" - } - ], - "name": "FeeCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGovernance", - "type": "address" - } - ], - "name": "GovernanceUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "apr", - "type": "uint256" - } - ], - "name": "Initialize", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseProceeds", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isPaused", - "type": "bool" - } - ], - "name": "PauseStatusUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newPauser", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "status", - "type": "bool" - } - ], - "name": "PauserUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - } - ], - "name": "RedeemWithdrawalShares", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "RemoveLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "Sweep", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newSweepCollector", - "type": "address" - } - ], - "name": "SweepCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "baseToken", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - } - ], - "name": "batchTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "collectGovernanceFee", - "outputs": [ - { - "internalType": "uint256", - "name": "proceeds", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_checkpointTime", - "type": "uint256" - } - ], - "name": "getCheckpoint", - "outputs": [ - { - "components": [ - { - "internalType": "uint128", - "name": "vaultSharePrice", - "type": "uint128" - } - ], - "internalType": "struct IHyperdrive.Checkpoint", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_checkpointTime", - "type": "uint256" - } - ], - "name": "getCheckpointExposure", - "outputs": [ - { - "internalType": "int256", - "name": "", - "type": "int256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getMarketState", - "outputs": [ - { - "components": [ - { - "internalType": "uint128", - "name": "shareReserves", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "bondReserves", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "longExposure", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "longsOutstanding", - "type": "uint128" - }, - { - "internalType": "int128", - "name": "shareAdjustment", - "type": "int128" - }, - { - "internalType": "uint128", - "name": "shortsOutstanding", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "longAverageMaturityTime", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "shortAverageMaturityTime", - "type": "uint128" - }, - { - "internalType": "bool", - "name": "isInitialized", - "type": "bool" - }, - { - "internalType": "bool", - "name": "isPaused", - "type": "bool" - }, - { - "internalType": "uint112", - "name": "zombieBaseProceeds", - "type": "uint112" - }, - { - "internalType": "uint128", - "name": "zombieShareReserves", - "type": "uint128" - } - ], - "internalType": "struct IHyperdrive.MarketState", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getPoolConfig", - "outputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getPoolInfo", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "shareReserves", - "type": "uint256" - }, - { - "internalType": "int256", - "name": "shareAdjustment", - "type": "int256" - }, - { - "internalType": "uint256", - "name": "zombieBaseProceeds", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "zombieShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "bondReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lpTotalSupply", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "vaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "longsOutstanding", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "longAverageMaturityTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "shortsOutstanding", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "shortAverageMaturityTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "withdrawalSharesReadyToWithdraw", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "withdrawalSharesProceeds", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "longExposure", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.PoolInfo", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getUncollectedGovernanceFees", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getWithdrawPool", - "outputs": [ - { - "components": [ - { - "internalType": "uint128", - "name": "readyToWithdraw", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "proceeds", - "type": "uint128" - } - ], - "internalType": "struct IHyperdrive.WithdrawPool", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - } - ], - "name": "isPauser", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256[]", - "name": "_slots", - "type": "uint256[]" - } - ], - "name": "load", - "outputs": [ - { - "internalType": "bytes32[]", - "name": "", - "type": "bytes32[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "_status", - "type": "bool" - } - ], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "perTokenApprovals", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "domainSeparator", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "permitTypeHash", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "bool", - "name": "_approved", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permitForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenID", - "type": "uint256" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "setApproval", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenID", - "type": "uint256" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "caller", - "type": "address" - } - ], - "name": "setApprovalBridge", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_who", - "type": "address" - } - ], - "name": "setFeeCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_who", - "type": "address" - } - ], - "name": "setGovernance", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "who", - "type": "address" - }, - { - "internalType": "bool", - "name": "status", - "type": "bool" - } - ], - "name": "setPauser", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_who", - "type": "address" - } - ], - "name": "setSweepCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_target", - "type": "address" - } - ], - "name": "sweep", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenID", - "type": "uint256" - }, - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenID", - "type": "uint256" - }, - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "caller", - "type": "address" - } - ], - "name": "transferFromBridge", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "vaultSharesToken", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "version", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - } - ], - "args": [ - { - "minimumShareReserves": "1000000000000000", - "minimumTransactionAmount": "1000000000000000", - "positionDuration": "2592000", - "checkpointDuration": "86400", - "timeStretch": "0", - "governance": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "feeCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "sweepCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "fees": { - "curve": "1000000000000000", - "flat": "8333333333333", - "governanceLP": "150000000000000000", - "governanceZombie": "30000000000000000" - }, - "baseToken": "0x96bf962d3c02134fc7aa9441ea38715a261da60b", - "vaultSharesToken": "0xa6f5ad0ef6f4db6e9fa2e13318d218665c72a3ba", - "linkerFactory": "0xE84d966f6f87C7957719ad4BeC7E3bB35a46E8B2", - "linkerCodeHash": "0x9a69ff3b9a110deacb7d941d71222642f269891c0da9fcc15ec7c63fbd216b3f", - "initialVaultSharePrice": "0" - } - ], - "numDeployments": 1, - "bytecode": "0x6102406040523480156200001257600080fd5b506040516200533e3803806200533e8339810160408190526200003591620001e1565b600160005580516001600160a01b039081166080908152602080840151831660a0908152918401516101a0908152918401516101c05260c0808501516101e0526101008086015190915260e0808601519052610120808601519091529184018051519092528151015161014090815281516040908101516101609081529251606090810151610180908152918601518516610200528501516102205290840151600a80546001600160a01b03199081169286169290921790559184015160088054841691851691909117905590920151600980549093169116179055620002d4565b6040516101c081016001600160401b03811182821017156200014957634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b03811681146200016757600080fd5b919050565b6000608082840312156200017f57600080fd5b604051608081016001600160401b0381118282101715620001b057634e487b7160e01b600052604160045260246000fd5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b60006102208284031215620001f557600080fd5b620001ff62000117565b6200020a836200014f565b81526200021a602084016200014f565b60208201526200022d604084016200014f565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101406200028c8185016200014f565b90820152610160620002a08482016200014f565b90820152610180620002b48482016200014f565b908201526101a0620002c9858583016200016c565b908201529392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e0516102005161022051614f3d62000401600039600081816109bc01528181610f5b015261149601526000818161096c01528181610f340152611446015260008181610fd5015261253b015260008181610faf0152612515015260008181610f8501526124ef01526000611105015260006110e0015260006110bb015260006110980152600081816110480152612561015260008181610ffb015281816112930152612e3901526000818161102101526132140152600081816106b301528181610f0801528181612b0901528181612d6d015281816130bb0152818161315401526131e60152600081816107ce01528181610ee3015261123a0152614f3d6000f3fe608060405234801561001057600080fd5b50600436106102405760003560e01c806360246c8811610145578063becee9c3116100bd578063d81657431161008c578063e4af29d111610071578063e4af29d1146105a0578063e985e9c5146105b3578063fba56008146105c657600080fd5b8063d816574314610578578063e44808bc1461058d57600080fd5b8063becee9c314610535578063c55dae6314610555578063c69e16ad1461055d578063cf210e651461056557600080fd5b8063a22cb46511610114578063ab033ea9116100f9578063ab033ea9146104fa578063b0d965801461050d578063bd85b0391461052257600080fd5b8063a22cb465146104d4578063a42dce80146104e757600080fd5b806360246c88146103ea5780637180c8ca1461049b5780637ecebe00146104ae5780639cd241af146104c157600080fd5b806320fc4881116101d85780633e691db9116101a75780634e41a1fb1161018c5780634e41a1fb146103bc5780634ed2d6ac146103cf57806354fd4d50146103e257600080fd5b80633e691db91461038657806346fbf68e1461039957600080fd5b806320fc48811461030457806321ff32a914610338578063313ce567146103595780633656eec21461037357600080fd5b80630a4e1493116102145780630a4e14931461029e57806314e5f07b146102cb57806317fad7fc146102de5780631c0f12b6146102f157600080fd5b8062ad800c1461024557806301681a621461026e57806302329a291461028357806306fdde0314610296575b600080fd5b6102586102533660046142ce565b6105fe565b6040516102659190614355565b60405180910390f35b61028161027c36600461438a565b610635565b005b6102816102913660046143b5565b610641565b61025861064a565b6102a6610698565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610265565b6102816102d93660046143e1565b6106e5565b6102816102ec3660046144b5565b610701565b6102816102ff36600461454a565b610717565b6103176103123660046142ce565b61072a565b60405190516fffffffffffffffffffffffffffffffff168152602001610265565b61034b610346366004614592565b610774565b604051908152602001610265565b6103616107c7565b60405160ff9091168152602001610265565b61034b6103813660046145d4565b61086f565b61034b610394366004614604565b6108b5565b6103ac6103a736600461438a565b6108c0565b6040519015158152602001610265565b6102586103ca3660046142ce565b610903565b6102816103dd36600461463f565b610911565b610258610a75565b6103f2610ac0565b6040516102659190815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e08083015190820152610100808301519082015261012080830151908201526101408083015190820152610160808301519082015261018080830151908201526101a080830151908201526101c091820151918101919091526101e00190565b6102816104a9366004614689565b610db8565b61034b6104bc36600461438a565b610dc6565b6102816104cf3660046146b7565b610dff565b6102816104e2366004614689565b610e10565b6102816104f536600461438a565b610ea7565b61028161050836600461438a565b610eb0565b610515610eb9565b60405161026591906146ef565b61034b6105303660046142ce565b611142565b610548610543366004614851565b611164565b6040516102659190614893565b6102a661121f565b61034b61126c565b61034b6105733660046142ce565b611286565b6105806112cf565b60405161026591906148d7565b61028161059b366004614a37565b6113eb565b6102816105ae36600461438a565b611549565b6103ac6105c1366004614a96565b611552565b6105ce6115a3565b6040805182516fffffffffffffffffffffffffffffffff9081168252602093840151169281019290925201610265565b606061063061060c83611618565b60405160200161061c9190614355565b604051602081830303815290604052611768565b919050565b61063e816117a5565b50565b61063e816119c2565b60606106956040518060400160405280601181526020017f455243343632364879706572647269766500000000000000000000000000000081525060405160200161061c9190614355565b90565b6040805173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152600091610695910161061c565b6106f6898989898989898989611a7c565b505050505050505050565b61070f868686868686611d56565b505050505050565b6107248484848433611e56565b50505050565b6040805160208101909152600081526106306007600084815260200190815260200160002060405160200161061c91546fffffffffffffffffffffffffffffffff16815260200190565b600083815260106020908152604080832073ffffffffffffffffffffffffffffffffffffffff868116855290835281842090851684528252808320548151928301526107c0910161061c565b9392505050565b60006106957f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610837573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085b9190614ac4565b6040805160ff90921660208301520161061c565b6000828152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff851684528252808320548151928301526108af910161061c565b92915050565b60006108af826120d0565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600c602090815260408083205490516106309261061c9260ff169101901515815260200190565b606061063061060c8361226c565b836109fe81604080513060208083019190915281830193909352815180820383018152606080830184528151918501919091207fff0000000000000000000000000000000000000000000000000000000000000060808401527f000000000000000000000000000000000000000000000000000000000000000090911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016608183015260958201527f000000000000000000000000000000000000000000000000000000000000000060b5808301919091528251808303909101815260d5909101909152805191012090565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a62576040517f2aab8bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a6e858585856123a2565b5050505050565b60606106956040518060400160405280600681526020017f76312e302e32000000000000000000000000000000000000000000000000000081525060405160200161061c9190614355565b610b39604051806101e001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000610b4361241c565b600654600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e95460008080527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c54939450926fffffffffffffffffffffffffffffffff90921691610bb79190614b3f565b610bc19190614b52565b90506000808311610bd3576000610bee565b610bee83610be8610be386612434565b6125f6565b9061263f565b604080516101e0810182526001546fffffffffffffffffffffffffffffffff8082168352600354600f81900b60208501526005546dffffffffffffffffffffffffffff62010000820416958501959095527001000000000000000000000000000000009485900482166060850152918490048116608084015260a0830187905260c08301889052600254849004811660e0840152600454808216610100850152918490048116610120840152908390048116610140830152600654808216610160840152929092049091166101808201529091506000906101a081018415610cdf57610cda8486612654565b610ce2565b60005b81526002546fffffffffffffffffffffffffffffffff16602091820152604051919250610db19161061c91849101815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e08083015190820152610100808301519082015261012080830151908201526101408083015190820152610160808301519082015261018080830151908201526101a080830151908201526101c091820151918101919091526101e00190565b5050505090565b610dc28282612669565b5050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260116020908152604080832054815192830152610630910161061c565b610e0b838383336123a2565b505050565b336000818152600f6020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61063e81612744565b61063e81612804565b610ec16141b0565b604080516101c08101825273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811682527f000000000000000000000000000000000000000000000000000000000000000081166020808401919091527f00000000000000000000000000000000000000000000000000000000000000008216838501527f00000000000000000000000000000000000000000000000000000000000000006060808501919091527f00000000000000000000000000000000000000000000000000000000000000006080808601919091527f000000000000000000000000000000000000000000000000000000000000000060a08601527f000000000000000000000000000000000000000000000000000000000000000060c08601527f000000000000000000000000000000000000000000000000000000000000000060e08601527f00000000000000000000000000000000000000000000000000000000000000006101008601527f0000000000000000000000000000000000000000000000000000000000000000610120860152600a5484166101408601526008548416610160860152600954909316610180850152845192830185527f000000000000000000000000000000000000000000000000000000000000000083527f0000000000000000000000000000000000000000000000000000000000000000838301527f0000000000000000000000000000000000000000000000000000000000000000838601527f0000000000000000000000000000000000000000000000000000000000000000908301526101a083019190915291516106959261061c9291016146ef565b6000818152600e6020908152604080832054815192830152610630910161061c565b606060008267ffffffffffffffff81111561118157611181614b65565b6040519080825280602002602001820160405280156111aa578160200160208202803683370190505b50905060005b838110156112035760008585838181106111cc576111cc614b94565b905060200201359050600081549050808484815181106111ee576111ee614b94565b602090810291909101015250506001016111b0565b506112188160405160200161061c9190614893565b5092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152600091610695910161061c565b6000610695600b5460405160200161061c91815260200190565b60006106306112bd6112b87f000000000000000000000000000000000000000000000000000000000000000085614b3f565b6128c4565b60405160200161061c91815260200190565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810191909152610695600160405160200161061c919081546fffffffffffffffffffffffffffffffff8082168352608091821c602084015260018401548082166040850152821c60608401526002840154600f81900b83850152821c60a0840152600384015490811660c0840152811c60e083015260049092015460ff8082161515610100840152600882901c1615156101208301526dffffffffffffffffffffffffffff601082901c1661014083015290911c6101608201526101800190565b846114d881604080513060208083019190915281830193909352815180820383018152606080830184528151918501919091207fff0000000000000000000000000000000000000000000000000000000000000060808401527f000000000000000000000000000000000000000000000000000000000000000090911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016608183015260958201527f000000000000000000000000000000000000000000000000000000000000000060b5808301919091528251808303909101815260d5909101909152805191012090565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461153c576040517f2aab8bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61070f8686868686611e56565b61063e81612908565b73ffffffffffffffffffffffffffffffffffffffff8281166000908152600f60209081526040808320938516835292815282822054835160ff90911615159181019190915290916108af910161061c565b60408051808201909152600080825260208201526040805180820182526006546fffffffffffffffffffffffffffffffff80821680845270010000000000000000000000000000000090920481166020938401908152845193840192909252905116918101919091526106959060600161061c565b606060f882901c7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8316600061164c826129c8565b9050600083600381111561166257611662614ae1565b036116a4576040518060400160405280600d81526020017f48797065726472697665204c50000000000000000000000000000000000000008152509350611760565b60018360038111156116b8576116b8614ae1565b036116e457806040516020016116ce9190614bc3565b6040516020818303038152906040529350611760565b60028360038111156116f8576116f8614ae1565b0361170e57806040516020016116ce9190614c08565b600383600381111561172257611722614ae1565b03611760576040518060400160405280601b81526020017f48797065726472697665205769746864726177616c205368617265000000000081525093505b505050919050565b806040517fdcc8112600000000000000000000000000000000000000000000000000000000815260040161179c9190614355565b60405180910390fd5b6117ad612a95565b600954336000908152600c602052604090205473ffffffffffffffffffffffffffffffffffffffff9091169060ff161580156117ff57503373ffffffffffffffffffffffffffffffffffffffff821614155b80156118235750600a5473ffffffffffffffffffffffffffffffffffffffff163314155b1561185a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611864612ad8565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290915060009073ffffffffffffffffffffffffffffffffffffffff8516906370a0823190602401602060405180830381865afa1580156118d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f89190614c4d565b905061191b73ffffffffffffffffffffffffffffffffffffffff85168483612b89565b81611924612ad8565b1461195b576040517f9eec2ff800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f951f51ee88c8e42633698bba90d1e53c0954470938036879e691c0232b47e09660405160405180910390a350505061063e6001600055565b336000908152600c602052604090205460ff16611a0b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60058054821515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff9091161790556040517f7c4d1fe30fdbfda9e9c4c43e759ef32e4db5128d4cb58ff3ae9583b89b6242a590611a7190831515815260200190565b60405180910390a150565b83421115611ab6576040517ff87d927100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8716611b03576040517ff0dd15fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87811660008181526011602090815260408083205481518084018f905280830195909552948b166060850152891515608085015260a084019490945260c08084018990528451808503909101815260e0840190945283519301929092207f190100000000000000000000000000000000000000000000000000000000000061010083015261010282018c905261012282015261014201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015611c37573d6000803e3d6000fd5b5050506020604051035190508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611ca8576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff898116600081815260116020908152604080832080546001019055600f8252808320948d168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168c151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff86161580611d8d575073ffffffffffffffffffffffffffffffffffffffff8516155b15611dc4576040517ff0dd15fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b828114611dfd576040517fba430d3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b83811015611e4d57611e45858583818110611e1d57611e1d614b94565b905060200201358888868686818110611e3857611e38614b94565b9050602002013533611e56565b600101611e00565b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff84161580611e8d575073ffffffffffffffffffffffffffffffffffffffff8316155b15611ec4576040517ff0dd15fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611fe75773ffffffffffffffffffffffffffffffffffffffff8085166000908152600f602090815260408083209385168352929052205460ff16611fe757600085815260106020908152604080832073ffffffffffffffffffffffffffffffffffffffff808916855290835281842090851684529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611fe557600086815260106020908152604080832073ffffffffffffffffffffffffffffffffffffffff808a168552908352818420908616845290915281208054859290611fdf908490614b52565b90915550505b505b6000858152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8816845290915281208054849290612026908490614b52565b90915550506000858152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120805484929061206a908490614b3f565b9091555050604080518681526020810184905273ffffffffffffffffffffffffffffffffffffffff8086169287821692918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a45050505050565b60006120da612a95565b6120e382612c16565b60085473ffffffffffffffffffffffffffffffffffffffff168061210a602085018561438a565b73ffffffffffffffffffffffffffffffffffffffff1614612157576040517f2b44eccc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152600c602052604090205460ff1615801561218d57503373ffffffffffffffffffffffffffffffffffffffff821614155b80156121b15750600a5473ffffffffffffffffffffffffffffffffffffffff163314155b156121e8576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006121f261241c565b600b80546000909155909150612209818387612c72565b93508273ffffffffffffffffffffffffffffffffffffffff167fa4bafc79b3f9fdba2427cd386f1fbc7d8779e9fd7229f6220d53bc04d3901e4761224e868589612d0c565b60405190815260200160405180910390a25050506106306001600055565b606060f882901c7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831660006122a0826129c8565b905060008360038111156122b6576122b6614ae1565b036122f8576040518060400160405280600d81526020017f485950455244524956452d4c50000000000000000000000000000000000000008152509350611760565b600183600381111561230c5761230c614ae1565b0361232257806040516020016116ce9190614c66565b600283600381111561233657612336614ae1565b0361234c57806040516020016116ce9190614cab565b600383600381111561236057612360614ae1565b0361176057505060408051808201909152600d81527f485950455244524956452d57530000000000000000000000000000000000000060208201529392505050565b600084815260106020908152604080832073ffffffffffffffffffffffffffffffffffffffff85811680865291845282852090881680865290845293829020869055905185815290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050565b600061242f670de0b6b3a7640000612d3b565b905090565b6124986040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60408051610180810182526001546fffffffffffffffffffffffffffffffff8082168352600354600f0b602084015270010000000000000000000000000000000091829004811693830193909352606082018590527f000000000000000000000000000000000000000000000000000000000000000060808301527f000000000000000000000000000000000000000000000000000000000000000060a08301527f000000000000000000000000000000000000000000000000000000000000000060c08301527f000000000000000000000000000000000000000000000000000000000000000060e083015260025404821661010082015260045490916101208301916125a69116612dee565b81526003546fffffffffffffffffffffffffffffffff70010000000000000000000000000000000091829004811660208401526004546040909301926125ee92900416612dee565b905292915050565b600080600061260484612e64565b9150915080611218576040517faa2c651600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006107c08383670de0b6b3a7640000612ef1565b60006107c083670de0b6b3a764000084612ef1565b600a5473ffffffffffffffffffffffffffffffffffffffff1633146126ba576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000818152600c602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f902923dcd4814f6cef7005a70e01d5cf2035ab02d4523ef3b865f1d7bab885af910160405180910390a25050565b600a5473ffffffffffffffffffffffffffffffffffffffff163314612795576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fe5693914d19c789bdee50a362998c0bc8d035a835f9871da5d51152f0582c34f90600090a250565b600a5473ffffffffffffffffffffffffffffffffffffffff163314612855576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f9d3e522e1e47a2f6009739342b9cc7b252a1888154e843ab55ee1c81745795ab90600090a250565b60006128ec600e60006128d8600286612f2d565b815260200190815260200160002054612f93565b6128fe600e60006128d8600187612f2d565b6108af9190614ce3565b600a5473ffffffffffffffffffffffffffffffffffffffff163314612959576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fc049058b1df2dd8902739ceb78992df12fa8369c06c450b3c6787137b452fdd290600090a250565b60408051604e80825260808201909252606091906000908260208201818036833701905050905060005b8415612a8757612a03600a86614d32565b612a0e906030614b3f565b60f81b826001612a1e8487614b52565b612a289190614b52565b81518110612a3857612a38614b94565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080612a7181614d46565b9150612a809050600a86614d7e565b94506129f2565b918290030190815292915050565b600260005403612ad1576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015612b65573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061242f9190614c4d565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610e0b908490612ff3565b6000612c25602083018361438a565b73ffffffffffffffffffffffffffffffffffffffff160361063e576040517ff0dd15fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080612c7f858561263f565b9050612c8a81613089565b945084600003612c9e5760009150506107c0565b612cae60408401602085016143b5565b15612cdd57612cd685612cc4602086018661438a565b612cd16040870187614d92565b6130ff565b9150612d04565b612d0085612cee602086018661438a565b612cfb6040870187614d92565b6131cc565b8491505b509392505050565b6000612d1e60408301602084016143b5565b15612d2a5750826107c0565b612d34848461263f565b90506107c0565b6040517f07a2d13a000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906307a2d13a906024015b602060405180830381865afa158015612dca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108af9190614c4d565b600080670de0b6b3a7640000612e0261320d565b612e0c9190614df7565b9050808311612e1c576000612e26565b612e268184614b52565b91506107c0612e5d670de0b6b3a76400007f0000000000000000000000000000000000000000000000000000000000000000614df7565b8390612654565b6000806000806000612e7586613243565b9150915080612e8c57506000958695509350505050565b612e998660a00151612f93565b612ea28761357d565b83612eb08960000151612f93565b612eba9190614e0e565b612ec49190614e0e565b612ece9190614ce3565b925050506000811215612ee75750600093849350915050565b9360019350915050565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0484118302158202612f2657600080fd5b5091020490565b60007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115612f88576040517fb7d0949700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060f89190911b1790565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115612fef576040517f72dd4e0200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5090565b600061301573ffffffffffffffffffffffffffffffffffffffff8416836135e1565b9050805160001415801561303a5750808060200190518101906130389190614e2e565b155b15610e0b576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260240161179c565b6040517fc6e6f592000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063c6e6f59290602401612dad565b6040517fba0876520000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff84811660248301523060448301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063ba087652906064016020604051808303816000875af115801561319f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c39190614c4d565b95945050505050565b61072473ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168486612b89565b60006132397f000000000000000000000000000000000000000000000000000000000000000042614d32565b61242f9042614b52565b600080600061326d61326885610160015186610140015161263f90919063ffffffff16565b612f93565b61328d6132688661012001518761010001516135ef90919063ffffffff16565b6132979190614ce3565b90506000806132ae86600001518760200151613604565b91509150806132c557506000958695509350505050565b60008313156134155760008390506000613313886000015189602001518a604001518b60a001518c60e00151670de0b6b3a76400006133049190614b52565b8d606001518e60800151613643565b935090508261332c575060009788975095505050505050565b8181106133ca576000613366858a60400151858c60e00151670de0b6b3a76400006133579190614b52565b8d606001518e60800151613755565b945090508315801561337b57508860c0015183105b156133925750600098600198509650505050505050565b836133a857506000988998509650505050505050565b6133b181612f93565b6133ba90614e4b565b9960019950975050505050505050565b6000886020015112613401576133e98860a00151856132689190614b52565b6133f290614e4b565b98600198509650505050505050565b60a088015188516133e99161326891614b52565b600083121561356e57600061342984614e4b565b9050600061345d8489604001518a60e00151670de0b6b3a764000061344e9190614b52565b8b606001518c60800151613818565b9350905082613476575060009788975095505050505050565b8181106134fb5760006134b0858a60400151858c60e00151670de0b6b3a76400006134a19190614b52565b8d606001518e608001516138c4565b94509050831580156134c557508860c0015183105b156134dc5750600098600198509650505050505050565b836134f257506000988998509650505050505050565b6133ba81612f93565b600061352d858a604001518b60e00151670de0b6b3a764000061351e9190614b52565b8c606001518d6080015161399b565b945090508361354757506000988998509650505050505050565b6133ba6135648a60600151848661355e9190614b52565b90612654565b6132689083614b3f565b50600095600195509350505050565b60006135b0613268836101200151670de0b6b3a764000061359e9190614b52565b60608501516101008601519190613a4a565b6128fe613268846101600151670de0b6b3a76400006135cf9190614b52565b60608601516101408701519190612ef1565b60606107c083836000613a8e565b60006107c08383670de0b6b3a7640000613a4a565b60008060008361361386612f93565b61361d9190614ce3565b9050600081121561363557600080925092505061363c565b9150600190505b9250929050565b60008060008812156136655761365888614e4b565b6136629087614b3f565b95505b6000806136728b8b613604565b915091508061368957600080935093505050613749565b6000613698838b8a8a8a613b51565b905060006136bb6136b38a6136ad8a8e6135ef565b90613b80565b899089613a4a565b9050808210156136d5576000809550955050505050613749565b808203670de0b6b3a7640000811061370a576137036136fc670de0b6b3a76400008c612654565b8290613b80565b9050613722565b61371f6136fc670de0b6b3a76400008c613beb565b90505b8b81101561373b57600080965096505050505050613749565b8b9003955060019450505050505b97509795505050505050565b60008060006137678989888888613c00565b9050613777866136ad898b614b3f565b97508781101561378e57600080925092505061380d565b87810361379c818688613a4a565b9050670de0b6b3a764000081106137c9576137c26136fc670de0b6b3a764000089613beb565b90506137e1565b6137de6136fc670de0b6b3a764000089612654565b90505b6137eb8186613beb565b9050808a10156138035760008093509350505061380d565b8903925060019150505b965096945050505050565b600080600061382a8888888888613c00565b90506000613855670de0b6b3a76400006138448888612654565b61384e9190614b3f565b8390613beb565b9050670de0b6b3a764000081106138825761387b6136fc670de0b6b3a764000089613beb565b905061389a565b6138976136fc670de0b6b3a764000089612654565b90505b808810156138b0576000809350935050506138ba565b8703925060019150505b9550959350505050565b60008060006138d68989888888613c00565b9050868810156138ed57600080925092505061380d565b96869003966138fc8887613b80565b97508781101561391357600080925092505061380d565b878103613921818688613a4a565b9050670de0b6b3a7640000811061394e576139476136fc670de0b6b3a764000089613beb565b9050613966565b6139636136fc670de0b6b3a764000089612654565b90505b6139708186613beb565b9050898110156139885760008093509350505061380d565b9890980398600198509650505050505050565b60008060006139ad8888888888613b51565b905060006139d1670de0b6b3a76400006139c78888613beb565b612e5d9190614b3f565b9050670de0b6b3a764000081106139fe576139f76136fc670de0b6b3a764000089612654565b9050613a16565b613a136136fc670de0b6b3a764000089613beb565b90505b613a208186612654565b905088811015613a38576000809350935050506138ba565b97909703976001975095505050505050565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0484118302158202613a7f57600080fd5b50910281810615159190040190565b606081471015613acc576040517fcd78605900000000000000000000000000000000000000000000000000000000815230600482015260240161179c565b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051613af59190614e83565b60006040518083038185875af1925050503d8060008114613b32576040519150601f19603f3d011682016040523d82523d6000602084013e613b37565b606091505b5091509150613b47868383613c25565b9695505050505050565b6000613b5d8585613b80565b613b76613b6e866136ad868b61263f565b859085612ef1565b613b479190614b3f565b600081600003613b995750670de0b6b3a76400006108af565b82600003613ba9575060006108af565b6000613bb483612f93565b90506000613bc9613bc486612f93565b613cb4565b9050818102613be0670de0b6b3a764000082614e9f565b9050613b4781613f55565b60006107c083670de0b6b3a764000084613a4a565b6000613c0c8585613b80565b613b76613c1d866136ad868b6135ef565b859085613a4a565b606082613c3a57613c358261416e565b6107c0565b8151158015613c5e575073ffffffffffffffffffffffffffffffffffffffff84163b155b15613cad576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260240161179c565b50806107c0565b6000808213613cef576040517fe61b497500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff10600390811b90911782811c600f1060021b1782811c909110600190811b90911782811c90911017609f8181036060019290921b917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0820190613d999084901c612f93565b6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b391909102017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c18213613f8657506000919050565b680755bf798b4a1bf1e58212613fc8576040517f73a2d6b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b3988102909303927fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550484018402606090811d6d0277594991cfc85f6e2461837cd9018502811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018502811d6db1bbb201f443cf962f1a1d3db4a5018502811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018502811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765087018702831d9081019087017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e01810290921d6e0587f503bb6ea29d25fcb74019645001860279d835ebba824c98fb31b83b2ca45c000000000000000000000000018181059550929350909190613b4774029d9dc38563c32e5c2f6dc192ee70ef65f9978af3860260c38690031c612f93565b80511561417e5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051806101c00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016142c96040518060800160405280600081526020016000815260200160008152602001600081525090565b905290565b6000602082840312156142e057600080fd5b5035919050565b60005b838110156143025781810151838201526020016142ea565b50506000910152565b600081518084526143238160208601602086016142e7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006107c0602083018461430b565b73ffffffffffffffffffffffffffffffffffffffff8116811461063e57600080fd5b60006020828403121561439c57600080fd5b81356107c081614368565b801515811461063e57600080fd5b6000602082840312156143c757600080fd5b81356107c0816143a7565b60ff8116811461063e57600080fd5b60008060008060008060008060006101208a8c03121561440057600080fd5b8935985060208a0135975060408a013561441981614368565b965060608a013561442981614368565b955060808a0135614439816143a7565b945060a08a0135935060c08a0135614450816143d2565b8093505060e08a013591506101008a013590509295985092959850929598565b60008083601f84011261448257600080fd5b50813567ffffffffffffffff81111561449a57600080fd5b6020830191508360208260051b850101111561363c57600080fd5b600080600080600080608087890312156144ce57600080fd5b86356144d981614368565b955060208701356144e981614368565b9450604087013567ffffffffffffffff8082111561450657600080fd5b6145128a838b01614470565b9096509450606089013591508082111561452b57600080fd5b5061453889828a01614470565b979a9699509497509295939492505050565b6000806000806080858703121561456057600080fd5b84359350602085013561457281614368565b9250604085013561458281614368565b9396929550929360600135925050565b6000806000606084860312156145a757600080fd5b8335925060208401356145b981614368565b915060408401356145c981614368565b809150509250925092565b600080604083850312156145e757600080fd5b8235915060208301356145f981614368565b809150509250929050565b60006020828403121561461657600080fd5b813567ffffffffffffffff81111561462d57600080fd5b8201606081850312156107c057600080fd5b6000806000806080858703121561465557600080fd5b84359350602085013561466781614368565b925060408501359150606085013561467e81614368565b939692955090935050565b6000806040838503121561469c57600080fd5b82356146a781614368565b915060208301356145f9816143a7565b6000806000606084860312156146cc57600080fd5b8335925060208401356146de81614368565b929592945050506040919091013590565b815173ffffffffffffffffffffffffffffffffffffffff16815261022081016020830151614735602084018273ffffffffffffffffffffffffffffffffffffffff169052565b50604083015161475d604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e0830152610100808401518184015250610120808401518184015250610140808401516147d08285018273ffffffffffffffffffffffffffffffffffffffff169052565b50506101608381015173ffffffffffffffffffffffffffffffffffffffff81168483015250506101808381015173ffffffffffffffffffffffffffffffffffffffff81168483015250506101a08381015180518483015260208101516101c085015260408101516101e085015260608101516102008501525b505092915050565b6000806020838503121561486457600080fd5b823567ffffffffffffffff81111561487b57600080fd5b61488785828601614470565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b818110156148cb578351835292840192918401916001016148af565b50909695505050505050565b81516fffffffffffffffffffffffffffffffff1681526101808101602083015161491560208401826fffffffffffffffffffffffffffffffff169052565b50604083015161493960408401826fffffffffffffffffffffffffffffffff169052565b50606083015161495d60608401826fffffffffffffffffffffffffffffffff169052565b5060808301516149726080840182600f0b9052565b5060a083015161499660a08401826fffffffffffffffffffffffffffffffff169052565b5060c08301516149ba60c08401826fffffffffffffffffffffffffffffffff169052565b5060e08301516149de60e08401826fffffffffffffffffffffffffffffffff169052565b506101008381015115159083015261012080840151151590830152610140808401516dffffffffffffffffffffffffffff1690830152610160808401516fffffffffffffffffffffffffffffffff811682850152614849565b600080600080600060a08688031215614a4f57600080fd5b853594506020860135614a6181614368565b93506040860135614a7181614368565b9250606086013591506080860135614a8881614368565b809150509295509295909350565b60008060408385031215614aa957600080fd5b8235614ab481614368565b915060208301356145f981614368565b600060208284031215614ad657600080fd5b81516107c0816143d2565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156108af576108af614b10565b818103818111156108af576108af614b10565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f48797065726472697665204c6f6e673a20000000000000000000000000000000815260008251614bfb8160118501602087016142e7565b9190910160110192915050565b7f487970657264726976652053686f72743a200000000000000000000000000000815260008251614c408160128501602087016142e7565b9190910160120192915050565b600060208284031215614c5f57600080fd5b5051919050565b7f485950455244524956452d4c4f4e473a00000000000000000000000000000000815260008251614c9e8160108501602087016142e7565b9190910160100192915050565b7f485950455244524956452d53484f52543a000000000000000000000000000000815260008251614bfb8160118501602087016142e7565b818103600083128015838313168383128216171561121857611218614b10565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614d4157614d41614d03565b500690565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614d7757614d77614b10565b5060010190565b600082614d8d57614d8d614d03565b500490565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614dc757600080fd5b83018035915067ffffffffffffffff821115614de257600080fd5b60200191503681900382131561363c57600080fd5b80820281158282048414176108af576108af614b10565b808201828112600083128015821682158216171561484957614849614b10565b600060208284031215614e4057600080fd5b81516107c0816143a7565b60007f80000000000000000000000000000000000000000000000000000000000000008203614e7c57614e7c614b10565b5060000390565b60008251614e958184602087016142e7565b9190910192915050565b600082614eae57614eae614d03565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615614f0257614f02614b10565b50059056fea26469706673582212203e4c49c8491bfe92c639bdb3838dd9d3d3a8ef02c2e353e12efaafb0d6bf451464736f6c63430008140033" -} \ No newline at end of file diff --git a/deployments/sepolia/TEST_ERC4626_ERC4626Target1.json b/deployments/sepolia/TEST_ERC4626_ERC4626Target1.json deleted file mode 100644 index 51dc76a64..000000000 --- a/deployments/sepolia/TEST_ERC4626_ERC4626Target1.json +++ /dev/null @@ -1,993 +0,0 @@ -{ - "address": "0xDED7325713C81253Ffa72a59A3eCEB7c1E0D1FE1", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "AddressInsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "DistributeExcessIdleFailed", - "type": "error" - }, - { - "inputs": [], - "name": "ExpInvalidExponent", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientLiquidity", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidPresentValue", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidTimestamp", - "type": "error" - }, - { - "inputs": [], - "name": "LnInvalidInput", - "type": "error" - }, - { - "inputs": [], - "name": "MinimumTransactionAmount", - "type": "error" - }, - { - "inputs": [], - "name": "OutputLimit", - "type": "error" - }, - { - "inputs": [], - "name": "ReentrancyGuardReentrantCall", - "type": "error" - }, - { - "inputs": [], - "name": "RestrictedZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "SafeERC20FailedOperation", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt128", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt256", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToUint112", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToUint128", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "AddLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "basePayment", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fees", - "type": "uint256" - } - ], - "name": "CollectGovernanceFee", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "checkpointTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "checkpointVaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedShorts", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedLongs", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "CreateCheckpoint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newFeeCollector", - "type": "address" - } - ], - "name": "FeeCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGovernance", - "type": "address" - } - ], - "name": "GovernanceUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "apr", - "type": "uint256" - } - ], - "name": "Initialize", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseProceeds", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isPaused", - "type": "bool" - } - ], - "name": "PauseStatusUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newPauser", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "status", - "type": "bool" - } - ], - "name": "PauserUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - } - ], - "name": "RedeemWithdrawalShares", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "RemoveLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "Sweep", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newSweepCollector", - "type": "address" - } - ], - "name": "SweepCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_maturityTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_bondAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minOutput", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "closeShort", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_withdrawalShares", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minOutputPerShare", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "redeemWithdrawalShares", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [ - { - "minimumShareReserves": "1000000000000000", - "minimumTransactionAmount": "1000000000000000", - "positionDuration": "2592000", - "checkpointDuration": "86400", - "timeStretch": "0", - "governance": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "feeCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "sweepCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "fees": { - "curve": "1000000000000000", - "flat": "8333333333333", - "governanceLP": "150000000000000000", - "governanceZombie": "30000000000000000" - }, - "baseToken": "0x96bf962d3c02134fc7aa9441ea38715a261da60b", - "vaultSharesToken": "0xa6f5ad0ef6f4db6e9fa2e13318d218665c72a3ba", - "linkerFactory": "0xE84d966f6f87C7957719ad4BeC7E3bB35a46E8B2", - "linkerCodeHash": "0x9a69ff3b9a110deacb7d941d71222642f269891c0da9fcc15ec7c63fbd216b3f", - "initialVaultSharePrice": "0" - } - ], - "numDeployments": 1, - "bytecode": "0x6102406040523480156200001257600080fd5b50604051620056de380380620056de8339810160408190526200003591620001e1565b600160005580516001600160a01b039081166080908152602080840151831660a0908152918401516101a0908152918401516101c05260c0808501516101e0526101008086015190915260e0808601519052610120808601519091529184018051519092528151015161014090815281516040908101516101609081529251606090810151610180908152918601518516610200528501516102205290840151600a80546001600160a01b03199081169286169290921790559184015160088054841691851691909117905590920151600980549093169116179055620002d4565b6040516101c081016001600160401b03811182821017156200014957634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b03811681146200016757600080fd5b919050565b6000608082840312156200017f57600080fd5b604051608081016001600160401b0381118282101715620001b057634e487b7160e01b600052604160045260246000fd5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b60006102208284031215620001f557600080fd5b620001ff62000117565b6200020a836200014f565b81526200021a602084016200014f565b60208201526200022d604084016200014f565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101406200028c8185016200014f565b90820152610160620002a08482016200014f565b90820152610180620002b48482016200014f565b908201526101a0620002c9858583016200016c565b908201529392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516152ae620004306000396000505060005050600081816101b40152612e0c01526000818161155a01528181611c6e01528181611cd1015281816129000152818161294501528181612bcd0152612de6015260008181610ed801528181610f3b0152818161112c0152612dc0015260006119db015260008181611b2e0152818161244301526124bc01526000818161078a015281816110a501528181611b020152612490015260008181610f8d0152612409015260008181610eb601528181610f5c0152818161114d0152612e320152600081816106bc01528181611019015281816122870152613960015260008181610526015281816105c50152610633015260008181611808015281816126ff0152818161279801526128210152600050506152ae6000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063074a6de91461003b57806329b23fc114610068575b600080fd5b61004e610049366004614e07565b610089565b604080519283526020830191909152015b60405180910390f35b61007b610076366004614e57565b6100a4565b60405190815260200161005f565b6000806100978585856100bd565b915091505b935093915050565b60006100b28585858561019f565b90505b949350505050565b6000806100c8610465565b6100d1836104a8565b60006100db610507565b90506100f06100e861051f565b826004610555565b506100fe3387838888610aa9565b90935091506101106020850185614eb1565b73ffffffffffffffffffffffffffffffffffffffff16337f4ce1e73a001c994d4d884cd1e382579f9c1e81eccf26e70ece8caa1b60a8c2cf8461015487868a610c92565b61015f88878b610cc1565b61016f60408b0160208c01614ef5565b604080519485526020850193909352918301521515606082015260800160405180910390a35061009c6001600055565b60006101a9610465565b6101b2826104a8565b7f000000000000000000000000000000000000000000000000000000000000000084101561020c576040517f423bbb4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610216610507565b9050854210156102315761022b6100e861051f565b5061023f565b61023d86826004610555565b505b61025461024d600288610ce9565b3387610d4f565b60008060008060006102678a878d610e68565b945094509450945094508a4210156103275780600b600082825461028b9190614f41565b9091555061029e90508a8685858f6111a6565b60006102a98c6113d2565b90506102c76102b78c61141c565b6102c19083614f54565b8261147c565b6102d087611553565b6102dc576102dc6115c5565b60006102e7886115f7565b905080610320576040517f8bdf918d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505061033e565b6103318487611604565b935061033c866115f7565b505b600061034b85888b611727565b905089811015610387576040517fc972651700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8a8c85848a8d610398600286610ce9565b6103a56020830183614eb1565b73ffffffffffffffffffffffffffffffffffffffff16337fcb02fec44af7356703a283b87ccec63f4ea688efc67fee9cdc1834a93260c730886103e98c8888610c92565b6103f48d8989610cc1565b6104046040890160208a01614ef5565b6104188a6104128d8f614f41565b906117c1565b6040805195865260208601949094529284019190915215156060830152608082015260a081018b905260c00160405180910390a450949b5050505050505050505050506100b56001600055565b6002600054036104a1576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b60006104b76020830183614eb1565b73ffffffffffffffffffffffffffffffffffffffff1603610504576040517ff0dd15fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b600061051a670de0b6b3a76400006117d6565b905090565b600061054b7f000000000000000000000000000000000000000000000000000000000000000042614fa3565b61051a9042614fb7565b600083815260076020526040812080546fffffffffffffffffffffffffffffffff1615158061058357504285115b156105a257546fffffffffffffffffffffffffffffffff169050610aa2565b6000806105ad61051f565b90508087036105be57859150610661565b60006105ea7f000000000000000000000000000000000000000000000000000000000000000089614f41565b90505b6000818152600760205260409020546fffffffffffffffffffffffffffffffff169250818114801561061d575082155b15610626578692505b8260000361065f576106587f000000000000000000000000000000000000000000000000000000000000000082614f41565b90506105ed565b505b61066a82611889565b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff919091161783556106af866118d5565b50600090506007816106e17f00000000000000000000000000000000000000000000000000000000000000008b614fb7565b815260208101919091526040016000908120546fffffffffffffffffffffffffffffffff16915061071360028a610ce9565b6000818152600e60205260408120549192508a8a8315610896576001925060008061074286898c866000611aeb565b9150915080600b60008282546107589190614f41565b9091555061077490508660008461076e8161141c565b886111a6565b61077e8183614f41565b91506107ae86838a8d877f0000000000000000000000000000000000000000000000000000000000000000611bba565b91506107c26107bd83856117c1565b611c04565b600580546002906107ea9084906201000090046dffffffffffffffffffffffffffff16614fca565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff16021790555061082582611889565b6005805460109061085d90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614ff1565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505b60006108a3600184610ce9565b6000818152600e602052604090205490915080156109ef57600194506000806108d0838b8e886001611aeb565b9150915080600b60008282546108e69190614f41565b909155506109029050836000846108fc8161141c565b8a611c4e565b61090c8183614fb7565b915061091b6107bd83876117c1565b600580546002906109439084906201000090046dffffffffffffffffffffffffffff16614fca565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff16021790555061097e82611889565b600580546010906109b690849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614ff1565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505b8415610a2757610a1b610a018761141c565b610a0a8361141c565b610a149190614f54565b600061147c565b610a258e8e611f08565b505b6000610a328f6120fb565b5090508f7fff888cf98d2696e95c8c39aa98c9ad55a5378008f7a56614c9353b7137a57ab78c868a8686604051610a8b959493929190948552602085019390935260408401919091526060830152608082015260a00190565b60405180910390a250989a50505050505050505050505b9392505050565b600080610ab5856115f7565b505060065485906fffffffffffffffffffffffffffffffff1680821115610aec57806fffffffffffffffffffffffffffffffff1691505b81600003610b01576000809250925050610c88565b610b2c7f03000000000000000000000000000000000000000000000000000000000000008984610d4f565b600654600090610b689084906fffffffffffffffffffffffffffffffff70010000000000000000000000000000000090910481169085166121f4565b9050610b7383611889565b610b7d908361501a565b600680547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055610bc781611889565b60068054601090610bff90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661501a565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550610c40818887611727565b9350610c4c8684612230565b841015610c85576040517fc972651700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505b9550959350505050565b6000610ca46040830160208401614ef5565b15610cb0575082610aa2565b610cba84846117c1565b9050610aa2565b6000610cd36040830160208401614ef5565b15610ce257610cba8484612245565b5082610aa2565b60007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115610d44576040517fb7d0949700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060f89190911b1790565b6000838152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902054811115610db8576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000838152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452825280832080548590039055858352600e90915281208054839290610e08908490614fb7565b9091555050604080518481526020810183905260009173ffffffffffffffffffffffffffffffffffffffff85169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4505050565b6000806000806000806000610e7c8861225a565b9050610efc610e896122ab565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168c847f00000000000000000000000000000000000000000000000000000000000000008e7f00000000000000000000000000000000000000000000000000000000000000006122d5565b909850955091506000610f80610f106122ab565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612345565b9050610fb68389610fb1847f000000000000000000000000000000000000000000000000000000000000000061235c565b61238c565b15610fc357610fc36115c5565b8a8a60008080610fd5858888876123e4565b9b5091945092509050610fe88184614fb7565b610ff29089614f41565b9750610ffe8284614f41565b611008908c614f41565b9a50505050505050506000600760007f00000000000000000000000000000000000000000000000000000000000000008a6110439190614fb7565b815260208101919091526040016000908120546fffffffffffffffffffffffffffffffff169150428911611097576000898152600760205260409020546fffffffffffffffffffffffffffffffff16611099565b895b90506110c98b8784848e7f0000000000000000000000000000000000000000000000000000000000000000611bba565b96506110d58487614fb7565b9550670de0b6b3a7640000611171846110ec6122ab565b6110f69190614f41565b60015461112a908c9070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614fb7565b7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612345565b111561117f5761117f6115c5565b61118f87878587868660006124f8565b9b9f939e50919c50909a5090975050505050505050565b60035470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661122061121b826111e8670de0b6b3a764000086615043565b60045470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1691908a6000612597565b611889565b600480546fffffffffffffffffffffffffffffffff92831670010000000000000000000000000000000002921691909117905561125c86611889565b611266908261501a565b600380546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790556112a284611889565b600180546000906112c69084906fffffffffffffffffffffffffffffffff16614ff1565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555061130583612641565b6003805460009061131a908490600f0b61505a565b92506101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff16021790555061135c85611889565b6001805460109061139490849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661501a565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050505050565b60006113fa600e60006113e6600286610ce9565b81526020019081526020016000205461141c565b61140c600e60006113e6600187610ce9565b6114169190614f54565b92915050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115611478576040517f72dd4e0200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5090565b60006114a561148b84836126b7565b6114968460006126b7565b6114a09190614f54565b612641565b9050600081600f0b131561151557600280548291906000906114da9084906fffffffffffffffffffffffffffffffff16614ff1565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050565b600081600f0b121561154e5761152a816150a8565b600280546000906114da9084906fffffffffffffffffffffffffffffffff1661501a565b505050565b600061157f7f000000000000000000000000000000000000000000000000000000000000000083612230565b60025461159e91906fffffffffffffffffffffffffffffffff16614f41565b6001546115bd906fffffffffffffffffffffffffffffffff16846117c1565b101592915050565b6040517fbb55fd2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611416826004611f08565b6000806000611612846118d5565b9092509050600061162386866117c1565b90508183111561163b576116388683856121f4565b95505b8281101561164d578083039250611652565b600092505b61165b83611c04565b600580546dffffffffffffffffffffffffffff9290921662010000027fffffffffffffffffffffffffffffffff0000000000000000000000000000ffff90921691909117908190556fffffffffffffffffffffffffffffffff70010000000000000000000000000000000090910416808710156116da578690036116de565b5060005b6116e781611889565b600580546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790555085935050505092915050565b60008061173485856117c1565b905061173f816126cd565b945084600003611753576000915050610aa2565b6117636040840160208501614ef5565b156117925761178b856117796020860186614eb1565b61178660408701876150e6565b612743565b91506117b9565b6117b5856117a36020860186614eb1565b6117b060408701876150e6565b612807565b8491505b509392505050565b6000610aa28383670de0b6b3a76400006121f4565b6040517f07a2d13a000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906307a2d13a906024015b602060405180830381865afa158015611865573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611416919061514b565b60006fffffffffffffffffffffffffffffffff821115611478576040517f1e15f2a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600554600090819061190e90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166117c1565b6005546201000090046dffffffffffffffffffffffffffff169250905081811115611ae657600061193f8383614fb7565b905061194e61121b828661284e565b6005805460109061198690849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661501a565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060006119d1858361224590919063ffffffff16565b905060006119ff827f00000000000000000000000000000000000000000000000000000000000000006117c1565b905080600b6000828254611a139190614f41565b90915550611a2390508183614fb7565b9150611a2e82611889565b60018054600090611a529084906fffffffffffffffffffffffffffffffff16614ff1565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550611a9182612863565b60038054600090611aa6908490600f0b61505a565b92506101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff1602179055508493505050505b915091565b600080611af88785612245565b91506000611b26837f00000000000000000000000000000000000000000000000000000000000000006117c1565b9050611b52817f00000000000000000000000000000000000000000000000000000000000000006117c1565b91508315611b7557611b648282614fb7565b611b6e9084614fb7565b9250611b8c565b611b7f8282614fb7565b611b899084614f41565b92505b86861015611baf57611b9f8387896121f4565b9250611bac8287896121f4565b91505b509550959350505050565b600080611bd284611bcc8a888a6121f4565b90612245565b9050611bdf8884866121f4565b611be99082614f41565b905086811115611bf95786810391505b509695505050505050565b60006dffffffffffffffffffffffffffff821115611478576040517f10d62a2e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546fffffffffffffffffffffffffffffffff1683811080611c9957507f0000000000000000000000000000000000000000000000000000000000000000611c978583614fb7565b105b15611ca657611ca66115c5565b6003549084900390600f0b611cbb8482614f54565b905083611cc78661141c565b138015611cfc57507f0000000000000000000000000000000000000000000000000000000000000000611cfa83836128af565b105b15611d0957611d096115c5565b60025470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16611d6a61121b82611d4b670de0b6b3a764000088615043565b6004546fffffffffffffffffffffffffffffffff1691908c6000612597565b600480547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055611db58882614fb7565b9050611dc081611889565b600280546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055611dfc83611889565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055611e4682612641565b600380547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055611e9087611889565b60018054601090611ec890849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614ff1565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050505050505050565b6006547f03000000000000000000000000000000000000000000000000000000000000006000908152600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e95490918291611f78916fffffffffffffffffffffffffffffffff1690614fb7565b905080600003611f8c576001915050611416565b6000611f97856128d5565b905080600003611fac57600192505050611416565b600080611fba838589612992565b9150915080611fd0576000945050505050611416565b600080611fdd8489612a98565b91509150611ffb611fed8261141c565b611ff690615164565b612b8a565b9250826120115760009650505050505050611416565b61201a82611889565b6006805460009061203e9084906fffffffffffffffffffffffffffffffff16614ff1565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555061207d81611889565b600680546010906120b590849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614ff1565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506001965050505050505092915050565b60008060008061211261210d86612d05565b612ec7565b9150915080612128575060009485945092505050565b6000808611612138576000612142565b61214283876117c1565b600654600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e95460008080527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c54939450926fffffffffffffffffffffffffffffffff909216916121b69190614f41565b6121c09190614fb7565b9050806000036121d95750600096879650945050505050565b60006121e58383612245565b98600198509650505050505050565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048411830215820261222957600080fd5b5091020490565b6000610aa28383670de0b6b3a7640000612f54565b6000610aa283670de0b6b3a7640000846121f4565b60008061226561051f565b905080831161227557600061227f565b61227f8184614fb7565b9150610aa2827f0000000000000000000000000000000000000000000000000000000000000000612245565b60015460035460009161051a916fffffffffffffffffffffffffffffffff90911690600f0b6128af565b600080806122f66122ee88670de0b6b3a7640000614fb7565b899087612f54565b90508615612338576123088888612230565b91506123298a8a846123228a670de0b6b3a7640000614fb7565b8989612f98565b92506123358382614f41565b90505b9750975097945050505050565b60006100b2826123568588886121f4565b90612fbb565b600061237a61237384670de0b6b3a7640000614fb7565b8390612230565b610aa290670de0b6b3a7640000614fb7565b6000806123d98561239b6122ab565b6123a59190614f41565b60015461112a90879070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614fb7565b909210949350505050565b600080808061243b87866124348b61242e6124078c670de0b6b3a7640000614fb7565b7f000000000000000000000000000000000000000000000000000000000000000090612230565b90612230565b9190612f54565b9350612467847f00000000000000000000000000000000000000000000000000000000000000006117c1565b9150600061248861248089670de0b6b3a7640000614fb7565b8a9088612f54565b90506124b4817f0000000000000000000000000000000000000000000000000000000000000000612230565b93506124e0847f00000000000000000000000000000000000000000000000000000000000000006117c1565b6124ea9084614f41565b915050945094509450949050565b6000806000806000808888101561256757861561251d5761251a8d898b6121f4565b9c505b6125288c898b6121f4565b9b506125338b61141c565b61253c8d61141c565b6125469190614f54565b90506125538b898b6121f4565b9a506125608a898b6121f4565b9950612586565b6125708b61141c565b6125798d61141c565b6125839190614f54565b90505b9b9c9a9b999a975050505050505050565b6000826000036125a8575084612638565b81156125fb576125d96125bb8487614f41565b6125c585876117c1565b6125cf888a6117c1565b611bcc9190614f41565b905060006125e78588613030565b9050808210156125f5578091505b50612638565b82850361260a57506000612638565b6126356126178487614fb7565b6126218587612230565b61262b888a6117c1565b611bcc9190614fb7565b90505b95945050505050565b60007fffffffffffffffffffffffffffffffff8000000000000000000000000000000082128061268057506f7fffffffffffffffffffffffffffffff82135b15611478576040517fa5353be500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008183136126c65781610aa2565b5090919050565b6040517fc6e6f592000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063c6e6f59290602401611848565b6040517fba0876520000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff84811660248301523060448301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063ba087652906064016020604051808303816000875af11580156127e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b2919061514b565b61284873ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016848661303f565b50505050565b6000610aa283670de0b6b3a764000084612f54565b60006f7fffffffffffffffffffffffffffffff821115611478576040517fa5353be500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806128bc84846130cc565b9092509050806128ce576128ce6115c5565b5092915050565b60025460009081906128f9906fffffffffffffffffffffffffffffffff168461284e565b90506129257f000000000000000000000000000000000000000000000000000000000000000082614f41565b6001546fffffffffffffffffffffffffffffffff16111561298c576001547f0000000000000000000000000000000000000000000000000000000000000000906129829083906fffffffffffffffffffffffffffffffff16614fb7565b610aa29190614fb7565b50919050565b61299a614d47565b6000806129a684612d05565b905060006129b382612ec7565b93509050826129c857506000915061009c9050565b60006129ef6129ea8461016001518561014001516117c190919063ffffffff16565b61141c565b612a0f6129ea85610120015186610100015161223090919063ffffffff16565b612a199190614f54565b604080516101208101825285815260208082019590955260008052600e85527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c54818301526060810199909952608089019990995260a088015250815160c087015281015160e086015290940151610100840152509092600192509050565b600080600080612ab08660c001518760e001516130cc565b9150915080612ac757600080935093505050612b83565b6000612ad38784613108565b92509050811580612ae2575080155b15612af65760008094509450505050612b83565b6000612b028883613217565b905080600003612b1c576000809550955050505050612b83565b87606001518111612b335794509250612b83915050565b5060608701516000612b478986858b6132e8565b905080600003612b6257600080965096505050505050612b83565b828110612b7a57600080965096505050505050612b83565b90955093505050505b9250929050565b6001546003546000916fffffffffffffffffffffffffffffffff80821692600f0b9170010000000000000000000000000000000090041683808080612bf28787877f00000000000000000000000000000000000000000000000000000000000000008d6137fd565b935093509350935080612c0e5750600098975050505050505050565b868414612c6057612c1e84611889565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b858314612cb257612c7083612641565b600380547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b848214612cf657612cc282611889565b600180546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790555b50600198975050505050505050565b612d696040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60408051610180810182526001546fffffffffffffffffffffffffffffffff8082168352600354600f0b602084015270010000000000000000000000000000000091829004811693830193909352606082018590527f000000000000000000000000000000000000000000000000000000000000000060808301527f000000000000000000000000000000000000000000000000000000000000000060a08301527f000000000000000000000000000000000000000000000000000000000000000060c08301527f000000000000000000000000000000000000000000000000000000000000000060e08301526002540482166101008201526004549091610120830191612e779116613915565b81526003546fffffffffffffffffffffffffffffffff7001000000000000000000000000000000009182900481166020840152600454604090930192612ebf92900416613915565b905292915050565b6000806000806000612ed88661398b565b9150915080612eef57506000958695509350505050565b612efc8660a0015161141c565b612f0587613cab565b83612f13896000015161141c565b612f1d919061519c565b612f27919061519c565b612f319190614f54565b925050506000811215612f4a5750600093849350915050565b9360019350915050565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0484118302158202612f8957600080fd5b50910281810615159190040190565b600080612fa9888888888888613d0f565b909250905080611bf957611bf96115c5565b600081600003612fd45750670de0b6b3a7640000611416565b82600003612fe457506000611416565b6000612fef8361141c565b90506000613004612fff8661141c565b613df0565b905081810261301b670de0b6b3a7640000826151c4565b905061302681614091565b9695505050505050565b600081831161298c5782610aa2565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261154e9084906142aa565b6000806000836130db8661141c565b6130e59190614f54565b905060008112156130fd576000809250925050612b83565b946001945092505050565b60008060008460a001511261312557505060808201516001612b83565b60008460a0015161313590615164565b9050600061317185876101000151886000015160e00151670de0b6b3a764000061315f9190614fb7565b89516060810151608090910151614345565b93509050821580613180575080155b1561319357600080935093505050612b83565b600061319f838361284e565b9050670de0b6b3a764000081116131db5780670de0b6b3a76400000394506131d48760c00151866117c190919063ffffffff16565b94506131ea565b60008094509450505050612b83565b8660800151851115613209578660800151600194509450505050612b83565b506001925050509250929050565b60008061324d8460c001518560e00151866101000151876000015160a0015161323f8861141c565b61324890615164565b6137fd565b87516040810192909252602082019290925291909152905080613274576000915050611416565b60006132838560000151612ec7565b925090508161329757600092505050611416565b846020015181106132ad57600092505050611416565b6000856060015186604001516132c39190614f41565b90506132de828760200151836121f49092919063ffffffff16565b6130269082614fb7565b600080856060015186604001516132ff9190614f41565b6020870151606088015191925060009161331991846121f4565b90508660a001516000036133305791506100b59050565b6000808089600488101561334357600497505b60005b8881101561369f57613358868b613030565b955060006133818360c001518460e00151856101000151866000015160a0015161323f8c61141c565b865160408101929092526020820192909252919091529050806133af576000985050505050505050506100b5565b60006133be8e60000151612ec7565b92509050816133d957600099505050505050505050506100b5565b6133e484828b6143ee565b156133fa578799505050505050505050506100b5565b60008460a00151131561356357835180516020820151604083015160a084015160e09094015160009461344e9493929161343c90670de0b6b3a7640000614fb7565b8a51606081015160809091015161445a565b935090508261346a5760009a50505050505050505050506100b5565b808560a00151106135615761347e8561455f565b90995092508261349b5760009a50505050505050505050506100b5565b6134c08560c001518660e00151876101000151886000015160a0015161323f8e61141c565b885160408101929092526020820192909252919091529250826134f05760009a50505050505050505050506100b5565b845180516020820151604083015160a084015160e090940151613520949061343c90670de0b6b3a7640000614fb7565b935090508261353c5760009a50505050505050505050506100b5565b8e60a00151811161355957889a50505050505050505050506100b5565b505050613346565b505b6000613574858f8760a00151614635565b9350905082158061358d5750670de0b6b3a76400008110155b156135a55760009a50505050505050505050506100b5565b80670de0b6b3a764000003905060006135d26129ea8760400151886020015161223090919063ffffffff16565b6135df6129ea858e6117c1565b6135e99190614f54565b905088158061360757506135fc89614990565b61360582614990565b125b15613616578098508997508296505b600081131561363e5761362d8b611bcc8385612245565b613637908b614f41565b9950613690565b60008112156136875760006136588c611bcc858186615164565b90508a81101561366c57808b039a50613681565b60009c505050505050505050505050506100b5565b50613690565b5050505061369f565b84600101945050505050613346565b5060006136c78260c001518360e00151846101000151856000015160a0015161323f8b61141c565b855160408101929092526020820192909252919091529050806136f45760009750505050505050506100b5565b600061370383600001516149a8565b905060006137256129ea8560400151866020015161223090919063ffffffff16565b6137326129ea848c6117c1565b61373c9190614f54565b905061374787614990565b61375082614990565b121561375d578795508194505b613784613778655af3107a4000670de0b6b3a7640000614fb7565b6020860151908b612f54565b6040850151613794908790612245565b10806137d457506137c26137b6655af3107a4000670de0b6b3a7640000614f41565b6020860151908b6121f4565b60408501516137d290879061284e565b115b156137eb57600099505050505050505050506100b5565b50939c9b505050505050505050505050565b6000806000808460000361381c57508792508691508590506001613909565b6000856138288b61141c565b613832919061519c565b905061383d8761141c565b81121561385857600080600080945094509450945050613909565b80945060008912613878576138716129ea868b8d6121f4565b935061389b565b61388f6129ea6138878b615164565b87908d612f54565b61389890615164565b93505b6000806138a88c8c6130cc565b91509150806138c7576000806000809650965096509650505050613909565b60006138d388886130cc565b92509050816138f357600080600080975097509750975050505050613909565b6138fe8b82856121f4565b955060019450505050505b95509550955095915050565b600080670de0b6b3a764000061392961051f565b6139339190615043565b905080831161394357600061394d565b61394d8184614fb7565b9150610aa2613984670de0b6b3a76400007f0000000000000000000000000000000000000000000000000000000000000000615043565b8390612245565b60008060006139b06129ea8561016001518661014001516117c190919063ffffffff16565b6139d06129ea86610120015187610100015161223090919063ffffffff16565b6139da9190614f54565b90506000806139f1866000015187602001516130cc565b9150915080613a0857506000958695509350505050565b6000831315613b495760008390506000613a56886000015189602001518a604001518b60a001518c60e00151670de0b6b3a7640000613a479190614fb7565b8d606001518e6080015161445a565b9350905082613a6f575060009788975095505050505050565b818110613b0d576000613aa9858a60400151858c60e00151670de0b6b3a7640000613a9a9190614fb7565b8d606001518e608001516149f1565b9450905083158015613abe57508860c0015183105b15613ad55750600098600198509650505050505050565b83613aeb57506000988998509650505050505050565b613af48161141c565b613afd90615164565b9960019950975050505050505050565b6000886020015112613b3557613b2c8860a00151856129ea9190614fb7565b6121e590615164565b60a08801518851613b2c916129ea91614fb7565b6000831215613c9c576000613b5d84615164565b90506000613b918489604001518a60e00151670de0b6b3a7640000613b829190614fb7565b8b606001518c60800151614345565b9350905082613baa575060009788975095505050505050565b818110613c2f576000613be4858a60400151858c60e00151670de0b6b3a7640000613bd59190614fb7565b8d606001518e60800151613d0f565b9450905083158015613bf957508860c0015183105b15613c105750600098600198509650505050505050565b83613c2657506000988998509650505050505050565b613afd8161141c565b6000613c61858a604001518b60e00151670de0b6b3a7640000613c529190614fb7565b8c606001518d60800151614ab1565b9450905083613c7b57506000988998509650505050505050565b613afd613c928a606001518486611bcc9190614fb7565b6129ea9083614f41565b50600095600195509350505050565b6000613cde6129ea836101200151670de0b6b3a7640000613ccc9190614fb7565b60608501516101008601519190612f54565b61140c6129ea846101600151670de0b6b3a7640000613cfd9190614fb7565b606086015161014087015191906121f4565b6000806000613d218989888888614b60565b905086881015613d38576000809250925050613de5565b9686900396613d478887612fbb565b975087811015613d5e576000809250925050613de5565b878103613d6c818688612f54565b9050670de0b6b3a76400008110613da057613d99613d92670de0b6b3a76400008961284e565b8290612fbb565b9050613db8565b613db5613d92670de0b6b3a764000089612245565b90505b613dc2818661284e565b905089811015613dda57600080935093505050613de5565b899003925060019150505b965096945050505050565b6000808213613e2b576040517fe61b497500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff10600390811b90911782811c600f1060021b1782811c909110600190811b90911782811c90911017609f8181036060019290921b917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0820190613ed59084901c61141c565b6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b391909102017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c182136140c257506000919050565b680755bf798b4a1bf1e58212614104576040517f73a2d6b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b3988102909303927fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550484018402606090811d6d0277594991cfc85f6e2461837cd9018502811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018502811d6db1bbb201f443cf962f1a1d3db4a5018502811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018502811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765087018702831d9081019087017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e01810290921d6e0587f503bb6ea29d25fcb74019645001860279d835ebba824c98fb31b83b2ca45c00000000000000000000000001818105955092935090919061302674029d9dc38563c32e5c2f6dc192ee70ef65f9978af3860260c38690031c61141c565b60006142cc73ffffffffffffffffffffffffffffffffffffffff841683614b8f565b905080516000141580156142f15750808060200190518101906142ef919061522c565b155b1561154e576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b60008060006143578888888888614b60565b90506000614382670de0b6b3a76400006143718888612245565b61437b9190614f41565b839061284e565b9050670de0b6b3a764000081106143af576143a8613d92670de0b6b3a76400008961284e565b90506143c7565b6143c4613d92670de0b6b3a764000089612245565b90505b808810156143dd57600080935093505050610c88565b909603976001975095505050505050565b6020830151600090614400908461284e565b6040850151614410908490612245565b101580156100b5575060208401516144409084614439633b9aca00670de0b6b3a7640000614f41565b91906121f4565b604085015161445090849061284e565b1115949350505050565b600080600088121561447c5761446f88615164565b6144799087614f41565b95505b6000806144898b8b6130cc565b91509150806144a057600080935093505050614553565b60006144af838b8a8a8a614b9d565b905060006144cc6144c48a6123568a8e612230565b899089612f54565b9050808210156144e6576000809550955050505050614553565b808203670de0b6b3a764000081106145145761450d613d92670de0b6b3a76400008c612245565b905061452c565b614529613d92670de0b6b3a76400008c61284e565b90505b8b81101561454557600080965096505050505050614553565b8b9003955060019450505050505b97509795505050505050565b60008060008360e001511361457957506000928392509050565b60006145888460000151613cab565b905060006145b48560400151866060015187604001516145a89190614f41565b60208801519190612f54565b9050600082126145db57808210156145ce578190036145f1565b5060009485945092505050565b6145e482615164565b6145ee9082614f41565b90505b60e085015160c0860151614606918390612f54565b9050808560c001511015614621575060009485945092505050565b808560c00151036001935093505050915091565b600080600080841261465957855160400151614652908590614f41565b9050614694565b600061466485615164565b875160400151909150811015614684578651604001518190039150614692565b60008093509350505061009c565b505b8551805160209091015160009182916146ad91906130cc565b91509150806146c5576000809450945050505061009c565b875160e08101516040909101516000916146fa916146ee916146e79190612fbb565b8a906117c1565b6101008b01519061284e565b895160e0810151608090910151614725916147199161235690886117c1565b8b51606001519061284e565b61472f9190614f41565b9050600061476761475b6147548c6000015160e0015188612fbb90919063ffffffff16565b8b90612230565b6101008c015190612245565b9050808210156147825760008096509650505050505061009c565b808203915060006147c4858c60000151604001518d6000015160e00151670de0b6b3a76400006147b29190614fb7565b8e516060810151608090910151614b60565b905060006147ee8c6000015160e00151670de0b6b3a76400006147e79190614fb7565b8890612fbb565b90508082101561480b57600080985098505050505050505061009c565b8b51608081015160609091015191830391614827918391612f54565b9050670de0b6b3a7640000811061486b578b5160e0015161486490613d929061485890670de0b6b3a7640000614fb7565b8e5160e001519061284e565b905061489a565b8b5160e0015161489790613d929061488b90670de0b6b3a7640000614fb7565b8e5160e0015190612245565b90505b8b51606001516148ad9085908390612f54565b935083670de0b6b3a764000011156148d15783670de0b6b3a76400000393506148e5565b60006001985098505050505050505061009c565b60008c60e00151126149485760c08c015160e08d01516149049161284e565b9250670de0b6b3a764000083111561492957600080985098505050505050505061009c565b670de0b6b3a7640000929092039161494184846117c1565b935061497d565b61497a6149618d60c001518e60e00151611bcc90615164565b61497390670de0b6b3a7640000614f41565b85906117c1565b93505b50919a60019a5098505050505050505050565b600080821261499f5781611416565b61141682615164565b60008060006149b684612ec7565b91509150806128ce576040517faa2c651600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000614a038989888888614b60565b9050614a1386612356898b614f41565b975087811015614a2a576000809250925050613de5565b878103614a38818688612f54565b9050670de0b6b3a76400008110614a6557614a5e613d92670de0b6b3a76400008961284e565b9050614a7d565b614a7a613d92670de0b6b3a764000089612245565b90505b614a87818661284e565b9050808a1015614a9f57600080935093505050613de5565b90980398600198509650505050505050565b6000806000614ac38888888888614b9d565b90506000614ae7670de0b6b3a7640000614add888861284e565b6139849190614f41565b9050670de0b6b3a76400008110614b1457614b0d613d92670de0b6b3a764000089612245565b9050614b2c565b614b29613d92670de0b6b3a76400008961284e565b90505b614b368186612245565b905088811015614b4e57600080935093505050610c88565b97909703976001975095505050505050565b6000614b6c8585612fbb565b614b85614b7d86612356868b612230565b859085612f54565b6126359190614f41565b6060610aa283836000614bc2565b6000614ba98585612fbb565b614b85614bba86612356868b6117c1565b8590856121f4565b606081471015614c00576040517fcd78605900000000000000000000000000000000000000000000000000000000815230600482015260240161433c565b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051614c299190615249565b60006040518083038185875af1925050503d8060008114614c66576040519150601f19603f3d011682016040523d82523d6000602084013e614c6b565b606091505b5091509150613026868383606082614c8b57614c8682614d05565b610aa2565b8151158015614caf575073ffffffffffffffffffffffffffffffffffffffff84163b155b15614cfe576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260240161433c565b5080610aa2565b805115614d155780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051806101200160405280614db76040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006060828403121561298c57600080fd5b600080600060608486031215614e1c57600080fd5b8335925060208401359150604084013567ffffffffffffffff811115614e4157600080fd5b614e4d86828701614df5565b9150509250925092565b60008060008060808587031215614e6d57600080fd5b843593506020850135925060408501359150606085013567ffffffffffffffff811115614e9957600080fd5b614ea587828801614df5565b91505092959194509250565b600060208284031215614ec357600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610aa257600080fd5b801515811461050457600080fd5b600060208284031215614f0757600080fd5b8135610aa281614ee7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561141657611416614f12565b81810360008312801583831316838312821617156128ce576128ce614f12565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614fb257614fb2614f74565b500690565b8181038181111561141657611416614f12565b6dffffffffffffffffffffffffffff8181168382160190808211156128ce576128ce614f12565b6fffffffffffffffffffffffffffffffff8181168382160190808211156128ce576128ce614f12565b6fffffffffffffffffffffffffffffffff8281168282160390808211156128ce576128ce614f12565b808202811582820484141761141657611416614f12565b600f81810b9083900b016f7fffffffffffffffffffffffffffffff81137fffffffffffffffffffffffffffffffff800000000000000000000000000000008212171561141657611416614f12565b600081600f0b7fffffffffffffffffffffffffffffffff8000000000000000000000000000000081036150dd576150dd614f12565b60000392915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261511b57600080fd5b83018035915067ffffffffffffffff82111561513657600080fd5b602001915036819003821315612b8357600080fd5b60006020828403121561515d57600080fd5b5051919050565b60007f8000000000000000000000000000000000000000000000000000000000000000820361519557615195614f12565b5060000390565b80820182811260008312801582168215821617156151bc576151bc614f12565b505092915050565b6000826151d3576151d3614f74565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f80000000000000000000000000000000000000000000000000000000000000008314161561522757615227614f12565b500590565b60006020828403121561523e57600080fd5b8151610aa281614ee7565b6000825160005b8181101561526a5760208186018101518583015201615250565b50600092019182525091905056fea2646970667358221220ad0ac9e510797bc1ea1ab48eb1f2daed1bbd2f26ab6a2480eacdf7220259d15a64736f6c63430008140033" -} \ No newline at end of file diff --git a/deployments/sepolia/TEST_ERC4626_ERC4626Target2.json b/deployments/sepolia/TEST_ERC4626_ERC4626Target2.json deleted file mode 100644 index 111db1345..000000000 --- a/deployments/sepolia/TEST_ERC4626_ERC4626Target2.json +++ /dev/null @@ -1,993 +0,0 @@ -{ - "address": "0x0ebA9d25C9B4A2a3Dc50f1470DF3a7CCe55E016e", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "AddressInsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "DistributeExcessIdleFailed", - "type": "error" - }, - { - "inputs": [], - "name": "ExpInvalidExponent", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientLiquidity", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidPresentValue", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidTimestamp", - "type": "error" - }, - { - "inputs": [], - "name": "LnInvalidInput", - "type": "error" - }, - { - "inputs": [], - "name": "MinimumTransactionAmount", - "type": "error" - }, - { - "inputs": [], - "name": "OutputLimit", - "type": "error" - }, - { - "inputs": [], - "name": "ReentrancyGuardReentrantCall", - "type": "error" - }, - { - "inputs": [], - "name": "RestrictedZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "SafeERC20FailedOperation", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt128", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt256", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToUint112", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToUint128", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "AddLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "basePayment", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fees", - "type": "uint256" - } - ], - "name": "CollectGovernanceFee", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "checkpointTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "checkpointVaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedShorts", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedLongs", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "CreateCheckpoint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newFeeCollector", - "type": "address" - } - ], - "name": "FeeCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGovernance", - "type": "address" - } - ], - "name": "GovernanceUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "apr", - "type": "uint256" - } - ], - "name": "Initialize", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseProceeds", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isPaused", - "type": "bool" - } - ], - "name": "PauseStatusUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newPauser", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "status", - "type": "bool" - } - ], - "name": "PauserUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - } - ], - "name": "RedeemWithdrawalShares", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "RemoveLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "Sweep", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newSweepCollector", - "type": "address" - } - ], - "name": "SweepCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_maturityTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_bondAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minOutput", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "closeLong", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_lpShares", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minOutputPerShare", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "removeLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [ - { - "minimumShareReserves": "1000000000000000", - "minimumTransactionAmount": "1000000000000000", - "positionDuration": "2592000", - "checkpointDuration": "86400", - "timeStretch": "0", - "governance": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "feeCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "sweepCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "fees": { - "curve": "1000000000000000", - "flat": "8333333333333", - "governanceLP": "150000000000000000", - "governanceZombie": "30000000000000000" - }, - "baseToken": "0x96bf962d3c02134fc7aa9441ea38715a261da60b", - "vaultSharesToken": "0xa6f5ad0ef6f4db6e9fa2e13318d218665c72a3ba", - "linkerFactory": "0xE84d966f6f87C7957719ad4BeC7E3bB35a46E8B2", - "linkerCodeHash": "0x9a69ff3b9a110deacb7d941d71222642f269891c0da9fcc15ec7c63fbd216b3f", - "initialVaultSharePrice": "0" - } - ], - "numDeployments": 1, - "bytecode": "0x6102406040523480156200001257600080fd5b506040516200564b3803806200564b8339810160408190526200003591620001e1565b600160005580516001600160a01b039081166080908152602080840151831660a0908152918401516101a0908152918401516101c05260c0808501516101e0526101008086015190915260e0808601519052610120808601519091529184018051519092528151015161014090815281516040908101516101609081529251606090810151610180908152918601518516610200528501516102205290840151600a80546001600160a01b03199081169286169290921790559184015160088054841691851691909117905590920151600980549093169116179055620002d4565b6040516101c081016001600160401b03811182821017156200014957634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b03811681146200016757600080fd5b919050565b6000608082840312156200017f57600080fd5b604051608081016001600160401b0381118282101715620001b057634e487b7160e01b600052604160045260246000fd5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b60006102208284031215620001f557600080fd5b620001ff62000117565b6200020a836200014f565b81526200021a602084016200014f565b60208201526200022d604084016200014f565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101406200028c8185016200014f565b90820152610160620002a08482016200014f565b90820152610180620002b48482016200014f565b908201526101a0620002c9858583016200016c565b908201529392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516152316200041a60003960005050600050506000818160d301528181610289015261239901526000818161130c0152818161136f015281816117330152818161237301528181612b1401528181612b590152612de1015260008181611145015281816111ab015261234d01526000611b9f015260008181611cf20152818161265701526126d001526000818161084301528181611cc601526126a40152600061261d015260008181611123015281816111cc01526123bf01526000818161077501528181611254015281816125230152612fa80152600081816105df0152818161067e01526106ec0152600081816119cc01528181612939015281816129d20152612a5b0152600050506152316000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063cbc134341461003b578063ded0623114610068575b600080fd5b61004e610049366004614d8a565b610089565b604080519283526020830191909152015b60405180910390f35b61007b610076366004614dda565b6100a4565b60405190815260200161005f565b6000806100978585856100bd565b915091505b935093915050565b60006100b285858585610274565b90505b949350505050565b6000806100c861051e565b6100d183610561565b7f000000000000000000000000000000000000000000000000000000000000000085101561012b576040517f423bbb4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006101356105c0565b905061014a6101426105d8565b82600461060e565b5061015760003388610b62565b61018e7f03000000000000000000000000000000000000000000000000000000000000006101886020870187614e34565b88610c7c565b60006101a96101a06020870187614e34565b88848989610d36565b90945090506101b88188614e99565b925060006101c583610f1f565b5090506101d56020870187614e34565b73ffffffffffffffffffffffffffffffffffffffff16337f56e07298e87dce53d3298b9775b947b87b39b2dde51df86371f0540885da83c98a61021989888c611018565b6102248a898d611047565b61023460408d0160208e01614eba565b60408051948552602085019390935291830152151560608201526080810188905260a0810185905260c00160405180910390a350505061009c6001600055565b600061027e61051e565b61028782610561565b7f00000000000000000000000000000000000000000000000000000000000000008410156102e1576040517f423bbb4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006102eb6105c0565b905085421015610306576103006101426105d8565b50610314565b6103128682600461060e565b505b61032961032260018861106f565b3387610b62565b600080600080600061033c8a878d6110d5565b9450945094509450945060008b90508b4210156104015781600b60008282546103659190614ed7565b9091555061037890508b878686856112ec565b6000610383826115ab565b90506103a16103918d6115f5565b61039b9083614eea565b82611655565b6103aa8861172c565b6103b6576103b661179e565b60006103c1896117d0565b9050806103fa576040517f8bdf918d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050610418565b61040b85886117dd565b9450610416876117d0565b505b600061042586898c611900565b90508a811015610461576040517fc972651700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8b888b61046f60018661106f565b61047c6020830183614e34565b73ffffffffffffffffffffffffffffffffffffffff16337fc0e1704f2ff88686bdc2a73d31e0dc4e054eddbdc3564af7a148229cf857b802886104c0898888611018565b6104cb8a8989611047565b6104db6040890160208a01614eba565b60408051948552602085019390935291830152151560608201526080810188905260a00160405180910390a4509199505050505050505050506100b56001600055565b60026000540361055a576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b60006105706020830183614e34565b73ffffffffffffffffffffffffffffffffffffffff16036105bd576040517ff0dd15fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b60006105d3670de0b6b3a764000061199a565b905090565b60006106047f000000000000000000000000000000000000000000000000000000000000000042614f41565b6105d39042614e99565b600083815260076020526040812080546fffffffffffffffffffffffffffffffff1615158061063c57504285115b1561065b57546fffffffffffffffffffffffffffffffff169050610b5b565b6000806106666105d8565b90508087036106775785915061071a565b60006106a37f000000000000000000000000000000000000000000000000000000000000000089614ed7565b90505b6000818152600760205260409020546fffffffffffffffffffffffffffffffff16925081811480156106d6575082155b156106df578692505b82600003610718576107117f000000000000000000000000000000000000000000000000000000000000000082614ed7565b90506106a6565b505b61072382611a4d565b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9190911617835561076886611a99565b506000905060078161079a7f00000000000000000000000000000000000000000000000000000000000000008b614e99565b815260208101919091526040016000908120546fffffffffffffffffffffffffffffffff1691506107cc60028a61106f565b6000818152600e60205260408120549192508a8a831561094f57600192506000806107fb86898c866000611caf565b9150915080600b60008282546108119190614ed7565b9091555061082d905086600084610827816115f5565b88611d7e565b6108378183614ed7565b915061086786838a8d877f0000000000000000000000000000000000000000000000000000000000000000611fa5565b915061087b6108768385611fef565b612004565b600580546002906108a39084906201000090046dffffffffffffffffffffffffffff16614f55565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff1602179055506108de82611a4d565b6005805460109061091690849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614f7c565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505b600061095c60018461106f565b6000818152600e60205260409020549091508015610aa85760019450600080610989838b8e886001611caf565b9150915080600b600082825461099f9190614ed7565b909155506109bb9050836000846109b5816115f5565b8a6112ec565b6109c58183614e99565b91506109d46108768387611fef565b600580546002906109fc9084906201000090046dffffffffffffffffffffffffffff16614f55565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550610a3782611a4d565b60058054601090610a6f90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614f7c565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505b8415610ae057610ad4610aba876115f5565b610ac3836115f5565b610acd9190614fa5565b6000611655565b610ade8e8e61204e565b505b6000610aeb8f610f1f565b5090508f7fff888cf98d2696e95c8c39aa98c9ad55a5378008f7a56614c9353b7137a57ab78c868a8686604051610b44959493929190948552602085019390935260408401919091526060830152608082015260a00190565b60405180910390a250989a50505050505050505050505b9392505050565b6000838152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902054811115610bcb576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000838152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452825280832080548590039055858352600e90915281208054839290610c1b908490614e99565b9091555050604080518481526020810183905260009173ffffffffffffffffffffffffffffffffffffffff85169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6291015b60405180910390a4505050565b6000838152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616845290915281208054839290610cbb908490614ed7565b90915550506000838152600e602052604081208054839290610cde908490614ed7565b9091555050604080518481526020810183905273ffffffffffffffffffffffffffffffffffffffff84169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629101610c6f565b600080610d42856117d0565b505060065485906fffffffffffffffffffffffffffffffff1680821115610d7957806fffffffffffffffffffffffffffffffff1691505b81600003610d8e576000809250925050610f15565b610db97f03000000000000000000000000000000000000000000000000000000000000008984610b62565b600654600090610df59084906fffffffffffffffffffffffffffffffff7001000000000000000000000000000000009091048116908516612241565b9050610e0083611a4d565b610e0a9083614fc5565b600680547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055610e5481611a4d565b60068054601090610e8c90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614fc5565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550610ecd818887611900565b9350610ed9868461227d565b841015610f12576040517fc972651700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505b9550959350505050565b600080600080610f36610f3186612292565b612454565b9150915080610f4c575060009485945092505050565b6000808611610f5c576000610f66565b610f668387611fef565b600654600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e95460008080527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c54939450926fffffffffffffffffffffffffffffffff90921691610fda9190614ed7565b610fe49190614e99565b905080600003610ffd5750600096879650945050505050565b600061100983836124e1565b98600198509650505050505050565b600061102a6040830160208401614eba565b15611036575082610b5b565b6110408484611fef565b9050610b5b565b60006110596040830160208401614eba565b156110685761104084846124e1565b5082610b5b565b60007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8211156110ca576040517fb7d0949700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060f89190911b1790565b60008060008060008060006110e9886124f6565b90506111696110f6612547565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168c847f00000000000000000000000000000000000000000000000000000000000000008e7f0000000000000000000000000000000000000000000000000000000000000000612571565b9098509650915060008080806111f0611180612547565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006125e1565b90508c6111ff8f8784846125f8565b9a5091965090945092506112138486614e99565b61121d9088614e99565b96506112298386614ed7565b611233908c614e99565b9a5061123f888c614ed7565b99505050505050506112d785858385600760007f00000000000000000000000000000000000000000000000000000000000000008e61127e9190614e99565b81526020810191909152604001600020546fffffffffffffffffffffffffffffffff16428d116112ce5760008d8152600760205260409020546fffffffffffffffffffffffffffffffff166112d0565b8d5b600161270c565b999d939c50919a509098509095505050505050565b6001546fffffffffffffffffffffffffffffffff168381108061133757507f00000000000000000000000000000000000000000000000000000000000000006113358583614e99565b105b156113445761134461179e565b6003549084900390600f0b6113598482614fa5565b905083611365866115f5565b13801561139a57507f000000000000000000000000000000000000000000000000000000000000000061139883836127ab565b105b156113a7576113a761179e565b60025470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661140d611408826113e9670de0b6b3a764000088614fee565b6004546fffffffffffffffffffffffffffffffff1691908c60006127d1565b611a4d565b600480547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790556114588882614e99565b905061146381611a4d565b600280546fffffffffffffffffffffffffffffffff92831670010000000000000000000000000000000002921691909117905561149f83611a4d565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790556114e98261287b565b600380547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905561153387611a4d565b6001805460109061156b90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614f7c565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050505050505050565b60006115d3600e60006115bf60028661106f565b8152602001908152602001600020546115f5565b6115e5600e60006115bf60018761106f565b6115ef9190614fa5565b92915050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115611651576040517f72dd4e0200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5090565b600061167e61166484836128f1565b61166f8460006128f1565b6116799190614fa5565b61287b565b9050600081600f0b13156116ee57600280548291906000906116b39084906fffffffffffffffffffffffffffffffff16614f7c565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050565b600081600f0b12156117275761170381615005565b600280546000906116b39084906fffffffffffffffffffffffffffffffff16614fc5565b505050565b60006117587f00000000000000000000000000000000000000000000000000000000000000008361227d565b60025461177791906fffffffffffffffffffffffffffffffff16614ed7565b600154611796906fffffffffffffffffffffffffffffffff1684611fef565b101592915050565b6040517fbb55fd2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006115ef82600461204e565b60008060006117eb84611a99565b909250905060006117fc8686611fef565b90508183111561181457611811868385612241565b95505b8281101561182657808303925061182b565b600092505b61183483612004565b600580546dffffffffffffffffffffffffffff9290921662010000027fffffffffffffffffffffffffffffffff0000000000000000000000000000ffff90921691909117908190556fffffffffffffffffffffffffffffffff70010000000000000000000000000000000090910416808710156118b3578690036118b7565b5060005b6118c081611a4d565b600580546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790555085935050505092915050565b60008061190d8585611fef565b905061191881612907565b94508460000361192c576000915050610b5b565b61193c6040840160208501614eba565b1561196b57611964856119526020860186614e34565b61195f6040870187615043565b61297d565b9150611992565b61198e8561197c6020860186614e34565b6119896040870187615043565b612a41565b8491505b509392505050565b6040517f07a2d13a000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906307a2d13a906024015b602060405180830381865afa158015611a29573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ef91906150a8565b60006fffffffffffffffffffffffffffffffff821115611651576040517f1e15f2a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005546000908190611ad290849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16611fef565b6005546201000090046dffffffffffffffffffffffffffff169250905081811115611caa576000611b038383614e99565b9050611b126114088286612a88565b60058054601090611b4a90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614fc5565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506000611b9585836124e190919063ffffffff16565b90506000611bc3827f0000000000000000000000000000000000000000000000000000000000000000611fef565b905080600b6000828254611bd79190614ed7565b90915550611be790508183614e99565b9150611bf282611a4d565b60018054600090611c169084906fffffffffffffffffffffffffffffffff16614f7c565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550611c5582612a9d565b60038054600090611c6a908490600f0b6150c1565b92506101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff1602179055508493505050505b915091565b600080611cbc87856124e1565b91506000611cea837f0000000000000000000000000000000000000000000000000000000000000000611fef565b9050611d16817f0000000000000000000000000000000000000000000000000000000000000000611fef565b91508315611d3957611d288282614e99565b611d329084614e99565b9250611d50565b611d438282614e99565b611d4d9084614ed7565b92505b86861015611d7357611d63838789612241565b9250611d70828789612241565b91505b509550959350505050565b60035470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16611df361140882611dc0670de0b6b3a764000086614fee565b60045470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1691908a60006127d1565b600480546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055611e2f86611a4d565b611e399082614fc5565b600380546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055611e7584611a4d565b60018054600090611e999084906fffffffffffffffffffffffffffffffff16614f7c565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550611ed88361287b565b60038054600090611eed908490600f0b6150c1565b92506101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff160217905550611f2f85611a4d565b60018054601090611f6790849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614fc5565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050505050565b600080611fbd84611fb78a888a612241565b906124e1565b9050611fca888486612241565b611fd49082614ed7565b905086811115611fe45786810391505b509695505050505050565b6000610b5b8383670de0b6b3a7640000612241565b60006dffffffffffffffffffffffffffff821115611651576040517f10d62a2e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006547f03000000000000000000000000000000000000000000000000000000000000006000908152600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e954909182916120be916fffffffffffffffffffffffffffffffff1690614e99565b9050806000036120d25760019150506115ef565b60006120dd85612ae9565b9050806000036120f2576001925050506115ef565b600080612100838589612ba6565b91509150806121165760009450505050506115ef565b6000806121238489612cac565b91509150612141612133826115f5565b61213c9061510f565b612d9e565b92508261215757600096505050505050506115ef565b61216082611a4d565b600680546000906121849084906fffffffffffffffffffffffffffffffff16614f7c565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506121c381611a4d565b600680546010906121fb90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614f7c565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506001965050505050505092915050565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048411830215820261227657600080fd5b5091020490565b6000610b5b8383670de0b6b3a7640000612f19565b6122f66040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60408051610180810182526001546fffffffffffffffffffffffffffffffff8082168352600354600f0b602084015270010000000000000000000000000000000091829004811693830193909352606082018590527f000000000000000000000000000000000000000000000000000000000000000060808301527f000000000000000000000000000000000000000000000000000000000000000060a08301527f000000000000000000000000000000000000000000000000000000000000000060c08301527f000000000000000000000000000000000000000000000000000000000000000060e083015260025404821661010082015260045490916101208301916124049116612f5d565b81526003546fffffffffffffffffffffffffffffffff700100000000000000000000000000000000918290048116602084015260045460409093019261244c92900416612f5d565b905292915050565b600080600080600061246586612fd3565b915091508061247c57506000958695509350505050565b6124898660a001516115f5565b612492876132f3565b836124a089600001516115f5565b6124aa9190614eea565b6124b49190614eea565b6124be9190614fa5565b9250505060008112156124d75750600093849350915050565b9360019350915050565b6000610b5b83670de0b6b3a764000084612241565b6000806125016105d8565b905080831161251157600061251b565b61251b8184614e99565b9150610b5b827f00000000000000000000000000000000000000000000000000000000000000006124e1565b6001546003546000916105d3916fffffffffffffffffffffffffffffffff90911690600f0b6127ab565b6000808061259261258a88670de0b6b3a7640000614e99565b899087612241565b905086156125d4576125a48888611fef565b91506125c58a8a846125be8a670de0b6b3a7640000614e99565b8989613357565b92506125d18382614ed7565b90505b9750975097945050505050565b60006100b2826125f2858888612241565b9061337a565b600080808061264f87866126488b61264261261b8c670de0b6b3a7640000614e99565b7f00000000000000000000000000000000000000000000000000000000000000009061227d565b9061227d565b9190612f19565b935061267b847f0000000000000000000000000000000000000000000000000000000000000000611fef565b9150600061269c61269489670de0b6b3a7640000614e99565b8a9088612f19565b90506126c8817f000000000000000000000000000000000000000000000000000000000000000061227d565b93506126f4847f0000000000000000000000000000000000000000000000000000000000000000611fef565b6126fe9084614ed7565b915050945094509450949050565b6000806000806000808888101561277b5786156127315761272e8d898b612241565b9c505b61273c8c898b612241565b9b506127478b6115f5565b6127508d6115f5565b61275a9190614fa5565b90506127678b898b612241565b9a506127748a898b612241565b995061279a565b6127848b6115f5565b61278d8d6115f5565b6127979190614fa5565b90505b9b9c9a9b999a975050505050505050565b6000806127b884846133ef565b9092509050806127ca576127ca61179e565b5092915050565b6000826000036127e2575084612872565b8115612835576128136127f58487614ed7565b6127ff8587611fef565b612809888a611fef565b611fb79190614ed7565b90506000612821858861342b565b90508082101561282f578091505b50612872565b82850361284457506000612872565b61286f6128518487614e99565b61285b858761227d565b612865888a611fef565b611fb79190614e99565b90505b95945050505050565b60007fffffffffffffffffffffffffffffffff800000000000000000000000000000008212806128ba57506f7fffffffffffffffffffffffffffffff82135b15611651576040517fa5353be500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008183136129005781610b5b565b5090919050565b6040517fc6e6f592000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063c6e6f59290602401611a0c565b6040517fba0876520000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff84811660248301523060448301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063ba087652906064016020604051808303816000875af1158015612a1d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b291906150a8565b612a8273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016848661343a565b50505050565b6000610b5b83670de0b6b3a764000084612f19565b60006f7fffffffffffffffffffffffffffffff821115611651576040517fa5353be500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002546000908190612b0d906fffffffffffffffffffffffffffffffff1684612a88565b9050612b397f000000000000000000000000000000000000000000000000000000000000000082614ed7565b6001546fffffffffffffffffffffffffffffffff161115612ba0576001547f000000000000000000000000000000000000000000000000000000000000000090612b969083906fffffffffffffffffffffffffffffffff16614e99565b610b5b9190614e99565b50919050565b612bae614cca565b600080612bba84612292565b90506000612bc782612454565b9350905082612bdc57506000915061009c9050565b6000612c03612bfe846101600151856101400151611fef90919063ffffffff16565b6115f5565b612c23612bfe85610120015186610100015161227d90919063ffffffff16565b612c2d9190614fa5565b604080516101208101825285815260208082019590955260008052600e85527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c54818301526060810199909952608089019990995260a088015250815160c087015281015160e086015290940151610100840152509092600192509050565b600080600080612cc48660c001518760e001516133ef565b9150915080612cdb57600080935093505050612d97565b6000612ce787846134c7565b92509050811580612cf6575080155b15612d0a5760008094509450505050612d97565b6000612d1688836135d6565b905080600003612d30576000809550955050505050612d97565b87606001518111612d475794509250612d97915050565b5060608701516000612d5b8986858b6136a7565b905080600003612d7657600080965096505050505050612d97565b828110612d8e57600080965096505050505050612d97565b90955093505050505b9250929050565b6001546003546000916fffffffffffffffffffffffffffffffff80821692600f0b9170010000000000000000000000000000000090041683808080612e068787877f00000000000000000000000000000000000000000000000000000000000000008d613bbc565b935093509350935080612e225750600098975050505050505050565b868414612e7457612e3284611a4d565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b858314612ec657612e848361287b565b600380547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b848214612f0a57612ed682611a4d565b600180546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790555b50600198975050505050505050565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0484118302158202612f4e57600080fd5b50910281810615159190040190565b600080670de0b6b3a7640000612f716105d8565b612f7b9190614fee565b9050808311612f8b576000612f95565b612f958184614e99565b9150610b5b612fcc670de0b6b3a76400007f0000000000000000000000000000000000000000000000000000000000000000614fee565b83906124e1565b6000806000612ff8612bfe856101600151866101400151611fef90919063ffffffff16565b613018612bfe86610120015187610100015161227d90919063ffffffff16565b6130229190614fa5565b9050600080613039866000015187602001516133ef565b915091508061305057506000958695509350505050565b6000831315613191576000839050600061309e886000015189602001518a604001518b60a001518c60e00151670de0b6b3a764000061308f9190614e99565b8d606001518e60800151613cd4565b93509050826130b7575060009788975095505050505050565b8181106131555760006130f1858a60400151858c60e00151670de0b6b3a76400006130e29190614e99565b8d606001518e60800151613de0565b945090508315801561310657508860c0015183105b1561311d5750600098600198509650505050505050565b8361313357506000988998509650505050505050565b61313c816115f5565b6131459061510f565b9960019950975050505050505050565b600088602001511261317d576131748860a0015185612bfe9190614e99565b6110099061510f565b60a0880151885161317491612bfe91614e99565b60008312156132e45760006131a58461510f565b905060006131d98489604001518a60e00151670de0b6b3a76400006131ca9190614e99565b8b606001518c60800151613ea3565b93509050826131f2575060009788975095505050505050565b81811061327757600061322c858a60400151858c60e00151670de0b6b3a764000061321d9190614e99565b8d606001518e60800151613f4c565b945090508315801561324157508860c0015183105b156132585750600098600198509650505050505050565b8361326e57506000988998509650505050505050565b613145816115f5565b60006132a9858a604001518b60e00151670de0b6b3a764000061329a9190614e99565b8c606001518d60800151614023565b94509050836132c357506000988998509650505050505050565b6131456132da8a606001518486611fb79190614e99565b612bfe9083614ed7565b50600095600195509350505050565b6000613326612bfe836101200151670de0b6b3a76400006133149190614e99565b60608501516101008601519190612f19565b6115e5612bfe846101600151670de0b6b3a76400006133459190614e99565b60608601516101408701519190612241565b600080613368888888888888613de0565b909250905080611fe457611fe461179e565b6000816000036133935750670de0b6b3a76400006115ef565b826000036133a3575060006115ef565b60006133ae836115f5565b905060006133c36133be866115f5565b6140d2565b90508181026133da670de0b6b3a764000082615147565b90506133e581614373565b9695505050505050565b6000806000836133fe866115f5565b6134089190614fa5565b90506000811215613420576000809250925050612d97565b946001945092505050565b6000818311612ba05782610b5b565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261172790849061458c565b60008060008460a00151126134e457505060808201516001612d97565b60008460a001516134f49061510f565b9050600061353085876101000151886000015160e00151670de0b6b3a764000061351e9190614e99565b89516060810151608090910151613ea3565b9350905082158061353f575080155b1561355257600080935093505050612d97565b600061355e8383612a88565b9050670de0b6b3a7640000811161359a5780670de0b6b3a76400000394506135938760c0015186611fef90919063ffffffff16565b94506135a9565b60008094509450505050612d97565b86608001518511156135c8578660800151600194509450505050612d97565b506001925050509250929050565b60008061360c8460c001518560e00151866101000151876000015160a001516135fe886115f5565b6136079061510f565b613bbc565b875160408101929092526020820192909252919091529050806136335760009150506115ef565b60006136428560000151612454565b9250905081613656576000925050506115ef565b8460200151811061366c576000925050506115ef565b6000856060015186604001516136829190614ed7565b905061369d828760200151836122419092919063ffffffff16565b6133e59082614e99565b600080856060015186604001516136be9190614ed7565b602087015160608801519192506000916136d89184612241565b90508660a001516000036136ef5791506100b59050565b6000808089600488101561370257600497505b60005b88811015613a5e57613717868b61342b565b955060006137408360c001518460e00151856101000151866000015160a001516135fe8c6115f5565b8651604081019290925260208201929092529190915290508061376e576000985050505050505050506100b5565b600061377d8e60000151612454565b925090508161379857600099505050505050505050506100b5565b6137a384828b614627565b156137b9578799505050505050505050506100b5565b60008460a00151131561392257835180516020820151604083015160a084015160e09094015160009461380d949392916137fb90670de0b6b3a7640000614e99565b8a516060810151608090910151613cd4565b93509050826138295760009a50505050505050505050506100b5565b808560a00151106139205761383d85614693565b90995092508261385a5760009a50505050505050505050506100b5565b61387f8560c001518660e00151876101000151886000015160a001516135fe8e6115f5565b885160408101929092526020820192909252919091529250826138af5760009a50505050505050505050506100b5565b845180516020820151604083015160a084015160e0909401516138df94906137fb90670de0b6b3a7640000614e99565b93509050826138fb5760009a50505050505050505050506100b5565b8e60a00151811161391857889a50505050505050505050506100b5565b505050613705565b505b6000613933858f8760a00151614769565b9350905082158061394c5750670de0b6b3a76400008110155b156139645760009a50505050505050505050506100b5565b80670de0b6b3a76400000390506000613991612bfe8760400151886020015161227d90919063ffffffff16565b61399e612bfe858e611fef565b6139a89190614fa5565b90508815806139c657506139bb89614ac4565b6139c482614ac4565b125b156139d5578098508997508296505b60008113156139fd576139ec8b611fb783856124e1565b6139f6908b614ed7565b9950613a4f565b6000811215613a46576000613a178c611fb785818661510f565b90508a811015613a2b57808b039a50613a40565b60009c505050505050505050505050506100b5565b50613a4f565b50505050613a5e565b84600101945050505050613705565b506000613a868260c001518360e00151846101000151856000015160a001516135fe8b6115f5565b85516040810192909252602082019290925291909152905080613ab35760009750505050505050506100b5565b6000613ac28360000151614adc565b90506000613ae4612bfe8560400151866020015161227d90919063ffffffff16565b613af1612bfe848c611fef565b613afb9190614fa5565b9050613b0687614ac4565b613b0f82614ac4565b1215613b1c578795508194505b613b43613b37655af3107a4000670de0b6b3a7640000614e99565b6020860151908b612f19565b6040850151613b539087906124e1565b1080613b935750613b81613b75655af3107a4000670de0b6b3a7640000614ed7565b6020860151908b612241565b6040850151613b91908790612a88565b115b15613baa57600099505050505050505050506100b5565b50939c9b505050505050505050505050565b60008060008084600003613bdb57508792508691508590506001613cc8565b600085613be78b6115f5565b613bf19190614eea565b9050613bfc876115f5565b811215613c1757600080600080945094509450945050613cc8565b80945060008912613c3757613c30612bfe868b8d612241565b9350613c5a565b613c4e612bfe613c468b61510f565b87908d612f19565b613c579061510f565b93505b600080613c678c8c6133ef565b9150915080613c86576000806000809650965096509650505050613cc8565b6000613c9288886133ef565b9250905081613cb257600080600080975097509750975050505050613cc8565b613cbd8b8285612241565b955060019450505050505b95509550955095915050565b6000806000881215613cf657613ce98861510f565b613cf39087614ed7565b95505b600080613d038b8b6133ef565b9150915080613d1a57600080935093505050613dd4565b6000613d29838b8a8a8a614b25565b90506000613d46613d3e8a6125f28a8e61227d565b899089612f19565b905080821015613d60576000809550955050505050613dd4565b808203670de0b6b3a76400008110613d9557613d8e613d87670de0b6b3a76400008c6124e1565b829061337a565b9050613dad565b613daa613d87670de0b6b3a76400008c612a88565b90505b8b811015613dc657600080965096505050505050613dd4565b8b9003955060019450505050505b97509795505050505050565b6000806000613df28989888888614b54565b9050613e02866125f2898b614ed7565b975087811015613e19576000809250925050613e98565b878103613e27818688612f19565b9050670de0b6b3a76400008110613e5457613e4d613d87670de0b6b3a764000089612a88565b9050613e6c565b613e69613d87670de0b6b3a7640000896124e1565b90505b613e768186612a88565b9050808a1015613e8e57600080935093505050613e98565b8903925060019150505b965096945050505050565b6000806000613eb58888888888614b54565b90506000613ee0670de0b6b3a7640000613ecf88886124e1565b613ed99190614ed7565b8390612a88565b9050670de0b6b3a76400008110613f0d57613f06613d87670de0b6b3a764000089612a88565b9050613f25565b613f22613d87670de0b6b3a7640000896124e1565b90505b80881015613f3b57600080935093505050610f15565b909603976001975095505050505050565b6000806000613f5e8989888888614b54565b905086881015613f75576000809250925050613e98565b9686900396613f84888761337a565b975087811015613f9b576000809250925050613e98565b878103613fa9818688612f19565b9050670de0b6b3a76400008110613fd657613fcf613d87670de0b6b3a764000089612a88565b9050613fee565b613feb613d87670de0b6b3a7640000896124e1565b90505b613ff88186612a88565b90508981101561401057600080935093505050613e98565b9890980398600198509650505050505050565b60008060006140358888888888614b25565b90506000614059670de0b6b3a764000061404f8888612a88565b612fcc9190614ed7565b9050670de0b6b3a764000081106140865761407f613d87670de0b6b3a7640000896124e1565b905061409e565b61409b613d87670de0b6b3a764000089612a88565b90505b6140a881866124e1565b9050888110156140c057600080935093505050610f15565b97909703976001975095505050505050565b600080821361410d576040517fe61b497500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff10600390811b90911782811c600f1060021b1782811c909110600190811b90911782811c90911017609f8181036060019290921b917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08201906141b79084901c6115f5565b6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b391909102017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c182136143a457506000919050565b680755bf798b4a1bf1e582126143e6576040517f73a2d6b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b3988102909303927fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550484018402606090811d6d0277594991cfc85f6e2461837cd9018502811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018502811d6db1bbb201f443cf962f1a1d3db4a5018502811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018502811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765087018702831d9081019087017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e01810290921d6e0587f503bb6ea29d25fcb74019645001860279d835ebba824c98fb31b83b2ca45c0000000000000000000000000181810595509293509091906133e574029d9dc38563c32e5c2f6dc192ee70ef65f9978af3860260c38690031c6115f5565b60006145ae73ffffffffffffffffffffffffffffffffffffffff841683614b79565b905080516000141580156145d35750808060200190518101906145d191906151af565b155b15611727576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b60208301516000906146399084612a88565b60408501516146499084906124e1565b101580156100b5575060208401516146799084614672633b9aca00670de0b6b3a7640000614ed7565b9190612241565b6040850151614689908490612a88565b1115949350505050565b60008060008360e00151136146ad57506000928392509050565b60006146bc84600001516132f3565b905060006146e88560400151866060015187604001516146dc9190614ed7565b60208801519190612f19565b90506000821261470f578082101561470257819003614725565b5060009485945092505050565b6147188261510f565b6147229082614ed7565b90505b60e085015160c086015161473a918390612f19565b9050808560c001511015614755575060009485945092505050565b808560c00151036001935093505050915091565b600080600080841261478d57855160400151614786908590614ed7565b90506147c8565b60006147988561510f565b8751604001519091508110156147b85786516040015181900391506147c6565b60008093509350505061009c565b505b8551805160209091015160009182916147e191906133ef565b91509150806147f9576000809450945050505061009c565b875160e081015160409091015160009161482e916148229161481b919061337a565b8a90611fef565b6101008b015190612a88565b895160e08101516080909101516148599161484d916125f29088611fef565b8b516060015190612a88565b6148639190614ed7565b9050600061489b61488f6148888c6000015160e001518861337a90919063ffffffff16565b8b9061227d565b6101008c0151906124e1565b9050808210156148b65760008096509650505050505061009c565b808203915060006148f8858c60000151604001518d6000015160e00151670de0b6b3a76400006148e69190614e99565b8e516060810151608090910151614b54565b905060006149228c6000015160e00151670de0b6b3a764000061491b9190614e99565b889061337a565b90508082101561493f57600080985098505050505050505061009c565b8b5160808101516060909101519183039161495b918391612f19565b9050670de0b6b3a7640000811061499f578b5160e0015161499890613d879061498c90670de0b6b3a7640000614e99565b8e5160e0015190612a88565b90506149ce565b8b5160e001516149cb90613d87906149bf90670de0b6b3a7640000614e99565b8e5160e00151906124e1565b90505b8b51606001516149e19085908390612f19565b935083670de0b6b3a76400001115614a055783670de0b6b3a7640000039350614a19565b60006001985098505050505050505061009c565b60008c60e0015112614a7c5760c08c015160e08d0151614a3891612a88565b9250670de0b6b3a7640000831115614a5d57600080985098505050505050505061009c565b670de0b6b3a76400009290920391614a758484611fef565b9350614ab1565b614aae614a958d60c001518e60e00151611fb79061510f565b614aa790670de0b6b3a7640000614ed7565b8590611fef565b93505b50919a60019a5098505050505050505050565b6000808212614ad357816115ef565b6115ef8261510f565b6000806000614aea84612454565b91509150806127ca576040517faa2c651600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000614b31858561337a565b614b4a614b42866125f2868b611fef565b859085612241565b61286f9190614ed7565b6000614b60858561337a565b614b4a614b71866125f2868b61227d565b859085612f19565b6060610b5b83836000846000808573ffffffffffffffffffffffffffffffffffffffff168486604051614bac91906151cc565b60006040518083038185875af1925050503d8060008114614be9576040519150601f19603f3d011682016040523d82523d6000602084013e614bee565b606091505b50915091506133e5868383606082614c0e57614c0982614c88565b610b5b565b8151158015614c32575073ffffffffffffffffffffffffffffffffffffffff84163b155b15614c81576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260240161461e565b5080610b5b565b805115614c985780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051806101200160405280614d3a6040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060608284031215612ba057600080fd5b600080600060608486031215614d9f57600080fd5b8335925060208401359150604084013567ffffffffffffffff811115614dc457600080fd5b614dd086828701614d78565b9150509250925092565b60008060008060808587031215614df057600080fd5b843593506020850135925060408501359150606085013567ffffffffffffffff811115614e1c57600080fd5b614e2887828801614d78565b91505092959194509250565b600060208284031215614e4657600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610b5b57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156115ef576115ef614e6a565b80151581146105bd57600080fd5b600060208284031215614ecc57600080fd5b8135610b5b81614eac565b808201808211156115ef576115ef614e6a565b8082018281126000831280158216821582161715614f0a57614f0a614e6a565b505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614f5057614f50614f12565b500690565b6dffffffffffffffffffffffffffff8181168382160190808211156127ca576127ca614e6a565b6fffffffffffffffffffffffffffffffff8181168382160190808211156127ca576127ca614e6a565b81810360008312801583831316838312821617156127ca576127ca614e6a565b6fffffffffffffffffffffffffffffffff8281168282160390808211156127ca576127ca614e6a565b80820281158282048414176115ef576115ef614e6a565b600081600f0b7fffffffffffffffffffffffffffffffff80000000000000000000000000000000810361503a5761503a614e6a565b60000392915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261507857600080fd5b83018035915067ffffffffffffffff82111561509357600080fd5b602001915036819003821315612d9757600080fd5b6000602082840312156150ba57600080fd5b5051919050565b600f81810b9083900b016f7fffffffffffffffffffffffffffffff81137fffffffffffffffffffffffffffffffff80000000000000000000000000000000821217156115ef576115ef614e6a565b60007f8000000000000000000000000000000000000000000000000000000000000000820361514057615140614e6a565b5060000390565b60008261515657615156614f12565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f8000000000000000000000000000000000000000000000000000000000000000831416156151aa576151aa614e6a565b500590565b6000602082840312156151c157600080fd5b8151610b5b81614eac565b6000825160005b818110156151ed57602081860181015185830152016151d3565b50600092019182525091905056fea26469706673582212205686ce5dcbc6aae42cd9c28001ee7b85d29d053c8cad19f30fc55fc1339f7cea64736f6c63430008140033" -} \ No newline at end of file diff --git a/deployments/sepolia/TEST_ERC4626_ERC4626Target3.json b/deployments/sepolia/TEST_ERC4626_ERC4626Target3.json deleted file mode 100644 index 9de698712..000000000 --- a/deployments/sepolia/TEST_ERC4626_ERC4626Target3.json +++ /dev/null @@ -1,1041 +0,0 @@ -{ - "address": "0xD460e7C4d5B4c0F96381B872Eb43b7DeEb730340", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "AddressInsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "BelowMinimumContribution", - "type": "error" - }, - { - "inputs": [], - "name": "DistributeExcessIdleFailed", - "type": "error" - }, - { - "inputs": [], - "name": "ExpInvalidExponent", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientLiquidity", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidCheckpointTime", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidPresentValue", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidTimestamp", - "type": "error" - }, - { - "inputs": [], - "name": "LnInvalidInput", - "type": "error" - }, - { - "inputs": [], - "name": "MinimumSharePrice", - "type": "error" - }, - { - "inputs": [], - "name": "MinimumTransactionAmount", - "type": "error" - }, - { - "inputs": [], - "name": "NotPayable", - "type": "error" - }, - { - "inputs": [], - "name": "OutputLimit", - "type": "error" - }, - { - "inputs": [], - "name": "PoolAlreadyInitialized", - "type": "error" - }, - { - "inputs": [], - "name": "PoolIsPaused", - "type": "error" - }, - { - "inputs": [], - "name": "ReentrancyGuardReentrantCall", - "type": "error" - }, - { - "inputs": [], - "name": "RestrictedZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "SafeERC20FailedOperation", - "type": "error" - }, - { - "inputs": [], - "name": "TransferFailed", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt128", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt256", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToUint112", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToUint128", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "AddLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "basePayment", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fees", - "type": "uint256" - } - ], - "name": "CollectGovernanceFee", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "checkpointTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "checkpointVaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedShorts", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedLongs", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "CreateCheckpoint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newFeeCollector", - "type": "address" - } - ], - "name": "FeeCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGovernance", - "type": "address" - } - ], - "name": "GovernanceUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "apr", - "type": "uint256" - } - ], - "name": "Initialize", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseProceeds", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isPaused", - "type": "bool" - } - ], - "name": "PauseStatusUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newPauser", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "status", - "type": "bool" - } - ], - "name": "PauserUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - } - ], - "name": "RedeemWithdrawalShares", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "RemoveLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "Sweep", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newSweepCollector", - "type": "address" - } - ], - "name": "SweepCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_checkpointTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_maxIterations", - "type": "uint256" - } - ], - "name": "checkpoint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_contribution", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_apr", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "initialize", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minOutput", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minVaultSharePrice", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "openLong", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - } - ], - "args": [ - { - "minimumShareReserves": "1000000000000000", - "minimumTransactionAmount": "1000000000000000", - "positionDuration": "2592000", - "checkpointDuration": "86400", - "timeStretch": "0", - "governance": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "feeCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "sweepCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "fees": { - "curve": "1000000000000000", - "flat": "8333333333333", - "governanceLP": "150000000000000000", - "governanceZombie": "30000000000000000" - }, - "baseToken": "0x96bf962d3c02134fc7aa9441ea38715a261da60b", - "vaultSharesToken": "0xa6f5ad0ef6f4db6e9fa2e13318d218665c72a3ba", - "linkerFactory": "0xE84d966f6f87C7957719ad4BeC7E3bB35a46E8B2", - "linkerCodeHash": "0x9a69ff3b9a110deacb7d941d71222642f269891c0da9fcc15ec7c63fbd216b3f", - "initialVaultSharePrice": "0" - } - ], - "numDeployments": 1, - "bytecode": "0x6102406040523480156200001257600080fd5b50604051620059dd380380620059dd8339810160408190526200003591620001e1565b600160005580516001600160a01b039081166080908152602080840151831660a0908152918401516101a0908152918401516101c05260c0808501516101e0526101008086015190915260e0808601519052610120808601519091529184018051519092528151015161014090815281516040908101516101609081529251606090810151610180908152918601518516610200528501516102205290840151600a80546001600160a01b03199081169286169290921790559184015160088054841691851691909117905590920151600980549093169116179055620002d4565b6040516101c081016001600160401b03811182821017156200014957634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b03811681146200016757600080fd5b919050565b6000608082840312156200017f57600080fd5b604051608081016001600160401b0381118282101715620001b057634e487b7160e01b600052604160045260246000fd5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b60006102208284031215620001f557600080fd5b620001ff62000117565b6200020a836200014f565b81526200021a602084016200014f565b60208201526200022d604084016200014f565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101406200028c8185016200014f565b90820152610160620002a08482016200014f565b90820152610180620002b48482016200014f565b908201526101a0620002c9858583016200016c565b908201529392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e0516102005161022051615587620004566000396000505060005050600081816105530152612e48015260008181610238015281816102c6015281816103e4015281816118d50152818161191a01528181611c06015281816122fe0152818161236101528181612cc90152612e2201526000818161033d0152818161132d0152818161138b015281816114c10152612dfc01526000611e44015260008181611f970152612bb2015260008181610c32015281816113fe0152611f6b0152600081816113dd0152612b6e0152600081816103800152818161130b015281816113ac015281816114e20152612e6e01526000818161035f0152818161066a01528181610b64015261405a015260008181610148015281816109ce01528181610a6d0152610adb01526000818161182a015281816127b20152818161285201526128fb01526000818161278501526127f301526155876000f3fe6080604052600436106100345760003560e01c8063414f826d1461003957806377d05ff41461005b578063cba2e58d14610081575b600080fd5b34801561004557600080fd5b506100596100543660046150ac565b6100a9565b005b61006e6100693660046150e0565b6100b7565b6040519081526020015b60405180910390f35b61009461008f366004615130565b6100ce565b60408051928352602083019190915201610078565b6100b382826100eb565b5050565b60006100c48484846101c9565b90505b9392505050565b6000806100dd868686866104d3565b915091505b94509492505050565b6100f3610778565b60006100fd6107bb565b6000848152600760205260409020549091506fffffffffffffffffffffffffffffffff16156101375761013081836107d3565b50506101bf565b60006101416109c7565b905061016d7f0000000000000000000000000000000000000000000000000000000000000000856151b9565b15158061017957508381105b156101b0576040517fecd29e8100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101bb8483856109fd565b5050505b6100b36001600055565b60006101d3610778565b6101db610f4f565b6101e482610f89565b60055460ff1615610221576040517f7983c05100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008061022e8685610fe8565b909250905061025e7f000000000000000000000000000000000000000000000000000000000000000060026151fc565b821015610297576040517fabed41c400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560027f000000000000000000000000000000000000000000000000000000000000000002820392506102f3826110da565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790556103a96103a4837f0000000000000000000000000000000000000000000000000000000000000000887f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061112a565b6110da565b600180546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790556104086000807f00000000000000000000000000000000000000000000000000000000000000006111c9565b610420600061041a6020870187615213565b856111c9565b61043361042b6109c7565b8260046109fd565b50600061044187838761128b565b90506104506020860186615213565b73ffffffffffffffffffffffffffffffffffffffff167fdfe2bf9f580df5ec15438120ffa6f0603237c4e6b65d07140a4695317da4f95285838661049a60408b0160208c01615257565b60408051948552602085019390935291830152151560608201526080810189905260a00160405180910390a25050506100c76001600055565b6000806104de610778565b600554610100900460ff1615610520576040517f21081abf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610528610f4f565b61053183610f89565b60008061053e8886610fe8565b9092509050600061054f83836112ba565b90507f00000000000000000000000000000000000000000000000000000000000000008110156105ab576040517f423bbb4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b868210156105e5576040517f42af972b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006105ef6109c7565b90506105fd818460046109fd565b5060008061060b86866112cf565b90985090925090508a87101561064d576040517fc972651700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600b600082825461065f9190615274565b9091555061068f90507f000000000000000000000000000000000000000000000000000000000000000084615274565b975061069d8288878b61151e565b60006106aa60018a61176a565b90506106c3816106bd60208d018d615213565b8a6111c9565b8c8989888d856106d66020830183615213565b73ffffffffffffffffffffffffffffffffffffffff167f88087800d03445c97e2009f3f90906bf6ede79bbd194e275c66224e977a5b84c8661071989878761128b565b6107248a88886117d0565b6107346040880160208901615257565b60408051948552602085019390935291830152151560608201526080810187905260a00160405180910390a350909a50505050505050505050506100e26001600055565b6002600054036107b4576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b60006107ce670de0b6b3a76400006117f8565b905090565b6006547f03000000000000000000000000000000000000000000000000000000000000006000908152600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e95490918291610843916fffffffffffffffffffffffffffffffff1690615287565b9050806000036108575760019150506109c1565b6000610862856118aa565b905080600003610877576001925050506109c1565b60008061088583858961196a565b915091508061089b5760009450505050506109c1565b6000806108a88489611a77565b915091506108c66108b882611b67565b6108c19061529a565b611bc3565b9250826108dc57600096505050505050506109c1565b6108e5826110da565b600680546000906109099084906fffffffffffffffffffffffffffffffff166152d2565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550610948816110da565b6006805460109061098090849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166152d2565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550600196505050505050505b92915050565b60006109f37f0000000000000000000000000000000000000000000000000000000000000000426151b9565b6107ce9042615287565b600083815260076020526040812080546fffffffffffffffffffffffffffffffff16151580610a2b57504285115b15610a4a57546fffffffffffffffffffffffffffffffff1690506100c7565b600080610a556109c7565b9050808703610a6657859150610b09565b6000610a927f000000000000000000000000000000000000000000000000000000000000000089615274565b90505b6000818152600760205260409020546fffffffffffffffffffffffffffffffff1692508181148015610ac5575082155b15610ace578692505b82600003610b0757610b007f000000000000000000000000000000000000000000000000000000000000000082615274565b9050610a95565b505b610b12826110da565b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff91909116178355610b5786611d3e565b5060009050600781610b897f00000000000000000000000000000000000000000000000000000000000000008b615287565b815260208101919091526040016000908120546fffffffffffffffffffffffffffffffff169150610bbb60028a61176a565b6000818152600e60205260408120549192508a8a8315610d3e5760019250600080610bea86898c866000611f54565b9150915080600b6000828254610c009190615274565b90915550610c1c905086600084610c1681611b67565b88612023565b610c268183615274565b9150610c5686838a8d877f000000000000000000000000000000000000000000000000000000000000000061224a565b9150610c6a610c6583856112ba565b612294565b60058054600290610c929084906201000090046dffffffffffffffffffffffffffff166152fb565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550610ccd826110da565b60058054601090610d0590849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166152d2565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505b6000610d4b60018461176a565b6000818152600e60205260409020549091508015610e975760019450600080610d78838b8e886001611f54565b9150915080600b6000828254610d8e9190615274565b90915550610daa905083600084610da481611b67565b8a6122de565b610db48183615287565b9150610dc3610c6583876112ba565b60058054600290610deb9084906201000090046dffffffffffffffffffffffffffff166152fb565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550610e26826110da565b60058054601090610e5e90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166152d2565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505b8415610ecf57610ec3610ea987611b67565b610eb283611b67565b610ebc9190615322565b6000612598565b610ecd8e8e6107d3565b505b6000610eda8f61266f565b5090508f7fff888cf98d2696e95c8c39aa98c9ad55a5378008f7a56614c9353b7137a57ab78c868a8686604051610f33959493929190948552602085019390935260408401919091526060830152608082015260a00190565b60405180910390a250989e9d5050505050505050505050505050565b3415610f87576040517f1574f9f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6000610f986020830183615213565b73ffffffffffffffffffffffffffffffffffffffff1603610fe5576040517ff0dd15fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b60008080610ffc6040850160208601615257565b1561102157611017856110126040870187615342565b612768565b909350905061103d565b5034611039856110346040870187615342565b6128e1565b8492505b6110456107bb565b915080156110d157604051600090339083908381818185875af1925050503d806000811461108f576040519150601f19603f3d011682016040523d82523d6000602084013e611094565b606091505b50509050806110cf576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b505b9250929050565b60006fffffffffffffffffffffffffffffffff821115611126576040517f1e15f2a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5090565b60008061113b846301e13380612923565b9050600061114986836112ba565b61115b90670de0b6b3a7640000615274565b9050670de0b6b3a7640000811061118f57611188611181670de0b6b3a764000086612923565b8290612938565b90506111a7565b6111a4611181670de0b6b3a7640000866129ad565b90505b6111bb816111b5898b6112ba565b906112ba565b925050505b95945050505050565b6000838152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616845290915281208054839290611208908490615274565b90915550506000838152600e60205260408120805483929061122b908490615274565b9091555050604080518481526020810183905273ffffffffffffffffffffffffffffffffffffffff84169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4505050565b600061129d6040830160208401615257565b156112a95750826100c7565b6112b384846112ba565b90506100c7565b60006100c78383670de0b6b3a76400006129c2565b60008060006113516112df6129fe565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16877f0000000000000000000000000000000000000000000000000000000000000000887f0000000000000000000000000000000000000000000000000000000000000000612a28565b915060006113d06113606129fe565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612a54565b90506114278684611422847f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612a6b565b612ad6565b1561143457611434612b2e565b600080611442888489612b60565b90925090506114518286615287565b945061145e8184896129c2565b935061146a8489615287565b9550670de0b6b3a7640000611506876114816129fe565b61148b9190615274565b6001546114bf90899070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16615287565b7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612a54565b111561151457611514612b2e565b5050509250925092565b60025470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661157f6103a482611560670de0b6b3a7640000866151fc565b6004546fffffffffffffffffffffffffffffffff169190886001612be0565b600480547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790556115c9856110da565b600180546000906115ed9084906fffffffffffffffffffffffffffffffff166152d2565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555061162c846110da565b6001805460109061166490849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166153a7565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506116a3846110da565b6116ad90826152d2565b600280546fffffffffffffffffffffffffffffffff808416700100000000000000000000000000000000029116179055905060006116ea83612c7e565b9050611708816116f987611b67565b61170390846153d0565b612598565b61171184612cc2565b61171d5761171d612b2e565b600061172885612d34565b905080611761576040517f8bdf918d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505050565b60007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8211156117c5576040517fb7d0949700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060f89190911b1790565b60006117e26040830160208401615257565b156117f1576112b38484612923565b50826100c7565b6040517f07a2d13a000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906307a2d13a90602401602060405180830381865afa158015611886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c191906153f8565b60025460009081906118ce906fffffffffffffffffffffffffffffffff16846129ad565b90506118fa7f000000000000000000000000000000000000000000000000000000000000000082615274565b6001546fffffffffffffffffffffffffffffffff161115611964576001547f0000000000000000000000000000000000000000000000000000000000000000906119579083906fffffffffffffffffffffffffffffffff16615287565b6119619190615287565b91505b50919050565b611972614ffe565b60008061197e84612d41565b9050600061198b82612f03565b93509050826119a0575060009150611a6f9050565b60006119c76119c28461016001518561014001516112ba90919063ffffffff16565b611b67565b6119e76119c2856101200151866101000151612f9090919063ffffffff16565b6119f19190615322565b604080516101208101825285815260208082019590955260008052600e85527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c5481830152606081018a9052608081018b905260a0810192909252845160c08301529284015160e08201529290910151610100830152509150600190505b935093915050565b600080600080611a8f8660c001518760e00151612fa5565b9150915080611aa6576000809350935050506110d3565b6000611ab28784612fe1565b92509050811580611ac1575080155b15611ad557600080945094505050506110d3565b6000611ae188836130f0565b905080600003611afb5760008095509550505050506110d3565b87606001518111611b1257945092506110d3915050565b5060608701516000611b268986858b6131c1565b905080600003611b41576000809650965050505050506110d3565b828110611b59576000809650965050505050506110d3565b909890975095505050505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115611126576040517f72dd4e0200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546003546000916fffffffffffffffffffffffffffffffff80821692600f0b9170010000000000000000000000000000000090041683808080611c2b8787877f00000000000000000000000000000000000000000000000000000000000000008d6136d8565b935093509350935080611c475750600098975050505050505050565b868414611c9957611c57846110da565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b858314611ceb57611ca9836137f0565b600380547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b848214611d2f57611cfb826110da565b600180546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790555b50600198975050505050505050565b6005546000908190611d7790849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166112ba565b6005546201000090046dffffffffffffffffffffffffffff169250905081811115611f4f576000611da88383615287565b9050611db76103a482866129ad565b60058054601090611def90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166153a7565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506000611e3a858361292390919063ffffffff16565b90506000611e68827f00000000000000000000000000000000000000000000000000000000000000006112ba565b905080600b6000828254611e7c9190615274565b90915550611e8c90508183615287565b9150611e97826110da565b60018054600090611ebb9084906fffffffffffffffffffffffffffffffff166152d2565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550611efa82613866565b60038054600090611f0f908490600f0b615411565b92506101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff1602179055508493505050505b915091565b600080611f618785612923565b91506000611f8f837f00000000000000000000000000000000000000000000000000000000000000006112ba565b9050611fbb817f00000000000000000000000000000000000000000000000000000000000000006112ba565b91508315611fde57611fcd8282615287565b611fd79084615287565b9250611ff5565b611fe88282615287565b611ff29084615274565b92505b86861015612018576120088387896129c2565b92506120158287896129c2565b91505b509550959350505050565b60035470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166120986103a482612065670de0b6b3a7640000866151fc565b60045470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1691908a6000612be0565b600480546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790556120d4866110da565b6120de90826153a7565b600380546fffffffffffffffffffffffffffffffff92831670010000000000000000000000000000000002921691909117905561211a846110da565b6001805460009061213e9084906fffffffffffffffffffffffffffffffff166152d2565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555061217d836137f0565b60038054600090612192908490600f0b615411565b92506101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff1602179055506121d4856110da565b6001805460109061220c90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166153a7565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050505050565b6000806122628461225c8a888a6129c2565b90612923565b905061226f8884866129c2565b6122799082615274565b9050868111156122895786810391505b509695505050505050565b60006dffffffffffffffffffffffffffff821115611126576040517f10d62a2e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546fffffffffffffffffffffffffffffffff168381108061232957507f00000000000000000000000000000000000000000000000000000000000000006123278583615287565b105b1561233657612336612b2e565b6003549084900390600f0b61234b8482615322565b90508361235786611b67565b13801561238c57507f000000000000000000000000000000000000000000000000000000000000000061238a83836138b2565b105b1561239957612399612b2e565b60025470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166123fa6103a4826123db670de0b6b3a7640000886151fc565b6004546fffffffffffffffffffffffffffffffff1691908c6000612be0565b600480547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790556124458882615287565b9050612450816110da565b600280546fffffffffffffffffffffffffffffffff92831670010000000000000000000000000000000002921691909117905561248c836110da565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790556124d6826137f0565b600380547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055612520876110da565b6001805460109061255890849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166152d2565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050505050505050565b60006125c16125a784836138d8565b6125b28460006138d8565b6125bc9190615322565b6137f0565b9050600081600f0b131561263157600280548291906000906125f69084906fffffffffffffffffffffffffffffffff166152d2565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050565b600081600f0b121561266a576126468161545f565b600280546000906125f69084906fffffffffffffffffffffffffffffffff166153a7565b505050565b60008060008061268661268186612d41565b612f03565b915091508061269c575060009485945092505050565b60008086116126ac5760006126b6565b6126b683876112ba565b600654600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e95460008080527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c54939450926fffffffffffffffffffffffffffffffff9092169161272a9190615274565b6127349190615287565b90508060000361274d5750600096879650945050505050565b60006127598383612923565b98600198509650505050505050565b6000806127ad73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163330886138ee565b61281a7f00000000000000000000000000000000000000000000000000000000000000006127dc876001615274565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016919061397d565b6040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018690523060248201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303816000875af11580156128b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128d491906153f8565b9660009650945050505050565b61266a73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163330866138ee565b60006100c783670de0b6b3a7640000846129c2565b6000816000036129515750670de0b6b3a76400006109c1565b82600003612961575060006109c1565b600061296c83611b67565b9050600061298161297c86611b67565b613a55565b9050818102612998670de0b6b3a76400008261549d565b90506129a381613cf6565b9695505050505050565b60006100c783670de0b6b3a764000084613f0f565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04841183021582026129f757600080fd5b5091020490565b6001546003546000916107ce916fffffffffffffffffffffffffffffffff90911690600f0b6138b2565b6000612a49878787612a4288670de0b6b3a7640000615287565b8787613f53565b979650505050505050565b60006111c082612a658588886129c2565b90612938565b60006100c4612ab2612a8584670de0b6b3a7640000615287565b612aac670de0b6b3a7640000612a9b818a6129ad565b612aa59190615287565b8790612f90565b90612f90565b612ac490670de0b6b3a7640000615274565b61225c84670de0b6b3a7640000615287565b600080612b2385612ae56129fe565b612aef9190615274565b6001546114bf90879070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16615287565b909210949350505050565b6040517fbb55fd2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080612baa85612aac85817f0000000000000000000000000000000000000000000000000000000000000000670de0b6b3a7640000612ba0818c6129ad565b612aac9190615287565b9150612bd6827f00000000000000000000000000000000000000000000000000000000000000006112ba565b9050935093915050565b600082600003612bf15750846111c0565b8115612c4457612c22612c048487615274565b612c0e85876112ba565b612c18888a6112ba565b61225c9190615274565b90506000612c308588614000565b905080821015612c3e578091505b506111c0565b828503612c53575060006111c0565b6129a3612c608487615287565b612c6a8587612f90565b612c74888a6112ba565b61225c9190615287565b6000612ca6600e6000612c9260028661176a565b815260200190815260200160002054611b67565b612cb8600e6000612c9260018761176a565b6109c19190615322565b6000612cee7f000000000000000000000000000000000000000000000000000000000000000083612f90565b600254612d0d91906fffffffffffffffffffffffffffffffff16615274565b600154612d2c906fffffffffffffffffffffffffffffffff16846112ba565b101592915050565b60006109c18260046107d3565b612da56040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60408051610180810182526001546fffffffffffffffffffffffffffffffff8082168352600354600f0b602084015270010000000000000000000000000000000091829004811693830193909352606082018590527f000000000000000000000000000000000000000000000000000000000000000060808301527f000000000000000000000000000000000000000000000000000000000000000060a08301527f000000000000000000000000000000000000000000000000000000000000000060c08301527f000000000000000000000000000000000000000000000000000000000000000060e08301526002540482166101008201526004549091610120830191612eb3911661400f565b81526003546fffffffffffffffffffffffffffffffff7001000000000000000000000000000000009182900481166020840152600454604090930192612efb9290041661400f565b905292915050565b6000806000806000612f1486614085565b9150915080612f2b57506000958695509350505050565b612f388660a00151611b67565b612f41876143a5565b83612f4f8960000151611b67565b612f5991906153d0565b612f6391906153d0565b612f6d9190615322565b925050506000811215612f865750600093849350915050565b9360019350915050565b60006100c78383670de0b6b3a7640000613f0f565b600080600083612fb486611b67565b612fbe9190615322565b90506000811215612fd65760008092509250506110d3565b946001945092505050565b60008060008460a0015112612ffe575050608082015160016110d3565b60008460a0015161300e9061529a565b9050600061304a85876101000151886000015160e00151670de0b6b3a76400006130389190615287565b89516060810151608090910151614409565b93509050821580613059575080155b1561306c576000809350935050506110d3565b600061307883836129ad565b9050670de0b6b3a764000081116130b45780670de0b6b3a76400000394506130ad8760c00151866112ba90919063ffffffff16565b94506130c3565b600080945094505050506110d3565b86608001518511156130e25786608001516001945094505050506110d3565b506001925050509250929050565b6000806131268460c001518560e00151866101000151876000015160a0015161311888611b67565b6131219061529a565b6136d8565b8751604081019290925260208201929092529190915290508061314d5760009150506109c1565b600061315c8560000151612f03565b9250905081613170576000925050506109c1565b84602001518110613186576000925050506109c1565b60008560600151866040015161319c9190615274565b90506131b7828760200151836129c29092919063ffffffff16565b6129a39082615287565b600080856060015186604001516131d89190615274565b602087015160608801519192506000916131f291846129c2565b90508660a001516000036132095791506136d09050565b6000808089600488101561321c57600497505b60005b8881101561357857613231868b614000565b9550600061325a8360c001518460e00151856101000151866000015160a001516131188c611b67565b86516040810192909252602082019290925291909152905080613288576000985050505050505050506136d0565b60006132978e60000151612f03565b92509050816132b257600099505050505050505050506136d0565b6132bd84828b6144b5565b156132d3578799505050505050505050506136d0565b60008460a00151131561343c57835180516020820151604083015160a084015160e0909401516000946133279493929161331590670de0b6b3a7640000615287565b8a516060810151608090910151614521565b93509050826133435760009a50505050505050505050506136d0565b808560a001511061343a5761335785614626565b9099509250826133745760009a50505050505050505050506136d0565b6133998560c001518660e00151876101000151886000015160a001516131188e611b67565b885160408101929092526020820192909252919091529250826133c95760009a50505050505050505050506136d0565b845180516020820151604083015160a084015160e0909401516133f9949061331590670de0b6b3a7640000615287565b93509050826134155760009a50505050505050505050506136d0565b8e60a00151811161343257889a50505050505050505050506136d0565b50505061321f565b505b600061344d858f8760a001516146fc565b935090508215806134665750670de0b6b3a76400008110155b1561347e5760009a50505050505050505050506136d0565b80670de0b6b3a764000003905060006134ab6119c287604001518860200151612f9090919063ffffffff16565b6134b86119c2858e6112ba565b6134c29190615322565b90508815806134e057506134d589614a57565b6134de82614a57565b125b156134ef578098508997508296505b6000811315613517576135068b61225c8385612923565b613510908b615274565b9950613569565b60008112156135605760006135318c61225c85818661529a565b90508a81101561354557808b039a5061355a565b60009c505050505050505050505050506136d0565b50613569565b50505050613578565b8460010194505050505061321f565b5060006135a08260c001518360e00151846101000151856000015160a001516131188b611b67565b855160408101929092526020820192909252919091529050806135cd5760009750505050505050506136d0565b60006135dc8360000151614a6f565b905060006135fe6119c285604001518660200151612f9090919063ffffffff16565b61360b6119c2848c6112ba565b6136159190615322565b905061362087614a57565b61362982614a57565b1215613636578795508194505b61365d613651655af3107a4000670de0b6b3a7640000615287565b6020860151908b613f0f565b604085015161366d908790612923565b10806136ad575061369b61368f655af3107a4000670de0b6b3a7640000615274565b6020860151908b6129c2565b60408501516136ab9087906129ad565b115b156136c457600099505050505050505050506136d0565b50939750505050505050505b949350505050565b600080600080846000036136f7575087925086915085905060016137e4565b6000856137038b611b67565b61370d91906153d0565b905061371887611b67565b811215613733576000806000809450945094509450506137e4565b809450600089126137535761374c6119c2868b8d6129c2565b9350613776565b61376a6119c26137628b61529a565b87908d613f0f565b6137739061529a565b93505b6000806137838c8c612fa5565b91509150806137a25760008060008096509650965096505050506137e4565b60006137ae8888612fa5565b92509050816137ce576000806000809750975097509750505050506137e4565b6137d98b82856129c2565b955060019450505050505b95509550955095915050565b60007fffffffffffffffffffffffffffffffff8000000000000000000000000000000082128061382f57506f7fffffffffffffffffffffffffffffff82135b15611126576040517fa5353be500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006f7fffffffffffffffffffffffffffffff821115611126576040517fa5353be500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806138bf8484612fa5565b9092509050806138d1576138d1612b2e565b5092915050565b60008183136138e757816100c7565b5090919050565b60405173ffffffffffffffffffffffffffffffffffffffff84811660248301528381166044830152606482018390526139779186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050614ab8565b50505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b300000000000000000000000000000000000000000000000000000000179052613a098482614b53565b6139775760405173ffffffffffffffffffffffffffffffffffffffff848116602483015260006044830152613a4b91869182169063095ea7b390606401613930565b6139778482614ab8565b6000808213613a90576040517fe61b497500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff10600390811b90911782811c600f1060021b1782811c909110600190811b90911782811c90911017609f8181036060019290921b917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0820190613b3a9084901c611b67565b6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b391909102017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c18213613d2757506000919050565b680755bf798b4a1bf1e58212613d69576040517f73a2d6b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b3988102909303927fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550484018402606090811d6d0277594991cfc85f6e2461837cd9018502811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018502811d6db1bbb201f443cf962f1a1d3db4a5018502811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018502811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765087018702831d9081019087017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e01810290921d6e0587f503bb6ea29d25fcb74019645001860279d835ebba824c98fb31b83b2ca45c0000000000000000000000000181810595509293509091906129a374029d9dc38563c32e5c2f6dc192ee70ef65f9978af3860260c38690031c611b67565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0484118302158202613f4457600080fd5b50910281810615159190040190565b600080613f638888878787614c10565b9050613f7d85612a65613f76898c615274565b86906112ba565b9750613f8a8489856129c2565b975087811015613f9c57613f9c612b2e565b878103670de0b6b3a76400008110613fca57613fc3611181670de0b6b3a7640000886129ad565b9050613fe2565b613fdf611181670de0b6b3a764000088612923565b90505b80881015613ff257613ff2612b2e565b909603979650505050505050565b600081831161196457826100c7565b600080670de0b6b3a76400006140236109c7565b61402d91906151fc565b905080831161403d576000614047565b6140478184615287565b915061196161407e670de0b6b3a76400007f00000000000000000000000000000000000000000000000000000000000000006151fc565b8390612923565b60008060006140aa6119c28561016001518661014001516112ba90919063ffffffff16565b6140ca6119c2866101200151876101000151612f9090919063ffffffff16565b6140d49190615322565b90506000806140eb86600001518760200151612fa5565b915091508061410257506000958695509350505050565b60008313156142435760008390506000614150886000015189602001518a604001518b60a001518c60e00151670de0b6b3a76400006141419190615287565b8d606001518e60800151614521565b9350905082614169575060009788975095505050505050565b8181106142075760006141a3858a60400151858c60e00151670de0b6b3a76400006141949190615287565b8d606001518e60800151614c3f565b94509050831580156141b857508860c0015183105b156141cf5750600098600198509650505050505050565b836141e557506000988998509650505050505050565b6141ee81611b67565b6141f79061529a565b9960019950975050505050505050565b600088602001511261422f576142268860a00151856119c29190615287565b6127599061529a565b60a08801518851614226916119c291615287565b60008312156143965760006142578461529a565b9050600061428b8489604001518a60e00151670de0b6b3a764000061427c9190615287565b8b606001518c60800151614409565b93509050826142a4575060009788975095505050505050565b8181106143295760006142de858a60400151858c60e00151670de0b6b3a76400006142cf9190615287565b8d606001518e60800151614d02565b94509050831580156142f357508860c0015183105b1561430a5750600098600198509650505050505050565b8361432057506000988998509650505050505050565b6141f781611b67565b600061435b858a604001518b60e00151670de0b6b3a764000061434c9190615287565b8c606001518d60800151614dd9565b945090508361437557506000988998509650505050505050565b6141f761438c8a60600151848661225c9190615287565b6119c29083615274565b50600095600195509350505050565b60006143d86119c2836101200151670de0b6b3a76400006143c69190615287565b60608501516101008601519190613f0f565b612cb86119c2846101600151670de0b6b3a76400006143f79190615287565b606086015161014087015191906129c2565b600080600061441b8888888888614c10565b90506000614446670de0b6b3a76400006144358888612923565b61443f9190615274565b83906129ad565b9050670de0b6b3a764000081106144735761446c611181670de0b6b3a7640000896129ad565b905061448b565b614488611181670de0b6b3a764000089612923565b90505b808810156144a1576000809350935050506144ab565b8703925060019150505b9550959350505050565b60208301516000906144c790846129ad565b60408501516144d7908490612923565b101580156100c4575060208401516145079084614500633b9aca00670de0b6b3a7640000615274565b91906129c2565b60408501516145179084906129ad565b1115949350505050565b6000806000881215614543576145368861529a565b6145409087615274565b95505b6000806145508b8b612fa5565b91509150806145675760008093509350505061461a565b6000614576838b8a8a8a614e88565b9050600061459361458b8a612a658a8e612f90565b899089613f0f565b9050808210156145ad57600080955095505050505061461a565b808203670de0b6b3a764000081106145db576145d4611181670de0b6b3a76400008c612923565b90506145f3565b6145f0611181670de0b6b3a76400008c6129ad565b90505b8b81101561460c5760008096509650505050505061461a565b8b9003955060019450505050505b97509795505050505050565b60008060008360e001511361464057506000928392509050565b600061464f84600001516143a5565b9050600061467b85604001518660600151876040015161466f9190615274565b60208801519190613f0f565b9050600082126146a25780821015614695578190036146b8565b5060009485945092505050565b6146ab8261529a565b6146b59082615274565b90505b60e085015160c08601516146cd918390613f0f565b9050808560c0015110156146e8575060009485945092505050565b808560c00151036001935093505050915091565b600080600080841261472057855160400151614719908590615274565b905061475b565b600061472b8561529a565b87516040015190915081101561474b578651604001518190039150614759565b600080935093505050611a6f565b505b8551805160209091015160009182916147749190612fa5565b915091508061478c5760008094509450505050611a6f565b875160e08101516040909101516000916147c1916147b5916147ae9190612938565b8a906112ba565b6101008b0151906129ad565b895160e08101516080909101516147ec916147e091612a6590886112ba565b8b5160600151906129ad565b6147f69190615274565b9050600061482e61482261481b8c6000015160e001518861293890919063ffffffff16565b8b90612f90565b6101008c015190612923565b90508082101561484957600080965096505050505050611a6f565b8082039150600061488b858c60000151604001518d6000015160e00151670de0b6b3a76400006148799190615287565b8e516060810151608090910151614c10565b905060006148b58c6000015160e00151670de0b6b3a76400006148ae9190615287565b8890612938565b9050808210156148d2576000809850985050505050505050611a6f565b8b516080810151606090910151918303916148ee918391613f0f565b9050670de0b6b3a76400008110614932578b5160e0015161492b906111819061491f90670de0b6b3a7640000615287565b8e5160e00151906129ad565b9050614961565b8b5160e0015161495e906111819061495290670de0b6b3a7640000615287565b8e5160e0015190612923565b90505b8b51606001516149749085908390613f0f565b935083670de0b6b3a764000011156149985783670de0b6b3a76400000393506149ac565b600060019850985050505050505050611a6f565b60008c60e0015112614a0f5760c08c015160e08d01516149cb916129ad565b9250670de0b6b3a76400008311156149f0576000809850985050505050505050611a6f565b670de0b6b3a76400009290920391614a0884846112ba565b9350614a44565b614a41614a288d60c001518e60e0015161225c9061529a565b614a3a90670de0b6b3a7640000615274565b85906112ba565b93505b50919a60019a5098505050505050505050565b6000808212614a6657816109c1565b6109c18261529a565b6000806000614a7d84612f03565b91509150806138d1576040517faa2c651600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000614ada73ffffffffffffffffffffffffffffffffffffffff841683614ead565b90508051600014158015614aff575080806020019051810190614afd9190615505565b155b1561266a576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1684604051614b7d9190615522565b6000604051808303816000865af19150503d8060008114614bba576040519150601f19603f3d011682016040523d82523d6000602084013e614bbf565b606091505b5091509150818015614be9575080511580614be9575080806020019051810190614be99190615505565b80156111c057505050505073ffffffffffffffffffffffffffffffffffffffff163b151590565b6000614c1c8585612938565b614c35614c2d86612a65868b612f90565b859085613f0f565b6129a39190615274565b6000806000614c518989888888614c10565b9050614c6186612a65898b615274565b975087811015614c78576000809250925050614cf7565b878103614c86818688613f0f565b9050670de0b6b3a76400008110614cb357614cac611181670de0b6b3a7640000896129ad565b9050614ccb565b614cc8611181670de0b6b3a764000089612923565b90505b614cd581866129ad565b9050808a1015614ced57600080935093505050614cf7565b8903925060019150505b965096945050505050565b6000806000614d148989888888614c10565b905086881015614d2b576000809250925050614cf7565b9686900396614d3a8887612938565b975087811015614d51576000809250925050614cf7565b878103614d5f818688613f0f565b9050670de0b6b3a76400008110614d8c57614d85611181670de0b6b3a7640000896129ad565b9050614da4565b614da1611181670de0b6b3a764000089612923565b90505b614dae81866129ad565b905089811015614dc657600080935093505050614cf7565b9890980398600198509650505050505050565b6000806000614deb8888888888614e88565b90506000614e0f670de0b6b3a7640000614e0588886129ad565b61407e9190615274565b9050670de0b6b3a76400008110614e3c57614e35611181670de0b6b3a764000089612923565b9050614e54565b614e51611181670de0b6b3a7640000896129ad565b90505b614e5e8186612923565b905088811015614e76576000809350935050506144ab565b97909703976001975095505050505050565b6000614e948585612938565b614c35614ea586612a65868b6112ba565b8590856129c2565b60606100c783836000846000808573ffffffffffffffffffffffffffffffffffffffff168486604051614ee09190615522565b60006040518083038185875af1925050503d8060008114614f1d576040519150601f19603f3d011682016040523d82523d6000602084013e614f22565b606091505b50915091506129a3868383606082614f4257614f3d82614fbc565b6100c7565b8151158015614f66575073ffffffffffffffffffffffffffffffffffffffff84163b155b15614fb5576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401614b4a565b50806100c7565b805115614fcc5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405180610120016040528061506e6040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600080604083850312156150bf57600080fd5b50508035926020909101359150565b60006060828403121561196457600080fd5b6000806000606084860312156150f557600080fd5b8335925060208401359150604084013567ffffffffffffffff81111561511a57600080fd5b615126868287016150ce565b9150509250925092565b6000806000806080858703121561514657600080fd5b843593506020850135925060408501359150606085013567ffffffffffffffff81111561517257600080fd5b61517e878288016150ce565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826151c8576151c861518a565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820281158282048414176109c1576109c16151cd565b60006020828403121561522557600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146100c757600080fd5b8015158114610fe557600080fd5b60006020828403121561526957600080fd5b81356100c781615249565b808201808211156109c1576109c16151cd565b818103818111156109c1576109c16151cd565b60007f800000000000000000000000000000000000000000000000000000000000000082036152cb576152cb6151cd565b5060000390565b6fffffffffffffffffffffffffffffffff8181168382160190808211156138d1576138d16151cd565b6dffffffffffffffffffffffffffff8181168382160190808211156138d1576138d16151cd565b81810360008312801583831316838312821617156138d1576138d16151cd565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261537757600080fd5b83018035915067ffffffffffffffff82111561539257600080fd5b6020019150368190038213156110d357600080fd5b6fffffffffffffffffffffffffffffffff8281168282160390808211156138d1576138d16151cd565b80820182811260008312801582168215821617156153f0576153f06151cd565b505092915050565b60006020828403121561540a57600080fd5b5051919050565b600f81810b9083900b016f7fffffffffffffffffffffffffffffff81137fffffffffffffffffffffffffffffffff80000000000000000000000000000000821217156109c1576109c16151cd565b600081600f0b7fffffffffffffffffffffffffffffffff800000000000000000000000000000008103615494576154946151cd565b60000392915050565b6000826154ac576154ac61518a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615615500576155006151cd565b500590565b60006020828403121561551757600080fd5b81516100c781615249565b6000825160005b818110156155435760208186018101518583015201615529565b50600092019182525091905056fea2646970667358221220e9d613f6649ff69475949143503c97fa3a93fbb53d047109a4a9c43ff28e442e64736f6c63430008140033" -} \ No newline at end of file diff --git a/deployments/sepolia/TEST_ERC4626_ERC4626Target4.json b/deployments/sepolia/TEST_ERC4626_ERC4626Target4.json deleted file mode 100644 index e2990e454..000000000 --- a/deployments/sepolia/TEST_ERC4626_ERC4626Target4.json +++ /dev/null @@ -1,1033 +0,0 @@ -{ - "address": "0x66E62Bf93f70a0E2bf9ed165995171e1c40a0168", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "AddressInsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "DecreasedPresentValueWhenAddingLiquidity", - "type": "error" - }, - { - "inputs": [], - "name": "DistributeExcessIdleFailed", - "type": "error" - }, - { - "inputs": [], - "name": "ExpInvalidExponent", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientLiquidity", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidApr", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidPresentValue", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidTimestamp", - "type": "error" - }, - { - "inputs": [], - "name": "LnInvalidInput", - "type": "error" - }, - { - "inputs": [], - "name": "MinimumSharePrice", - "type": "error" - }, - { - "inputs": [], - "name": "MinimumTransactionAmount", - "type": "error" - }, - { - "inputs": [], - "name": "NotPayable", - "type": "error" - }, - { - "inputs": [], - "name": "OutputLimit", - "type": "error" - }, - { - "inputs": [], - "name": "PoolIsPaused", - "type": "error" - }, - { - "inputs": [], - "name": "ReentrancyGuardReentrantCall", - "type": "error" - }, - { - "inputs": [], - "name": "RestrictedZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "SafeERC20FailedOperation", - "type": "error" - }, - { - "inputs": [], - "name": "TransferFailed", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt128", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt256", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToUint112", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToUint128", - "type": "error" - }, - { - "inputs": [], - "name": "UpdateLiquidityFailed", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "AddLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "basePayment", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fees", - "type": "uint256" - } - ], - "name": "CollectGovernanceFee", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "checkpointTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "checkpointVaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedShorts", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedLongs", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "CreateCheckpoint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newFeeCollector", - "type": "address" - } - ], - "name": "FeeCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGovernance", - "type": "address" - } - ], - "name": "GovernanceUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "apr", - "type": "uint256" - } - ], - "name": "Initialize", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseProceeds", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isPaused", - "type": "bool" - } - ], - "name": "PauseStatusUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newPauser", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "status", - "type": "bool" - } - ], - "name": "PauserUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - } - ], - "name": "RedeemWithdrawalShares", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "RemoveLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "Sweep", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newSweepCollector", - "type": "address" - } - ], - "name": "SweepCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_contribution", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minLpSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minApr", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_maxApr", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "addLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_bondAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_maxDeposit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minVaultSharePrice", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "openShort", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - } - ], - "args": [ - { - "minimumShareReserves": "1000000000000000", - "minimumTransactionAmount": "1000000000000000", - "positionDuration": "2592000", - "checkpointDuration": "86400", - "timeStretch": "0", - "governance": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "feeCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "sweepCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "fees": { - "curve": "1000000000000000", - "flat": "8333333333333", - "governanceLP": "150000000000000000", - "governanceZombie": "30000000000000000" - }, - "baseToken": "0x96bf962d3c02134fc7aa9441ea38715a261da60b", - "vaultSharesToken": "0xa6f5ad0ef6f4db6e9fa2e13318d218665c72a3ba", - "linkerFactory": "0xE84d966f6f87C7957719ad4BeC7E3bB35a46E8B2", - "linkerCodeHash": "0x9a69ff3b9a110deacb7d941d71222642f269891c0da9fcc15ec7c63fbd216b3f", - "initialVaultSharePrice": "0" - } - ], - "numDeployments": 1, - "bytecode": "0x6102406040523480156200001257600080fd5b5060405162005a6f38038062005a6f8339810160408190526200003591620001e1565b600160005580516001600160a01b039081166080908152602080840151831660a0908152918401516101a0908152918401516101c05260c0808501516101e0526101008086015190915260e0808601519052610120808601519091529184018051519092528151015161014090815281516040908101516101609081529251606090810151610180908152918601518516610200528501516102205290840151600a80546001600160a01b03199081169286169290921790559184015160088054841691851691909117905590920151600980549093169116179055620002d4565b6040516101c081016001600160401b03811182821017156200014957634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b03811681146200016757600080fd5b919050565b6000608082840312156200017f57600080fd5b604051608081016001600160401b0381118282101715620001b057634e487b7160e01b600052604160045260246000fd5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b60006102208284031215620001f557600080fd5b620001ff62000117565b6200020a836200014f565b81526200021a602084016200014f565b60208201526200022d604084016200014f565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101406200028c8185016200014f565b90820152610160620002a08482016200014f565b90820152610180620002b48482016200014f565b908201526101a0620002c9858583016200016c565b908201529392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051610200516102205161562762000448600039600050506000505060008181610113015281816103eb0152818161060901526111560152600081816111300152818161166e01528181612201015281816122640152818161299f01528181612e23015281816131b701526131fc0152600081816101a30152818161110a015281816114c9015261154301526000611d4d015260008181611ea001528181612c4a0152612cc3015260008181610d30015281816115dd01528181611e740152612c9701526000612c160152600081816101e50152818161117c015281816114a701526115640152600081816101c4015281816106d101528181610c6201526128a4015260008181610acc01528181610b6b0152610bd9015260008181611a8201528181611b2201528181611bce0152612b09015260008181611a550152611ac301526156276000f3fe6080604052600436106100295760003560e01c80634c2ac1d91461002e578063dbbe807014610054575b600080fd5b61004161003c36600461516c565b61007c565b6040519081526020015b60405180910390f35b6100676100623660046151d0565b610097565b6040805192835260208301919091520161004b565b600061008b86868686866100b4565b90505b95945050505050565b6000806100a6868686866105a9565b915091505b94509492505050565b60006100be610882565b600554610100900460ff1615610100576040517f21081abf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101086108c5565b610111826108ff565b7f000000000000000000000000000000000000000000000000000000000000000086101561016b576040517f423bbb4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061020961017861095e565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061098d565b90508481108061021857508381115b1561024f576040517f76c22a2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008061025c89866109d3565b9150915061027361026b610ac5565b826004610afb565b506006547f03000000000000000000000000000000000000000000000000000000000000006000908152600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e95490916102e4916fffffffffffffffffffffffffffffffff90911690615259565b6000808052600e6020527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c549192509061031f90839061526c565b9050600080600061032f8661104f565b905061033a81611211565b915061034d61034888611261565b6112c1565b6001546fffffffffffffffffffffffffffffffff8082168352600354600f0b602084015270010000000000000000000000000000000090910416604082015261039581611211565b9250818310156103d1576040517f309b2a4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103e784836103e08187615259565b9190611300565b98507f0000000000000000000000000000000000000000000000000000000000000000891015610443576040517f423bbb4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b508b61044f8e8a61133c565b1015610487576040517fc972651700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61049f600061049960208c018c61527f565b8a61135a565b60006104aa8661141c565b9050806104e3576040517f8bdf918d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600084156104fa576104f5838661133c565b6104fd565b60005b90508e600061050d828a8f611429565b90508c61051d602082018261527f565b73ffffffffffffffffffffffffffffffffffffffff167fa59daf574c5c8db34377de83bceea2aa1433cc506d656f5e8f46e5f4b5c58a868e848e61056760408701602088016152c3565b60408051948552602085019390935291830152151560608201526080810187905260a00160405180910390a250505050505050505050505061008e6001600055565b6000806105b4610882565b600554610100900460ff16156105f6576040517f21081abf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105fe6108c5565b610607836108ff565b7f0000000000000000000000000000000000000000000000000000000000000000861015610661576040517f423bbb4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061066b611458565b9050848110156106a7576040517f42af972b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006106b1610ac5565b905060006106c86106c0610ac5565b846004610afb565b905060006106f67f00000000000000000000000000000000000000000000000000000000000000008461526c565b905060008060006107088d888761146b565b92509250925080600b6000828254610720919061526c565b909155506000905061073384898d611617565b9050808d101561076f576040517fc972651700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610779818c6109d3565b50506107878e848a8861163f565b600061079460028761191b565b905060008f90506107b8828e60000160208101906107b2919061527f565b8361135a565b848a8e846107c9602083018361527f565b73ffffffffffffffffffffffffffffffffffffffff167fb354b32bd86ebd9f0968a338e5c2873d7f0d473aa7a668c2488e66038380258b8c8c61080d8b8888611981565b61081d60408801602089016152c3565b610833898f8c61082d9190615259565b906119a9565b6040805195865260208601949094529284019190915215156060830152608082015260a0810188905260c00160405180910390a350979c50929a50505050505050505050506100ab6001600055565b6002600054036108be576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b34156108fd576040517f1574f9f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600061090e602083018361527f565b73ffffffffffffffffffffffffffffffffffffffff160361095b576040517ff0dd15fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b600154600354600091610988916fffffffffffffffffffffffffffffffff90911690600f0b6119be565b905090565b60008061099c878787866119dd565b90506109c86109b082866301e133806119f4565b6109c283670de0b6b3a7640000615259565b9061133c565b979650505050505050565b600080806109e760408501602086016152c3565b15610a0c57610a02856109fd60408701876152e0565b611a38565b9093509050610a28565b5034610a2485610a1f60408701876152e0565b611bb4565b8492505b610a30611458565b91508015610abc57604051600090339083908381818185875af1925050503d8060008114610a7a576040519150601f19603f3d011682016040523d82523d6000602084013e610a7f565b606091505b5050905080610aba576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b505b9250929050565b6000610af17f000000000000000000000000000000000000000000000000000000000000000042615374565b6109889042615259565b600083815260076020526040812080546fffffffffffffffffffffffffffffffff16151580610b2957504285115b15610b4857546fffffffffffffffffffffffffffffffff169050611048565b600080610b53610ac5565b9050808703610b6457859150610c07565b6000610b907f00000000000000000000000000000000000000000000000000000000000000008961526c565b90505b6000818152600760205260409020546fffffffffffffffffffffffffffffffff1692508181148015610bc3575082155b15610bcc578692505b82600003610c0557610bfe7f00000000000000000000000000000000000000000000000000000000000000008261526c565b9050610b93565b505b610c1082611bfb565b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff91909116178355610c5586611c47565b5060009050600781610c877f00000000000000000000000000000000000000000000000000000000000000008b615259565b815260208101919091526040016000908120546fffffffffffffffffffffffffffffffff169150610cb960028a61191b565b6000818152600e60205260408120549192508a8a8315610e3c5760019250600080610ce886898c866000611e5d565b9150915080600b6000828254610cfe919061526c565b90915550610d1a905086600084610d1481611261565b88611f2c565b610d24818361526c565b9150610d5486838a8d877f0000000000000000000000000000000000000000000000000000000000000000612153565b9150610d68610d6383856119a9565b612197565b60058054600290610d909084906201000090046dffffffffffffffffffffffffffff16615388565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550610dcb82611bfb565b60058054601090610e0390849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166153af565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505b6000610e4960018461191b565b6000818152600e60205260409020549091508015610f955760019450600080610e76838b8e886001611e5d565b9150915080600b6000828254610e8c919061526c565b90915550610ea8905083600084610ea281611261565b8a6121e1565b610eb28183615259565b9150610ec1610d6383876119a9565b60058054600290610ee99084906201000090046dffffffffffffffffffffffffffff16615388565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550610f2482611bfb565b60058054601090610f5c90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166153af565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505b8415610fcd57610fc1610fa787611261565b610fb083611261565b610fba91906153d8565b600061249b565b610fcb8e8e61256d565b505b6000610fd88f612760565b5090508f7fff888cf98d2696e95c8c39aa98c9ad55a5378008f7a56614c9353b7137a57ab78c868a8686604051611031959493929190948552602085019390935260408401919091526060830152608082015260a00190565b60405180910390a250989a50505050505050505050505b9392505050565b6110b36040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60408051610180810182526001546fffffffffffffffffffffffffffffffff8082168352600354600f0b602084015270010000000000000000000000000000000091829004811693830193909352606082018590527f000000000000000000000000000000000000000000000000000000000000000060808301527f000000000000000000000000000000000000000000000000000000000000000060a08301527f000000000000000000000000000000000000000000000000000000000000000060c08301527f000000000000000000000000000000000000000000000000000000000000000060e083015260025404821661010082015260045490916101208301916111c19116612859565b81526003546fffffffffffffffffffffffffffffffff700100000000000000000000000000000000918290048116602084015260045460409093019261120992900416612859565b905292915050565b600080600061121f846128cf565b915091508061125a576040517faa2c651600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5092915050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8211156112bd576040517f72dd4e0200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5090565b6112ca8161295c565b61095b576040517f5044b7f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048411830215820261133557600080fd5b5091020490565b600061135183670de0b6b3a764000084611300565b90505b92915050565b6000838152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091528120805483929061139990849061526c565b90915550506000838152600e6020526040812080548392906113bc90849061526c565b9091555050604080518481526020810183905273ffffffffffffffffffffffffffffffffffffffff84169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4505050565b600061135482600461256d565b600061143b60408301602084016152c3565b15611447575082611048565b61145184846119a9565b9050611048565b6000610988670de0b6b3a7640000612ad7565b60008060006114ed61147b61095e565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16887f0000000000000000000000000000000000000000000000000000000000000000897f0000000000000000000000000000000000000000000000000000000000000000612b89565b9150856114fa8387612baa565b111561150857611508612bbf565b600080600061158861151861095e565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006119dd565b905061159e89670de0b6b3a7640000838b612bf1565b509194509092506115b190508284615259565b6115bb9086615259565b9450611607886116018b6115cf868a615259565b8b6115da8e82612cff565b8e7f0000000000000000000000000000000000000000000000000000000000000000612d15565b90612baa565b9550909250505093509350939050565b600061162960408301602084016152c3565b15611635575082611048565b611451848461133c565b6001546fffffffffffffffffffffffffffffffff168381101561166457611664612bbf565b60035490849003907f00000000000000000000000000000000000000000000000000000000000000009061169c908390600f0b6119be565b10156116aa576116aa612bbf565b600354611725906117209070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166116ed670de0b6b3a7640000866153f8565b60045470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff169190896001612d3a565b611bfb565b600480546fffffffffffffffffffffffffffffffff92831670010000000000000000000000000000000002921691909117905561176181611bfb565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790556117ab85611bfb565b600180546010906117e390849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166153af565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555061182285611bfb565b6003805460109061185a90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166153af565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550600061189b83612dd8565b90506118b9816118aa88611261565b6118b490846153d8565b61249b565b6118c284612e1c565b6118ce576118ce612bbf565b60006118d98561141c565b905080611912576040517f8bdf918d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505050565b60007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115611976576040517fb7d0949700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060f89190911b1790565b600061199360408301602084016152c3565b156119a257611451848461133c565b5082611048565b60006113518383670de0b6b3a7640000611300565b6000806119cb8484612e8e565b90925090508061125a5761125a612bbf565b600061008e826119ee858888611300565b90612eca565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0484118302158202611a2957600080fd5b50910281810615159190040190565b600080611a7d73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333088612f3f565b611aea7f0000000000000000000000000000000000000000000000000000000000000000611aac87600161526c565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169190612fce565b6040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018690523060248201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303816000875af1158015611b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba4919061540f565b925060009150505b935093915050565b611bf673ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333086612f3f565b505050565b60006fffffffffffffffffffffffffffffffff8211156112bd576040517f1e15f2a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005546000908190611c8090849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166119a9565b6005546201000090046dffffffffffffffffffffffffffff169250905081811115611e58576000611cb18383615259565b9050611cc061172082866130a6565b60058054601090611cf890849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16615428565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506000611d43858361133c90919063ffffffff16565b90506000611d71827f00000000000000000000000000000000000000000000000000000000000000006119a9565b905080600b6000828254611d85919061526c565b90915550611d9590508183615259565b9150611da082611bfb565b60018054600090611dc49084906fffffffffffffffffffffffffffffffff166153af565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550611e03826130bb565b60038054600090611e18908490600f0b615451565b92506101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff1602179055508493505050505b915091565b600080611e6a878561133c565b91506000611e98837f00000000000000000000000000000000000000000000000000000000000000006119a9565b9050611ec4817f00000000000000000000000000000000000000000000000000000000000000006119a9565b91508315611ee757611ed68282615259565b611ee09084615259565b9250611efe565b611ef18282615259565b611efb908461526c565b92505b86861015611f2157611f11838789611300565b9250611f1e828789611300565b91505b509550959350505050565b60035470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16611fa161172082611f6e670de0b6b3a7640000866153f8565b60045470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1691908a6000612d3a565b600480546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055611fdd86611bfb565b611fe79082615428565b600380546fffffffffffffffffffffffffffffffff92831670010000000000000000000000000000000002921691909117905561202384611bfb565b600180546000906120479084906fffffffffffffffffffffffffffffffff166153af565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555061208683613107565b6003805460009061209b908490600f0b615451565b92506101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff1602179055506120dd85611bfb565b6001805460109061211590849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16615428565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050505050565b600080612165846109c28a888a611300565b9050612172888486611300565b61217c908261526c565b90508681111561218c5786810391505b509695505050505050565b60006dffffffffffffffffffffffffffff8211156112bd576040517f10d62a2e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546fffffffffffffffffffffffffffffffff168381108061222c57507f000000000000000000000000000000000000000000000000000000000000000061222a8583615259565b105b1561223957612239612bbf565b6003549084900390600f0b61224e84826153d8565b90508361225a86611261565b13801561228f57507f000000000000000000000000000000000000000000000000000000000000000061228d83836119be565b105b1561229c5761229c612bbf565b60025470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166122fd611720826122de670de0b6b3a7640000886153f8565b6004546fffffffffffffffffffffffffffffffff1691908c6000612d3a565b600480547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790556123488882615259565b905061235381611bfb565b600280546fffffffffffffffffffffffffffffffff92831670010000000000000000000000000000000002921691909117905561238f83611bfb565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790556123d982613107565b600380547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905561242387611bfb565b6001805460109061245b90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166153af565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050505050505050565b60006124c46124aa848361317d565b6124b584600061317d565b6124bf91906153d8565b613107565b9050600081600f0b131561253457600280548291906000906124f99084906fffffffffffffffffffffffffffffffff166153af565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050565b600081600f0b1215611bf6576125498161549f565b600280546000906124f99084906fffffffffffffffffffffffffffffffff16615428565b6006547f03000000000000000000000000000000000000000000000000000000000000006000908152600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e954909182916125dd916fffffffffffffffffffffffffffffffff1690615259565b9050806000036125f1576001915050611354565b60006125fc8561318c565b90508060000361261157600192505050611354565b60008061261f838589613249565b9150915080612635576000945050505050611354565b600080612642848961334f565b9150915061266061265282611261565b61265b906154dd565b61295c565b9250826126765760009650505050505050611354565b61267f82611bfb565b600680546000906126a39084906fffffffffffffffffffffffffffffffff166153af565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506126e281611bfb565b6006805460109061271a90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166153af565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506001965050505050505092915050565b6000806000806127776127728661104f565b6128cf565b915091508061278d575060009485945092505050565b600080861161279d5760006127a7565b6127a783876119a9565b600654600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e95460008080527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c54939450926fffffffffffffffffffffffffffffffff9092169161281b919061526c565b6128259190615259565b90508060000361283e5750600096879650945050505050565b600061284a838361133c565b98600198509650505050505050565b600080670de0b6b3a764000061286d610ac5565b61287791906153f8565b9050808311612887576000612891565b6128918184615259565b91506110486128c8670de0b6b3a76400007f00000000000000000000000000000000000000000000000000000000000000006153f8565b839061133c565b60008060008060006128e08661343f565b91509150806128f757506000958695509350505050565b6129048660a00151611261565b61290d8761375f565b8361291b8960000151611261565b6129259190615515565b61292f9190615515565b61293991906153d8565b9250505060008112156129525750600093849350915050565b9360019350915050565b6001546003546000916fffffffffffffffffffffffffffffffff80821692600f0b91700100000000000000000000000000000000900416838080806129c48787877f00000000000000000000000000000000000000000000000000000000000000008d6137c3565b9350935093509350806129e05750600098975050505050505050565b868414612a32576129f084611bfb565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b858314612a8457612a4283613107565b600380547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b848214612ac857612a9482611bfb565b600180546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790555b50600198975050505050505050565b6040517f07a2d13a000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906307a2d13a90602401602060405180830381865afa158015612b65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611354919061540f565b60006109c8878787612ba388670de0b6b3a7640000615259565b87876138db565b60006113518383670de0b6b3a76400006119f4565b6040517fbb55fd2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808080612c428786612c3b8b611601612c148c670de0b6b3a7640000615259565b7f000000000000000000000000000000000000000000000000000000000000000090612baa565b91906119f4565b9350612c6e847f00000000000000000000000000000000000000000000000000000000000000006119a9565b91506000612c8f612c8789670de0b6b3a7640000615259565b8a90886119f4565b9050612cbb817f0000000000000000000000000000000000000000000000000000000000000000612baa565b9350612ce7847f00000000000000000000000000000000000000000000000000000000000000006119a9565b612cf1908461526c565b915050945094509450949050565b6000818311612d0e5781611351565b5090919050565b600080612d2d84612d278a888a6119f4565b906130a6565b90506121728884866119f4565b600082600003612d4b57508461008e565b8115612d9e57612d7c612d5e848761526c565b612d6885876119a9565b612d72888a6119a9565b6109c2919061526c565b90506000612d8a85886138fe565b905080821015612d98578091505b5061008e565b828503612dad5750600061008e565b61008b612dba8487615259565b612dc48587612baa565b612dce888a6119a9565b6109c29190615259565b6000612e00600e6000612dec60028661191b565b815260200190815260200160002054611261565b612e12600e6000612dec60018761191b565b61135491906153d8565b6000612e487f000000000000000000000000000000000000000000000000000000000000000083612baa565b600254612e6791906fffffffffffffffffffffffffffffffff1661526c565b600154612e86906fffffffffffffffffffffffffffffffff16846119a9565b101592915050565b600080600083612e9d86611261565b612ea791906153d8565b90506000811215612ebf576000809250925050610abe565b946001945092505050565b600081600003612ee35750670de0b6b3a7640000611354565b82600003612ef357506000611354565b6000612efe83611261565b90506000612f13612f0e86611261565b61390d565b9050818102612f2a670de0b6b3a76400008261553d565b9050612f3581613bae565b9695505050505050565b60405173ffffffffffffffffffffffffffffffffffffffff8481166024830152838116604483015260648201839052612fc89186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613dc7565b50505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b30000000000000000000000000000000000000000000000000000000017905261305a8482613e62565b612fc85760405173ffffffffffffffffffffffffffffffffffffffff84811660248301526000604483015261309c91869182169063095ea7b390606401612f81565b612fc88482613dc7565b600061135183670de0b6b3a7640000846119f4565b60006f7fffffffffffffffffffffffffffffff8211156112bd576040517fa5353be500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007fffffffffffffffffffffffffffffffff8000000000000000000000000000000082128061314657506f7fffffffffffffffffffffffffffffff82135b156112bd576040517fa5353be500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000818313612d0e5781611351565b60025460009081906131b0906fffffffffffffffffffffffffffffffff16846130a6565b90506131dc7f00000000000000000000000000000000000000000000000000000000000000008261526c565b6001546fffffffffffffffffffffffffffffffff161115613243576001547f0000000000000000000000000000000000000000000000000000000000000000906132399083906fffffffffffffffffffffffffffffffff16615259565b6110489190615259565b50919050565b6132516150ac565b60008061325d8461104f565b9050600061326a826128cf565b935090508261327f575060009150611bac9050565b60006132a66132a18461016001518561014001516119a990919063ffffffff16565b611261565b6132c66132a1856101200151866101000151612baa90919063ffffffff16565b6132d091906153d8565b604080516101208101825285815260208082019590955260008052600e85527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c54818301526060810199909952608089019990995260a088015250815160c087015281015160e086015290940151610100840152509092600192509050565b6000806000806133678660c001518760e00151612e8e565b915091508061337e57600080935093505050610abe565b600061338a8784613f1f565b92509050811580613399575080155b156133ad5760008094509450505050610abe565b60006133b9888361402e565b9050806000036133d3576000809550955050505050610abe565b876060015181116133ea5794509250610abe915050565b50606087015160006133fe8986858b6140ff565b90508060000361341957600080965096505050505050610abe565b82811061343157600080965096505050505050610abe565b909890975095505050505050565b60008060006134646132a18561016001518661014001516119a990919063ffffffff16565b6134846132a1866101200151876101000151612baa90919063ffffffff16565b61348e91906153d8565b90506000806134a586600001518760200151612e8e565b91509150806134bc57506000958695509350505050565b60008313156135fd576000839050600061350a886000015189602001518a604001518b60a001518c60e00151670de0b6b3a76400006134fb9190615259565b8d606001518e60800151614616565b9350905082613523575060009788975095505050505050565b8181106135c157600061355d858a60400151858c60e00151670de0b6b3a764000061354e9190615259565b8d606001518e60800151614722565b945090508315801561357257508860c0015183105b156135895750600098600198509650505050505050565b8361359f57506000988998509650505050505050565b6135a881611261565b6135b1906154dd565b9960019950975050505050505050565b60008860200151126135e9576135e08860a00151856132a19190615259565b61284a906154dd565b60a088015188516135e0916132a191615259565b6000831215613750576000613611846154dd565b905060006136458489604001518a60e00151670de0b6b3a76400006136369190615259565b8b606001518c608001516147e5565b935090508261365e575060009788975095505050505050565b8181106136e3576000613698858a60400151858c60e00151670de0b6b3a76400006136899190615259565b8d606001518e60800151614891565b94509050831580156136ad57508860c0015183105b156136c45750600098600198509650505050505050565b836136da57506000988998509650505050505050565b6135b181611261565b6000613715858a604001518b60e00151670de0b6b3a76400006137069190615259565b8c606001518d60800151614968565b945090508361372f57506000988998509650505050505050565b6135b16137468a6060015184866109c29190615259565b6132a1908361526c565b50600095600195509350505050565b60006137926132a1836101200151670de0b6b3a76400006137809190615259565b606085015161010086015191906119f4565b612e126132a1846101600151670de0b6b3a76400006137b19190615259565b60608601516101408701519190611300565b600080600080846000036137e2575087925086915085905060016138cf565b6000856137ee8b611261565b6137f89190615515565b905061380387611261565b81121561381e576000806000809450945094509450506138cf565b8094506000891261383e576138376132a1868b8d611300565b9350613861565b6138556132a161384d8b6154dd565b87908d6119f4565b61385e906154dd565b93505b60008061386e8c8c612e8e565b915091508061388d5760008060008096509650965096505050506138cf565b60006138998888612e8e565b92509050816138b9576000806000809750975097509750505050506138cf565b6138c48b8285611300565b955060019450505050505b95509550955095915050565b6000806138ec888888888888614722565b90925090508061218c5761218c612bbf565b60008183116132435782611351565b6000808213613948576040517fe61b497500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff10600390811b90911782811c600f1060021b1782811c909110600190811b90911782811c90911017609f8181036060019290921b917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08201906139f29084901c611261565b6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b391909102017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c18213613bdf57506000919050565b680755bf798b4a1bf1e58212613c21576040517f73a2d6b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b3988102909303927fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550484018402606090811d6d0277594991cfc85f6e2461837cd9018502811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018502811d6db1bbb201f443cf962f1a1d3db4a5018502811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018502811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765087018702831d9081019087017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e01810290921d6e0587f503bb6ea29d25fcb74019645001860279d835ebba824c98fb31b83b2ca45c000000000000000000000000018181059550929350909190612f3574029d9dc38563c32e5c2f6dc192ee70ef65f9978af3860260c38690031c611261565b6000613de973ffffffffffffffffffffffffffffffffffffffff841683614a17565b90508051600014158015613e0e575080806020019051810190613e0c91906155a5565b155b15611bf6576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1684604051613e8c91906155c2565b6000604051808303816000865af19150503d8060008114613ec9576040519150601f19603f3d011682016040523d82523d6000602084013e613ece565b606091505b5091509150818015613ef8575080511580613ef8575080806020019051810190613ef891906155a5565b801561008e57505050505073ffffffffffffffffffffffffffffffffffffffff163b151590565b60008060008460a0015112613f3c57505060808201516001610abe565b60008460a00151613f4c906154dd565b90506000613f8885876101000151886000015160e00151670de0b6b3a7640000613f769190615259565b895160608101516080909101516147e5565b93509050821580613f97575080155b15613faa57600080935093505050610abe565b6000613fb683836130a6565b9050670de0b6b3a76400008111613ff25780670de0b6b3a7640000039450613feb8760c00151866119a990919063ffffffff16565b9450614001565b60008094509450505050610abe565b8660800151851115614020578660800151600194509450505050610abe565b506001925050509250929050565b6000806140648460c001518560e00151866101000151876000015160a0015161405688611261565b61405f906154dd565b6137c3565b8751604081019290925260208201929092529190915290508061408b576000915050611354565b600061409a85600001516128cf565b92509050816140ae57600092505050611354565b846020015181106140c457600092505050611354565b6000856060015186604001516140da919061526c565b90506140f5828760200151836113009092919063ffffffff16565b612f359082615259565b60008085606001518660400151614116919061526c565b602087015160608801519192506000916141309184611300565b90508660a0015160000361414757915061460e9050565b6000808089600488101561415a57600497505b60005b888110156144b65761416f868b6138fe565b955060006141988360c001518460e00151856101000151866000015160a001516140568c611261565b865160408101929092526020820192909252919091529050806141c65760009850505050505050505061460e565b60006141d58e600001516128cf565b92509050816141f0576000995050505050505050505061460e565b6141fb84828b614a25565b156142115787995050505050505050505061460e565b60008460a00151131561437a57835180516020820151604083015160a084015160e0909401516000946142659493929161425390670de0b6b3a7640000615259565b8a516060810151608090910151614616565b93509050826142815760009a505050505050505050505061460e565b808560a00151106143785761429585614a8a565b9099509250826142b25760009a505050505050505050505061460e565b6142d78560c001518660e00151876101000151886000015160a001516140568e611261565b885160408101929092526020820192909252919091529250826143075760009a505050505050505050505061460e565b845180516020820151604083015160a084015160e090940151614337949061425390670de0b6b3a7640000615259565b93509050826143535760009a505050505050505050505061460e565b8e60a00151811161437057889a505050505050505050505061460e565b50505061415d565b505b600061438b858f8760a00151614b60565b935090508215806143a45750670de0b6b3a76400008110155b156143bc5760009a505050505050505050505061460e565b80670de0b6b3a764000003905060006143e96132a187604001518860200151612baa90919063ffffffff16565b6143f66132a1858e6119a9565b61440091906153d8565b905088158061441e575061441389614ebb565b61441c82614ebb565b125b1561442d578098508997508296505b6000811315614455576144448b6109c2838561133c565b61444e908b61526c565b99506144a7565b600081121561449e57600061446f8c6109c28581866154dd565b90508a81101561448357808b039a50614498565b60009c5050505050505050505050505061460e565b506144a7565b505050506144b6565b8460010194505050505061415d565b5060006144de8260c001518360e00151846101000151856000015160a001516140568b611261565b8551604081019290925260208201929092529190915290508061450b57600097505050505050505061460e565b600061451a8360000151611211565b9050600061453c6132a185604001518660200151612baa90919063ffffffff16565b6145496132a1848c6119a9565b61455391906153d8565b905061455e87614ebb565b61456782614ebb565b1215614574578795508194505b61459b61458f655af3107a4000670de0b6b3a7640000615259565b6020860151908b6119f4565b60408501516145ab90879061133c565b10806145eb57506145d96145cd655af3107a4000670de0b6b3a764000061526c565b6020860151908b611300565b60408501516145e99087906130a6565b115b15614602576000995050505050505050505061460e565b50939750505050505050505b949350505050565b60008060008812156146385761462b886154dd565b614635908761526c565b95505b6000806146458b8b612e8e565b915091508061465c57600080935093505050614716565b600061466b838b8a8a8a614ed3565b905060006146886146808a6119ee8a8e612baa565b8990896119f4565b9050808210156146a2576000809550955050505050614716565b808203670de0b6b3a764000081106146d7576146d06146c9670de0b6b3a76400008c61133c565b8290612eca565b90506146ef565b6146ec6146c9670de0b6b3a76400008c6130a6565b90505b8b81101561470857600080965096505050505050614716565b8b9003955060019450505050505b97509795505050505050565b60008060006147348989888888614f02565b9050614744866119ee898b61526c565b97508781101561475b5760008092509250506147da565b8781036147698186886119f4565b9050670de0b6b3a764000081106147965761478f6146c9670de0b6b3a7640000896130a6565b90506147ae565b6147ab6146c9670de0b6b3a76400008961133c565b90505b6147b881866130a6565b9050808a10156147d0576000809350935050506147da565b8903925060019150505b965096945050505050565b60008060006147f78888888888614f02565b90506000614822670de0b6b3a7640000614811888861133c565b61481b919061526c565b83906130a6565b9050670de0b6b3a7640000811061484f576148486146c9670de0b6b3a7640000896130a6565b9050614867565b6148646146c9670de0b6b3a76400008961133c565b90505b8088101561487d57600080935093505050614887565b8703925060019150505b9550959350505050565b60008060006148a38989888888614f02565b9050868810156148ba5760008092509250506147da565b96869003966148c98887612eca565b9750878110156148e05760008092509250506147da565b8781036148ee8186886119f4565b9050670de0b6b3a7640000811061491b576149146146c9670de0b6b3a7640000896130a6565b9050614933565b6149306146c9670de0b6b3a76400008961133c565b90505b61493d81866130a6565b905089811015614955576000809350935050506147da565b9890980398600198509650505050505050565b600080600061497a8888888888614ed3565b9050600061499e670de0b6b3a764000061499488886130a6565b6128c8919061526c565b9050670de0b6b3a764000081106149cb576149c46146c9670de0b6b3a76400008961133c565b90506149e3565b6149e06146c9670de0b6b3a7640000896130a6565b90505b6149ed818661133c565b905088811015614a0557600080935093505050614887565b97909703976001975095505050505050565b606061135183836000614f27565b6020830151600090614a3790846130a6565b6040850151614a4790849061133c565b1015801561460e57506020840151614a7090846103e0633b9aca00670de0b6b3a764000061526c565b6040850151614a809084906130a6565b1115949350505050565b60008060008360e0015113614aa457506000928392509050565b6000614ab3846000015161375f565b90506000614adf856040015186606001518760400151614ad3919061526c565b602088015191906119f4565b905060008212614b065780821015614af957819003614b1c565b5060009485945092505050565b614b0f826154dd565b614b19908261526c565b90505b60e085015160c0860151614b319183906119f4565b9050808560c001511015614b4c575060009485945092505050565b808560c00151036001935093505050915091565b6000806000808412614b8457855160400151614b7d90859061526c565b9050614bbf565b6000614b8f856154dd565b875160400151909150811015614baf578651604001518190039150614bbd565b600080935093505050611bac565b505b855180516020909101516000918291614bd89190612e8e565b9150915080614bf05760008094509450505050611bac565b875160e0810151604090910151600091614c2591614c1991614c129190612eca565b8a906119a9565b6101008b0151906130a6565b895160e0810151608090910151614c5091614c44916119ee90886119a9565b8b5160600151906130a6565b614c5a919061526c565b90506000614c92614c86614c7f8c6000015160e0015188612eca90919063ffffffff16565b8b90612baa565b6101008c01519061133c565b905080821015614cad57600080965096505050505050611bac565b80820391506000614cef858c60000151604001518d6000015160e00151670de0b6b3a7640000614cdd9190615259565b8e516060810151608090910151614f02565b90506000614d198c6000015160e00151670de0b6b3a7640000614d129190615259565b8890612eca565b905080821015614d36576000809850985050505050505050611bac565b8b51608081015160609091015191830391614d529183916119f4565b9050670de0b6b3a76400008110614d96578b5160e00151614d8f906146c990614d8390670de0b6b3a7640000615259565b8e5160e00151906130a6565b9050614dc5565b8b5160e00151614dc2906146c990614db690670de0b6b3a7640000615259565b8e5160e001519061133c565b90505b8b5160600151614dd890859083906119f4565b935083670de0b6b3a76400001115614dfc5783670de0b6b3a7640000039350614e10565b600060019850985050505050505050611bac565b60008c60e0015112614e735760c08c015160e08d0151614e2f916130a6565b9250670de0b6b3a7640000831115614e54576000809850985050505050505050611bac565b670de0b6b3a76400009290920391614e6c84846119a9565b9350614ea8565b614ea5614e8c8d60c001518e60e001516109c2906154dd565b614e9e90670de0b6b3a764000061526c565b85906119a9565b93505b50919a60019a5098505050505050505050565b6000808212614eca5781611354565b611354826154dd565b6000614edf8585612eca565b614ef8614ef0866119ee868b6119a9565b859085611300565b61008b919061526c565b6000614f0e8585612eca565b614ef8614f1f866119ee868b612baa565b8590856119f4565b606081471015614f65576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401613e59565b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051614f8e91906155c2565b60006040518083038185875af1925050503d8060008114614fcb576040519150601f19603f3d011682016040523d82523d6000602084013e614fd0565b606091505b5091509150612f35868383606082614ff057614feb8261506a565b611048565b8151158015615014575073ffffffffffffffffffffffffffffffffffffffff84163b155b15615063576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401613e59565b5080611048565b80511561507a5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405180610120016040528061511c6040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006060828403121561324357600080fd5b600080600080600060a0868803121561518457600080fd5b85359450602086013593506040860135925060608601359150608086013567ffffffffffffffff8111156151b757600080fd5b6151c38882890161515a565b9150509295509295909350565b600080600080608085870312156151e657600080fd5b843593506020850135925060408501359150606085013567ffffffffffffffff81111561521257600080fd5b61521e8782880161515a565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156113545761135461522a565b808201808211156113545761135461522a565b60006020828403121561529157600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461104857600080fd5b801515811461095b57600080fd5b6000602082840312156152d557600080fd5b8135611048816152b5565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261531557600080fd5b83018035915067ffffffffffffffff82111561533057600080fd5b602001915036819003821315610abe57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261538357615383615345565b500690565b6dffffffffffffffffffffffffffff81811683821601908082111561125a5761125a61522a565b6fffffffffffffffffffffffffffffffff81811683821601908082111561125a5761125a61522a565b818103600083128015838313168383128216171561125a5761125a61522a565b80820281158282048414176113545761135461522a565b60006020828403121561542157600080fd5b5051919050565b6fffffffffffffffffffffffffffffffff82811682821603908082111561125a5761125a61522a565b600f81810b9083900b016f7fffffffffffffffffffffffffffffff81137fffffffffffffffffffffffffffffffff80000000000000000000000000000000821217156113545761135461522a565b600081600f0b7fffffffffffffffffffffffffffffffff8000000000000000000000000000000081036154d4576154d461522a565b60000392915050565b60007f8000000000000000000000000000000000000000000000000000000000000000820361550e5761550e61522a565b5060000390565b80820182811260008312801582168215821617156155355761553561522a565b505092915050565b60008261554c5761554c615345565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f8000000000000000000000000000000000000000000000000000000000000000831416156155a0576155a061522a565b500590565b6000602082840312156155b757600080fd5b8151611048816152b5565b6000825160005b818110156155e357602081860181015185830152016155c9565b50600092019182525091905056fea2646970667358221220aabb800da60b46c4b12176148208ad7ce7fb40cbab19f7d5262553a70394bf0664736f6c63430008140033" -} \ No newline at end of file diff --git a/deployments/sepolia/TEST_ERC4626_SHARES.json b/deployments/sepolia/TEST_ERC4626_SHARES.json deleted file mode 100644 index d39027fe3..000000000 --- a/deployments/sepolia/TEST_ERC4626_SHARES.json +++ /dev/null @@ -1,1261 +0,0 @@ -{ - "address": "0xa6f5ad0ef6f4db6e9fa2e13318d218665c72a3ba", - "abi": [ - { - "inputs": [ - { - "internalType": "contract ERC20Mintable", - "name": "_asset", - "type": "address" - }, - { - "internalType": "string", - "name": "_name", - "type": "string" - }, - { - "internalType": "string", - "name": "_symbol", - "type": "string" - }, - { - "internalType": "uint256", - "name": "_initialRate", - "type": "uint256" - }, - { - "internalType": "address", - "name": "_admin", - "type": "address" - }, - { - "internalType": "bool", - "name": "_isCompetitionMode", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "_maxMintAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "contract Authority", - "name": "newAuthority", - "type": "address" - } - ], - "name": "AuthorityUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "assets", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "name": "Deposit", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes4", - "name": "functionSig", - "type": "bytes4" - }, - { - "indexed": false, - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "PublicCapabilityUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint8", - "name": "role", - "type": "uint8" - }, - { - "indexed": true, - "internalType": "bytes4", - "name": "functionSig", - "type": "bytes4" - }, - { - "indexed": false, - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "RoleCapabilityUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "indexed": true, - "internalType": "contract Authority", - "name": "authority", - "type": "address" - } - ], - "name": "TargetCustomAuthorityUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint8", - "name": "role", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "UserRoleUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "assets", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "name": "Withdraw", - "type": "event" - }, - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "asset", - "outputs": [ - { - "internalType": "contract ERC20", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "authority", - "outputs": [ - { - "internalType": "contract Authority", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "bytes4", - "name": "functionSig", - "type": "bytes4" - } - ], - "name": "canCall", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "name": "convertToAssets", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - } - ], - "name": "convertToShares", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_assets", - "type": "uint256" - }, - { - "internalType": "address", - "name": "_receiver", - "type": "address" - } - ], - "name": "deposit", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "role", - "type": "uint8" - }, - { - "internalType": "bytes4", - "name": "functionSig", - "type": "bytes4" - } - ], - "name": "doesRoleHaveCapability", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "role", - "type": "uint8" - } - ], - "name": "doesUserHaveRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRate", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "name": "getRolesWithCapability", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "getTargetCustomAuthority", - "outputs": [ - { - "internalType": "contract Authority", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "getUserRoles", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "name": "isCapabilityPublic", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isCompetitionMode", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "maxDeposit", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "maxMint", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maxMintAmount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "maxRedeem", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "maxWithdraw", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_shares", - "type": "uint256" - }, - { - "internalType": "address", - "name": "_receiver", - "type": "address" - } - ], - "name": "mint", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "nonces", - "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": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - } - ], - "name": "previewDeposit", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "name": "previewMint", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "name": "previewRedeem", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - } - ], - "name": "previewWithdraw", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_shares", - "type": "uint256" - }, - { - "internalType": "address", - "name": "_receiver", - "type": "address" - }, - { - "internalType": "address", - "name": "_owner", - "type": "address" - } - ], - "name": "redeem", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract Authority", - "name": "newAuthority", - "type": "address" - } - ], - "name": "setAuthority", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "functionSig", - "type": "bytes4" - }, - { - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "setPublicCapability", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_rate_", - "type": "uint256" - } - ], - "name": "setRate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "role", - "type": "uint8" - }, - { - "internalType": "bytes4", - "name": "functionSig", - "type": "bytes4" - }, - { - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "setRoleCapability", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "contract Authority", - "name": "customAuthority", - "type": "address" - } - ], - "name": "setTargetCustomAuthority", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "role", - "type": "uint8" - }, - { - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "setUserRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalAssets", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_assets", - "type": "uint256" - }, - { - "internalType": "address", - "name": "_receiver", - "type": "address" - }, - { - "internalType": "address", - "name": "_owner", - "type": "address" - } - ], - "name": "withdraw", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "numDeployments": 1 -} \ No newline at end of file diff --git a/deployments/sepolia/TEST_RETH_RETHHyperdrive.json b/deployments/sepolia/TEST_RETH_RETHHyperdrive.json deleted file mode 100644 index c26ea47da..000000000 --- a/deployments/sepolia/TEST_RETH_RETHHyperdrive.json +++ /dev/null @@ -1,1678 +0,0 @@ -{ - "address": "0x7B6b02eAFB38a1c06769b5f43EBCD5Cda6fDF4A6", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - }, - { - "internalType": "address", - "name": "_target0", - "type": "address" - }, - { - "internalType": "address", - "name": "_target1", - "type": "address" - }, - { - "internalType": "address", - "name": "_target2", - "type": "address" - }, - { - "internalType": "address", - "name": "_target3", - "type": "address" - }, - { - "internalType": "address", - "name": "_target4", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "ReentrancyGuardReentrantCall", - "type": "error" - }, - { - "inputs": [], - "name": "TransferFailed", - "type": "error" - }, - { - "inputs": [], - "name": "UnexpectedSuccess", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "AddLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "basePayment", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fees", - "type": "uint256" - } - ], - "name": "CollectGovernanceFee", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "checkpointTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "checkpointVaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedShorts", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedLongs", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "CreateCheckpoint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newFeeCollector", - "type": "address" - } - ], - "name": "FeeCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGovernance", - "type": "address" - } - ], - "name": "GovernanceUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "apr", - "type": "uint256" - } - ], - "name": "Initialize", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseProceeds", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isPaused", - "type": "bool" - } - ], - "name": "PauseStatusUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newPauser", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "status", - "type": "bool" - } - ], - "name": "PauserUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - } - ], - "name": "RedeemWithdrawalShares", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "RemoveLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "Sweep", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newSweepCollector", - "type": "address" - } - ], - "name": "SweepCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "stateMutability": "nonpayable", - "type": "fallback" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "addLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "name": "batchTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "checkpoint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "closeLong", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "closeShort", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "collectGovernanceFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "domainSeparator", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "initialize", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "openLong", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "openShort", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "bool", - "name": "_approved", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permitForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "redeemWithdrawalShares", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "removeLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "setApproval", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setApprovalBridge", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setFeeCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setGovernance", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "name": "setPauser", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setSweepCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IERC20", - "name": "", - "type": "address" - } - ], - "name": "sweep", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "target0", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target1", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target2", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target3", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target4", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "transferFromBridge", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "args": [ - { - "minimumShareReserves": "1000000000000000", - "minimumTransactionAmount": "1000000000000000", - "positionDuration": "2592000", - "checkpointDuration": "86400", - "timeStretch": "0", - "governance": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "feeCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "sweepCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "fees": { - "curve": "1000000000000000", - "flat": "8333333333333", - "governanceLP": "150000000000000000", - "governanceZombie": "30000000000000000" - }, - "baseToken": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", - "vaultSharesToken": "0x9db9f2e3d04c0d2d4b5a49664a9c1801d583bb77", - "linkerFactory": "0xE84d966f6f87C7957719ad4BeC7E3bB35a46E8B2", - "linkerCodeHash": "0x9a69ff3b9a110deacb7d941d71222642f269891c0da9fcc15ec7c63fbd216b3f", - "initialVaultSharePrice": "0" - }, - "0x0B6C0d49F80acbFdbf7e6ce0de192eC2cBDCeF9b", - "0x75a2413C2641bE1b179597b4403017e2C8696C40", - "0xbC559E29191D45Cb4A8D18b25Ac91Ccd3cb9c345", - "0x11C96c852c40046747291E3fC1A33b3636C31812", - "0xdAB35Ed7eCA0701d75a698dC428686d73ba52395" - ], - "numDeployments": 1, - "bytecode": "0x6102e06040523480156200001257600080fd5b50604051620018bf380380620018bf833981016040819052620000359162000201565b600160005585516001600160a01b039081166080908152602080890151831660a0908152918901516101a0908152918901516101c05260c0808a01516101e052610100808b015190915260e0808b01519052610120808b01519091529189018051519092528151015161014090815281516040908101516101609081529251606090810151610180908152918b01518516610200528a01516102205290890151600a80549185166001600160a01b0319928316179055918901516008805491851691841691909117905590970151600980549183169190981617909655938516610240529184166102605283166102805282166102a052166102c0526200036b565b6040516101c081016001600160401b03811182821017156200016957634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b03811681146200018757600080fd5b919050565b6000608082840312156200019f57600080fd5b604051608081016001600160401b0381118282101715620001d057634e487b7160e01b600052604160045260246000fd5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b6000806000806000808688036102c08112156200021d57600080fd5b610220808212156200022e57600080fd5b6200023862000137565b915062000245896200016f565b82526200025560208a016200016f565b60208301526200026860408a016200016f565b6040830152606089015160608301526080890151608083015260a089015160a083015260c089015160c083015260e089015160e0830152610100808a01518184015250610120808a01518184015250610140620002c7818b016200016f565b90830152610160620002db8a82016200016f565b90830152610180620002ef8a82016200016f565b908301526101a0620003048b8b83016200018c565b818401525081975062000319818a016200016f565b965050506200032c61024088016200016f565b93506200033d61026088016200016f565b92506200034e61028088016200016f565b91506200035f6102a088016200016f565b90509295509295509295565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c05161141e620004a1600039600081816107510152818161098a0152610cf00152600081816106960152818161095a015281816109e80152610c8e01526000818161062f01528181610cc40152610d1b01526000818161071d0152818161086101526108f701526000818161025e015281816104930152818161083101528181610893015281816108c50152818161092b015281816109bd01528181610a1901528181610c5c0152610d44015260005050600050506000505060005050600050506000505060005050600050506000505060005050600050506000505060006101ee01526000505061141e6000f3fe6080604052600436106101d15760003560e01c80639cd241af116100f7578063d899e11211610095578063e4af29d111610064578063e4af29d1146103cc578063eac3e7991461070b578063f3f707071461073f578063f698da251461077357610247565b8063d899e11214610684578063dbbe8070146106b8578063ded06231146106cb578063e44808bc146106eb57610247565b8063a6e8a859116100d1578063a6e8a8591461061d578063ab033ea9146103cc578063cba2e58d14610651578063cbc134341461066457610247565b80639cd241af146105fd578063a22cb465146105aa578063a42dce80146103cc57610247565b806330adf81f1161016f5780634ed2d6ac1161013e5780634ed2d6ac1461058f5780637180c8ca146105aa57806377d05ff4146105ca5780639032c726146105dd57610247565b806330adf81f146105085780633e691db91461053c578063414f826d1461055c5780634c2ac1d91461057c57610247565b806317fad7fc116101ab57806317fad7fc146104415780631c0f12b61461046157806321b57d531461048157806329b23fc1146104da57610247565b806301681a62146103cc57806302329a29146103ec578063074a6de91461040757610247565b36610247573373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610245576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b005b34801561025357600080fd5b5060003660606000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1685856040516102a3929190610d99565b600060405180830381855af49150503d80600081146102de576040519150601f19603f3d011682016040523d82523d6000602084013e6102e3565b606091505b50915091508115610320576040517f8bb0a34b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061032b82610da9565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fdcc81126000000000000000000000000000000000000000000000000000000001461037e57815160208301fd5b81517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc810160048401908152926103bd91810160200190602401610e4c565b80519650602001945050505050f35b3480156103d857600080fd5b506102456103e7366004610f3c565b61082c565b3480156103f857600080fd5b506102456103e7366004610f75565b34801561041357600080fd5b50610427610422366004610fa2565b610859565b604080519283526020830191909152015b60405180910390f35b34801561044d57600080fd5b5061024561045c36600461103e565b61088e565b34801561046d57600080fd5b5061024561047c3660046110d3565b6108c0565b34801561048d57600080fd5b506104b57f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610438565b3480156104e657600080fd5b506104fa6104f536600461111b565b6108f0565b604051908152602001610438565b34801561051457600080fd5b506104fa7f65619c8664d6db8aae8c236ad19598696159942a4245b23b45565cc18e97367381565b34801561054857600080fd5b506104fa610557366004611175565b610924565b34801561056857600080fd5b506102456105773660046111b2565b610955565b6104fa61058a3660046111d4565b610983565b34801561059b57600080fd5b5061024561047c366004611238565b3480156105b657600080fd5b506102456105c5366004611282565b6109b8565b6104fa6105d8366004610fa2565b6109e1565b3480156105e957600080fd5b506102456105f83660046112b7565b610a14565b34801561060957600080fd5b50610245610618366004611335565b610c57565b34801561062957600080fd5b506104b57f000000000000000000000000000000000000000000000000000000000000000081565b61042761065f36600461111b565b610c86565b34801561067057600080fd5b5061042761067f366004610fa2565b610cbc565b34801561069057600080fd5b506104b57f000000000000000000000000000000000000000000000000000000000000000081565b6104276106c636600461111b565b610ce8565b3480156106d757600080fd5b506104fa6106e636600461111b565b610d14565b3480156106f757600080fd5b5061024561070636600461136d565b610d3f565b34801561071757600080fd5b506104b57f000000000000000000000000000000000000000000000000000000000000000081565b34801561074b57600080fd5b506104b57f000000000000000000000000000000000000000000000000000000000000000081565b34801561077f57600080fd5b50604080518082018252600181527f310000000000000000000000000000000000000000000000000000000000000060209182015281517f2aef22f9d7df5f9d21c56d14029233f3fdaa91917727e1eb68e504d27072d6cd818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc681840152466060820152306080808301919091528351808303909101815260a090910190925281519101206104fa565b6108557f0000000000000000000000000000000000000000000000000000000000000000610d70565b5050565b6000806108857f0000000000000000000000000000000000000000000000000000000000000000610d70565b50935093915050565b6108b77f0000000000000000000000000000000000000000000000000000000000000000610d70565b50505050505050565b6108e97f0000000000000000000000000000000000000000000000000000000000000000610d70565b5050505050565b600061091b7f0000000000000000000000000000000000000000000000000000000000000000610d70565b50949350505050565b600061094f7f0000000000000000000000000000000000000000000000000000000000000000610d70565b50919050565b61097e7f0000000000000000000000000000000000000000000000000000000000000000610d70565b505050565b60006109ae7f0000000000000000000000000000000000000000000000000000000000000000610d70565b5095945050505050565b61097e7f0000000000000000000000000000000000000000000000000000000000000000610d70565b6000610a0c7f0000000000000000000000000000000000000000000000000000000000000000610d70565b509392505050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610afb604080518082018252600181527f310000000000000000000000000000000000000000000000000000000000000060209182015281517f2aef22f9d7df5f9d21c56d14029233f3fdaa91917727e1eb68e504d27072d6cd818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc681840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b60405160248101919091527f65619c8664d6db8aae8c236ad19598696159942a4245b23b45565cc18e973673604482015273ffffffffffffffffffffffffffffffffffffffff808c1660648301528a16608482015288151560a482015260c4810188905260ff871660e48201526101048101869052610124810185905261014401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f14e5f07b0000000000000000000000000000000000000000000000000000000017905251610bfd91906113cc565b600060405180830381855af49150503d8060008114610c38576040519150601f19603f3d011682016040523d82523d6000602084013e610c3d565b606091505b509150915081610c4f57805160208201fd5b805160208201f35b610c807f0000000000000000000000000000000000000000000000000000000000000000610d70565b50505050565b600080610cb27f0000000000000000000000000000000000000000000000000000000000000000610d70565b5094509492505050565b6000806108857f0000000000000000000000000000000000000000000000000000000000000000610d70565b600080610cb27f0000000000000000000000000000000000000000000000000000000000000000610d70565b600061091b7f0000000000000000000000000000000000000000000000000000000000000000610d70565b610d687f0000000000000000000000000000000000000000000000000000000000000000610d70565b505050505050565b60606000808373ffffffffffffffffffffffffffffffffffffffff16600036604051610bfd9291905b8183823760009101908152919050565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015610df15780818460040360031b1b83161693505b505050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60005b83811015610e43578181015183820152602001610e2b565b50506000910152565b600060208284031215610e5e57600080fd5b815167ffffffffffffffff80821115610e7657600080fd5b818401915084601f830112610e8a57600080fd5b815181811115610e9c57610e9c610df9565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610ee257610ee2610df9565b81604052828152876020848701011115610efb57600080fd5b610f0c836020830160208801610e28565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610f3957600080fd5b50565b600060208284031215610f4e57600080fd5b8135610f5981610f17565b9392505050565b80358015158114610f7057600080fd5b919050565b600060208284031215610f8757600080fd5b610f5982610f60565b60006060828403121561094f57600080fd5b600080600060608486031215610fb757600080fd5b8335925060208401359150604084013567ffffffffffffffff811115610fdc57600080fd5b610fe886828701610f90565b9150509250925092565b60008083601f84011261100457600080fd5b50813567ffffffffffffffff81111561101c57600080fd5b6020830191508360208260051b850101111561103757600080fd5b9250929050565b6000806000806000806080878903121561105757600080fd5b863561106281610f17565b9550602087013561107281610f17565b9450604087013567ffffffffffffffff8082111561108f57600080fd5b61109b8a838b01610ff2565b909650945060608901359150808211156110b457600080fd5b506110c189828a01610ff2565b979a9699509497509295939492505050565b600080600080608085870312156110e957600080fd5b8435935060208501356110fb81610f17565b9250604085013561110b81610f17565b9396929550929360600135925050565b6000806000806080858703121561113157600080fd5b843593506020850135925060408501359150606085013567ffffffffffffffff81111561115d57600080fd5b61116987828801610f90565b91505092959194509250565b60006020828403121561118757600080fd5b813567ffffffffffffffff81111561119e57600080fd5b6111aa84828501610f90565b949350505050565b600080604083850312156111c557600080fd5b50508035926020909101359150565b600080600080600060a086880312156111ec57600080fd5b85359450602086013593506040860135925060608601359150608086013567ffffffffffffffff81111561121f57600080fd5b61122b88828901610f90565b9150509295509295909350565b6000806000806080858703121561124e57600080fd5b84359350602085013561126081610f17565b925060408501359150606085013561127781610f17565b939692955090935050565b6000806040838503121561129557600080fd5b82356112a081610f17565b91506112ae60208401610f60565b90509250929050565b600080600080600080600060e0888a0312156112d257600080fd5b87356112dd81610f17565b965060208801356112ed81610f17565b95506112fb60408901610f60565b945060608801359350608088013560ff8116811461131857600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060006060848603121561134a57600080fd5b83359250602084013561135c81610f17565b929592945050506040919091013590565b600080600080600060a0868803121561138557600080fd5b85359450602086013561139781610f17565b935060408601356113a781610f17565b92506060860135915060808601356113be81610f17565b809150509295509295909350565b600082516113de818460208701610e28565b919091019291505056fea2646970667358221220d4d7e54e2910e2ea7483b70f844a9ce973cbf184b81449f28c8fd1fffd25177a64736f6c63430008140033" -} \ No newline at end of file diff --git a/deployments/sepolia/TEST_RETH_RETHTarget0.json b/deployments/sepolia/TEST_RETH_RETHTarget0.json deleted file mode 100644 index 9e1cf03ad..000000000 --- a/deployments/sepolia/TEST_RETH_RETHTarget0.json +++ /dev/null @@ -1,1847 +0,0 @@ -{ - "address": "0x0B6C0d49F80acbFdbf7e6ce0de192eC2cBDCeF9b", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "AddressInsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "BatchInputLengthMismatch", - "type": "error" - }, - { - "inputs": [], - "name": "ExpInvalidExponent", - "type": "error" - }, - { - "inputs": [], - "name": "ExpiredDeadline", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidERC20Bridge", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidFeeDestination", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidPresentValue", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidSignature", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidTimestamp", - "type": "error" - }, - { - "inputs": [], - "name": "LnInvalidInput", - "type": "error" - }, - { - "inputs": [], - "name": "ReentrancyGuardReentrantCall", - "type": "error" - }, - { - "inputs": [], - "name": "RestrictedZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ReturnData", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "SafeERC20FailedOperation", - "type": "error" - }, - { - "inputs": [], - "name": "SweepFailed", - "type": "error" - }, - { - "inputs": [], - "name": "TransferFailed", - "type": "error" - }, - { - "inputs": [], - "name": "Unauthorized", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt256", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "AddLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "basePayment", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fees", - "type": "uint256" - } - ], - "name": "CollectGovernanceFee", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "checkpointTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "checkpointVaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedShorts", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedLongs", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "CreateCheckpoint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newFeeCollector", - "type": "address" - } - ], - "name": "FeeCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGovernance", - "type": "address" - } - ], - "name": "GovernanceUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "apr", - "type": "uint256" - } - ], - "name": "Initialize", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseProceeds", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isPaused", - "type": "bool" - } - ], - "name": "PauseStatusUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newPauser", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "status", - "type": "bool" - } - ], - "name": "PauserUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - } - ], - "name": "RedeemWithdrawalShares", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "RemoveLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "Sweep", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newSweepCollector", - "type": "address" - } - ], - "name": "SweepCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "baseToken", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - } - ], - "name": "batchTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "collectGovernanceFee", - "outputs": [ - { - "internalType": "uint256", - "name": "proceeds", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_checkpointTime", - "type": "uint256" - } - ], - "name": "getCheckpoint", - "outputs": [ - { - "components": [ - { - "internalType": "uint128", - "name": "vaultSharePrice", - "type": "uint128" - } - ], - "internalType": "struct IHyperdrive.Checkpoint", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_checkpointTime", - "type": "uint256" - } - ], - "name": "getCheckpointExposure", - "outputs": [ - { - "internalType": "int256", - "name": "", - "type": "int256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getMarketState", - "outputs": [ - { - "components": [ - { - "internalType": "uint128", - "name": "shareReserves", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "bondReserves", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "longExposure", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "longsOutstanding", - "type": "uint128" - }, - { - "internalType": "int128", - "name": "shareAdjustment", - "type": "int128" - }, - { - "internalType": "uint128", - "name": "shortsOutstanding", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "longAverageMaturityTime", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "shortAverageMaturityTime", - "type": "uint128" - }, - { - "internalType": "bool", - "name": "isInitialized", - "type": "bool" - }, - { - "internalType": "bool", - "name": "isPaused", - "type": "bool" - }, - { - "internalType": "uint112", - "name": "zombieBaseProceeds", - "type": "uint112" - }, - { - "internalType": "uint128", - "name": "zombieShareReserves", - "type": "uint128" - } - ], - "internalType": "struct IHyperdrive.MarketState", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getPoolConfig", - "outputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getPoolInfo", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "shareReserves", - "type": "uint256" - }, - { - "internalType": "int256", - "name": "shareAdjustment", - "type": "int256" - }, - { - "internalType": "uint256", - "name": "zombieBaseProceeds", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "zombieShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "bondReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lpTotalSupply", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "vaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "longsOutstanding", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "longAverageMaturityTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "shortsOutstanding", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "shortAverageMaturityTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "withdrawalSharesReadyToWithdraw", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "withdrawalSharesProceeds", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "longExposure", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.PoolInfo", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getUncollectedGovernanceFees", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getWithdrawPool", - "outputs": [ - { - "components": [ - { - "internalType": "uint128", - "name": "readyToWithdraw", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "proceeds", - "type": "uint128" - } - ], - "internalType": "struct IHyperdrive.WithdrawPool", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - } - ], - "name": "isPauser", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256[]", - "name": "_slots", - "type": "uint256[]" - } - ], - "name": "load", - "outputs": [ - { - "internalType": "bytes32[]", - "name": "", - "type": "bytes32[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "_status", - "type": "bool" - } - ], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "perTokenApprovals", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "domainSeparator", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "permitTypeHash", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "bool", - "name": "_approved", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permitForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenID", - "type": "uint256" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "setApproval", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenID", - "type": "uint256" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "caller", - "type": "address" - } - ], - "name": "setApprovalBridge", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_who", - "type": "address" - } - ], - "name": "setFeeCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_who", - "type": "address" - } - ], - "name": "setGovernance", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "who", - "type": "address" - }, - { - "internalType": "bool", - "name": "status", - "type": "bool" - } - ], - "name": "setPauser", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_who", - "type": "address" - } - ], - "name": "setSweepCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_target", - "type": "address" - } - ], - "name": "sweep", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenID", - "type": "uint256" - }, - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenID", - "type": "uint256" - }, - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "caller", - "type": "address" - } - ], - "name": "transferFromBridge", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "vaultSharesToken", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "version", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "args": [ - { - "minimumShareReserves": "1000000000000000", - "minimumTransactionAmount": "1000000000000000", - "positionDuration": "2592000", - "checkpointDuration": "86400", - "timeStretch": "0", - "governance": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "feeCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "sweepCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "fees": { - "curve": "1000000000000000", - "flat": "8333333333333", - "governanceLP": "150000000000000000", - "governanceZombie": "30000000000000000" - }, - "baseToken": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", - "vaultSharesToken": "0x9db9f2e3d04c0d2d4b5a49664a9c1801d583bb77", - "linkerFactory": "0xE84d966f6f87C7957719ad4BeC7E3bB35a46E8B2", - "linkerCodeHash": "0x9a69ff3b9a110deacb7d941d71222642f269891c0da9fcc15ec7c63fbd216b3f", - "initialVaultSharePrice": "0" - } - ], - "numDeployments": 1, - "bytecode": "0x6102406040523480156200001257600080fd5b5060405162005536380380620055368339810160408190526200003591620001e1565b600160005580516001600160a01b039081166080908152602080840151831660a0908152918401516101a0908152918401516101c05260c0808501516101e0526101008086015190915260e0808601519052610120808601519091529184018051519092528151015161014090815281516040908101516101609081529251606090810151610180908152918601518516610200528501516102205290840151600a80546001600160a01b03199081169286169290921790559184015160088054841691851691909117905590920151600980549093169116179055620002d4565b6040516101c081016001600160401b03811182821017156200014957634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b03811681146200016757600080fd5b919050565b6000608082840312156200017f57600080fd5b604051608081016001600160401b0381118282101715620001b057634e487b7160e01b600052604160045260246000fd5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b60006102208284031215620001f557600080fd5b620001ff62000117565b6200020a836200014f565b81526200021a602084016200014f565b60208201526200022d604084016200014f565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101406200028c8185016200014f565b90820152610160620002a08482016200014f565b90820152610180620002b48482016200014f565b908201526101a0620002c9858583016200016c565b908201529392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516151356200040160003960008181610b5e015281816110fd0152611638015260008181610b0e015281816110d601526115e801526000818161117701526126dd01526000818161115101526126b70152600081816111270152612691015260006112a7015260006112820152600061125d0152600061123a0152600081816111ea015261270301526000818161119d015281816114350152612fdb0152600081816111c30152613432015260008181610254015281816108e5015281816110aa01528181612cab01528181612f0f0152818161325d015281816132d3015261340401526000818161108501526113dc01526151356000f3fe6080604052600436106102375760003560e01c806360246c8811610138578063becee9c3116100b0578063d81657431161007f578063e4af29d111610064578063e4af29d1146107ab578063e985e9c5146107cb578063fba56008146107eb57600080fd5b8063d816574314610769578063e44808bc1461078b57600080fd5b8063becee9c3146106f2578063c55dae631461071f578063c69e16ad14610734578063cf210e651461074957600080fd5b8063a22cb46511610107578063ab033ea9116100ec578063ab033ea914610690578063b0d96580146106b0578063bd85b039146106d257600080fd5b8063a22cb46514610650578063a42dce801461067057600080fd5b806360246c88146105325780637180c8ca146105f05780637ecebe00146106105780639cd241af1461063057600080fd5b806320fc4881116101cb5780633e691db91161019a5780634e41a1fb1161017f5780634e41a1fb146104dd5780634ed2d6ac146104fd57806354fd4d501461051d57600080fd5b80633e691db91461048d57806346fbf68e146104ad57600080fd5b806320fc4881146103d757806321ff32a914610418578063313ce567146104465780633656eec21461046d57600080fd5b80630a4e1493116102075780630a4e14931461033d57806314e5f07b1461037757806317fad7fc146103975780631c0f12b6146103b757600080fd5b8062ad800c146102b257806301681a62146102e857806302329a291461030857806306fdde031461032857600080fd5b366102ad573373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146102ab576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b005b600080fd5b3480156102be57600080fd5b506102d26102cd3660046144ec565b610830565b6040516102df9190614573565b60405180910390f35b3480156102f457600080fd5b506102ab6103033660046145a8565b610867565b34801561031457600080fd5b506102ab6103233660046145d3565b610873565b34801561033457600080fd5b506102d261087c565b34801561034957600080fd5b506103526108ca565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102df565b34801561038357600080fd5b506102ab6103923660046145f0565b610917565b3480156103a357600080fd5b506102ab6103b23660046146ca565b610933565b3480156103c357600080fd5b506102ab6103d236600461475f565b610949565b3480156103e357600080fd5b506103f76103f23660046144ec565b61095c565b60405190516fffffffffffffffffffffffffffffffff1681526020016102df565b34801561042457600080fd5b506104386104333660046147a7565b6109a6565b6040519081526020016102df565b34801561045257600080fd5b5061045b6109f9565b60405160ff90911681526020016102df565b34801561047957600080fd5b506104386104883660046147e9565b610a11565b34801561049957600080fd5b506104386104a8366004614819565b610a57565b3480156104b957600080fd5b506104cd6104c83660046145a8565b610a62565b60405190151581526020016102df565b3480156104e957600080fd5b506102d26104f83660046144ec565b610aa5565b34801561050957600080fd5b506102ab610518366004614854565b610ab3565b34801561052957600080fd5b506102d2610c17565b34801561053e57600080fd5b50610547610c62565b6040516102df9190815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e08083015190820152610100808301519082015261012080830151908201526101408083015190820152610160808301519082015261018080830151908201526101a080830151908201526101c091820151918101919091526101e00190565b3480156105fc57600080fd5b506102ab61060b36600461489e565b610f5a565b34801561061c57600080fd5b5061043861062b3660046145a8565b610f68565b34801561063c57600080fd5b506102ab61064b3660046148cc565b610fa1565b34801561065c57600080fd5b506102ab61066b36600461489e565b610fb2565b34801561067c57600080fd5b506102ab61068b3660046145a8565b611049565b34801561069c57600080fd5b506102ab6106ab3660046145a8565b611052565b3480156106bc57600080fd5b506106c561105b565b6040516102df9190614904565b3480156106de57600080fd5b506104386106ed3660046144ec565b6112e4565b3480156106fe57600080fd5b5061071261070d366004614a66565b611306565b6040516102df9190614aa8565b34801561072b57600080fd5b506103526113c1565b34801561074057600080fd5b5061043861140e565b34801561075557600080fd5b506104386107643660046144ec565b611428565b34801561077557600080fd5b5061077e611471565b6040516102df9190614aec565b34801561079757600080fd5b506102ab6107a6366004614c4c565b61158d565b3480156107b757600080fd5b506102ab6107c63660046145a8565b6116eb565b3480156107d757600080fd5b506104cd6107e6366004614cab565b6116f4565b3480156107f757600080fd5b50610800611745565b6040805182516fffffffffffffffffffffffffffffffff90811682526020938401511692810192909252016102df565b606061086261083e836117ba565b60405160200161084e9190614573565b60405160208183030381529060405261190a565b919050565b61087081611947565b50565b61087081611b64565b60606108c76040518060400160405280600e81526020017f524554484879706572647269766500000000000000000000000000000000000081525060405160200161084e9190614573565b90565b6040805173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660208201526000916108c7910161084e565b610928898989898989898989611c1e565b505050505050505050565b610941868686868686611ef8565b505050505050565b6109568484848433611ff8565b50505050565b6040805160208101909152600081526108626007600084815260200190815260200160002060405160200161084e91546fffffffffffffffffffffffffffffffff16815260200190565b600083815260106020908152604080832073ffffffffffffffffffffffffffffffffffffffff868116855290835281842090851684528252808320548151928301526109f2910161084e565b9392505050565b60408051601260208201526000916108c7910161084e565b6000828152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452825280832054815192830152610a51910161084e565b92915050565b6000610a5182612272565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600c602090815260408083205490516108629261084e9260ff169101901515815260200190565b606061086261083e8361240e565b83610ba081604080513060208083019190915281830193909352815180820383018152606080830184528151918501919091207fff0000000000000000000000000000000000000000000000000000000000000060808401527f000000000000000000000000000000000000000000000000000000000000000090911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016608183015260958201527f000000000000000000000000000000000000000000000000000000000000000060b5808301919091528251808303909101815260d5909101909152805191012090565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c04576040517f2aab8bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c1085858585612544565b5050505050565b60606108c76040518060400160405280600681526020017f76312e302e32000000000000000000000000000000000000000000000000000081525060405160200161084e9190614573565b610cdb604051806101e001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000610ce56125be565b600654600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e95460008080527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c54939450926fffffffffffffffffffffffffffffffff90921691610d599190614d37565b610d639190614d4a565b90506000808311610d75576000610d90565b610d9083610d8a610d85866125d6565b612798565b906127e1565b604080516101e0810182526001546fffffffffffffffffffffffffffffffff8082168352600354600f81900b60208501526005546dffffffffffffffffffffffffffff62010000820416958501959095527001000000000000000000000000000000009485900482166060850152918490048116608084015260a0830187905260c08301889052600254849004811660e0840152600454808216610100850152918490048116610120840152908390048116610140830152600654808216610160840152929092049091166101808201529091506000906101a081018415610e8157610e7c84866127f6565b610e84565b60005b81526002546fffffffffffffffffffffffffffffffff16602091820152604051919250610f539161084e91849101815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e08083015190820152610100808301519082015261012080830151908201526101408083015190820152610160808301519082015261018080830151908201526101a080830151908201526101c091820151918101919091526101e00190565b5050505090565b610f64828261280b565b5050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260116020908152604080832054815192830152610862910161084e565b610fad83838333612544565b505050565b336000818152600f6020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610870816128e6565b610870816129a6565b6110636143ce565b604080516101c08101825273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811682527f000000000000000000000000000000000000000000000000000000000000000081166020808401919091527f00000000000000000000000000000000000000000000000000000000000000008216838501527f00000000000000000000000000000000000000000000000000000000000000006060808501919091527f00000000000000000000000000000000000000000000000000000000000000006080808601919091527f000000000000000000000000000000000000000000000000000000000000000060a08601527f000000000000000000000000000000000000000000000000000000000000000060c08601527f000000000000000000000000000000000000000000000000000000000000000060e08601527f00000000000000000000000000000000000000000000000000000000000000006101008601527f0000000000000000000000000000000000000000000000000000000000000000610120860152600a5484166101408601526008548416610160860152600954909316610180850152845192830185527f000000000000000000000000000000000000000000000000000000000000000083527f0000000000000000000000000000000000000000000000000000000000000000838301527f0000000000000000000000000000000000000000000000000000000000000000838601527f0000000000000000000000000000000000000000000000000000000000000000908301526101a083019190915291516108c79261084e929101614904565b6000818152600e6020908152604080832054815192830152610862910161084e565b606060008267ffffffffffffffff81111561132357611323614d5d565b60405190808252806020026020018201604052801561134c578160200160208202803683370190505b50905060005b838110156113a557600085858381811061136e5761136e614d8c565b9050602002013590506000815490508084848151811061139057611390614d8c565b60209081029190910101525050600101611352565b506113ba8160405160200161084e9190614aa8565b5092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660208201526000916108c7910161084e565b60006108c7600b5460405160200161084e91815260200190565b600061086261145f61145a7f000000000000000000000000000000000000000000000000000000000000000085614d37565b612a66565b60405160200161084e91815260200190565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081018290526101608101919091526108c7600160405160200161084e919081546fffffffffffffffffffffffffffffffff8082168352608091821c602084015260018401548082166040850152821c60608401526002840154600f81900b83850152821c60a0840152600384015490811660c0840152811c60e083015260049092015460ff8082161515610100840152600882901c1615156101208301526dffffffffffffffffffffffffffff601082901c1661014083015290911c6101608201526101800190565b8461167a81604080513060208083019190915281830193909352815180820383018152606080830184528151918501919091207fff0000000000000000000000000000000000000000000000000000000000000060808401527f000000000000000000000000000000000000000000000000000000000000000090911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016608183015260958201527f000000000000000000000000000000000000000000000000000000000000000060b5808301919091528251808303909101815260d5909101909152805191012090565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116de576040517f2aab8bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109418686868686611ff8565b61087081612aaa565b73ffffffffffffffffffffffffffffffffffffffff8281166000908152600f60209081526040808320938516835292815282822054835160ff9091161515918101919091529091610a51910161084e565b60408051808201909152600080825260208201526040805180820182526006546fffffffffffffffffffffffffffffffff80821680845270010000000000000000000000000000000090920481166020938401908152845193840192909252905116918101919091526108c79060600161084e565b606060f882901c7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831660006117ee82612b6a565b9050600083600381111561180457611804614cd9565b03611846576040518060400160405280600d81526020017f48797065726472697665204c50000000000000000000000000000000000000008152509350611902565b600183600381111561185a5761185a614cd9565b0361188657806040516020016118709190614dbb565b6040516020818303038152906040529350611902565b600283600381111561189a5761189a614cd9565b036118b057806040516020016118709190614e00565b60038360038111156118c4576118c4614cd9565b03611902576040518060400160405280601b81526020017f48797065726472697665205769746864726177616c205368617265000000000081525093505b505050919050565b806040517fdcc8112600000000000000000000000000000000000000000000000000000000815260040161193e9190614573565b60405180910390fd5b61194f612c37565b600954336000908152600c602052604090205473ffffffffffffffffffffffffffffffffffffffff9091169060ff161580156119a157503373ffffffffffffffffffffffffffffffffffffffff821614155b80156119c55750600a5473ffffffffffffffffffffffffffffffffffffffff163314155b156119fc576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611a06612c7a565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290915060009073ffffffffffffffffffffffffffffffffffffffff8516906370a0823190602401602060405180830381865afa158015611a76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9a9190614e45565b9050611abd73ffffffffffffffffffffffffffffffffffffffff85168483612d2b565b81611ac6612c7a565b14611afd576040517f9eec2ff800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f951f51ee88c8e42633698bba90d1e53c0954470938036879e691c0232b47e09660405160405180910390a35050506108706001600055565b336000908152600c602052604090205460ff16611bad576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60058054821515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff9091161790556040517f7c4d1fe30fdbfda9e9c4c43e759ef32e4db5128d4cb58ff3ae9583b89b6242a590611c1390831515815260200190565b60405180910390a150565b83421115611c58576040517ff87d927100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8716611ca5576040517ff0dd15fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87811660008181526011602090815260408083205481518084018f905280830195909552948b166060850152891515608085015260a084019490945260c08084018990528451808503909101815260e0840190945283519301929092207f190100000000000000000000000000000000000000000000000000000000000061010083015261010282018c905261012282015261014201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015611dd9573d6000803e3d6000fd5b5050506020604051035190508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611e4a576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff898116600081815260116020908152604080832080546001019055600f8252808320948d168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168c151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff86161580611f2f575073ffffffffffffffffffffffffffffffffffffffff8516155b15611f66576040517ff0dd15fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b828114611f9f576040517fba430d3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b83811015611fef57611fe7858583818110611fbf57611fbf614d8c565b905060200201358888868686818110611fda57611fda614d8c565b9050602002013533611ff8565b600101611fa2565b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff8416158061202f575073ffffffffffffffffffffffffffffffffffffffff8316155b15612066576040517ff0dd15fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146121895773ffffffffffffffffffffffffffffffffffffffff8085166000908152600f602090815260408083209385168352929052205460ff1661218957600085815260106020908152604080832073ffffffffffffffffffffffffffffffffffffffff808916855290835281842090851684529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461218757600086815260106020908152604080832073ffffffffffffffffffffffffffffffffffffffff808a168552908352818420908616845290915281208054859290612181908490614d4a565b90915550505b505b6000858152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff88168452909152812080548492906121c8908490614d4a565b90915550506000858152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120805484929061220c908490614d37565b9091555050604080518681526020810184905273ffffffffffffffffffffffffffffffffffffffff8086169287821692918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a45050505050565b600061227c612c37565b61228582612db8565b60085473ffffffffffffffffffffffffffffffffffffffff16806122ac60208501856145a8565b73ffffffffffffffffffffffffffffffffffffffff16146122f9576040517f2b44eccc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152600c602052604090205460ff1615801561232f57503373ffffffffffffffffffffffffffffffffffffffff821614155b80156123535750600a5473ffffffffffffffffffffffffffffffffffffffff163314155b1561238a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006123946125be565b600b805460009091559091506123ab818387612e14565b93508273ffffffffffffffffffffffffffffffffffffffff167fa4bafc79b3f9fdba2427cd386f1fbc7d8779e9fd7229f6220d53bc04d3901e476123f0868589612eae565b60405190815260200160405180910390a25050506108626001600055565b606060f882901c7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8316600061244282612b6a565b9050600083600381111561245857612458614cd9565b0361249a576040518060400160405280600d81526020017f485950455244524956452d4c50000000000000000000000000000000000000008152509350611902565b60018360038111156124ae576124ae614cd9565b036124c457806040516020016118709190614e5e565b60028360038111156124d8576124d8614cd9565b036124ee57806040516020016118709190614ea3565b600383600381111561250257612502614cd9565b0361190257505060408051808201909152600d81527f485950455244524956452d57530000000000000000000000000000000000000060208201529392505050565b600084815260106020908152604080832073ffffffffffffffffffffffffffffffffffffffff85811680865291845282852090881680865290845293829020869055905185815290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050565b60006125d1670de0b6b3a7640000612edd565b905090565b61263a6040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60408051610180810182526001546fffffffffffffffffffffffffffffffff8082168352600354600f0b602084015270010000000000000000000000000000000091829004811693830193909352606082018590527f000000000000000000000000000000000000000000000000000000000000000060808301527f000000000000000000000000000000000000000000000000000000000000000060a08301527f000000000000000000000000000000000000000000000000000000000000000060c08301527f000000000000000000000000000000000000000000000000000000000000000060e083015260025404821661010082015260045490916101208301916127489116612f90565b81526003546fffffffffffffffffffffffffffffffff700100000000000000000000000000000000918290048116602084015260045460409093019261279092900416612f90565b905292915050565b60008060006127a684613006565b91509150806113ba576040517faa2c651600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006109f28383670de0b6b3a7640000613093565b60006109f283670de0b6b3a764000084613093565b600a5473ffffffffffffffffffffffffffffffffffffffff16331461285c576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000818152600c602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f902923dcd4814f6cef7005a70e01d5cf2035ab02d4523ef3b865f1d7bab885af910160405180910390a25050565b600a5473ffffffffffffffffffffffffffffffffffffffff163314612937576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fe5693914d19c789bdee50a362998c0bc8d035a835f9871da5d51152f0582c34f90600090a250565b600a5473ffffffffffffffffffffffffffffffffffffffff1633146129f7576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f9d3e522e1e47a2f6009739342b9cc7b252a1888154e843ab55ee1c81745795ab90600090a250565b6000612a8e600e6000612a7a6002866130cf565b815260200190815260200160002054613135565b612aa0600e6000612a7a6001876130cf565b610a519190614edb565b600a5473ffffffffffffffffffffffffffffffffffffffff163314612afb576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fc049058b1df2dd8902739ceb78992df12fa8369c06c450b3c6787137b452fdd290600090a250565b60408051604e80825260808201909252606091906000908260208201818036833701905050905060005b8415612c2957612ba5600a86614f2a565b612bb0906030614d37565b60f81b826001612bc08487614d4a565b612bca9190614d4a565b81518110612bda57612bda614d8c565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080612c1381614f3e565b9150612c229050600a86614f76565b9450612b94565b918290030190815292915050565b600260005403612c73576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015612d07573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125d19190614e45565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610fad908490613195565b6000612dc760208301836145a8565b73ffffffffffffffffffffffffffffffffffffffff1603610870576040517ff0dd15fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080612e2185856127e1565b9050612e2c8161322b565b945084600003612e405760009150506109f2565b612e5060408401602085016145d3565b15612e7f57612e7885612e6660208601866145a8565b612e736040870187614f8a565b6132a1565b9150612ea6565b612ea285612e9060208601866145a8565b612e9d6040870187614f8a565b6133ea565b8491505b509392505050565b6000612ec060408301602084016145d3565b15612ecc5750826109f2565b612ed684846127e1565b90506109f2565b6040517f8b32fa23000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690638b32fa23906024015b602060405180830381865afa158015612f6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a519190614e45565b600080670de0b6b3a7640000612fa461342b565b612fae9190614fef565b9050808311612fbe576000612fc8565b612fc88184614d4a565b91506109f2612fff670de0b6b3a76400007f0000000000000000000000000000000000000000000000000000000000000000614fef565b83906127f6565b600080600080600061301786613461565b915091508061302e57506000958695509350505050565b61303b8660a00151613135565b6130448761379b565b836130528960000151613135565b61305c9190615006565b6130669190615006565b6130709190614edb565b9250505060008112156130895750600093849350915050565b9360019350915050565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04841183021582026130c857600080fd5b5091020490565b60007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82111561312a576040517fb7d0949700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060f89190911b1790565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115613191576040517f72dd4e0200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5090565b60006131b773ffffffffffffffffffffffffffffffffffffffff8416836137ff565b905080516000141580156131dc5750808060200190518101906131da9190615026565b155b15610fad576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260240161193e565b6040517f4346f03e000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690634346f03e90602401612f4f565b6040517f42966c68000000000000000000000000000000000000000000000000000000008152600481018590526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906342966c6890602401600060405180830381600087803b15801561332c57600080fd5b505af1158015613340573d6000803e3d6000fd5b5050505047905060008473ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146133a1576040519150601f19603f3d011682016040523d82523d6000602084013e6133a6565b606091505b50509050806133e1576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50949350505050565b61095673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168486612d2b565b60006134577f000000000000000000000000000000000000000000000000000000000000000042614f2a565b6125d19042614d4a565b600080600061348b6134868561016001518661014001516127e190919063ffffffff16565b613135565b6134ab61348686610120015187610100015161380d90919063ffffffff16565b6134b59190614edb565b90506000806134cc86600001518760200151613822565b91509150806134e357506000958695509350505050565b60008313156136335760008390506000613531886000015189602001518a604001518b60a001518c60e00151670de0b6b3a76400006135229190614d4a565b8d606001518e60800151613861565b935090508261354a575060009788975095505050505050565b8181106135e8576000613584858a60400151858c60e00151670de0b6b3a76400006135759190614d4a565b8d606001518e60800151613973565b945090508315801561359957508860c0015183105b156135b05750600098600198509650505050505050565b836135c657506000988998509650505050505050565b6135cf81613135565b6135d890615043565b9960019950975050505050505050565b600088602001511261361f576136078860a00151856134869190614d4a565b61361090615043565b98600198509650505050505050565b60a088015188516136079161348691614d4a565b600083121561378c57600061364784615043565b9050600061367b8489604001518a60e00151670de0b6b3a764000061366c9190614d4a565b8b606001518c60800151613a36565b9350905082613694575060009788975095505050505050565b8181106137195760006136ce858a60400151858c60e00151670de0b6b3a76400006136bf9190614d4a565b8d606001518e60800151613ae2565b94509050831580156136e357508860c0015183105b156136fa5750600098600198509650505050505050565b8361371057506000988998509650505050505050565b6135d881613135565b600061374b858a604001518b60e00151670de0b6b3a764000061373c9190614d4a565b8c606001518d60800151613bb9565b945090508361376557506000988998509650505050505050565b6135d86137828a60600151848661377c9190614d4a565b906127f6565b6134869083614d37565b50600095600195509350505050565b60006137ce613486836101200151670de0b6b3a76400006137bc9190614d4a565b60608501516101008601519190613c68565b612aa0613486846101600151670de0b6b3a76400006137ed9190614d4a565b60608601516101408701519190613093565b60606109f283836000613cac565b60006109f28383670de0b6b3a7640000613c68565b60008060008361383186613135565b61383b9190614edb565b9050600081121561385357600080925092505061385a565b9150600190505b9250929050565b60008060008812156138835761387688615043565b6138809087614d37565b95505b6000806138908b8b613822565b91509150806138a757600080935093505050613967565b60006138b6838b8a8a8a613d6f565b905060006138d96138d18a6138cb8a8e61380d565b90613d9e565b899089613c68565b9050808210156138f3576000809550955050505050613967565b808203670de0b6b3a764000081106139285761392161391a670de0b6b3a76400008c6127f6565b8290613d9e565b9050613940565b61393d61391a670de0b6b3a76400008c613e09565b90505b8b81101561395957600080965096505050505050613967565b8b9003955060019450505050505b97509795505050505050565b60008060006139858989888888613e1e565b9050613995866138cb898b614d37565b9750878110156139ac576000809250925050613a2b565b8781036139ba818688613c68565b9050670de0b6b3a764000081106139e7576139e061391a670de0b6b3a764000089613e09565b90506139ff565b6139fc61391a670de0b6b3a7640000896127f6565b90505b613a098186613e09565b9050808a1015613a2157600080935093505050613a2b565b8903925060019150505b965096945050505050565b6000806000613a488888888888613e1e565b90506000613a73670de0b6b3a7640000613a6288886127f6565b613a6c9190614d37565b8390613e09565b9050670de0b6b3a76400008110613aa057613a9961391a670de0b6b3a764000089613e09565b9050613ab8565b613ab561391a670de0b6b3a7640000896127f6565b90505b80881015613ace57600080935093505050613ad8565b8703925060019150505b9550959350505050565b6000806000613af48989888888613e1e565b905086881015613b0b576000809250925050613a2b565b9686900396613b1a8887613d9e565b975087811015613b31576000809250925050613a2b565b878103613b3f818688613c68565b9050670de0b6b3a76400008110613b6c57613b6561391a670de0b6b3a764000089613e09565b9050613b84565b613b8161391a670de0b6b3a7640000896127f6565b90505b613b8e8186613e09565b905089811015613ba657600080935093505050613a2b565b9890980398600198509650505050505050565b6000806000613bcb8888888888613d6f565b90506000613bef670de0b6b3a7640000613be58888613e09565b612fff9190614d37565b9050670de0b6b3a76400008110613c1c57613c1561391a670de0b6b3a7640000896127f6565b9050613c34565b613c3161391a670de0b6b3a764000089613e09565b90505b613c3e81866127f6565b905088811015613c5657600080935093505050613ad8565b97909703976001975095505050505050565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0484118302158202613c9d57600080fd5b50910281810615159190040190565b606081471015613cea576040517fcd78605900000000000000000000000000000000000000000000000000000000815230600482015260240161193e565b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051613d13919061507b565b60006040518083038185875af1925050503d8060008114613d50576040519150601f19603f3d011682016040523d82523d6000602084013e613d55565b606091505b5091509150613d65868383613e43565b9695505050505050565b6000613d7b8585613d9e565b613d94613d8c866138cb868b6127e1565b859085613093565b613d659190614d37565b600081600003613db75750670de0b6b3a7640000610a51565b82600003613dc757506000610a51565b6000613dd283613135565b90506000613de7613de286613135565b613ed2565b9050818102613dfe670de0b6b3a764000082615097565b9050613d6581614173565b60006109f283670de0b6b3a764000084613c68565b6000613e2a8585613d9e565b613d94613e3b866138cb868b61380d565b859085613c68565b606082613e5857613e538261438c565b6109f2565b8151158015613e7c575073ffffffffffffffffffffffffffffffffffffffff84163b155b15613ecb576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260240161193e565b50806109f2565b6000808213613f0d576040517fe61b497500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff10600390811b90911782811c600f1060021b1782811c909110600190811b90911782811c90911017609f8181036060019290921b917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0820190613fb79084901c613135565b6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b391909102017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c182136141a457506000919050565b680755bf798b4a1bf1e582126141e6576040517f73a2d6b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b3988102909303927fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550484018402606090811d6d0277594991cfc85f6e2461837cd9018502811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018502811d6db1bbb201f443cf962f1a1d3db4a5018502811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018502811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765087018702831d9081019087017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e01810290921d6e0587f503bb6ea29d25fcb74019645001860279d835ebba824c98fb31b83b2ca45c000000000000000000000000018181059550929350909190613d6574029d9dc38563c32e5c2f6dc192ee70ef65f9978af3860260c38690031c613135565b80511561439c5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051806101c00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016144e76040518060800160405280600081526020016000815260200160008152602001600081525090565b905290565b6000602082840312156144fe57600080fd5b5035919050565b60005b83811015614520578181015183820152602001614508565b50506000910152565b60008151808452614541816020860160208601614505565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006109f26020830184614529565b73ffffffffffffffffffffffffffffffffffffffff8116811461087057600080fd5b6000602082840312156145ba57600080fd5b81356109f281614586565b801515811461087057600080fd5b6000602082840312156145e557600080fd5b81356109f2816145c5565b60008060008060008060008060006101208a8c03121561460f57600080fd5b8935985060208a0135975060408a013561462881614586565b965060608a013561463881614586565b955060808a0135614648816145c5565b945060a08a0135935060c08a013560ff8116811461466557600080fd5b8093505060e08a013591506101008a013590509295985092959850929598565b60008083601f84011261469757600080fd5b50813567ffffffffffffffff8111156146af57600080fd5b6020830191508360208260051b850101111561385a57600080fd5b600080600080600080608087890312156146e357600080fd5b86356146ee81614586565b955060208701356146fe81614586565b9450604087013567ffffffffffffffff8082111561471b57600080fd5b6147278a838b01614685565b9096509450606089013591508082111561474057600080fd5b5061474d89828a01614685565b979a9699509497509295939492505050565b6000806000806080858703121561477557600080fd5b84359350602085013561478781614586565b9250604085013561479781614586565b9396929550929360600135925050565b6000806000606084860312156147bc57600080fd5b8335925060208401356147ce81614586565b915060408401356147de81614586565b809150509250925092565b600080604083850312156147fc57600080fd5b82359150602083013561480e81614586565b809150509250929050565b60006020828403121561482b57600080fd5b813567ffffffffffffffff81111561484257600080fd5b8201606081850312156109f257600080fd5b6000806000806080858703121561486a57600080fd5b84359350602085013561487c81614586565b925060408501359150606085013561489381614586565b939692955090935050565b600080604083850312156148b157600080fd5b82356148bc81614586565b9150602083013561480e816145c5565b6000806000606084860312156148e157600080fd5b8335925060208401356148f381614586565b929592945050506040919091013590565b815173ffffffffffffffffffffffffffffffffffffffff1681526102208101602083015161494a602084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040830151614972604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e0830152610100808401518184015250610120808401518184015250610140808401516149e58285018273ffffffffffffffffffffffffffffffffffffffff169052565b50506101608381015173ffffffffffffffffffffffffffffffffffffffff81168483015250506101808381015173ffffffffffffffffffffffffffffffffffffffff81168483015250506101a08381015180518483015260208101516101c085015260408101516101e085015260608101516102008501525b505092915050565b60008060208385031215614a7957600080fd5b823567ffffffffffffffff811115614a9057600080fd5b614a9c85828601614685565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b81811015614ae057835183529284019291840191600101614ac4565b50909695505050505050565b81516fffffffffffffffffffffffffffffffff16815261018081016020830151614b2a60208401826fffffffffffffffffffffffffffffffff169052565b506040830151614b4e60408401826fffffffffffffffffffffffffffffffff169052565b506060830151614b7260608401826fffffffffffffffffffffffffffffffff169052565b506080830151614b876080840182600f0b9052565b5060a0830151614bab60a08401826fffffffffffffffffffffffffffffffff169052565b5060c0830151614bcf60c08401826fffffffffffffffffffffffffffffffff169052565b5060e0830151614bf360e08401826fffffffffffffffffffffffffffffffff169052565b506101008381015115159083015261012080840151151590830152610140808401516dffffffffffffffffffffffffffff1690830152610160808401516fffffffffffffffffffffffffffffffff811682850152614a5e565b600080600080600060a08688031215614c6457600080fd5b853594506020860135614c7681614586565b93506040860135614c8681614586565b9250606086013591506080860135614c9d81614586565b809150509295509295909350565b60008060408385031215614cbe57600080fd5b8235614cc981614586565b9150602083013561480e81614586565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610a5157610a51614d08565b81810381811115610a5157610a51614d08565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f48797065726472697665204c6f6e673a20000000000000000000000000000000815260008251614df3816011850160208701614505565b9190910160110192915050565b7f487970657264726976652053686f72743a200000000000000000000000000000815260008251614e38816012850160208701614505565b9190910160120192915050565b600060208284031215614e5757600080fd5b5051919050565b7f485950455244524956452d4c4f4e473a00000000000000000000000000000000815260008251614e96816010850160208701614505565b9190910160100192915050565b7f485950455244524956452d53484f52543a000000000000000000000000000000815260008251614df3816011850160208701614505565b81810360008312801583831316838312821617156113ba576113ba614d08565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614f3957614f39614efb565b500690565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614f6f57614f6f614d08565b5060010190565b600082614f8557614f85614efb565b500490565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614fbf57600080fd5b83018035915067ffffffffffffffff821115614fda57600080fd5b60200191503681900382131561385a57600080fd5b8082028115828204841417610a5157610a51614d08565b8082018281126000831280158216821582161715614a5e57614a5e614d08565b60006020828403121561503857600080fd5b81516109f2816145c5565b60007f8000000000000000000000000000000000000000000000000000000000000000820361507457615074614d08565b5060000390565b6000825161508d818460208701614505565b9190910192915050565b6000826150a6576150a6614efb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f8000000000000000000000000000000000000000000000000000000000000000831416156150fa576150fa614d08565b50059056fea264697066735822122040338950a9b1ececd7f7826a1e91e3f5fb47ce5cb575b07a342bd7c8da5f44d364736f6c63430008140033" -} \ No newline at end of file diff --git a/deployments/sepolia/TEST_RETH_RETHTarget1.json b/deployments/sepolia/TEST_RETH_RETHTarget1.json deleted file mode 100644 index 812abbc52..000000000 --- a/deployments/sepolia/TEST_RETH_RETHTarget1.json +++ /dev/null @@ -1,1002 +0,0 @@ -{ - "address": "0x75a2413C2641bE1b179597b4403017e2C8696C40", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "AddressInsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "DistributeExcessIdleFailed", - "type": "error" - }, - { - "inputs": [], - "name": "ExpInvalidExponent", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientLiquidity", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidPresentValue", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidTimestamp", - "type": "error" - }, - { - "inputs": [], - "name": "LnInvalidInput", - "type": "error" - }, - { - "inputs": [], - "name": "MinimumTransactionAmount", - "type": "error" - }, - { - "inputs": [], - "name": "OutputLimit", - "type": "error" - }, - { - "inputs": [], - "name": "ReentrancyGuardReentrantCall", - "type": "error" - }, - { - "inputs": [], - "name": "RestrictedZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "SafeERC20FailedOperation", - "type": "error" - }, - { - "inputs": [], - "name": "TransferFailed", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt128", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt256", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToUint112", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToUint128", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "AddLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "basePayment", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fees", - "type": "uint256" - } - ], - "name": "CollectGovernanceFee", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "checkpointTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "checkpointVaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedShorts", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedLongs", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "CreateCheckpoint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newFeeCollector", - "type": "address" - } - ], - "name": "FeeCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGovernance", - "type": "address" - } - ], - "name": "GovernanceUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "apr", - "type": "uint256" - } - ], - "name": "Initialize", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseProceeds", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isPaused", - "type": "bool" - } - ], - "name": "PauseStatusUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newPauser", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "status", - "type": "bool" - } - ], - "name": "PauserUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - } - ], - "name": "RedeemWithdrawalShares", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "RemoveLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "Sweep", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newSweepCollector", - "type": "address" - } - ], - "name": "SweepCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_maturityTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_bondAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minOutput", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "closeShort", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_withdrawalShares", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minOutputPerShare", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "redeemWithdrawalShares", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "args": [ - { - "minimumShareReserves": "1000000000000000", - "minimumTransactionAmount": "1000000000000000", - "positionDuration": "2592000", - "checkpointDuration": "86400", - "timeStretch": "0", - "governance": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "feeCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "sweepCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "fees": { - "curve": "1000000000000000", - "flat": "8333333333333", - "governanceLP": "150000000000000000", - "governanceZombie": "30000000000000000" - }, - "baseToken": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", - "vaultSharesToken": "0x9db9f2e3d04c0d2d4b5a49664a9c1801d583bb77", - "linkerFactory": "0xE84d966f6f87C7957719ad4BeC7E3bB35a46E8B2", - "linkerCodeHash": "0x9a69ff3b9a110deacb7d941d71222642f269891c0da9fcc15ec7c63fbd216b3f", - "initialVaultSharePrice": "0" - } - ], - "numDeployments": 1, - "bytecode": "0x6102406040523480156200001257600080fd5b50604051620057f0380380620057f08339810160408190526200003591620001e1565b600160005580516001600160a01b039081166080908152602080840151831660a0908152918401516101a0908152918401516101c05260c0808501516101e0526101008086015190915260e0808601519052610120808601519091529184018051519092528151015161014090815281516040908101516101609081529251606090810151610180908152918601518516610200528501516102205290840151600a80546001600160a01b03199081169286169290921790559184015160088054841691851691909117905590920151600980549093169116179055620002d4565b6040516101c081016001600160401b03811182821017156200014957634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b03811681146200016757600080fd5b919050565b6000608082840312156200017f57600080fd5b604051608081016001600160401b0381118282101715620001b057634e487b7160e01b600052604160045260246000fd5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b60006102208284031215620001f557600080fd5b620001ff62000117565b6200020a836200014f565b81526200021a602084016200014f565b60208201526200022d604084016200014f565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101406200028c8185016200014f565b90820152610160620002a08482016200014f565b90820152610180620002b48482016200014f565b908201526101a0620002c9858583016200016c565b908201529392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516153ba6200043660003960005050600050506000818161023b0152612f180152600081816115e101528181611cf501528181611d5801528181612a0c01528181612a5101528181612cd90152612ef2015260008181610f5f01528181610fc2015281816111b30152612ecc01526000611a62015260008181611bb5015281816124ca01526125430152600081816108110152818161112c01528181611b8901526125170152600081816110140152612490015260008181610f3d01528181610fe3015281816111d40152612f3e015260008181610743015281816110a00152818161230e0152613a6c0152600081816105ad0152818161064c01526106ba015260008181604a0152818161188f01528181612786015281816127fc015261292d0152600050506153ba6000f3fe60806040526004361061002d5760003560e01c8063074a6de9146100a857806329b23fc1146100e257600080fd5b366100a3573373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146100a1576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b005b600080fd5b3480156100b457600080fd5b506100c86100c3366004614f13565b610110565b604080519283526020830191909152015b60405180910390f35b3480156100ee57600080fd5b506101026100fd366004614f63565b61012b565b6040519081526020016100d9565b60008061011e858585610144565b915091505b935093915050565b600061013985858585610226565b90505b949350505050565b60008061014f6104ec565b6101588361052f565b600061016261058e565b905061017761016f6105a6565b8260046105dc565b506101853387838888610b30565b90935091506101976020850185614fbd565b73ffffffffffffffffffffffffffffffffffffffff16337f4ce1e73a001c994d4d884cd1e382579f9c1e81eccf26e70ece8caa1b60a8c2cf846101db87868a610d19565b6101e688878b610d48565b6101f660408b0160208c01615001565b604080519485526020850193909352918301521515606082015260800160405180910390a3506101236001600055565b60006102306104ec565b6102398261052f565b7f0000000000000000000000000000000000000000000000000000000000000000841015610293576040517f423bbb4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061029d61058e565b9050854210156102b8576102b261016f6105a6565b506102c6565b6102c4868260046105dc565b505b6102db6102d4600288610d70565b3387610dd6565b60008060008060006102ee8a878d610eef565b945094509450945094508a4210156103ae5780600b6000828254610312919061504d565b9091555061032590508a8685858f61122d565b60006103308c611459565b905061034e61033e8c6114a3565b6103489083615060565b82611503565b610357876115da565b6103635761036361164c565b600061036e8861167e565b9050806103a7576040517f8bdf918d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50506103c5565b6103b8848761168b565b93506103c38661167e565b505b60006103d285888b6117ae565b90508981101561040e576040517fc972651700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8a8c85848a8d61041f600286610d70565b61042c6020830183614fbd565b73ffffffffffffffffffffffffffffffffffffffff16337fcb02fec44af7356703a283b87ccec63f4ea688efc67fee9cdc1834a93260c730886104708c8888610d19565b61047b8d8989610d48565b61048b6040890160208a01615001565b61049f8a6104998d8f61504d565b90611848565b6040805195865260208601949094529284019190915215156060830152608082015260a081018b905260c00160405180910390a450949b50505050505050505050505061013c6001600055565b600260005403610528576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b600061053e6020830183614fbd565b73ffffffffffffffffffffffffffffffffffffffff160361058b576040517ff0dd15fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b60006105a1670de0b6b3a764000061185d565b905090565b60006105d27f0000000000000000000000000000000000000000000000000000000000000000426150af565b6105a190426150c3565b600083815260076020526040812080546fffffffffffffffffffffffffffffffff1615158061060a57504285115b1561062957546fffffffffffffffffffffffffffffffff169050610b29565b6000806106346105a6565b9050808703610645578591506106e8565b60006106717f00000000000000000000000000000000000000000000000000000000000000008961504d565b90505b6000818152600760205260409020546fffffffffffffffffffffffffffffffff16925081811480156106a4575082155b156106ad578692505b826000036106e6576106df7f00000000000000000000000000000000000000000000000000000000000000008261504d565b9050610674565b505b6106f182611910565b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff919091161783556107368661195c565b50600090506007816107687f00000000000000000000000000000000000000000000000000000000000000008b6150c3565b815260208101919091526040016000908120546fffffffffffffffffffffffffffffffff16915061079a60028a610d70565b6000818152600e60205260408120549192508a8a831561091d57600192506000806107c986898c866000611b72565b9150915080600b60008282546107df919061504d565b909155506107fb9050866000846107f5816114a3565b8861122d565b610805818361504d565b915061083586838a8d877f0000000000000000000000000000000000000000000000000000000000000000611c41565b91506108496108448385611848565b611c8b565b600580546002906108719084906201000090046dffffffffffffffffffffffffffff166150d6565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff1602179055506108ac82611910565b600580546010906108e490849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166150fd565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505b600061092a600184610d70565b6000818152600e60205260409020549091508015610a765760019450600080610957838b8e886001611b72565b9150915080600b600082825461096d919061504d565b90915550610989905083600084610983816114a3565b8a611cd5565b61099381836150c3565b91506109a26108448387611848565b600580546002906109ca9084906201000090046dffffffffffffffffffffffffffff166150d6565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550610a0582611910565b60058054601090610a3d90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166150fd565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505b8415610aae57610aa2610a88876114a3565b610a91836114a3565b610a9b9190615060565b6000611503565b610aac8e8e611f8f565b505b6000610ab98f612182565b5090508f7fff888cf98d2696e95c8c39aa98c9ad55a5378008f7a56614c9353b7137a57ab78c868a8686604051610b12959493929190948552602085019390935260408401919091526060830152608082015260a00190565b60405180910390a250989a50505050505050505050505b9392505050565b600080610b3c8561167e565b505060065485906fffffffffffffffffffffffffffffffff1680821115610b7357806fffffffffffffffffffffffffffffffff1691505b81600003610b88576000809250925050610d0f565b610bb37f03000000000000000000000000000000000000000000000000000000000000008984610dd6565b600654600090610bef9084906fffffffffffffffffffffffffffffffff700100000000000000000000000000000000909104811690851661227b565b9050610bfa83611910565b610c049083615126565b600680547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055610c4e81611910565b60068054601090610c8690849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16615126565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550610cc78188876117ae565b9350610cd386846122b7565b841015610d0c576040517fc972651700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505b9550959350505050565b6000610d2b6040830160208401615001565b15610d37575082610b29565b610d418484611848565b9050610b29565b6000610d5a6040830160208401615001565b15610d6957610d4184846122cc565b5082610b29565b60007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115610dcb576040517fb7d0949700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060f89190911b1790565b6000838152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902054811115610e3f576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000838152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452825280832080548590039055858352600e90915281208054839290610e8f9084906150c3565b9091555050604080518481526020810183905260009173ffffffffffffffffffffffffffffffffffffffff85169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4505050565b6000806000806000806000610f03886122e1565b9050610f83610f10612332565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168c847f00000000000000000000000000000000000000000000000000000000000000008e7f000000000000000000000000000000000000000000000000000000000000000061235c565b909850955091506000611007610f97612332565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006123cc565b905061103d8389611038847f00000000000000000000000000000000000000000000000000000000000000006123e3565b612413565b1561104a5761104a61164c565b8a8a6000808061105c8588888761246b565b9b509194509250905061106f81846150c3565b611079908961504d565b9750611085828461504d565b61108f908c61504d565b9a50505050505050506000600760007f00000000000000000000000000000000000000000000000000000000000000008a6110ca91906150c3565b815260208101919091526040016000908120546fffffffffffffffffffffffffffffffff16915042891161111e576000898152600760205260409020546fffffffffffffffffffffffffffffffff16611120565b895b90506111508b8784848e7f0000000000000000000000000000000000000000000000000000000000000000611c41565b965061115c84876150c3565b9550670de0b6b3a76400006111f884611173612332565b61117d919061504d565b6001546111b1908c9070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166150c3565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006123cc565b11156112065761120661164c565b611216878785878686600061257f565b9b9f939e50919c50909a5090975050505050505050565b60035470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166112a76112a28261126f670de0b6b3a76400008661514f565b60045470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1691908a600061261e565b611910565b600480546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790556112e386611910565b6112ed9082615126565b600380546fffffffffffffffffffffffffffffffff92831670010000000000000000000000000000000002921691909117905561132984611910565b6001805460009061134d9084906fffffffffffffffffffffffffffffffff166150fd565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555061138c836126c8565b600380546000906113a1908490600f0b615166565b92506101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff1602179055506113e385611910565b6001805460109061141b90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16615126565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050505050565b6000611481600e600061146d600286610d70565b8152602001908152602001600020546114a3565b611493600e600061146d600187610d70565b61149d9190615060565b92915050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8211156114ff576040517f72dd4e0200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5090565b600061152c611512848361273e565b61151d84600061273e565b6115279190615060565b6126c8565b9050600081600f0b131561159c57600280548291906000906115619084906fffffffffffffffffffffffffffffffff166150fd565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050565b600081600f0b12156115d5576115b1816151b4565b600280546000906115619084906fffffffffffffffffffffffffffffffff16615126565b505050565b60006116067f0000000000000000000000000000000000000000000000000000000000000000836122b7565b60025461162591906fffffffffffffffffffffffffffffffff1661504d565b600154611644906fffffffffffffffffffffffffffffffff1684611848565b101592915050565b6040517fbb55fd2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061149d826004611f8f565b60008060006116998461195c565b909250905060006116aa8686611848565b9050818311156116c2576116bf86838561227b565b95505b828110156116d45780830392506116d9565b600092505b6116e283611c8b565b600580546dffffffffffffffffffffffffffff9290921662010000027fffffffffffffffffffffffffffffffff0000000000000000000000000000ffff90921691909117908190556fffffffffffffffffffffffffffffffff700100000000000000000000000000000000909104168087101561176157869003611765565b5060005b61176e81611910565b600580546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790555085935050505092915050565b6000806117bb8585611848565b90506117c681612754565b9450846000036117da576000915050610b29565b6117ea6040840160208501615001565b1561181957611812856118006020860186614fbd565b61180d60408701876151f2565b6127ca565b9150611840565b61183c8561182a6020860186614fbd565b61183760408701876151f2565b612913565b8491505b509392505050565b6000610b298383670de0b6b3a764000061227b565b6040517f8b32fa23000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690638b32fa23906024015b602060405180830381865afa1580156118ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149d9190615257565b60006fffffffffffffffffffffffffffffffff8211156114ff576040517f1e15f2a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600554600090819061199590849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16611848565b6005546201000090046dffffffffffffffffffffffffffff169250905081811115611b6d5760006119c683836150c3565b90506119d56112a2828661295a565b60058054601090611a0d90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16615126565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506000611a5885836122cc90919063ffffffff16565b90506000611a86827f0000000000000000000000000000000000000000000000000000000000000000611848565b905080600b6000828254611a9a919061504d565b90915550611aaa905081836150c3565b9150611ab582611910565b60018054600090611ad99084906fffffffffffffffffffffffffffffffff166150fd565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550611b188261296f565b60038054600090611b2d908490600f0b615166565b92506101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff1602179055508493505050505b915091565b600080611b7f87856122cc565b91506000611bad837f0000000000000000000000000000000000000000000000000000000000000000611848565b9050611bd9817f0000000000000000000000000000000000000000000000000000000000000000611848565b91508315611bfc57611beb82826150c3565b611bf590846150c3565b9250611c13565b611c0682826150c3565b611c10908461504d565b92505b86861015611c3657611c2683878961227b565b9250611c3382878961227b565b91505b509550959350505050565b600080611c5984611c538a888a61227b565b906122cc565b9050611c6688848661227b565b611c70908261504d565b905086811115611c805786810391505b509695505050505050565b60006dffffffffffffffffffffffffffff8211156114ff576040517f10d62a2e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546fffffffffffffffffffffffffffffffff1683811080611d2057507f0000000000000000000000000000000000000000000000000000000000000000611d1e85836150c3565b105b15611d2d57611d2d61164c565b6003549084900390600f0b611d428482615060565b905083611d4e866114a3565b138015611d8357507f0000000000000000000000000000000000000000000000000000000000000000611d8183836129bb565b105b15611d9057611d9061164c565b60025470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16611df16112a282611dd2670de0b6b3a76400008861514f565b6004546fffffffffffffffffffffffffffffffff1691908c600061261e565b600480547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055611e3c88826150c3565b9050611e4781611910565b600280546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055611e8383611910565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055611ecd826126c8565b600380547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055611f1787611910565b60018054601090611f4f90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166150fd565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050505050505050565b6006547f03000000000000000000000000000000000000000000000000000000000000006000908152600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e95490918291611fff916fffffffffffffffffffffffffffffffff16906150c3565b90508060000361201357600191505061149d565b600061201e856129e1565b9050806000036120335760019250505061149d565b600080612041838589612a9e565b915091508061205757600094505050505061149d565b6000806120648489612ba4565b91509150612082612074826114a3565b61207d90615270565b612c96565b925082612098576000965050505050505061149d565b6120a182611910565b600680546000906120c59084906fffffffffffffffffffffffffffffffff166150fd565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555061210481611910565b6006805460109061213c90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166150fd565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506001965050505050505092915050565b60008060008061219961219486612e11565b612fd3565b91509150806121af575060009485945092505050565b60008086116121bf5760006121c9565b6121c98387611848565b600654600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e95460008080527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c54939450926fffffffffffffffffffffffffffffffff9092169161223d919061504d565b61224791906150c3565b9050806000036122605750600096879650945050505050565b600061226c83836122cc565b98600198509650505050505050565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04841183021582026122b057600080fd5b5091020490565b6000610b298383670de0b6b3a7640000613060565b6000610b2983670de0b6b3a76400008461227b565b6000806122ec6105a6565b90508083116122fc576000612306565b61230681846150c3565b9150610b29827f00000000000000000000000000000000000000000000000000000000000000006122cc565b6001546003546000916105a1916fffffffffffffffffffffffffffffffff90911690600f0b6129bb565b6000808061237d61237588670de0b6b3a76400006150c3565b899087613060565b905086156123bf5761238f88886122b7565b91506123b08a8a846123a98a670de0b6b3a76400006150c3565b89896130a4565b92506123bc838261504d565b90505b9750975097945050505050565b6000610139826123dd85888861227b565b906130c7565b60006124016123fa84670de0b6b3a76400006150c3565b83906122b7565b610b2990670de0b6b3a76400006150c3565b60008061246085612422612332565b61242c919061504d565b6001546111b190879070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166150c3565b909210949350505050565b60008080806124c287866124bb8b6124b561248e8c670de0b6b3a76400006150c3565b7f0000000000000000000000000000000000000000000000000000000000000000906122b7565b906122b7565b9190613060565b93506124ee847f0000000000000000000000000000000000000000000000000000000000000000611848565b9150600061250f61250789670de0b6b3a76400006150c3565b8a9088613060565b905061253b817f00000000000000000000000000000000000000000000000000000000000000006122b7565b9350612567847f0000000000000000000000000000000000000000000000000000000000000000611848565b612571908461504d565b915050945094509450949050565b600080600080600080888810156125ee5786156125a4576125a18d898b61227b565b9c505b6125af8c898b61227b565b9b506125ba8b6114a3565b6125c38d6114a3565b6125cd9190615060565b90506125da8b898b61227b565b9a506125e78a898b61227b565b995061260d565b6125f78b6114a3565b6126008d6114a3565b61260a9190615060565b90505b9b9c9a9b999a975050505050505050565b60008260000361262f5750846126bf565b811561268257612660612642848761504d565b61264c8587611848565b612656888a611848565b611c53919061504d565b9050600061266e858861313c565b90508082101561267c578091505b506126bf565b828503612691575060006126bf565b6126bc61269e84876150c3565b6126a885876122b7565b6126b2888a611848565b611c5391906150c3565b90505b95945050505050565b60007fffffffffffffffffffffffffffffffff8000000000000000000000000000000082128061270757506f7fffffffffffffffffffffffffffffff82135b156114ff576040517fa5353be500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081831361274d5781610b29565b5090919050565b6040517f4346f03e000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690634346f03e906024016118cf565b6040517f42966c68000000000000000000000000000000000000000000000000000000008152600481018590526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906342966c6890602401600060405180830381600087803b15801561285557600080fd5b505af1158015612869573d6000803e3d6000fd5b5050505047905060008473ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146128ca576040519150601f19603f3d011682016040523d82523d6000602084013e6128cf565b606091505b505090508061290a576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50949350505050565b61295473ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016848661314b565b50505050565b6000610b2983670de0b6b3a764000084613060565b60006f7fffffffffffffffffffffffffffffff8211156114ff576040517fa5353be500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806129c884846131d8565b9092509050806129da576129da61164c565b5092915050565b6002546000908190612a05906fffffffffffffffffffffffffffffffff168461295a565b9050612a317f00000000000000000000000000000000000000000000000000000000000000008261504d565b6001546fffffffffffffffffffffffffffffffff161115612a98576001547f000000000000000000000000000000000000000000000000000000000000000090612a8e9083906fffffffffffffffffffffffffffffffff166150c3565b610b2991906150c3565b50919050565b612aa6614e53565b600080612ab284612e11565b90506000612abf82612fd3565b9350905082612ad45750600091506101239050565b6000612afb612af684610160015185610140015161184890919063ffffffff16565b6114a3565b612b1b612af68561012001518661010001516122b790919063ffffffff16565b612b259190615060565b604080516101208101825285815260208082019590955260008052600e85527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c54818301526060810199909952608089019990995260a088015250815160c087015281015160e086015290940151610100840152509092600192509050565b600080600080612bbc8660c001518760e001516131d8565b9150915080612bd357600080935093505050612c8f565b6000612bdf8784613214565b92509050811580612bee575080155b15612c025760008094509450505050612c8f565b6000612c0e8883613323565b905080600003612c28576000809550955050505050612c8f565b87606001518111612c3f5794509250612c8f915050565b5060608701516000612c538986858b6133f4565b905080600003612c6e57600080965096505050505050612c8f565b828110612c8657600080965096505050505050612c8f565b90955093505050505b9250929050565b6001546003546000916fffffffffffffffffffffffffffffffff80821692600f0b9170010000000000000000000000000000000090041683808080612cfe8787877f00000000000000000000000000000000000000000000000000000000000000008d613909565b935093509350935080612d1a5750600098975050505050505050565b868414612d6c57612d2a84611910565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b858314612dbe57612d7c836126c8565b600380547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b848214612e0257612dce82611910565b600180546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790555b50600198975050505050505050565b612e756040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60408051610180810182526001546fffffffffffffffffffffffffffffffff8082168352600354600f0b602084015270010000000000000000000000000000000091829004811693830193909352606082018590527f000000000000000000000000000000000000000000000000000000000000000060808301527f000000000000000000000000000000000000000000000000000000000000000060a08301527f000000000000000000000000000000000000000000000000000000000000000060c08301527f000000000000000000000000000000000000000000000000000000000000000060e08301526002540482166101008201526004549091610120830191612f839116613a21565b81526003546fffffffffffffffffffffffffffffffff7001000000000000000000000000000000009182900481166020840152600454604090930192612fcb92900416613a21565b905292915050565b6000806000806000612fe486613a97565b9150915080612ffb57506000958695509350505050565b6130088660a001516114a3565b61301187613db7565b8361301f89600001516114a3565b61302991906152a8565b61303391906152a8565b61303d9190615060565b9250505060008112156130565750600093849350915050565b9360019350915050565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048411830215820261309557600080fd5b50910281810615159190040190565b6000806130b5888888888888613e1b565b909250905080611c8057611c8061164c565b6000816000036130e05750670de0b6b3a764000061149d565b826000036130f05750600061149d565b60006130fb836114a3565b9050600061311061310b866114a3565b613efc565b9050818102613127670de0b6b3a7640000826152d0565b90506131328161419d565b9695505050505050565b6000818311612a985782610b29565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526115d59084906143b6565b6000806000836131e7866114a3565b6131f19190615060565b90506000811215613209576000809250925050612c8f565b946001945092505050565b60008060008460a001511261323157505060808201516001612c8f565b60008460a0015161324190615270565b9050600061327d85876101000151886000015160e00151670de0b6b3a764000061326b91906150c3565b89516060810151608090910151614451565b9350905082158061328c575080155b1561329f57600080935093505050612c8f565b60006132ab838361295a565b9050670de0b6b3a764000081116132e75780670de0b6b3a76400000394506132e08760c001518661184890919063ffffffff16565b94506132f6565b60008094509450505050612c8f565b8660800151851115613315578660800151600194509450505050612c8f565b506001925050509250929050565b6000806133598460c001518560e00151866101000151876000015160a0015161334b886114a3565b61335490615270565b613909565b8751604081019290925260208201929092529190915290508061338057600091505061149d565b600061338f8560000151612fd3565b92509050816133a35760009250505061149d565b846020015181106133b95760009250505061149d565b6000856060015186604001516133cf919061504d565b90506133ea8287602001518361227b9092919063ffffffff16565b61313290826150c3565b6000808560600151866040015161340b919061504d565b60208701516060880151919250600091613425918461227b565b90508660a0015160000361343c57915061013c9050565b6000808089600488101561344f57600497505b60005b888110156137ab57613464868b61313c565b9550600061348d8360c001518460e00151856101000151866000015160a0015161334b8c6114a3565b865160408101929092526020820192909252919091529050806134bb5760009850505050505050505061013c565b60006134ca8e60000151612fd3565b92509050816134e5576000995050505050505050505061013c565b6134f084828b6144fa565b156135065787995050505050505050505061013c565b60008460a00151131561366f57835180516020820151604083015160a084015160e09094015160009461355a9493929161354890670de0b6b3a76400006150c3565b8a516060810151608090910151614566565b93509050826135765760009a505050505050505050505061013c565b808560a001511061366d5761358a8561466b565b9099509250826135a75760009a505050505050505050505061013c565b6135cc8560c001518660e00151876101000151886000015160a0015161334b8e6114a3565b885160408101929092526020820192909252919091529250826135fc5760009a505050505050505050505061013c565b845180516020820151604083015160a084015160e09094015161362c949061354890670de0b6b3a76400006150c3565b93509050826136485760009a505050505050505050505061013c565b8e60a00151811161366557889a505050505050505050505061013c565b505050613452565b505b6000613680858f8760a00151614741565b935090508215806136995750670de0b6b3a76400008110155b156136b15760009a505050505050505050505061013c565b80670de0b6b3a764000003905060006136de612af6876040015188602001516122b790919063ffffffff16565b6136eb612af6858e611848565b6136f59190615060565b9050881580613713575061370889614a9c565b61371182614a9c565b125b15613722578098508997508296505b600081131561374a576137398b611c5383856122cc565b613743908b61504d565b995061379c565b60008112156137935760006137648c611c53858186615270565b90508a81101561377857808b039a5061378d565b60009c5050505050505050505050505061013c565b5061379c565b505050506137ab565b84600101945050505050613452565b5060006137d38260c001518360e00151846101000151856000015160a0015161334b8b6114a3565b8551604081019290925260208201929092529190915290508061380057600097505050505050505061013c565b600061380f8360000151614ab4565b90506000613831612af6856040015186602001516122b790919063ffffffff16565b61383e612af6848c611848565b6138489190615060565b905061385387614a9c565b61385c82614a9c565b1215613869578795508194505b613890613884655af3107a4000670de0b6b3a76400006150c3565b6020860151908b613060565b60408501516138a09087906122cc565b10806138e057506138ce6138c2655af3107a4000670de0b6b3a764000061504d565b6020860151908b61227b565b60408501516138de90879061295a565b115b156138f7576000995050505050505050505061013c565b50939c9b505050505050505050505050565b6000806000808460000361392857508792508691508590506001613a15565b6000856139348b6114a3565b61393e91906152a8565b9050613949876114a3565b81121561396457600080600080945094509450945050613a15565b809450600089126139845761397d612af6868b8d61227b565b93506139a7565b61399b612af66139938b615270565b87908d613060565b6139a490615270565b93505b6000806139b48c8c6131d8565b91509150806139d3576000806000809650965096509650505050613a15565b60006139df88886131d8565b92509050816139ff57600080600080975097509750975050505050613a15565b613a0a8b828561227b565b955060019450505050505b95509550955095915050565b600080670de0b6b3a7640000613a356105a6565b613a3f919061514f565b9050808311613a4f576000613a59565b613a5981846150c3565b9150610b29613a90670de0b6b3a76400007f000000000000000000000000000000000000000000000000000000000000000061514f565b83906122cc565b6000806000613abc612af685610160015186610140015161184890919063ffffffff16565b613adc612af68661012001518761010001516122b790919063ffffffff16565b613ae69190615060565b9050600080613afd866000015187602001516131d8565b9150915080613b1457506000958695509350505050565b6000831315613c555760008390506000613b62886000015189602001518a604001518b60a001518c60e00151670de0b6b3a7640000613b5391906150c3565b8d606001518e60800151614566565b9350905082613b7b575060009788975095505050505050565b818110613c19576000613bb5858a60400151858c60e00151670de0b6b3a7640000613ba691906150c3565b8d606001518e60800151614afd565b9450905083158015613bca57508860c0015183105b15613be15750600098600198509650505050505050565b83613bf757506000988998509650505050505050565b613c00816114a3565b613c0990615270565b9960019950975050505050505050565b6000886020015112613c4157613c388860a0015185612af691906150c3565b61226c90615270565b60a08801518851613c3891612af6916150c3565b6000831215613da8576000613c6984615270565b90506000613c9d8489604001518a60e00151670de0b6b3a7640000613c8e91906150c3565b8b606001518c60800151614451565b9350905082613cb6575060009788975095505050505050565b818110613d3b576000613cf0858a60400151858c60e00151670de0b6b3a7640000613ce191906150c3565b8d606001518e60800151613e1b565b9450905083158015613d0557508860c0015183105b15613d1c5750600098600198509650505050505050565b83613d3257506000988998509650505050505050565b613c09816114a3565b6000613d6d858a604001518b60e00151670de0b6b3a7640000613d5e91906150c3565b8c606001518d60800151614bbd565b9450905083613d8757506000988998509650505050505050565b613c09613d9e8a606001518486611c5391906150c3565b612af6908361504d565b50600095600195509350505050565b6000613dea612af6836101200151670de0b6b3a7640000613dd891906150c3565b60608501516101008601519190613060565b611493612af6846101600151670de0b6b3a7640000613e0991906150c3565b6060860151610140870151919061227b565b6000806000613e2d8989888888614c6c565b905086881015613e44576000809250925050613ef1565b9686900396613e5388876130c7565b975087811015613e6a576000809250925050613ef1565b878103613e78818688613060565b9050670de0b6b3a76400008110613eac57613ea5613e9e670de0b6b3a76400008961295a565b82906130c7565b9050613ec4565b613ec1613e9e670de0b6b3a7640000896122cc565b90505b613ece818661295a565b905089811015613ee657600080935093505050613ef1565b899003925060019150505b965096945050505050565b6000808213613f37576040517fe61b497500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff10600390811b90911782811c600f1060021b1782811c909110600190811b90911782811c90911017609f8181036060019290921b917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0820190613fe19084901c6114a3565b6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b391909102017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c182136141ce57506000919050565b680755bf798b4a1bf1e58212614210576040517f73a2d6b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b3988102909303927fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550484018402606090811d6d0277594991cfc85f6e2461837cd9018502811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018502811d6db1bbb201f443cf962f1a1d3db4a5018502811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018502811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765087018702831d9081019087017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e01810290921d6e0587f503bb6ea29d25fcb74019645001860279d835ebba824c98fb31b83b2ca45c00000000000000000000000001818105955092935090919061313274029d9dc38563c32e5c2f6dc192ee70ef65f9978af3860260c38690031c6114a3565b60006143d873ffffffffffffffffffffffffffffffffffffffff841683614c9b565b905080516000141580156143fd5750808060200190518101906143fb9190615338565b155b156115d5576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b60008060006144638888888888614c6c565b9050600061448e670de0b6b3a764000061447d88886122cc565b614487919061504d565b839061295a565b9050670de0b6b3a764000081106144bb576144b4613e9e670de0b6b3a76400008961295a565b90506144d3565b6144d0613e9e670de0b6b3a7640000896122cc565b90505b808810156144e957600080935093505050610d0f565b909603976001975095505050505050565b602083015160009061450c908461295a565b604085015161451c9084906122cc565b1015801561013c5750602084015161454c9084614545633b9aca00670de0b6b3a764000061504d565b919061227b565b604085015161455c90849061295a565b1115949350505050565b60008060008812156145885761457b88615270565b614585908761504d565b95505b6000806145958b8b6131d8565b91509150806145ac5760008093509350505061465f565b60006145bb838b8a8a8a614ca9565b905060006145d86145d08a6123dd8a8e6122b7565b899089613060565b9050808210156145f257600080955095505050505061465f565b808203670de0b6b3a7640000811061462057614619613e9e670de0b6b3a76400008c6122cc565b9050614638565b614635613e9e670de0b6b3a76400008c61295a565b90505b8b8110156146515760008096509650505050505061465f565b8b9003955060019450505050505b97509795505050505050565b60008060008360e001511361468557506000928392509050565b60006146948460000151613db7565b905060006146c08560400151866060015187604001516146b4919061504d565b60208801519190613060565b9050600082126146e757808210156146da578190036146fd565b5060009485945092505050565b6146f082615270565b6146fa908261504d565b90505b60e085015160c0860151614712918390613060565b9050808560c00151101561472d575060009485945092505050565b808560c00151036001935093505050915091565b60008060008084126147655785516040015161475e90859061504d565b90506147a0565b600061477085615270565b87516040015190915081101561479057865160400151819003915061479e565b600080935093505050610123565b505b8551805160209091015160009182916147b991906131d8565b91509150806147d15760008094509450505050610123565b875160e0810151604090910151600091614806916147fa916147f391906130c7565b8a90611848565b6101008b01519061295a565b895160e081015160809091015161483191614825916123dd9088611848565b8b51606001519061295a565b61483b919061504d565b905060006148736148676148608c6000015160e00151886130c790919063ffffffff16565b8b906122b7565b6101008c0151906122cc565b90508082101561488e57600080965096505050505050610123565b808203915060006148d0858c60000151604001518d6000015160e00151670de0b6b3a76400006148be91906150c3565b8e516060810151608090910151614c6c565b905060006148fa8c6000015160e00151670de0b6b3a76400006148f391906150c3565b88906130c7565b905080821015614917576000809850985050505050505050610123565b8b51608081015160609091015191830391614933918391613060565b9050670de0b6b3a76400008110614977578b5160e0015161497090613e9e9061496490670de0b6b3a76400006150c3565b8e5160e001519061295a565b90506149a6565b8b5160e001516149a390613e9e9061499790670de0b6b3a76400006150c3565b8e5160e00151906122cc565b90505b8b51606001516149b99085908390613060565b935083670de0b6b3a764000011156149dd5783670de0b6b3a76400000393506149f1565b600060019850985050505050505050610123565b60008c60e0015112614a545760c08c015160e08d0151614a109161295a565b9250670de0b6b3a7640000831115614a35576000809850985050505050505050610123565b670de0b6b3a76400009290920391614a4d8484611848565b9350614a89565b614a86614a6d8d60c001518e60e00151611c5390615270565b614a7f90670de0b6b3a764000061504d565b8590611848565b93505b50919a60019a5098505050505050505050565b6000808212614aab578161149d565b61149d82615270565b6000806000614ac284612fd3565b91509150806129da576040517faa2c651600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000614b0f8989888888614c6c565b9050614b1f866123dd898b61504d565b975087811015614b36576000809250925050613ef1565b878103614b44818688613060565b9050670de0b6b3a76400008110614b7157614b6a613e9e670de0b6b3a76400008961295a565b9050614b89565b614b86613e9e670de0b6b3a7640000896122cc565b90505b614b93818661295a565b9050808a1015614bab57600080935093505050613ef1565b90980398600198509650505050505050565b6000806000614bcf8888888888614ca9565b90506000614bf3670de0b6b3a7640000614be9888861295a565b613a90919061504d565b9050670de0b6b3a76400008110614c2057614c19613e9e670de0b6b3a7640000896122cc565b9050614c38565b614c35613e9e670de0b6b3a76400008961295a565b90505b614c4281866122cc565b905088811015614c5a57600080935093505050610d0f565b97909703976001975095505050505050565b6000614c7885856130c7565b614c91614c89866123dd868b6122b7565b859085613060565b6126bc919061504d565b6060610b2983836000614cce565b6000614cb585856130c7565b614c91614cc6866123dd868b611848565b85908561227b565b606081471015614d0c576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401614448565b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051614d359190615355565b60006040518083038185875af1925050503d8060008114614d72576040519150601f19603f3d011682016040523d82523d6000602084013e614d77565b606091505b5091509150613132868383606082614d9757614d9282614e11565b610b29565b8151158015614dbb575073ffffffffffffffffffffffffffffffffffffffff84163b155b15614e0a576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401614448565b5080610b29565b805115614e215780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051806101200160405280614ec36040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060608284031215612a9857600080fd5b600080600060608486031215614f2857600080fd5b8335925060208401359150604084013567ffffffffffffffff811115614f4d57600080fd5b614f5986828701614f01565b9150509250925092565b60008060008060808587031215614f7957600080fd5b843593506020850135925060408501359150606085013567ffffffffffffffff811115614fa557600080fd5b614fb187828801614f01565b91505092959194509250565b600060208284031215614fcf57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610b2957600080fd5b801515811461058b57600080fd5b60006020828403121561501357600080fd5b8135610b2981614ff3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561149d5761149d61501e565b81810360008312801583831316838312821617156129da576129da61501e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826150be576150be615080565b500690565b8181038181111561149d5761149d61501e565b6dffffffffffffffffffffffffffff8181168382160190808211156129da576129da61501e565b6fffffffffffffffffffffffffffffffff8181168382160190808211156129da576129da61501e565b6fffffffffffffffffffffffffffffffff8281168282160390808211156129da576129da61501e565b808202811582820484141761149d5761149d61501e565b600f81810b9083900b016f7fffffffffffffffffffffffffffffff81137fffffffffffffffffffffffffffffffff800000000000000000000000000000008212171561149d5761149d61501e565b600081600f0b7fffffffffffffffffffffffffffffffff8000000000000000000000000000000081036151e9576151e961501e565b60000392915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261522757600080fd5b83018035915067ffffffffffffffff82111561524257600080fd5b602001915036819003821315612c8f57600080fd5b60006020828403121561526957600080fd5b5051919050565b60007f800000000000000000000000000000000000000000000000000000000000000082036152a1576152a161501e565b5060000390565b80820182811260008312801582168215821617156152c8576152c861501e565b505092915050565b6000826152df576152df615080565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f8000000000000000000000000000000000000000000000000000000000000000831416156153335761533361501e565b500590565b60006020828403121561534a57600080fd5b8151610b2981614ff3565b6000825160005b81811015615376576020818601810151858301520161535c565b50600092019182525091905056fea2646970667358221220eaafec69ca25b68f5989aaa27683526de5f12ec1ea0d3b2b8334388a5a51fa7464736f6c63430008140033" -} \ No newline at end of file diff --git a/deployments/sepolia/TEST_RETH_RETHTarget2.json b/deployments/sepolia/TEST_RETH_RETHTarget2.json deleted file mode 100644 index 48700b296..000000000 --- a/deployments/sepolia/TEST_RETH_RETHTarget2.json +++ /dev/null @@ -1,1002 +0,0 @@ -{ - "address": "0xbC559E29191D45Cb4A8D18b25Ac91Ccd3cb9c345", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "AddressInsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "DistributeExcessIdleFailed", - "type": "error" - }, - { - "inputs": [], - "name": "ExpInvalidExponent", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientLiquidity", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidPresentValue", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidTimestamp", - "type": "error" - }, - { - "inputs": [], - "name": "LnInvalidInput", - "type": "error" - }, - { - "inputs": [], - "name": "MinimumTransactionAmount", - "type": "error" - }, - { - "inputs": [], - "name": "OutputLimit", - "type": "error" - }, - { - "inputs": [], - "name": "ReentrancyGuardReentrantCall", - "type": "error" - }, - { - "inputs": [], - "name": "RestrictedZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "SafeERC20FailedOperation", - "type": "error" - }, - { - "inputs": [], - "name": "TransferFailed", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt128", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt256", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToUint112", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToUint128", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "AddLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "basePayment", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fees", - "type": "uint256" - } - ], - "name": "CollectGovernanceFee", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "checkpointTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "checkpointVaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedShorts", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedLongs", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "CreateCheckpoint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newFeeCollector", - "type": "address" - } - ], - "name": "FeeCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGovernance", - "type": "address" - } - ], - "name": "GovernanceUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "apr", - "type": "uint256" - } - ], - "name": "Initialize", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseProceeds", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isPaused", - "type": "bool" - } - ], - "name": "PauseStatusUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newPauser", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "status", - "type": "bool" - } - ], - "name": "PauserUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - } - ], - "name": "RedeemWithdrawalShares", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "RemoveLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "Sweep", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newSweepCollector", - "type": "address" - } - ], - "name": "SweepCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_maturityTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_bondAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minOutput", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "closeLong", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_lpShares", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minOutputPerShare", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "removeLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "args": [ - { - "minimumShareReserves": "1000000000000000", - "minimumTransactionAmount": "1000000000000000", - "positionDuration": "2592000", - "checkpointDuration": "86400", - "timeStretch": "0", - "governance": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "feeCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "sweepCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "fees": { - "curve": "1000000000000000", - "flat": "8333333333333", - "governanceLP": "150000000000000000", - "governanceZombie": "30000000000000000" - }, - "baseToken": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", - "vaultSharesToken": "0x9db9f2e3d04c0d2d4b5a49664a9c1801d583bb77", - "linkerFactory": "0xE84d966f6f87C7957719ad4BeC7E3bB35a46E8B2", - "linkerCodeHash": "0x9a69ff3b9a110deacb7d941d71222642f269891c0da9fcc15ec7c63fbd216b3f", - "initialVaultSharePrice": "0" - } - ], - "numDeployments": 1, - "bytecode": "0x6102406040523480156200001257600080fd5b506040516200575e3803806200575e8339810160408190526200003591620001e1565b600160005580516001600160a01b039081166080908152602080840151831660a0908152918401516101a0908152918401516101c05260c0808501516101e0526101008086015190915260e0808601519052610120808601519091529184018051519092528151015161014090815281516040908101516101609081529251606090810151610180908152918601518516610200528501516102205290840151600a80546001600160a01b03199081169286169290921790559184015160088054841691851691909117905590920151600980549093169116179055620002d4565b6040516101c081016001600160401b03811182821017156200014957634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b03811681146200016757600080fd5b919050565b6000608082840312156200017f57600080fd5b604051608081016001600160401b0381118282101715620001b057634e487b7160e01b600052604160045260246000fd5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b60006102208284031215620001f557600080fd5b620001ff62000117565b6200020a836200014f565b81526200021a602084016200014f565b60208201526200022d604084016200014f565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101406200028c8185016200014f565b90820152610160620002a08482016200014f565b90820152610180620002b48482016200014f565b908201526101a0620002c9858583016200016c565b908201529392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051610200516102205161533d6200042160003960005050600050506000818161015a015281816103100152612420015260008181611393015281816113f6015281816117ba015281816123fa01528181612c2001528181612c650152612eed0152600081816111cc0152818161123201526123d401526000611c26015260008181611d79015281816126de01526127570152600081816108ca01528181611d4d015261272b015260006126a40152600081816111aa0152818161125301526124460152600081816107fc015281816112db015281816125aa01526130b4015260008181610666015281816107050152610773015260008181604a01528181611a53015281816129c001528181612a360152612b6701526000505061533d6000f3fe60806040526004361061002d5760003560e01c8063cbc13434146100a8578063ded06231146100e257600080fd5b366100a3573373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146100a1576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b005b600080fd5b3480156100b457600080fd5b506100c86100c3366004614e96565b610110565b604080519283526020830191909152015b60405180910390f35b3480156100ee57600080fd5b506101026100fd366004614ee6565b61012b565b6040519081526020016100d9565b60008061011e858585610144565b915091505b935093915050565b6000610139858585856102fb565b90505b949350505050565b60008061014f6105a5565b610158836105e8565b7f00000000000000000000000000000000000000000000000000000000000000008510156101b2576040517f423bbb4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006101bc610647565b90506101d16101c961065f565b826004610695565b506101de60003388610be9565b6102157f030000000000000000000000000000000000000000000000000000000000000061020f6020870187614f40565b88610d03565b60006102306102276020870187614f40565b88848989610dbd565b909450905061023f8188614fa5565b9250600061024c83610fa6565b50905061025c6020870187614f40565b73ffffffffffffffffffffffffffffffffffffffff16337f56e07298e87dce53d3298b9775b947b87b39b2dde51df86371f0540885da83c98a6102a089888c61109f565b6102ab8a898d6110ce565b6102bb60408d0160208e01614fc6565b60408051948552602085019390935291830152151560608201526080810188905260a0810185905260c00160405180910390a35050506101236001600055565b60006103056105a5565b61030e826105e8565b7f0000000000000000000000000000000000000000000000000000000000000000841015610368576040517f423bbb4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610372610647565b90508542101561038d576103876101c961065f565b5061039b565b61039986826004610695565b505b6103b06103a96001886110f6565b3387610be9565b60008060008060006103c38a878d61115c565b9450945094509450945060008b90508b4210156104885781600b60008282546103ec9190614fe3565b909155506103ff90508b87868685611373565b600061040a82611632565b90506104286104188d61167c565b6104229083614ff6565b826116dc565b610431886117b3565b61043d5761043d611825565b600061044889611857565b905080610481576040517f8bdf918d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505061049f565b6104928588611864565b945061049d87611857565b505b60006104ac86898c611987565b90508a8110156104e8576040517fc972651700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8b888b6104f66001866110f6565b6105036020830183614f40565b73ffffffffffffffffffffffffffffffffffffffff16337fc0e1704f2ff88686bdc2a73d31e0dc4e054eddbdc3564af7a148229cf857b8028861054789888861109f565b6105528a89896110ce565b6105626040890160208a01614fc6565b60408051948552602085019390935291830152151560608201526080810188905260a00160405180910390a45091995050505050505050505061013c6001600055565b6002600054036105e1576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b60006105f76020830183614f40565b73ffffffffffffffffffffffffffffffffffffffff1603610644576040517ff0dd15fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b600061065a670de0b6b3a7640000611a21565b905090565b600061068b7f00000000000000000000000000000000000000000000000000000000000000004261504d565b61065a9042614fa5565b600083815260076020526040812080546fffffffffffffffffffffffffffffffff161515806106c357504285115b156106e257546fffffffffffffffffffffffffffffffff169050610be2565b6000806106ed61065f565b90508087036106fe578591506107a1565b600061072a7f000000000000000000000000000000000000000000000000000000000000000089614fe3565b90505b6000818152600760205260409020546fffffffffffffffffffffffffffffffff169250818114801561075d575082155b15610766578692505b8260000361079f576107987f000000000000000000000000000000000000000000000000000000000000000082614fe3565b905061072d565b505b6107aa82611ad4565b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff919091161783556107ef86611b20565b50600090506007816108217f00000000000000000000000000000000000000000000000000000000000000008b614fa5565b815260208101919091526040016000908120546fffffffffffffffffffffffffffffffff16915061085360028a6110f6565b6000818152600e60205260408120549192508a8a83156109d6576001925060008061088286898c866000611d36565b9150915080600b60008282546108989190614fe3565b909155506108b49050866000846108ae8161167c565b88611e05565b6108be8183614fe3565b91506108ee86838a8d877f000000000000000000000000000000000000000000000000000000000000000061202c565b91506109026108fd8385612076565b61208b565b6005805460029061092a9084906201000090046dffffffffffffffffffffffffffff16615061565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff16021790555061096582611ad4565b6005805460109061099d90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16615088565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505b60006109e36001846110f6565b6000818152600e60205260409020549091508015610b2f5760019450600080610a10838b8e886001611d36565b9150915080600b6000828254610a269190614fe3565b90915550610a42905083600084610a3c8161167c565b8a611373565b610a4c8183614fa5565b9150610a5b6108fd8387612076565b60058054600290610a839084906201000090046dffffffffffffffffffffffffffff16615061565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550610abe82611ad4565b60058054601090610af690849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16615088565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505b8415610b6757610b5b610b418761167c565b610b4a8361167c565b610b5491906150b1565b60006116dc565b610b658e8e6120d5565b505b6000610b728f610fa6565b5090508f7fff888cf98d2696e95c8c39aa98c9ad55a5378008f7a56614c9353b7137a57ab78c868a8686604051610bcb959493929190948552602085019390935260408401919091526060830152608082015260a00190565b60405180910390a250989a50505050505050505050505b9392505050565b6000838152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902054811115610c52576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000838152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452825280832080548590039055858352600e90915281208054839290610ca2908490614fa5565b9091555050604080518481526020810183905260009173ffffffffffffffffffffffffffffffffffffffff85169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6291015b60405180910390a4505050565b6000838152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616845290915281208054839290610d42908490614fe3565b90915550506000838152600e602052604081208054839290610d65908490614fe3565b9091555050604080518481526020810183905273ffffffffffffffffffffffffffffffffffffffff84169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629101610cf6565b600080610dc985611857565b505060065485906fffffffffffffffffffffffffffffffff1680821115610e0057806fffffffffffffffffffffffffffffffff1691505b81600003610e15576000809250925050610f9c565b610e407f03000000000000000000000000000000000000000000000000000000000000008984610be9565b600654600090610e7c9084906fffffffffffffffffffffffffffffffff70010000000000000000000000000000000090910481169085166122c8565b9050610e8783611ad4565b610e9190836150d1565b600680547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055610edb81611ad4565b60068054601090610f1390849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166150d1565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550610f54818887611987565b9350610f608684612304565b841015610f99576040517fc972651700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505b9550959350505050565b600080600080610fbd610fb886612319565b6124db565b9150915080610fd3575060009485945092505050565b6000808611610fe3576000610fed565b610fed8387612076565b600654600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e95460008080527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c54939450926fffffffffffffffffffffffffffffffff909216916110619190614fe3565b61106b9190614fa5565b9050806000036110845750600096879650945050505050565b60006110908383612568565b98600198509650505050505050565b60006110b16040830160208401614fc6565b156110bd575082610be2565b6110c78484612076565b9050610be2565b60006110e06040830160208401614fc6565b156110ef576110c78484612568565b5082610be2565b60007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115611151576040517fb7d0949700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060f89190911b1790565b60008060008060008060006111708861257d565b90506111f061117d6125ce565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168c847f00000000000000000000000000000000000000000000000000000000000000008e7f00000000000000000000000000000000000000000000000000000000000000006125f8565b9098509650915060008080806112776112076125ce565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612668565b90508c6112868f87848461267f565b9a50919650909450925061129a8486614fa5565b6112a49088614fa5565b96506112b08386614fe3565b6112ba908c614fa5565b9a506112c6888c614fe3565b995050505050505061135e85858385600760007f00000000000000000000000000000000000000000000000000000000000000008e6113059190614fa5565b81526020810191909152604001600020546fffffffffffffffffffffffffffffffff16428d116113555760008d8152600760205260409020546fffffffffffffffffffffffffffffffff16611357565b8d5b6001612793565b999d939c50919a509098509095505050505050565b6001546fffffffffffffffffffffffffffffffff16838110806113be57507f00000000000000000000000000000000000000000000000000000000000000006113bc8583614fa5565b105b156113cb576113cb611825565b6003549084900390600f0b6113e084826150b1565b9050836113ec8661167c565b13801561142157507f000000000000000000000000000000000000000000000000000000000000000061141f8383612832565b105b1561142e5761142e611825565b60025470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661149461148f82611470670de0b6b3a7640000886150fa565b6004546fffffffffffffffffffffffffffffffff1691908c6000612858565b611ad4565b600480547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790556114df8882614fa5565b90506114ea81611ad4565b600280546fffffffffffffffffffffffffffffffff92831670010000000000000000000000000000000002921691909117905561152683611ad4565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905561157082612902565b600380547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790556115ba87611ad4565b600180546010906115f290849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16615088565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050505050505050565b600061165a600e60006116466002866110f6565b81526020019081526020016000205461167c565b61166c600e60006116466001876110f6565b61167691906150b1565b92915050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8211156116d8576040517f72dd4e0200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5090565b60006117056116eb8483612978565b6116f6846000612978565b61170091906150b1565b612902565b9050600081600f0b1315611775576002805482919060009061173a9084906fffffffffffffffffffffffffffffffff16615088565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050565b600081600f0b12156117ae5761178a81615111565b6002805460009061173a9084906fffffffffffffffffffffffffffffffff166150d1565b505050565b60006117df7f000000000000000000000000000000000000000000000000000000000000000083612304565b6002546117fe91906fffffffffffffffffffffffffffffffff16614fe3565b60015461181d906fffffffffffffffffffffffffffffffff1684612076565b101592915050565b6040517fbb55fd2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006116768260046120d5565b600080600061187284611b20565b909250905060006118838686612076565b90508183111561189b576118988683856122c8565b95505b828110156118ad5780830392506118b2565b600092505b6118bb8361208b565b600580546dffffffffffffffffffffffffffff9290921662010000027fffffffffffffffffffffffffffffffff0000000000000000000000000000ffff90921691909117908190556fffffffffffffffffffffffffffffffff700100000000000000000000000000000000909104168087101561193a5786900361193e565b5060005b61194781611ad4565b600580546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790555085935050505092915050565b6000806119948585612076565b905061199f8161298e565b9450846000036119b3576000915050610be2565b6119c36040840160208501614fc6565b156119f2576119eb856119d96020860186614f40565b6119e6604087018761514f565b612a04565b9150611a19565b611a1585611a036020860186614f40565b611a10604087018761514f565b612b4d565b8491505b509392505050565b6040517f8b32fa23000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690638b32fa23906024015b602060405180830381865afa158015611ab0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167691906151b4565b60006fffffffffffffffffffffffffffffffff8211156116d8576040517f1e15f2a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005546000908190611b5990849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16612076565b6005546201000090046dffffffffffffffffffffffffffff169250905081811115611d31576000611b8a8383614fa5565b9050611b9961148f8286612b94565b60058054601090611bd190849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166150d1565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506000611c1c858361256890919063ffffffff16565b90506000611c4a827f0000000000000000000000000000000000000000000000000000000000000000612076565b905080600b6000828254611c5e9190614fe3565b90915550611c6e90508183614fa5565b9150611c7982611ad4565b60018054600090611c9d9084906fffffffffffffffffffffffffffffffff16615088565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550611cdc82612ba9565b60038054600090611cf1908490600f0b6151cd565b92506101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff1602179055508493505050505b915091565b600080611d438785612568565b91506000611d71837f0000000000000000000000000000000000000000000000000000000000000000612076565b9050611d9d817f0000000000000000000000000000000000000000000000000000000000000000612076565b91508315611dc057611daf8282614fa5565b611db99084614fa5565b9250611dd7565b611dca8282614fa5565b611dd49084614fe3565b92505b86861015611dfa57611dea8387896122c8565b9250611df78287896122c8565b91505b509550959350505050565b60035470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16611e7a61148f82611e47670de0b6b3a7640000866150fa565b60045470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1691908a6000612858565b600480546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055611eb686611ad4565b611ec090826150d1565b600380546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055611efc84611ad4565b60018054600090611f209084906fffffffffffffffffffffffffffffffff16615088565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550611f5f83612902565b60038054600090611f74908490600f0b6151cd565b92506101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff160217905550611fb685611ad4565b60018054601090611fee90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166150d1565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050505050565b6000806120448461203e8a888a6122c8565b90612568565b90506120518884866122c8565b61205b9082614fe3565b90508681111561206b5786810391505b509695505050505050565b6000610be28383670de0b6b3a76400006122c8565b60006dffffffffffffffffffffffffffff8211156116d8576040517f10d62a2e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006547f03000000000000000000000000000000000000000000000000000000000000006000908152600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e95490918291612145916fffffffffffffffffffffffffffffffff1690614fa5565b905080600003612159576001915050611676565b600061216485612bf5565b90508060000361217957600192505050611676565b600080612187838589612cb2565b915091508061219d576000945050505050611676565b6000806121aa8489612db8565b915091506121c86121ba8261167c565b6121c39061521b565b612eaa565b9250826121de5760009650505050505050611676565b6121e782611ad4565b6006805460009061220b9084906fffffffffffffffffffffffffffffffff16615088565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555061224a81611ad4565b6006805460109061228290849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16615088565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506001965050505050505092915050565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04841183021582026122fd57600080fd5b5091020490565b6000610be28383670de0b6b3a7640000613025565b61237d6040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60408051610180810182526001546fffffffffffffffffffffffffffffffff8082168352600354600f0b602084015270010000000000000000000000000000000091829004811693830193909352606082018590527f000000000000000000000000000000000000000000000000000000000000000060808301527f000000000000000000000000000000000000000000000000000000000000000060a08301527f000000000000000000000000000000000000000000000000000000000000000060c08301527f000000000000000000000000000000000000000000000000000000000000000060e0830152600254048216610100820152600454909161012083019161248b9116613069565b81526003546fffffffffffffffffffffffffffffffff70010000000000000000000000000000000091829004811660208401526004546040909301926124d392900416613069565b905292915050565b60008060008060006124ec866130df565b915091508061250357506000958695509350505050565b6125108660a0015161167c565b612519876133ff565b83612527896000015161167c565b6125319190614ff6565b61253b9190614ff6565b61254591906150b1565b92505050600081121561255e5750600093849350915050565b9360019350915050565b6000610be283670de0b6b3a7640000846122c8565b60008061258861065f565b90508083116125985760006125a2565b6125a28184614fa5565b9150610be2827f0000000000000000000000000000000000000000000000000000000000000000612568565b60015460035460009161065a916fffffffffffffffffffffffffffffffff90911690600f0b612832565b6000808061261961261188670de0b6b3a7640000614fa5565b8990876122c8565b9050861561265b5761262b8888612076565b915061264c8a8a846126458a670de0b6b3a7640000614fa5565b8989613463565b92506126588382614fe3565b90505b9750975097945050505050565b6000610139826126798588886122c8565b90613486565b60008080806126d687866126cf8b6126c96126a28c670de0b6b3a7640000614fa5565b7f000000000000000000000000000000000000000000000000000000000000000090612304565b90612304565b9190613025565b9350612702847f0000000000000000000000000000000000000000000000000000000000000000612076565b9150600061272361271b89670de0b6b3a7640000614fa5565b8a9088613025565b905061274f817f0000000000000000000000000000000000000000000000000000000000000000612304565b935061277b847f0000000000000000000000000000000000000000000000000000000000000000612076565b6127859084614fe3565b915050945094509450949050565b600080600080600080888810156128025786156127b8576127b58d898b6122c8565b9c505b6127c38c898b6122c8565b9b506127ce8b61167c565b6127d78d61167c565b6127e191906150b1565b90506127ee8b898b6122c8565b9a506127fb8a898b6122c8565b9950612821565b61280b8b61167c565b6128148d61167c565b61281e91906150b1565b90505b9b9c9a9b999a975050505050505050565b60008061283f84846134fb565b90925090508061285157612851611825565b5092915050565b6000826000036128695750846128f9565b81156128bc5761289a61287c8487614fe3565b6128868587612076565b612890888a612076565b61203e9190614fe3565b905060006128a88588613537565b9050808210156128b6578091505b506128f9565b8285036128cb575060006128f9565b6128f66128d88487614fa5565b6128e28587612304565b6128ec888a612076565b61203e9190614fa5565b90505b95945050505050565b60007fffffffffffffffffffffffffffffffff8000000000000000000000000000000082128061294157506f7fffffffffffffffffffffffffffffff82135b156116d8576040517fa5353be500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008183136129875781610be2565b5090919050565b6040517f4346f03e000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690634346f03e90602401611a93565b6040517f42966c68000000000000000000000000000000000000000000000000000000008152600481018590526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906342966c6890602401600060405180830381600087803b158015612a8f57600080fd5b505af1158015612aa3573d6000803e3d6000fd5b5050505047905060008473ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114612b04576040519150601f19603f3d011682016040523d82523d6000602084013e612b09565b606091505b5050905080612b44576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50949350505050565b612b8e73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168486613546565b50505050565b6000610be283670de0b6b3a764000084613025565b60006f7fffffffffffffffffffffffffffffff8211156116d8576040517fa5353be500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002546000908190612c19906fffffffffffffffffffffffffffffffff1684612b94565b9050612c457f000000000000000000000000000000000000000000000000000000000000000082614fe3565b6001546fffffffffffffffffffffffffffffffff161115612cac576001547f000000000000000000000000000000000000000000000000000000000000000090612ca29083906fffffffffffffffffffffffffffffffff16614fa5565b610be29190614fa5565b50919050565b612cba614dd6565b600080612cc684612319565b90506000612cd3826124db565b9350905082612ce85750600091506101239050565b6000612d0f612d0a84610160015185610140015161207690919063ffffffff16565b61167c565b612d2f612d0a85610120015186610100015161230490919063ffffffff16565b612d3991906150b1565b604080516101208101825285815260208082019590955260008052600e85527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c54818301526060810199909952608089019990995260a088015250815160c087015281015160e086015290940151610100840152509092600192509050565b600080600080612dd08660c001518760e001516134fb565b9150915080612de757600080935093505050612ea3565b6000612df387846135d3565b92509050811580612e02575080155b15612e165760008094509450505050612ea3565b6000612e2288836136e2565b905080600003612e3c576000809550955050505050612ea3565b87606001518111612e535794509250612ea3915050565b5060608701516000612e678986858b6137b3565b905080600003612e8257600080965096505050505050612ea3565b828110612e9a57600080965096505050505050612ea3565b90955093505050505b9250929050565b6001546003546000916fffffffffffffffffffffffffffffffff80821692600f0b9170010000000000000000000000000000000090041683808080612f128787877f00000000000000000000000000000000000000000000000000000000000000008d613cc8565b935093509350935080612f2e5750600098975050505050505050565b868414612f8057612f3e84611ad4565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b858314612fd257612f9083612902565b600380547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b84821461301657612fe282611ad4565b600180546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790555b50600198975050505050505050565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048411830215820261305a57600080fd5b50910281810615159190040190565b600080670de0b6b3a764000061307d61065f565b61308791906150fa565b90508083116130975760006130a1565b6130a18184614fa5565b9150610be26130d8670de0b6b3a76400007f00000000000000000000000000000000000000000000000000000000000000006150fa565b8390612568565b6000806000613104612d0a85610160015186610140015161207690919063ffffffff16565b613124612d0a86610120015187610100015161230490919063ffffffff16565b61312e91906150b1565b9050600080613145866000015187602001516134fb565b915091508061315c57506000958695509350505050565b600083131561329d57600083905060006131aa886000015189602001518a604001518b60a001518c60e00151670de0b6b3a764000061319b9190614fa5565b8d606001518e60800151613de0565b93509050826131c3575060009788975095505050505050565b8181106132615760006131fd858a60400151858c60e00151670de0b6b3a76400006131ee9190614fa5565b8d606001518e60800151613eec565b945090508315801561321257508860c0015183105b156132295750600098600198509650505050505050565b8361323f57506000988998509650505050505050565b6132488161167c565b6132519061521b565b9960019950975050505050505050565b6000886020015112613289576132808860a0015185612d0a9190614fa5565b6110909061521b565b60a0880151885161328091612d0a91614fa5565b60008312156133f05760006132b18461521b565b905060006132e58489604001518a60e00151670de0b6b3a76400006132d69190614fa5565b8b606001518c60800151613faf565b93509050826132fe575060009788975095505050505050565b818110613383576000613338858a60400151858c60e00151670de0b6b3a76400006133299190614fa5565b8d606001518e60800151614058565b945090508315801561334d57508860c0015183105b156133645750600098600198509650505050505050565b8361337a57506000988998509650505050505050565b6132518161167c565b60006133b5858a604001518b60e00151670de0b6b3a76400006133a69190614fa5565b8c606001518d6080015161412f565b94509050836133cf57506000988998509650505050505050565b6132516133e68a60600151848661203e9190614fa5565b612d0a9083614fe3565b50600095600195509350505050565b6000613432612d0a836101200151670de0b6b3a76400006134209190614fa5565b60608501516101008601519190613025565b61166c612d0a846101600151670de0b6b3a76400006134519190614fa5565b606086015161014087015191906122c8565b600080613474888888888888613eec565b90925090508061206b5761206b611825565b60008160000361349f5750670de0b6b3a7640000611676565b826000036134af57506000611676565b60006134ba8361167c565b905060006134cf6134ca8661167c565b6141de565b90508181026134e6670de0b6b3a764000082615253565b90506134f18161447f565b9695505050505050565b60008060008361350a8661167c565b61351491906150b1565b9050600081121561352c576000809250925050612ea3565b946001945092505050565b6000818311612cac5782610be2565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526117ae908490614698565b60008060008460a00151126135f057505060808201516001612ea3565b60008460a001516136009061521b565b9050600061363c85876101000151886000015160e00151670de0b6b3a764000061362a9190614fa5565b89516060810151608090910151613faf565b9350905082158061364b575080155b1561365e57600080935093505050612ea3565b600061366a8383612b94565b9050670de0b6b3a764000081116136a65780670de0b6b3a764000003945061369f8760c001518661207690919063ffffffff16565b94506136b5565b60008094509450505050612ea3565b86608001518511156136d4578660800151600194509450505050612ea3565b506001925050509250929050565b6000806137188460c001518560e00151866101000151876000015160a0015161370a8861167c565b6137139061521b565b613cc8565b8751604081019290925260208201929092529190915290508061373f576000915050611676565b600061374e85600001516124db565b925090508161376257600092505050611676565b8460200151811061377857600092505050611676565b60008560600151866040015161378e9190614fe3565b90506137a9828760200151836122c89092919063ffffffff16565b6134f19082614fa5565b600080856060015186604001516137ca9190614fe3565b602087015160608801519192506000916137e491846122c8565b90508660a001516000036137fb57915061013c9050565b6000808089600488101561380e57600497505b60005b88811015613b6a57613823868b613537565b9550600061384c8360c001518460e00151856101000151866000015160a0015161370a8c61167c565b8651604081019290925260208201929092529190915290508061387a5760009850505050505050505061013c565b60006138898e600001516124db565b92509050816138a4576000995050505050505050505061013c565b6138af84828b614733565b156138c55787995050505050505050505061013c565b60008460a001511315613a2e57835180516020820151604083015160a084015160e0909401516000946139199493929161390790670de0b6b3a7640000614fa5565b8a516060810151608090910151613de0565b93509050826139355760009a505050505050505050505061013c565b808560a0015110613a2c576139498561479f565b9099509250826139665760009a505050505050505050505061013c565b61398b8560c001518660e00151876101000151886000015160a0015161370a8e61167c565b885160408101929092526020820192909252919091529250826139bb5760009a505050505050505050505061013c565b845180516020820151604083015160a084015160e0909401516139eb949061390790670de0b6b3a7640000614fa5565b9350905082613a075760009a505050505050505050505061013c565b8e60a001518111613a2457889a505050505050505050505061013c565b505050613811565b505b6000613a3f858f8760a00151614875565b93509050821580613a585750670de0b6b3a76400008110155b15613a705760009a505050505050505050505061013c565b80670de0b6b3a76400000390506000613a9d612d0a8760400151886020015161230490919063ffffffff16565b613aaa612d0a858e612076565b613ab491906150b1565b9050881580613ad25750613ac789614bd0565b613ad082614bd0565b125b15613ae1578098508997508296505b6000811315613b0957613af88b61203e8385612568565b613b02908b614fe3565b9950613b5b565b6000811215613b52576000613b238c61203e85818661521b565b90508a811015613b3757808b039a50613b4c565b60009c5050505050505050505050505061013c565b50613b5b565b50505050613b6a565b84600101945050505050613811565b506000613b928260c001518360e00151846101000151856000015160a0015161370a8b61167c565b85516040810192909252602082019290925291909152905080613bbf57600097505050505050505061013c565b6000613bce8360000151614be8565b90506000613bf0612d0a8560400151866020015161230490919063ffffffff16565b613bfd612d0a848c612076565b613c0791906150b1565b9050613c1287614bd0565b613c1b82614bd0565b1215613c28578795508194505b613c4f613c43655af3107a4000670de0b6b3a7640000614fa5565b6020860151908b613025565b6040850151613c5f908790612568565b1080613c9f5750613c8d613c81655af3107a4000670de0b6b3a7640000614fe3565b6020860151908b6122c8565b6040850151613c9d908790612b94565b115b15613cb6576000995050505050505050505061013c565b50939c9b505050505050505050505050565b60008060008084600003613ce757508792508691508590506001613dd4565b600085613cf38b61167c565b613cfd9190614ff6565b9050613d088761167c565b811215613d2357600080600080945094509450945050613dd4565b80945060008912613d4357613d3c612d0a868b8d6122c8565b9350613d66565b613d5a612d0a613d528b61521b565b87908d613025565b613d639061521b565b93505b600080613d738c8c6134fb565b9150915080613d92576000806000809650965096509650505050613dd4565b6000613d9e88886134fb565b9250905081613dbe57600080600080975097509750975050505050613dd4565b613dc98b82856122c8565b955060019450505050505b95509550955095915050565b6000806000881215613e0257613df58861521b565b613dff9087614fe3565b95505b600080613e0f8b8b6134fb565b9150915080613e2657600080935093505050613ee0565b6000613e35838b8a8a8a614c31565b90506000613e52613e4a8a6126798a8e612304565b899089613025565b905080821015613e6c576000809550955050505050613ee0565b808203670de0b6b3a76400008110613ea157613e9a613e93670de0b6b3a76400008c612568565b8290613486565b9050613eb9565b613eb6613e93670de0b6b3a76400008c612b94565b90505b8b811015613ed257600080965096505050505050613ee0565b8b9003955060019450505050505b97509795505050505050565b6000806000613efe8989888888614c60565b9050613f0e86612679898b614fe3565b975087811015613f25576000809250925050613fa4565b878103613f33818688613025565b9050670de0b6b3a76400008110613f6057613f59613e93670de0b6b3a764000089612b94565b9050613f78565b613f75613e93670de0b6b3a764000089612568565b90505b613f828186612b94565b9050808a1015613f9a57600080935093505050613fa4565b8903925060019150505b965096945050505050565b6000806000613fc18888888888614c60565b90506000613fec670de0b6b3a7640000613fdb8888612568565b613fe59190614fe3565b8390612b94565b9050670de0b6b3a7640000811061401957614012613e93670de0b6b3a764000089612b94565b9050614031565b61402e613e93670de0b6b3a764000089612568565b90505b8088101561404757600080935093505050610f9c565b909603976001975095505050505050565b600080600061406a8989888888614c60565b905086881015614081576000809250925050613fa4565b96869003966140908887613486565b9750878110156140a7576000809250925050613fa4565b8781036140b5818688613025565b9050670de0b6b3a764000081106140e2576140db613e93670de0b6b3a764000089612b94565b90506140fa565b6140f7613e93670de0b6b3a764000089612568565b90505b6141048186612b94565b90508981101561411c57600080935093505050613fa4565b9890980398600198509650505050505050565b60008060006141418888888888614c31565b90506000614165670de0b6b3a764000061415b8888612b94565b6130d89190614fe3565b9050670de0b6b3a764000081106141925761418b613e93670de0b6b3a764000089612568565b90506141aa565b6141a7613e93670de0b6b3a764000089612b94565b90505b6141b48186612568565b9050888110156141cc57600080935093505050610f9c565b97909703976001975095505050505050565b6000808213614219576040517fe61b497500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff10600390811b90911782811c600f1060021b1782811c909110600190811b90911782811c90911017609f8181036060019290921b917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08201906142c39084901c61167c565b6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b391909102017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c182136144b057506000919050565b680755bf798b4a1bf1e582126144f2576040517f73a2d6b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b3988102909303927fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550484018402606090811d6d0277594991cfc85f6e2461837cd9018502811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018502811d6db1bbb201f443cf962f1a1d3db4a5018502811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018502811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765087018702831d9081019087017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e01810290921d6e0587f503bb6ea29d25fcb74019645001860279d835ebba824c98fb31b83b2ca45c0000000000000000000000000181810595509293509091906134f174029d9dc38563c32e5c2f6dc192ee70ef65f9978af3860260c38690031c61167c565b60006146ba73ffffffffffffffffffffffffffffffffffffffff841683614c85565b905080516000141580156146df5750808060200190518101906146dd91906152bb565b155b156117ae576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b60208301516000906147459084612b94565b6040850151614755908490612568565b1015801561013c57506020840151614785908461477e633b9aca00670de0b6b3a7640000614fe3565b91906122c8565b6040850151614795908490612b94565b1115949350505050565b60008060008360e00151136147b957506000928392509050565b60006147c884600001516133ff565b905060006147f48560400151866060015187604001516147e89190614fe3565b60208801519190613025565b90506000821261481b578082101561480e57819003614831565b5060009485945092505050565b6148248261521b565b61482e9082614fe3565b90505b60e085015160c0860151614846918390613025565b9050808560c001511015614861575060009485945092505050565b808560c00151036001935093505050915091565b600080600080841261489957855160400151614892908590614fe3565b90506148d4565b60006148a48561521b565b8751604001519091508110156148c45786516040015181900391506148d2565b600080935093505050610123565b505b8551805160209091015160009182916148ed91906134fb565b91509150806149055760008094509450505050610123565b875160e081015160409091015160009161493a9161492e916149279190613486565b8a90612076565b6101008b015190612b94565b895160e081015160809091015161496591614959916126799088612076565b8b516060015190612b94565b61496f9190614fe3565b905060006149a761499b6149948c6000015160e001518861348690919063ffffffff16565b8b90612304565b6101008c015190612568565b9050808210156149c257600080965096505050505050610123565b80820391506000614a04858c60000151604001518d6000015160e00151670de0b6b3a76400006149f29190614fa5565b8e516060810151608090910151614c60565b90506000614a2e8c6000015160e00151670de0b6b3a7640000614a279190614fa5565b8890613486565b905080821015614a4b576000809850985050505050505050610123565b8b51608081015160609091015191830391614a67918391613025565b9050670de0b6b3a76400008110614aab578b5160e00151614aa490613e9390614a9890670de0b6b3a7640000614fa5565b8e5160e0015190612b94565b9050614ada565b8b5160e00151614ad790613e9390614acb90670de0b6b3a7640000614fa5565b8e5160e0015190612568565b90505b8b5160600151614aed9085908390613025565b935083670de0b6b3a76400001115614b115783670de0b6b3a7640000039350614b25565b600060019850985050505050505050610123565b60008c60e0015112614b885760c08c015160e08d0151614b4491612b94565b9250670de0b6b3a7640000831115614b69576000809850985050505050505050610123565b670de0b6b3a76400009290920391614b818484612076565b9350614bbd565b614bba614ba18d60c001518e60e0015161203e9061521b565b614bb390670de0b6b3a7640000614fe3565b8590612076565b93505b50919a60019a5098505050505050505050565b6000808212614bdf5781611676565b6116768261521b565b6000806000614bf6846124db565b9150915080612851576040517faa2c651600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000614c3d8585613486565b614c56614c4e86612679868b612076565b8590856122c8565b6128f69190614fe3565b6000614c6c8585613486565b614c56614c7d86612679868b612304565b859085613025565b6060610be283836000846000808573ffffffffffffffffffffffffffffffffffffffff168486604051614cb891906152d8565b60006040518083038185875af1925050503d8060008114614cf5576040519150601f19603f3d011682016040523d82523d6000602084013e614cfa565b606091505b50915091506134f1868383606082614d1a57614d1582614d94565b610be2565b8151158015614d3e575073ffffffffffffffffffffffffffffffffffffffff84163b155b15614d8d576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260240161472a565b5080610be2565b805115614da45780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051806101200160405280614e466040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060608284031215612cac57600080fd5b600080600060608486031215614eab57600080fd5b8335925060208401359150604084013567ffffffffffffffff811115614ed057600080fd5b614edc86828701614e84565b9150509250925092565b60008060008060808587031215614efc57600080fd5b843593506020850135925060408501359150606085013567ffffffffffffffff811115614f2857600080fd5b614f3487828801614e84565b91505092959194509250565b600060208284031215614f5257600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610be257600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561167657611676614f76565b801515811461064457600080fd5b600060208284031215614fd857600080fd5b8135610be281614fb8565b8082018082111561167657611676614f76565b808201828112600083128015821682158216171561501657615016614f76565b505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261505c5761505c61501e565b500690565b6dffffffffffffffffffffffffffff81811683821601908082111561285157612851614f76565b6fffffffffffffffffffffffffffffffff81811683821601908082111561285157612851614f76565b818103600083128015838313168383128216171561285157612851614f76565b6fffffffffffffffffffffffffffffffff82811682821603908082111561285157612851614f76565b808202811582820484141761167657611676614f76565b600081600f0b7fffffffffffffffffffffffffffffffff80000000000000000000000000000000810361514657615146614f76565b60000392915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261518457600080fd5b83018035915067ffffffffffffffff82111561519f57600080fd5b602001915036819003821315612ea357600080fd5b6000602082840312156151c657600080fd5b5051919050565b600f81810b9083900b016f7fffffffffffffffffffffffffffffff81137fffffffffffffffffffffffffffffffff800000000000000000000000000000008212171561167657611676614f76565b60007f8000000000000000000000000000000000000000000000000000000000000000820361524c5761524c614f76565b5060000390565b6000826152625761526261501e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f8000000000000000000000000000000000000000000000000000000000000000831416156152b6576152b6614f76565b500590565b6000602082840312156152cd57600080fd5b8151610be281614fb8565b6000825160005b818110156152f957602081860181015185830152016152df565b50600092019182525091905056fea26469706673582212207ccb06d2376000cfcee3ec4475538f88be0c7e8f9faaf8166a65e2d4135d352b64736f6c63430008140033" -} \ No newline at end of file diff --git a/deployments/sepolia/TEST_RETH_RETHTarget3.json b/deployments/sepolia/TEST_RETH_RETHTarget3.json deleted file mode 100644 index 3d73e8f9b..000000000 --- a/deployments/sepolia/TEST_RETH_RETHTarget3.json +++ /dev/null @@ -1,1050 +0,0 @@ -{ - "address": "0x11C96c852c40046747291E3fC1A33b3636C31812", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "AddressInsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "BelowMinimumContribution", - "type": "error" - }, - { - "inputs": [], - "name": "DistributeExcessIdleFailed", - "type": "error" - }, - { - "inputs": [], - "name": "ExpInvalidExponent", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientLiquidity", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidCheckpointTime", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidPresentValue", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidTimestamp", - "type": "error" - }, - { - "inputs": [], - "name": "LnInvalidInput", - "type": "error" - }, - { - "inputs": [], - "name": "MinimumSharePrice", - "type": "error" - }, - { - "inputs": [], - "name": "MinimumTransactionAmount", - "type": "error" - }, - { - "inputs": [], - "name": "NotPayable", - "type": "error" - }, - { - "inputs": [], - "name": "OutputLimit", - "type": "error" - }, - { - "inputs": [], - "name": "PoolAlreadyInitialized", - "type": "error" - }, - { - "inputs": [], - "name": "PoolIsPaused", - "type": "error" - }, - { - "inputs": [], - "name": "ReentrancyGuardReentrantCall", - "type": "error" - }, - { - "inputs": [], - "name": "RestrictedZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "SafeERC20FailedOperation", - "type": "error" - }, - { - "inputs": [], - "name": "TransferFailed", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt128", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt256", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToUint112", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToUint128", - "type": "error" - }, - { - "inputs": [], - "name": "UnsupportedToken", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "AddLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "basePayment", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fees", - "type": "uint256" - } - ], - "name": "CollectGovernanceFee", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "checkpointTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "checkpointVaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedShorts", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedLongs", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "CreateCheckpoint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newFeeCollector", - "type": "address" - } - ], - "name": "FeeCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGovernance", - "type": "address" - } - ], - "name": "GovernanceUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "apr", - "type": "uint256" - } - ], - "name": "Initialize", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseProceeds", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isPaused", - "type": "bool" - } - ], - "name": "PauseStatusUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newPauser", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "status", - "type": "bool" - } - ], - "name": "PauserUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - } - ], - "name": "RedeemWithdrawalShares", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "RemoveLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "Sweep", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newSweepCollector", - "type": "address" - } - ], - "name": "SweepCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_checkpointTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_maxIterations", - "type": "uint256" - } - ], - "name": "checkpoint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_contribution", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_apr", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "initialize", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minOutput", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minVaultSharePrice", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "openLong", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "args": [ - { - "minimumShareReserves": "1000000000000000", - "minimumTransactionAmount": "1000000000000000", - "positionDuration": "2592000", - "checkpointDuration": "86400", - "timeStretch": "0", - "governance": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "feeCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "sweepCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "fees": { - "curve": "1000000000000000", - "flat": "8333333333333", - "governanceLP": "150000000000000000", - "governanceZombie": "30000000000000000" - }, - "baseToken": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", - "vaultSharesToken": "0x9db9f2e3d04c0d2d4b5a49664a9c1801d583bb77", - "linkerFactory": "0xE84d966f6f87C7957719ad4BeC7E3bB35a46E8B2", - "linkerCodeHash": "0x9a69ff3b9a110deacb7d941d71222642f269891c0da9fcc15ec7c63fbd216b3f", - "initialVaultSharePrice": "0" - } - ], - "numDeployments": 1, - "bytecode": "0x6102406040523480156200001257600080fd5b5060405162005776380380620057768339810160408190526200003591620001e1565b600160005580516001600160a01b039081166080908152602080840151831660a0908152918401516101a0908152918401516101c05260c0808501516101e0526101008086015190915260e0808601519052610120808601519091529184018051519092528151015161014090815281516040908101516101609081529251606090810151610180908152918601518516610200528501516102205290840151600a80546001600160a01b03199081169286169290921790559184015160088054841691851691909117905590920151600980549093169116179055620002d4565b6040516101c081016001600160401b03811182821017156200014957634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b03811681146200016757600080fd5b919050565b6000608082840312156200017f57600080fd5b604051608081016001600160401b0381118282101715620001b057634e487b7160e01b600052604160045260246000fd5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b60006102208284031215620001f557600080fd5b620001ff62000117565b6200020a836200014f565b81526200021a602084016200014f565b60208201526200022d604084016200014f565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101406200028c8185016200014f565b90820152610160620002a08482016200014f565b90820152610180620002b48482016200014f565b908201526101a0620002c9858583016200016c565b908201529392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e0516102005161022051615332620004446000396000505060005050600081816105cb0152612d7c0152600081816102b00152818161033e0152818161045c0152818161194d0152818161199201528181611c7e01528181612376015281816123d901528181612bfd0152612d560152600081816103b5015281816113a501528181611403015281816115390152612d3001526000611ebc01526000818161200f0152612ae6015260008181610caa015281816114760152611fe30152600081816114550152612aa20152600081816103f801528181611383015281816114240152818161155a0152612da20152600081816103d7015281816106e201528181610bdc0152613ec20152600081816101c001528181610a4601528181610ae50152610b530152600081816055015281816118a2015261282f0152600050506153326000f3fe6080604052600436106100385760003560e01c8063414f826d146100b357806377d05ff4146100d3578063cba2e58d146100f957600080fd5b366100ae573373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146100ac576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b005b600080fd5b3480156100bf57600080fd5b506100ac6100ce366004614e57565b610121565b6100e66100e1366004614e8b565b61012f565b6040519081526020015b60405180910390f35b61010c610107366004614edb565b610146565b604080519283526020830191909152016100f0565b61012b8282610163565b5050565b600061013c848484610241565b90505b9392505050565b6000806101558686868661054b565b915091505b94509492505050565b61016b6107f0565b6000610175610833565b6000848152600760205260409020549091506fffffffffffffffffffffffffffffffff16156101af576101a8818361084b565b5050610237565b60006101b9610a3f565b90506101e57f000000000000000000000000000000000000000000000000000000000000000085614f64565b1515806101f157508381105b15610228576040517fecd29e8100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610233848385610a75565b5050505b61012b6001600055565b600061024b6107f0565b610253610fc7565b61025c82611001565b60055460ff1615610299576040517f7983c05100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806102a68685611060565b90925090506102d67f00000000000000000000000000000000000000000000000000000000000000006002614fa7565b82101561030f576040517fabed41c400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560027f0000000000000000000000000000000000000000000000000000000000000000028203925061036b82611152565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905561042161041c837f0000000000000000000000000000000000000000000000000000000000000000887f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006111a2565b611152565b600180546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790556104806000807f0000000000000000000000000000000000000000000000000000000000000000611241565b61049860006104926020870187614fbe565b85611241565b6104ab6104a3610a3f565b826004610a75565b5060006104b9878387611303565b90506104c86020860186614fbe565b73ffffffffffffffffffffffffffffffffffffffff167fdfe2bf9f580df5ec15438120ffa6f0603237c4e6b65d07140a4695317da4f95285838661051260408b0160208c01615002565b60408051948552602085019390935291830152151560608201526080810189905260a00160405180910390a250505061013f6001600055565b6000806105566107f0565b600554610100900460ff1615610598576040517f21081abf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105a0610fc7565b6105a983611001565b6000806105b68886611060565b909250905060006105c78383611332565b90507f0000000000000000000000000000000000000000000000000000000000000000811015610623576040517f423bbb4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8682101561065d576040517f42af972b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610667610a3f565b905061067581846004610a75565b506000806106838686611347565b90985090925090508a8710156106c5576040517fc972651700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600b60008282546106d7919061501f565b9091555061070790507f00000000000000000000000000000000000000000000000000000000000000008461501f565b97506107158288878b611596565b600061072260018a6117e2565b905061073b8161073560208d018d614fbe565b8a611241565b8c8989888d8561074e6020830183614fbe565b73ffffffffffffffffffffffffffffffffffffffff167f88087800d03445c97e2009f3f90906bf6ede79bbd194e275c66224e977a5b84c86610791898787611303565b61079c8a8888611848565b6107ac6040880160208901615002565b60408051948552602085019390935291830152151560608201526080810187905260a00160405180910390a350909a505050505050505050505061015a6001600055565b60026000540361082c576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6000610846670de0b6b3a7640000611870565b905090565b6006547f03000000000000000000000000000000000000000000000000000000000000006000908152600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e954909182916108bb916fffffffffffffffffffffffffffffffff1690615032565b9050806000036108cf576001915050610a39565b60006108da85611922565b9050806000036108ef57600192505050610a39565b6000806108fd8385896119e2565b9150915080610913576000945050505050610a39565b6000806109208489611aef565b9150915061093e61093082611bdf565b61093990615045565b611c3b565b9250826109545760009650505050505050610a39565b61095d82611152565b600680546000906109819084906fffffffffffffffffffffffffffffffff1661507d565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506109c081611152565b600680546010906109f890849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661507d565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550600196505050505050505b92915050565b6000610a6b7f000000000000000000000000000000000000000000000000000000000000000042614f64565b6108469042615032565b600083815260076020526040812080546fffffffffffffffffffffffffffffffff16151580610aa357504285115b15610ac257546fffffffffffffffffffffffffffffffff16905061013f565b600080610acd610a3f565b9050808703610ade57859150610b81565b6000610b0a7f00000000000000000000000000000000000000000000000000000000000000008961501f565b90505b6000818152600760205260409020546fffffffffffffffffffffffffffffffff1692508181148015610b3d575082155b15610b46578692505b82600003610b7f57610b787f00000000000000000000000000000000000000000000000000000000000000008261501f565b9050610b0d565b505b610b8a82611152565b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff91909116178355610bcf86611db6565b5060009050600781610c017f00000000000000000000000000000000000000000000000000000000000000008b615032565b815260208101919091526040016000908120546fffffffffffffffffffffffffffffffff169150610c3360028a6117e2565b6000818152600e60205260408120549192508a8a8315610db65760019250600080610c6286898c866000611fcc565b9150915080600b6000828254610c78919061501f565b90915550610c94905086600084610c8e81611bdf565b8861209b565b610c9e818361501f565b9150610cce86838a8d877f00000000000000000000000000000000000000000000000000000000000000006122c2565b9150610ce2610cdd8385611332565b61230c565b60058054600290610d0a9084906201000090046dffffffffffffffffffffffffffff166150a6565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550610d4582611152565b60058054601090610d7d90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661507d565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505b6000610dc36001846117e2565b6000818152600e60205260409020549091508015610f0f5760019450600080610df0838b8e886001611fcc565b9150915080600b6000828254610e06919061501f565b90915550610e22905083600084610e1c81611bdf565b8a612356565b610e2c8183615032565b9150610e3b610cdd8387611332565b60058054600290610e639084906201000090046dffffffffffffffffffffffffffff166150a6565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550610e9e82611152565b60058054601090610ed690849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661507d565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505b8415610f4757610f3b610f2187611bdf565b610f2a83611bdf565b610f3491906150cd565b6000612610565b610f458e8e61084b565b505b6000610f528f6126e7565b5090508f7fff888cf98d2696e95c8c39aa98c9ad55a5378008f7a56614c9353b7137a57ab78c868a8686604051610fab959493929190948552602085019390935260408401919091526060830152608082015260a00190565b60405180910390a250989e9d5050505050505050505050505050565b3415610fff576040517f1574f9f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006110106020830183614fbe565b73ffffffffffffffffffffffffffffffffffffffff160361105d576040517ff0dd15fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b600080806110746040850160208601615002565b156110995761108f8561108a60408701876150ed565b6127e0565b90935090506110b5565b50346110b1856110ac60408701876150ed565b612815565b8492505b6110bd610833565b9150801561114957604051600090339083908381818185875af1925050503d8060008114611107576040519150601f19603f3d011682016040523d82523d6000602084013e61110c565b606091505b5050905080611147576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b505b9250929050565b60006fffffffffffffffffffffffffffffffff82111561119e576040517f1e15f2a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5090565b6000806111b3846301e13380612857565b905060006111c18683611332565b6111d390670de0b6b3a764000061501f565b9050670de0b6b3a76400008110611207576112006111f9670de0b6b3a764000086612857565b829061286c565b905061121f565b61121c6111f9670de0b6b3a7640000866128e1565b90505b6112338161122d898b611332565b90611332565b925050505b95945050505050565b6000838152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091528120805483929061128090849061501f565b90915550506000838152600e6020526040812080548392906112a390849061501f565b9091555050604080518481526020810183905273ffffffffffffffffffffffffffffffffffffffff84169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4505050565b60006113156040830160208401615002565b1561132157508261013f565b61132b8484611332565b905061013f565b600061013f8383670de0b6b3a76400006128f6565b60008060006113c9611357612932565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16877f0000000000000000000000000000000000000000000000000000000000000000887f000000000000000000000000000000000000000000000000000000000000000061295c565b915060006114486113d8612932565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612988565b905061149f868461149a847f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061299f565b612a0a565b156114ac576114ac612a62565b6000806114ba888489612a94565b90925090506114c98286615032565b94506114d68184896128f6565b93506114e28489615032565b9550670de0b6b3a764000061157e876114f9612932565b611503919061501f565b60015461153790899070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16615032565b7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612988565b111561158c5761158c612a62565b5050509250925092565b60025470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166115f761041c826115d8670de0b6b3a764000086614fa7565b6004546fffffffffffffffffffffffffffffffff169190886001612b14565b600480547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905561164185611152565b600180546000906116659084906fffffffffffffffffffffffffffffffff1661507d565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506116a484611152565b600180546010906116dc90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16615152565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555061171b84611152565b611725908261507d565b600280546fffffffffffffffffffffffffffffffff8084167001000000000000000000000000000000000291161790559050600061176283612bb2565b90506117808161177187611bdf565b61177b908461517b565b612610565b61178984612bf6565b61179557611795612a62565b60006117a085612c68565b9050806117d9576040517f8bdf918d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505050565b60007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82111561183d576040517fb7d0949700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060f89190911b1790565b600061185a6040830160208401615002565b156118695761132b8484612857565b508261013f565b6040517f8b32fa23000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690638b32fa2390602401602060405180830381865afa1580156118fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3991906151a3565b6002546000908190611946906fffffffffffffffffffffffffffffffff16846128e1565b90506119727f00000000000000000000000000000000000000000000000000000000000000008261501f565b6001546fffffffffffffffffffffffffffffffff1611156119dc576001547f0000000000000000000000000000000000000000000000000000000000000000906119cf9083906fffffffffffffffffffffffffffffffff16615032565b6119d99190615032565b91505b50919050565b6119ea614da9565b6000806119f684612c75565b90506000611a0382612e37565b9350905082611a18575060009150611ae79050565b6000611a3f611a3a84610160015185610140015161133290919063ffffffff16565b611bdf565b611a5f611a3a856101200151866101000151612ec490919063ffffffff16565b611a6991906150cd565b604080516101208101825285815260208082019590955260008052600e85527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c5481830152606081018a9052608081018b905260a0810192909252845160c08301529284015160e08201529290910151610100830152509150600190505b935093915050565b600080600080611b078660c001518760e00151612ed9565b9150915080611b1e5760008093509350505061114b565b6000611b2a8784612f15565b92509050811580611b39575080155b15611b4d576000809450945050505061114b565b6000611b598883613024565b905080600003611b7357600080955095505050505061114b565b87606001518111611b8a579450925061114b915050565b5060608701516000611b9e8986858b6130f5565b905080600003611bb95760008096509650505050505061114b565b828110611bd15760008096509650505050505061114b565b909890975095505050505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82111561119e576040517f72dd4e0200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546003546000916fffffffffffffffffffffffffffffffff80821692600f0b9170010000000000000000000000000000000090041683808080611ca38787877f00000000000000000000000000000000000000000000000000000000000000008d61360c565b935093509350935080611cbf5750600098975050505050505050565b868414611d1157611ccf84611152565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b858314611d6357611d2183613724565b600380547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b848214611da757611d7382611152565b600180546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790555b50600198975050505050505050565b6005546000908190611def90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16611332565b6005546201000090046dffffffffffffffffffffffffffff169250905081811115611fc7576000611e208383615032565b9050611e2f61041c82866128e1565b60058054601090611e6790849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16615152565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506000611eb2858361285790919063ffffffff16565b90506000611ee0827f0000000000000000000000000000000000000000000000000000000000000000611332565b905080600b6000828254611ef4919061501f565b90915550611f0490508183615032565b9150611f0f82611152565b60018054600090611f339084906fffffffffffffffffffffffffffffffff1661507d565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550611f728261379a565b60038054600090611f87908490600f0b6151bc565b92506101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff1602179055508493505050505b915091565b600080611fd98785612857565b91506000612007837f0000000000000000000000000000000000000000000000000000000000000000611332565b9050612033817f0000000000000000000000000000000000000000000000000000000000000000611332565b91508315612056576120458282615032565b61204f9084615032565b925061206d565b6120608282615032565b61206a908461501f565b92505b86861015612090576120808387896128f6565b925061208d8287896128f6565b91505b509550959350505050565b60035470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661211061041c826120dd670de0b6b3a764000086614fa7565b60045470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1691908a6000612b14565b600480546fffffffffffffffffffffffffffffffff92831670010000000000000000000000000000000002921691909117905561214c86611152565b6121569082615152565b600380546fffffffffffffffffffffffffffffffff92831670010000000000000000000000000000000002921691909117905561219284611152565b600180546000906121b69084906fffffffffffffffffffffffffffffffff1661507d565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506121f583613724565b6003805460009061220a908490600f0b6151bc565b92506101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff16021790555061224c85611152565b6001805460109061228490849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16615152565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050505050565b6000806122da846122d48a888a6128f6565b90612857565b90506122e78884866128f6565b6122f1908261501f565b9050868111156123015786810391505b509695505050505050565b60006dffffffffffffffffffffffffffff82111561119e576040517f10d62a2e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546fffffffffffffffffffffffffffffffff16838110806123a157507f000000000000000000000000000000000000000000000000000000000000000061239f8583615032565b105b156123ae576123ae612a62565b6003549084900390600f0b6123c384826150cd565b9050836123cf86611bdf565b13801561240457507f000000000000000000000000000000000000000000000000000000000000000061240283836137e6565b105b1561241157612411612a62565b60025470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661247261041c82612453670de0b6b3a764000088614fa7565b6004546fffffffffffffffffffffffffffffffff1691908c6000612b14565b600480547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790556124bd8882615032565b90506124c881611152565b600280546fffffffffffffffffffffffffffffffff92831670010000000000000000000000000000000002921691909117905561250483611152565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905561254e82613724565b600380547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905561259887611152565b600180546010906125d090849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661507d565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050505050505050565b600061263961261f848361380c565b61262a84600061380c565b61263491906150cd565b613724565b9050600081600f0b13156126a9576002805482919060009061266e9084906fffffffffffffffffffffffffffffffff1661507d565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050565b600081600f0b12156126e2576126be8161520a565b6002805460009061266e9084906fffffffffffffffffffffffffffffffff16615152565b505050565b6000806000806126fe6126f986612c75565b612e37565b9150915080612714575060009485945092505050565b600080861161272457600061272e565b61272e8387611332565b600654600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e95460008080527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c54939450926fffffffffffffffffffffffffffffffff909216916127a2919061501f565b6127ac9190615032565b9050806000036127c55750600096879650945050505050565b60006127d18383612857565b98600198509650505050505050565b6000806040517f6a17288200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126e273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333086613822565b600061013f83670de0b6b3a7640000846128f6565b6000816000036128855750670de0b6b3a7640000610a39565b8260000361289557506000610a39565b60006128a083611bdf565b905060006128b56128b086611bdf565b6138bd565b90508181026128cc670de0b6b3a764000082615248565b90506128d781613b5e565b9695505050505050565b600061013f83670de0b6b3a764000084613d77565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048411830215820261292b57600080fd5b5091020490565b600154600354600091610846916fffffffffffffffffffffffffffffffff90911690600f0b6137e6565b600061297d87878761297688670de0b6b3a7640000615032565b8787613dbb565b979650505050505050565b6000611238826129998588886128f6565b9061286c565b600061013c6129e66129b984670de0b6b3a7640000615032565b6129e0670de0b6b3a76400006129cf818a6128e1565b6129d99190615032565b8790612ec4565b90612ec4565b6129f890670de0b6b3a764000061501f565b6122d484670de0b6b3a7640000615032565b600080612a5785612a19612932565b612a23919061501f565b60015461153790879070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16615032565b909210949350505050565b6040517fbb55fd2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080612ade856129e085817f0000000000000000000000000000000000000000000000000000000000000000670de0b6b3a7640000612ad4818c6128e1565b6129e09190615032565b9150612b0a827f0000000000000000000000000000000000000000000000000000000000000000611332565b9050935093915050565b600082600003612b25575084611238565b8115612b7857612b56612b38848761501f565b612b428587611332565b612b4c888a611332565b6122d4919061501f565b90506000612b648588613e68565b905080821015612b72578091505b50611238565b828503612b8757506000611238565b6128d7612b948487615032565b612b9e8587612ec4565b612ba8888a611332565b6122d49190615032565b6000612bda600e6000612bc66002866117e2565b815260200190815260200160002054611bdf565b612bec600e6000612bc66001876117e2565b610a3991906150cd565b6000612c227f000000000000000000000000000000000000000000000000000000000000000083612ec4565b600254612c4191906fffffffffffffffffffffffffffffffff1661501f565b600154612c60906fffffffffffffffffffffffffffffffff1684611332565b101592915050565b6000610a3982600461084b565b612cd96040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60408051610180810182526001546fffffffffffffffffffffffffffffffff8082168352600354600f0b602084015270010000000000000000000000000000000091829004811693830193909352606082018590527f000000000000000000000000000000000000000000000000000000000000000060808301527f000000000000000000000000000000000000000000000000000000000000000060a08301527f000000000000000000000000000000000000000000000000000000000000000060c08301527f000000000000000000000000000000000000000000000000000000000000000060e08301526002540482166101008201526004549091610120830191612de79116613e77565b81526003546fffffffffffffffffffffffffffffffff7001000000000000000000000000000000009182900481166020840152600454604090930192612e2f92900416613e77565b905292915050565b6000806000806000612e4886613eed565b9150915080612e5f57506000958695509350505050565b612e6c8660a00151611bdf565b612e758761420d565b83612e838960000151611bdf565b612e8d919061517b565b612e97919061517b565b612ea191906150cd565b925050506000811215612eba5750600093849350915050565b9360019350915050565b600061013f8383670de0b6b3a7640000613d77565b600080600083612ee886611bdf565b612ef291906150cd565b90506000811215612f0a57600080925092505061114b565b946001945092505050565b60008060008460a0015112612f325750506080820151600161114b565b60008460a00151612f4290615045565b90506000612f7e85876101000151886000015160e00151670de0b6b3a7640000612f6c9190615032565b89516060810151608090910151614271565b93509050821580612f8d575080155b15612fa05760008093509350505061114b565b6000612fac83836128e1565b9050670de0b6b3a76400008111612fe85780670de0b6b3a7640000039450612fe18760c001518661133290919063ffffffff16565b9450612ff7565b6000809450945050505061114b565b866080015185111561301657866080015160019450945050505061114b565b506001925050509250929050565b60008061305a8460c001518560e00151866101000151876000015160a0015161304c88611bdf565b61305590615045565b61360c565b87516040810192909252602082019290925291909152905080613081576000915050610a39565b60006130908560000151612e37565b92509050816130a457600092505050610a39565b846020015181106130ba57600092505050610a39565b6000856060015186604001516130d0919061501f565b90506130eb828760200151836128f69092919063ffffffff16565b6128d79082615032565b6000808560600151866040015161310c919061501f565b6020870151606088015191925060009161312691846128f6565b90508660a0015160000361313d5791506136049050565b6000808089600488101561315057600497505b60005b888110156134ac57613165868b613e68565b9550600061318e8360c001518460e00151856101000151866000015160a0015161304c8c611bdf565b865160408101929092526020820192909252919091529050806131bc57600098505050505050505050613604565b60006131cb8e60000151612e37565b92509050816131e65760009950505050505050505050613604565b6131f184828b61431d565b1561320757879950505050505050505050613604565b60008460a00151131561337057835180516020820151604083015160a084015160e09094015160009461325b9493929161324990670de0b6b3a7640000615032565b8a516060810151608090910151614389565b93509050826132775760009a5050505050505050505050613604565b808560a001511061336e5761328b8561448e565b9099509250826132a85760009a5050505050505050505050613604565b6132cd8560c001518660e00151876101000151886000015160a0015161304c8e611bdf565b885160408101929092526020820192909252919091529250826132fd5760009a5050505050505050505050613604565b845180516020820151604083015160a084015160e09094015161332d949061324990670de0b6b3a7640000615032565b93509050826133495760009a5050505050505050505050613604565b8e60a00151811161336657889a5050505050505050505050613604565b505050613153565b505b6000613381858f8760a00151614564565b9350905082158061339a5750670de0b6b3a76400008110155b156133b25760009a5050505050505050505050613604565b80670de0b6b3a764000003905060006133df611a3a87604001518860200151612ec490919063ffffffff16565b6133ec611a3a858e611332565b6133f691906150cd565b90508815806134145750613409896148bf565b613412826148bf565b125b15613423578098508997508296505b600081131561344b5761343a8b6122d48385612857565b613444908b61501f565b995061349d565b60008112156134945760006134658c6122d4858186615045565b90508a81101561347957808b039a5061348e565b60009c50505050505050505050505050613604565b5061349d565b505050506134ac565b84600101945050505050613153565b5060006134d48260c001518360e00151846101000151856000015160a0015161304c8b611bdf565b85516040810192909252602082019290925291909152905080613501576000975050505050505050613604565b600061351083600001516148d7565b90506000613532611a3a85604001518660200151612ec490919063ffffffff16565b61353f611a3a848c611332565b61354991906150cd565b9050613554876148bf565b61355d826148bf565b121561356a578795508194505b613591613585655af3107a4000670de0b6b3a7640000615032565b6020860151908b613d77565b60408501516135a1908790612857565b10806135e157506135cf6135c3655af3107a4000670de0b6b3a764000061501f565b6020860151908b6128f6565b60408501516135df9087906128e1565b115b156135f85760009950505050505050505050613604565b50939750505050505050505b949350505050565b6000806000808460000361362b57508792508691508590506001613718565b6000856136378b611bdf565b613641919061517b565b905061364c87611bdf565b81121561366757600080600080945094509450945050613718565b8094506000891261368757613680611a3a868b8d6128f6565b93506136aa565b61369e611a3a6136968b615045565b87908d613d77565b6136a790615045565b93505b6000806136b78c8c612ed9565b91509150806136d6576000806000809650965096509650505050613718565b60006136e28888612ed9565b925090508161370257600080600080975097509750975050505050613718565b61370d8b82856128f6565b955060019450505050505b95509550955095915050565b60007fffffffffffffffffffffffffffffffff8000000000000000000000000000000082128061376357506f7fffffffffffffffffffffffffffffff82135b1561119e576040517fa5353be500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006f7fffffffffffffffffffffffffffffff82111561119e576040517fa5353be500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806137f38484612ed9565b90925090508061380557613805612a62565b5092915050565b600081831361381b578161013f565b5090919050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526138b7908590614920565b50505050565b60008082136138f8576040517fe61b497500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff10600390811b90911782811c600f1060021b1782811c909110600190811b90911782811c90911017609f8181036060019290921b917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08201906139a29084901c611bdf565b6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b391909102017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c18213613b8f57506000919050565b680755bf798b4a1bf1e58212613bd1576040517f73a2d6b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b3988102909303927fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550484018402606090811d6d0277594991cfc85f6e2461837cd9018502811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018502811d6db1bbb201f443cf962f1a1d3db4a5018502811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018502811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765087018702831d9081019087017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e01810290921d6e0587f503bb6ea29d25fcb74019645001860279d835ebba824c98fb31b83b2ca45c0000000000000000000000000181810595509293509091906128d774029d9dc38563c32e5c2f6dc192ee70ef65f9978af3860260c38690031c611bdf565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0484118302158202613dac57600080fd5b50910281810615159190040190565b600080613dcb88888787876149bb565b9050613de585612999613dde898c61501f565b8690611332565b9750613df28489856128f6565b975087811015613e0457613e04612a62565b878103670de0b6b3a76400008110613e3257613e2b6111f9670de0b6b3a7640000886128e1565b9050613e4a565b613e476111f9670de0b6b3a764000088612857565b90505b80881015613e5a57613e5a612a62565b909603979650505050505050565b60008183116119dc578261013f565b600080670de0b6b3a7640000613e8b610a3f565b613e959190614fa7565b9050808311613ea5576000613eaf565b613eaf8184615032565b91506119d9613ee6670de0b6b3a76400007f0000000000000000000000000000000000000000000000000000000000000000614fa7565b8390612857565b6000806000613f12611a3a85610160015186610140015161133290919063ffffffff16565b613f32611a3a866101200151876101000151612ec490919063ffffffff16565b613f3c91906150cd565b9050600080613f5386600001518760200151612ed9565b9150915080613f6a57506000958695509350505050565b60008313156140ab5760008390506000613fb8886000015189602001518a604001518b60a001518c60e00151670de0b6b3a7640000613fa99190615032565b8d606001518e60800151614389565b9350905082613fd1575060009788975095505050505050565b81811061406f57600061400b858a60400151858c60e00151670de0b6b3a7640000613ffc9190615032565b8d606001518e608001516149ea565b945090508315801561402057508860c0015183105b156140375750600098600198509650505050505050565b8361404d57506000988998509650505050505050565b61405681611bdf565b61405f90615045565b9960019950975050505050505050565b60008860200151126140975761408e8860a0015185611a3a9190615032565b6127d190615045565b60a0880151885161408e91611a3a91615032565b60008312156141fe5760006140bf84615045565b905060006140f38489604001518a60e00151670de0b6b3a76400006140e49190615032565b8b606001518c60800151614271565b935090508261410c575060009788975095505050505050565b818110614191576000614146858a60400151858c60e00151670de0b6b3a76400006141379190615032565b8d606001518e60800151614aad565b945090508315801561415b57508860c0015183105b156141725750600098600198509650505050505050565b8361418857506000988998509650505050505050565b61405f81611bdf565b60006141c3858a604001518b60e00151670de0b6b3a76400006141b49190615032565b8c606001518d60800151614b84565b94509050836141dd57506000988998509650505050505050565b61405f6141f48a6060015184866122d49190615032565b611a3a908361501f565b50600095600195509350505050565b6000614240611a3a836101200151670de0b6b3a764000061422e9190615032565b60608501516101008601519190613d77565b612bec611a3a846101600151670de0b6b3a764000061425f9190615032565b606086015161014087015191906128f6565b600080600061428388888888886149bb565b905060006142ae670de0b6b3a764000061429d8888612857565b6142a7919061501f565b83906128e1565b9050670de0b6b3a764000081106142db576142d46111f9670de0b6b3a7640000896128e1565b90506142f3565b6142f06111f9670de0b6b3a764000089612857565b90505b8088101561430957600080935093505050614313565b8703925060019150505b9550959350505050565b602083015160009061432f90846128e1565b604085015161433f908490612857565b1015801561013c5750602084015161436f9084614368633b9aca00670de0b6b3a764000061501f565b91906128f6565b604085015161437f9084906128e1565b1115949350505050565b60008060008812156143ab5761439e88615045565b6143a8908761501f565b95505b6000806143b88b8b612ed9565b91509150806143cf57600080935093505050614482565b60006143de838b8a8a8a614c33565b905060006143fb6143f38a6129998a8e612ec4565b899089613d77565b905080821015614415576000809550955050505050614482565b808203670de0b6b3a764000081106144435761443c6111f9670de0b6b3a76400008c612857565b905061445b565b6144586111f9670de0b6b3a76400008c6128e1565b90505b8b81101561447457600080965096505050505050614482565b8b9003955060019450505050505b97509795505050505050565b60008060008360e00151136144a857506000928392509050565b60006144b7846000015161420d565b905060006144e38560400151866060015187604001516144d7919061501f565b60208801519190613d77565b90506000821261450a57808210156144fd57819003614520565b5060009485945092505050565b61451382615045565b61451d908261501f565b90505b60e085015160c0860151614535918390613d77565b9050808560c001511015614550575060009485945092505050565b808560c00151036001935093505050915091565b60008060008084126145885785516040015161458190859061501f565b90506145c3565b600061459385615045565b8751604001519091508110156145b35786516040015181900391506145c1565b600080935093505050611ae7565b505b8551805160209091015160009182916145dc9190612ed9565b91509150806145f45760008094509450505050611ae7565b875160e08101516040909101516000916146299161461d91614616919061286c565b8a90611332565b6101008b0151906128e1565b895160e081015160809091015161465491614648916129999088611332565b8b5160600151906128e1565b61465e919061501f565b9050600061469661468a6146838c6000015160e001518861286c90919063ffffffff16565b8b90612ec4565b6101008c015190612857565b9050808210156146b157600080965096505050505050611ae7565b808203915060006146f3858c60000151604001518d6000015160e00151670de0b6b3a76400006146e19190615032565b8e5160608101516080909101516149bb565b9050600061471d8c6000015160e00151670de0b6b3a76400006147169190615032565b889061286c565b90508082101561473a576000809850985050505050505050611ae7565b8b51608081015160609091015191830391614756918391613d77565b9050670de0b6b3a7640000811061479a578b5160e00151614793906111f99061478790670de0b6b3a7640000615032565b8e5160e00151906128e1565b90506147c9565b8b5160e001516147c6906111f9906147ba90670de0b6b3a7640000615032565b8e5160e0015190612857565b90505b8b51606001516147dc9085908390613d77565b935083670de0b6b3a764000011156148005783670de0b6b3a7640000039350614814565b600060019850985050505050505050611ae7565b60008c60e00151126148775760c08c015160e08d0151614833916128e1565b9250670de0b6b3a7640000831115614858576000809850985050505050505050611ae7565b670de0b6b3a764000092909203916148708484611332565b93506148ac565b6148a96148908d60c001518e60e001516122d490615045565b6148a290670de0b6b3a764000061501f565b8590611332565b93505b50919a60019a5098505050505050505050565b60008082126148ce5781610a39565b610a3982615045565b60008060006148e584612e37565b9150915080613805576040517faa2c651600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061494273ffffffffffffffffffffffffffffffffffffffff841683614c58565b9050805160001415801561496757508080602001905181019061496591906152b0565b155b156126e2576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b60006149c7858561286c565b6149e06149d886612999868b612ec4565b859085613d77565b6128d7919061501f565b60008060006149fc89898888886149bb565b9050614a0c86612999898b61501f565b975087811015614a23576000809250925050614aa2565b878103614a31818688613d77565b9050670de0b6b3a76400008110614a5e57614a576111f9670de0b6b3a7640000896128e1565b9050614a76565b614a736111f9670de0b6b3a764000089612857565b90505b614a8081866128e1565b9050808a1015614a9857600080935093505050614aa2565b8903925060019150505b965096945050505050565b6000806000614abf89898888886149bb565b905086881015614ad6576000809250925050614aa2565b9686900396614ae5888761286c565b975087811015614afc576000809250925050614aa2565b878103614b0a818688613d77565b9050670de0b6b3a76400008110614b3757614b306111f9670de0b6b3a7640000896128e1565b9050614b4f565b614b4c6111f9670de0b6b3a764000089612857565b90505b614b5981866128e1565b905089811015614b7157600080935093505050614aa2565b9890980398600198509650505050505050565b6000806000614b968888888888614c33565b90506000614bba670de0b6b3a7640000614bb088886128e1565b613ee6919061501f565b9050670de0b6b3a76400008110614be757614be06111f9670de0b6b3a764000089612857565b9050614bff565b614bfc6111f9670de0b6b3a7640000896128e1565b90505b614c098186612857565b905088811015614c2157600080935093505050614313565b97909703976001975095505050505050565b6000614c3f858561286c565b6149e0614c5086612999868b611332565b8590856128f6565b606061013f83836000846000808573ffffffffffffffffffffffffffffffffffffffff168486604051614c8b91906152cd565b60006040518083038185875af1925050503d8060008114614cc8576040519150601f19603f3d011682016040523d82523d6000602084013e614ccd565b606091505b50915091506128d7868383606082614ced57614ce882614d67565b61013f565b8151158015614d11575073ffffffffffffffffffffffffffffffffffffffff84163b155b15614d60576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016149b2565b508061013f565b805115614d775780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051806101200160405280614e196040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60008060408385031215614e6a57600080fd5b50508035926020909101359150565b6000606082840312156119dc57600080fd5b600080600060608486031215614ea057600080fd5b8335925060208401359150604084013567ffffffffffffffff811115614ec557600080fd5b614ed186828701614e79565b9150509250925092565b60008060008060808587031215614ef157600080fd5b843593506020850135925060408501359150606085013567ffffffffffffffff811115614f1d57600080fd5b614f2987828801614e79565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614f7357614f73614f35565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082028115828204841417610a3957610a39614f78565b600060208284031215614fd057600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461013f57600080fd5b801515811461105d57600080fd5b60006020828403121561501457600080fd5b813561013f81614ff4565b80820180821115610a3957610a39614f78565b81810381811115610a3957610a39614f78565b60007f8000000000000000000000000000000000000000000000000000000000000000820361507657615076614f78565b5060000390565b6fffffffffffffffffffffffffffffffff81811683821601908082111561380557613805614f78565b6dffffffffffffffffffffffffffff81811683821601908082111561380557613805614f78565b818103600083128015838313168383128216171561380557613805614f78565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261512257600080fd5b83018035915067ffffffffffffffff82111561513d57600080fd5b60200191503681900382131561114b57600080fd5b6fffffffffffffffffffffffffffffffff82811682821603908082111561380557613805614f78565b808201828112600083128015821682158216171561519b5761519b614f78565b505092915050565b6000602082840312156151b557600080fd5b5051919050565b600f81810b9083900b016f7fffffffffffffffffffffffffffffff81137fffffffffffffffffffffffffffffffff8000000000000000000000000000000082121715610a3957610a39614f78565b600081600f0b7fffffffffffffffffffffffffffffffff80000000000000000000000000000000810361523f5761523f614f78565b60000392915050565b60008261525757615257614f35565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f8000000000000000000000000000000000000000000000000000000000000000831416156152ab576152ab614f78565b500590565b6000602082840312156152c257600080fd5b815161013f81614ff4565b6000825160005b818110156152ee57602081860181015185830152016152d4565b50600092019182525091905056fea2646970667358221220fe855291dada71f4c260912e029d116a34a9e89ed01efb89232d853e35f9e57164736f6c63430008140033" -} \ No newline at end of file diff --git a/deployments/sepolia/TEST_RETH_RETHTarget4.json b/deployments/sepolia/TEST_RETH_RETHTarget4.json deleted file mode 100644 index bef528e37..000000000 --- a/deployments/sepolia/TEST_RETH_RETHTarget4.json +++ /dev/null @@ -1,1042 +0,0 @@ -{ - "address": "0xdAB35Ed7eCA0701d75a698dC428686d73ba52395", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "AddressInsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "DecreasedPresentValueWhenAddingLiquidity", - "type": "error" - }, - { - "inputs": [], - "name": "DistributeExcessIdleFailed", - "type": "error" - }, - { - "inputs": [], - "name": "ExpInvalidExponent", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientLiquidity", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidApr", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidPresentValue", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidTimestamp", - "type": "error" - }, - { - "inputs": [], - "name": "LnInvalidInput", - "type": "error" - }, - { - "inputs": [], - "name": "MinimumSharePrice", - "type": "error" - }, - { - "inputs": [], - "name": "MinimumTransactionAmount", - "type": "error" - }, - { - "inputs": [], - "name": "NotPayable", - "type": "error" - }, - { - "inputs": [], - "name": "OutputLimit", - "type": "error" - }, - { - "inputs": [], - "name": "PoolIsPaused", - "type": "error" - }, - { - "inputs": [], - "name": "ReentrancyGuardReentrantCall", - "type": "error" - }, - { - "inputs": [], - "name": "RestrictedZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "SafeERC20FailedOperation", - "type": "error" - }, - { - "inputs": [], - "name": "TransferFailed", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt128", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt256", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToUint112", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToUint128", - "type": "error" - }, - { - "inputs": [], - "name": "UnsupportedToken", - "type": "error" - }, - { - "inputs": [], - "name": "UpdateLiquidityFailed", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "AddLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "basePayment", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fees", - "type": "uint256" - } - ], - "name": "CollectGovernanceFee", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "checkpointTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "checkpointVaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedShorts", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedLongs", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "CreateCheckpoint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newFeeCollector", - "type": "address" - } - ], - "name": "FeeCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGovernance", - "type": "address" - } - ], - "name": "GovernanceUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "apr", - "type": "uint256" - } - ], - "name": "Initialize", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseProceeds", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isPaused", - "type": "bool" - } - ], - "name": "PauseStatusUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newPauser", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "status", - "type": "bool" - } - ], - "name": "PauserUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - } - ], - "name": "RedeemWithdrawalShares", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "RemoveLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "Sweep", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newSweepCollector", - "type": "address" - } - ], - "name": "SweepCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_contribution", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minLpSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minApr", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_maxApr", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "addLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_bondAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_maxDeposit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minVaultSharePrice", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "openShort", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "args": [ - { - "minimumShareReserves": "1000000000000000", - "minimumTransactionAmount": "1000000000000000", - "positionDuration": "2592000", - "checkpointDuration": "86400", - "timeStretch": "0", - "governance": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "feeCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "sweepCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "fees": { - "curve": "1000000000000000", - "flat": "8333333333333", - "governanceLP": "150000000000000000", - "governanceZombie": "30000000000000000" - }, - "baseToken": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", - "vaultSharesToken": "0x9db9f2e3d04c0d2d4b5a49664a9c1801d583bb77", - "linkerFactory": "0xE84d966f6f87C7957719ad4BeC7E3bB35a46E8B2", - "linkerCodeHash": "0x9a69ff3b9a110deacb7d941d71222642f269891c0da9fcc15ec7c63fbd216b3f", - "initialVaultSharePrice": "0" - } - ], - "numDeployments": 1, - "bytecode": "0x6102406040523480156200001257600080fd5b506040516200580e3803806200580e8339810160408190526200003591620001e1565b600160005580516001600160a01b039081166080908152602080840151831660a0908152918401516101a0908152918401516101c05260c0808501516101e0526101008086015190915260e0808601519052610120808601519091529184018051519092528151015161014090815281516040908101516101609081529251606090810151610180908152918601518516610200528501516102205290840151600a80546001600160a01b03199081169286169290921790559184015160088054841691851691909117905590920151600980549093169116179055620002d4565b6040516101c081016001600160401b03811182821017156200014957634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b03811681146200016757600080fd5b919050565b6000608082840312156200017f57600080fd5b604051608081016001600160401b0381118282101715620001b057634e487b7160e01b600052604160045260246000fd5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b60006102208284031215620001f557600080fd5b620001ff62000117565b6200020a836200014f565b81526200021a602084016200014f565b60208201526200022d604084016200014f565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101406200028c8185016200014f565b90820152610160620002a08482016200014f565b90820152610180620002b48482016200014f565b908201526101a0620002c9858583016200016c565b908201529392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516153d86200043660003960005050600050506000818161018d015281816104650152818161068301526111d00152600081816111aa015281816116e80152818161213401528181612197015281816128d201528181612d560152818161301e015261306301526000818161021d015281816111840152818161154301526115bd01526000611c80015260008181611dd301528181612b7d0152612bf6015260008181610daa0152818161165701528181611da70152612bca01526000612b4901526000818161025f015281816111f60152818161152101526115de01526000818161023e0152818161074b01528181610cdc01526127d7015260008181610b4601528181610be50152610c53015260008181604a01528181611b010152612a3c0152600050506153d86000f3fe60806040526004361061002d5760003560e01c80634c2ac1d9146100a8578063dbbe8070146100ce57600080fd5b366100a3573373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146100a1576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b005b600080fd5b6100bb6100b6366004614f1d565b6100f6565b6040519081526020015b60405180910390f35b6100e16100dc366004614f81565b610111565b604080519283526020830191909152016100c5565b6000610105868686868661012e565b90505b95945050505050565b60008061012086868686610623565b915091505b94509492505050565b60006101386108fc565b600554610100900460ff161561017a576040517f21081abf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61018261093f565b61018b82610979565b7f00000000000000000000000000000000000000000000000000000000000000008610156101e5576040517f423bbb4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006102836101f26109d8565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610a07565b90508481108061029257508381115b156102c9576040517f76c22a2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806102d68986610a4d565b915091506102ed6102e5610b3f565b826004610b75565b506006547f03000000000000000000000000000000000000000000000000000000000000006000908152600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e954909161035e916fffffffffffffffffffffffffffffffff9091169061500a565b6000808052600e6020527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c549192509061039990839061501d565b905060008060006103a9866110c9565b90506103b48161128b565b91506103c76103c2886112db565b61133b565b6001546fffffffffffffffffffffffffffffffff8082168352600354600f0b602084015270010000000000000000000000000000000090910416604082015261040f8161128b565b92508183101561044b576040517f309b2a4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610461848361045a818761500a565b919061137a565b98507f00000000000000000000000000000000000000000000000000000000000000008910156104bd576040517f423bbb4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b508b6104c98e8a6113b6565b1015610501576040517fc972651700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610519600061051360208c018c615030565b8a6113d4565b600061052486611496565b90508061055d576040517f8bdf918d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600084156105745761056f83866113b6565b610577565b60005b90508e6000610587828a8f6114a3565b90508c6105976020820182615030565b73ffffffffffffffffffffffffffffffffffffffff167fa59daf574c5c8db34377de83bceea2aa1433cc506d656f5e8f46e5f4b5c58a868e848e6105e16040870160208801615074565b60408051948552602085019390935291830152151560608201526080810187905260a00160405180910390a25050505050505050505050506101086001600055565b60008061062e6108fc565b600554610100900460ff1615610670576040517f21081abf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067861093f565b61068183610979565b7f00000000000000000000000000000000000000000000000000000000000000008610156106db576040517f423bbb4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006106e56114d2565b905084811015610721576040517f42af972b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061072b610b3f565b9050600061074261073a610b3f565b846004610b75565b905060006107707f00000000000000000000000000000000000000000000000000000000000000008461501d565b905060008060006107828d88876114e5565b92509250925080600b600082825461079a919061501d565b90915550600090506107ad84898d611691565b9050808d10156107e9576040517fc972651700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107f3818c610a4d565b50506108018e848a886116b9565b600061080e600287611995565b905060008f9050610832828e600001602081019061082c9190615030565b836113d4565b848a8e846108436020830183615030565b73ffffffffffffffffffffffffffffffffffffffff167fb354b32bd86ebd9f0968a338e5c2873d7f0d473aa7a668c2488e66038380258b8c8c6108878b88886119fb565b6108976040880160208901615074565b6108ad898f8c6108a7919061500a565b90611a23565b6040805195865260208601949094529284019190915215156060830152608082015260a0810188905260c00160405180910390a350979c50929a50505050505050505050506101256001600055565b600260005403610938576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b3415610977576040517f1574f9f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006109886020830183615030565b73ffffffffffffffffffffffffffffffffffffffff16036109d5576040517ff0dd15fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b600154600354600091610a02916fffffffffffffffffffffffffffffffff90911690600f0b611a38565b905090565b600080610a1687878786611a57565b9050610a42610a2a82866301e13380611a6e565b610a3c83670de0b6b3a764000061500a565b906113b6565b979650505050505050565b60008080610a616040850160208601615074565b15610a8657610a7c85610a776040870187615091565b611ab2565b9093509050610aa2565b5034610a9e85610a996040870187615091565b611ae7565b8492505b610aaa6114d2565b91508015610b3657604051600090339083908381818185875af1925050503d8060008114610af4576040519150601f19603f3d011682016040523d82523d6000602084013e610af9565b606091505b5050905080610b34576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b505b9250929050565b6000610b6b7f000000000000000000000000000000000000000000000000000000000000000042615125565b610a02904261500a565b600083815260076020526040812080546fffffffffffffffffffffffffffffffff16151580610ba357504285115b15610bc257546fffffffffffffffffffffffffffffffff1690506110c2565b600080610bcd610b3f565b9050808703610bde57859150610c81565b6000610c0a7f00000000000000000000000000000000000000000000000000000000000000008961501d565b90505b6000818152600760205260409020546fffffffffffffffffffffffffffffffff1692508181148015610c3d575082155b15610c46578692505b82600003610c7f57610c787f00000000000000000000000000000000000000000000000000000000000000008261501d565b9050610c0d565b505b610c8a82611b2e565b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff91909116178355610ccf86611b7a565b5060009050600781610d017f00000000000000000000000000000000000000000000000000000000000000008b61500a565b815260208101919091526040016000908120546fffffffffffffffffffffffffffffffff169150610d3360028a611995565b6000818152600e60205260408120549192508a8a8315610eb65760019250600080610d6286898c866000611d90565b9150915080600b6000828254610d78919061501d565b90915550610d94905086600084610d8e816112db565b88611e5f565b610d9e818361501d565b9150610dce86838a8d877f0000000000000000000000000000000000000000000000000000000000000000612086565b9150610de2610ddd8385611a23565b6120ca565b60058054600290610e0a9084906201000090046dffffffffffffffffffffffffffff16615139565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550610e4582611b2e565b60058054601090610e7d90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16615160565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505b6000610ec3600184611995565b6000818152600e6020526040902054909150801561100f5760019450600080610ef0838b8e886001611d90565b9150915080600b6000828254610f06919061501d565b90915550610f22905083600084610f1c816112db565b8a612114565b610f2c818361500a565b9150610f3b610ddd8387611a23565b60058054600290610f639084906201000090046dffffffffffffffffffffffffffff16615139565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550610f9e82611b2e565b60058054601090610fd690849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16615160565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505b84156110475761103b611021876112db565b61102a836112db565b6110349190615189565b60006123ce565b6110458e8e6124a0565b505b60006110528f612693565b5090508f7fff888cf98d2696e95c8c39aa98c9ad55a5378008f7a56614c9353b7137a57ab78c868a86866040516110ab959493929190948552602085019390935260408401919091526060830152608082015260a00190565b60405180910390a250989a50505050505050505050505b9392505050565b61112d6040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60408051610180810182526001546fffffffffffffffffffffffffffffffff8082168352600354600f0b602084015270010000000000000000000000000000000091829004811693830193909352606082018590527f000000000000000000000000000000000000000000000000000000000000000060808301527f000000000000000000000000000000000000000000000000000000000000000060a08301527f000000000000000000000000000000000000000000000000000000000000000060c08301527f000000000000000000000000000000000000000000000000000000000000000060e0830152600254048216610100820152600454909161012083019161123b911661278c565b81526003546fffffffffffffffffffffffffffffffff70010000000000000000000000000000000091829004811660208401526004546040909301926112839290041661278c565b905292915050565b600080600061129984612802565b91509150806112d4576040517faa2c651600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5092915050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115611337576040517f72dd4e0200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5090565b6113448161288f565b6109d5576040517f5044b7f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04841183021582026113af57600080fd5b5091020490565b60006113cb83670de0b6b3a76400008461137a565b90505b92915050565b6000838152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091528120805483929061141390849061501d565b90915550506000838152600e60205260408120805483929061143690849061501d565b9091555050604080518481526020810183905273ffffffffffffffffffffffffffffffffffffffff84169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4505050565b60006113ce8260046124a0565b60006114b56040830160208401615074565b156114c15750826110c2565b6114cb8484611a23565b90506110c2565b6000610a02670de0b6b3a7640000612a0a565b60008060006115676114f56109d8565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16887f0000000000000000000000000000000000000000000000000000000000000000897f0000000000000000000000000000000000000000000000000000000000000000612abc565b9150856115748387612add565b111561158257611582612af2565b60008060006116026115926109d8565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611a57565b905061161889670de0b6b3a7640000838b612b24565b5091945090925061162b9050828461500a565b611635908661500a565b94506116818861167b8b611649868a61500a565b8b6116548e82612c32565b8e7f0000000000000000000000000000000000000000000000000000000000000000612c48565b90612add565b9550909250505093509350939050565b60006116a36040830160208401615074565b156116af5750826110c2565b6114cb84846113b6565b6001546fffffffffffffffffffffffffffffffff16838110156116de576116de612af2565b60035490849003907f000000000000000000000000000000000000000000000000000000000000000090611716908390600f0b611a38565b101561172457611724612af2565b60035461179f9061179a9070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16611767670de0b6b3a7640000866151a9565b60045470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff169190896001612c6d565b611b2e565b600480546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790556117db81611b2e565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905561182585611b2e565b6001805460109061185d90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16615160565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555061189c85611b2e565b600380546010906118d490849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16615160565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550600061191583612d0b565b905061193381611924886112db565b61192e9084615189565b6123ce565b61193c84612d4f565b61194857611948612af2565b600061195385611496565b90508061198c576040517f8bdf918d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505050565b60007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8211156119f0576040517fb7d0949700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060f89190911b1790565b6000611a0d6040830160208401615074565b15611a1c576114cb84846113b6565b50826110c2565b60006113cb8383670de0b6b3a764000061137a565b600080611a458484612dc1565b9092509050806112d4576112d4612af2565b600061010882611a6885888861137a565b90612dfd565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0484118302158202611aa357600080fd5b50910281810615159190040190565b6000806040517f6a17288200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b2973ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333086612e72565b505050565b60006fffffffffffffffffffffffffffffffff821115611337576040517f1e15f2a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005546000908190611bb390849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16611a23565b6005546201000090046dffffffffffffffffffffffffffff169250905081811115611d8b576000611be4838361500a565b9050611bf361179a8286612f0d565b60058054601090611c2b90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166151c0565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506000611c7685836113b690919063ffffffff16565b90506000611ca4827f0000000000000000000000000000000000000000000000000000000000000000611a23565b905080600b6000828254611cb8919061501d565b90915550611cc89050818361500a565b9150611cd382611b2e565b60018054600090611cf79084906fffffffffffffffffffffffffffffffff16615160565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550611d3682612f22565b60038054600090611d4b908490600f0b6151e9565b92506101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff1602179055508493505050505b915091565b600080611d9d87856113b6565b91506000611dcb837f0000000000000000000000000000000000000000000000000000000000000000611a23565b9050611df7817f0000000000000000000000000000000000000000000000000000000000000000611a23565b91508315611e1a57611e09828261500a565b611e13908461500a565b9250611e31565b611e24828261500a565b611e2e908461501d565b92505b86861015611e5457611e4483878961137a565b9250611e5182878961137a565b91505b509550959350505050565b60035470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16611ed461179a82611ea1670de0b6b3a7640000866151a9565b60045470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1691908a6000612c6d565b600480546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055611f1086611b2e565b611f1a90826151c0565b600380546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055611f5684611b2e565b60018054600090611f7a9084906fffffffffffffffffffffffffffffffff16615160565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550611fb983612f6e565b60038054600090611fce908490600f0b6151e9565b92506101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff16021790555061201085611b2e565b6001805460109061204890849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166151c0565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050505050565b60008061209884610a3c8a888a61137a565b90506120a588848661137a565b6120af908261501d565b9050868111156120bf5786810391505b509695505050505050565b60006dffffffffffffffffffffffffffff821115611337576040517f10d62a2e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546fffffffffffffffffffffffffffffffff168381108061215f57507f000000000000000000000000000000000000000000000000000000000000000061215d858361500a565b105b1561216c5761216c612af2565b6003549084900390600f0b6121818482615189565b90508361218d866112db565b1380156121c257507f00000000000000000000000000000000000000000000000000000000000000006121c08383611a38565b105b156121cf576121cf612af2565b60025470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661223061179a82612211670de0b6b3a7640000886151a9565b6004546fffffffffffffffffffffffffffffffff1691908c6000612c6d565b600480547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905561227b888261500a565b905061228681611b2e565b600280546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790556122c283611b2e565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905561230c82612f6e565b600380547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905561235687611b2e565b6001805460109061238e90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16615160565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050505050505050565b60006123f76123dd8483612fe4565b6123e8846000612fe4565b6123f29190615189565b612f6e565b9050600081600f0b1315612467576002805482919060009061242c9084906fffffffffffffffffffffffffffffffff16615160565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050565b600081600f0b1215611b295761247c81615237565b6002805460009061242c9084906fffffffffffffffffffffffffffffffff166151c0565b6006547f03000000000000000000000000000000000000000000000000000000000000006000908152600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e95490918291612510916fffffffffffffffffffffffffffffffff169061500a565b9050806000036125245760019150506113ce565b600061252f85612ff3565b905080600003612544576001925050506113ce565b6000806125528385896130b0565b91509150806125685760009450505050506113ce565b60008061257584896131bd565b91509150612593612585826112db565b61258e90615275565b61288f565b9250826125a957600096505050505050506113ce565b6125b282611b2e565b600680546000906125d69084906fffffffffffffffffffffffffffffffff16615160565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555061261581611b2e565b6006805460109061264d90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16615160565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506001965050505050505092915050565b6000806000806126aa6126a5866110c9565b612802565b91509150806126c0575060009485945092505050565b60008086116126d05760006126da565b6126da8387611a23565b600654600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e95460008080527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c54939450926fffffffffffffffffffffffffffffffff9092169161274e919061501d565b612758919061500a565b9050806000036127715750600096879650945050505050565b600061277d83836113b6565b98600198509650505050505050565b600080670de0b6b3a76400006127a0610b3f565b6127aa91906151a9565b90508083116127ba5760006127c4565b6127c4818461500a565b91506110c26127fb670de0b6b3a76400007f00000000000000000000000000000000000000000000000000000000000000006151a9565b83906113b6565b6000806000806000612813866132ad565b915091508061282a57506000958695509350505050565b6128378660a001516112db565b612840876135cd565b8361284e89600001516112db565b61285891906152ad565b61286291906152ad565b61286c9190615189565b9250505060008112156128855750600093849350915050565b9360019350915050565b6001546003546000916fffffffffffffffffffffffffffffffff80821692600f0b91700100000000000000000000000000000000900416838080806128f78787877f00000000000000000000000000000000000000000000000000000000000000008d613631565b9350935093509350806129135750600098975050505050505050565b8684146129655761292384611b2e565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b8583146129b75761297583612f6e565b600380547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b8482146129fb576129c782611b2e565b600180546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790555b50600198975050505050505050565b6040517f8b32fa23000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690638b32fa2390602401602060405180830381865afa158015612a98573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce91906152d5565b6000610a42878787612ad688670de0b6b3a764000061500a565b8787613749565b60006113cb8383670de0b6b3a7640000611a6e565b6040517fbb55fd2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808080612b758786612b6e8b61167b612b478c670de0b6b3a764000061500a565b7f000000000000000000000000000000000000000000000000000000000000000090612add565b9190611a6e565b9350612ba1847f0000000000000000000000000000000000000000000000000000000000000000611a23565b91506000612bc2612bba89670de0b6b3a764000061500a565b8a9088611a6e565b9050612bee817f0000000000000000000000000000000000000000000000000000000000000000612add565b9350612c1a847f0000000000000000000000000000000000000000000000000000000000000000611a23565b612c24908461501d565b915050945094509450949050565b6000818311612c4157816113cb565b5090919050565b600080612c6084612c5a8a888a611a6e565b90612f0d565b90506120a5888486611a6e565b600082600003612c7e575084610108565b8115612cd157612caf612c91848761501d565b612c9b8587611a23565b612ca5888a611a23565b610a3c919061501d565b90506000612cbd858861376c565b905080821015612ccb578091505b50610108565b828503612ce057506000610108565b610105612ced848761500a565b612cf78587612add565b612d01888a611a23565b610a3c919061500a565b6000612d33600e6000612d1f600286611995565b8152602001908152602001600020546112db565b612d45600e6000612d1f600187611995565b6113ce9190615189565b6000612d7b7f000000000000000000000000000000000000000000000000000000000000000083612add565b600254612d9a91906fffffffffffffffffffffffffffffffff1661501d565b600154612db9906fffffffffffffffffffffffffffffffff1684611a23565b101592915050565b600080600083612dd0866112db565b612dda9190615189565b90506000811215612df2576000809250925050610b38565b946001945092505050565b600081600003612e165750670de0b6b3a76400006113ce565b82600003612e26575060006113ce565b6000612e31836112db565b90506000612e46612e41866112db565b61377b565b9050818102612e5d670de0b6b3a7640000826152ee565b9050612e6881613a1c565b9695505050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052612f07908590613c35565b50505050565b60006113cb83670de0b6b3a764000084611a6e565b60006f7fffffffffffffffffffffffffffffff821115611337576040517fa5353be500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007fffffffffffffffffffffffffffffffff80000000000000000000000000000000821280612fad57506f7fffffffffffffffffffffffffffffff82135b15611337576040517fa5353be500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000818313612c4157816113cb565b6002546000908190613017906fffffffffffffffffffffffffffffffff1684612f0d565b90506130437f00000000000000000000000000000000000000000000000000000000000000008261501d565b6001546fffffffffffffffffffffffffffffffff1611156130aa576001547f0000000000000000000000000000000000000000000000000000000000000000906130a09083906fffffffffffffffffffffffffffffffff1661500a565b6110c2919061500a565b50919050565b6130b8614e5d565b6000806130c4846110c9565b905060006130d182612802565b93509050826130e65750600091506131b59050565b600061310d613108846101600151856101400151611a2390919063ffffffff16565b6112db565b61312d613108856101200151866101000151612add90919063ffffffff16565b6131379190615189565b604080516101208101825285815260208082019590955260008052600e85527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c5481830152606081018a9052608081018b905260a0810192909252845160c08301529284015160e08201529290910151610100830152509150600190505b935093915050565b6000806000806131d58660c001518760e00151612dc1565b91509150806131ec57600080935093505050610b38565b60006131f88784613cd0565b92509050811580613207575080155b1561321b5760008094509450505050610b38565b60006132278883613ddf565b905080600003613241576000809550955050505050610b38565b876060015181116132585794509250610b38915050565b506060870151600061326c8986858b613eb0565b90508060000361328757600080965096505050505050610b38565b82811061329f57600080965096505050505050610b38565b909890975095505050505050565b60008060006132d2613108856101600151866101400151611a2390919063ffffffff16565b6132f2613108866101200151876101000151612add90919063ffffffff16565b6132fc9190615189565b905060008061331386600001518760200151612dc1565b915091508061332a57506000958695509350505050565b600083131561346b5760008390506000613378886000015189602001518a604001518b60a001518c60e00151670de0b6b3a7640000613369919061500a565b8d606001518e608001516143c7565b9350905082613391575060009788975095505050505050565b81811061342f5760006133cb858a60400151858c60e00151670de0b6b3a76400006133bc919061500a565b8d606001518e608001516144d3565b94509050831580156133e057508860c0015183105b156133f75750600098600198509650505050505050565b8361340d57506000988998509650505050505050565b613416816112db565b61341f90615275565b9960019950975050505050505050565b60008860200151126134575761344e8860a0015185613108919061500a565b61277d90615275565b60a0880151885161344e916131089161500a565b60008312156135be57600061347f84615275565b905060006134b38489604001518a60e00151670de0b6b3a76400006134a4919061500a565b8b606001518c60800151614596565b93509050826134cc575060009788975095505050505050565b818110613551576000613506858a60400151858c60e00151670de0b6b3a76400006134f7919061500a565b8d606001518e60800151614642565b945090508315801561351b57508860c0015183105b156135325750600098600198509650505050505050565b8361354857506000988998509650505050505050565b61341f816112db565b6000613583858a604001518b60e00151670de0b6b3a7640000613574919061500a565b8c606001518d60800151614719565b945090508361359d57506000988998509650505050505050565b61341f6135b48a606001518486610a3c919061500a565b613108908361501d565b50600095600195509350505050565b6000613600613108836101200151670de0b6b3a76400006135ee919061500a565b60608501516101008601519190611a6e565b612d45613108846101600151670de0b6b3a764000061361f919061500a565b6060860151610140870151919061137a565b600080600080846000036136505750879250869150859050600161373d565b60008561365c8b6112db565b61366691906152ad565b9050613671876112db565b81121561368c5760008060008094509450945094505061373d565b809450600089126136ac576136a5613108868b8d61137a565b93506136cf565b6136c36131086136bb8b615275565b87908d611a6e565b6136cc90615275565b93505b6000806136dc8c8c612dc1565b91509150806136fb57600080600080965096509650965050505061373d565b60006137078888612dc1565b92509050816137275760008060008097509750975097505050505061373d565b6137328b828561137a565b955060019450505050505b95509550955095915050565b60008061375a8888888888886144d3565b9092509050806120bf576120bf612af2565b60008183116130aa57826113cb565b60008082136137b6576040517fe61b497500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff10600390811b90911782811c600f1060021b1782811c909110600190811b90911782811c90911017609f8181036060019290921b917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08201906138609084901c6112db565b6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b391909102017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c18213613a4d57506000919050565b680755bf798b4a1bf1e58212613a8f576040517f73a2d6b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b3988102909303927fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550484018402606090811d6d0277594991cfc85f6e2461837cd9018502811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018502811d6db1bbb201f443cf962f1a1d3db4a5018502811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018502811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765087018702831d9081019087017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e01810290921d6e0587f503bb6ea29d25fcb74019645001860279d835ebba824c98fb31b83b2ca45c000000000000000000000000018181059550929350909190612e6874029d9dc38563c32e5c2f6dc192ee70ef65f9978af3860260c38690031c6112db565b6000613c5773ffffffffffffffffffffffffffffffffffffffff8416836147c8565b90508051600014158015613c7c575080806020019051810190613c7a9190615356565b155b15611b29576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b60008060008460a0015112613ced57505060808201516001610b38565b60008460a00151613cfd90615275565b90506000613d3985876101000151886000015160e00151670de0b6b3a7640000613d27919061500a565b89516060810151608090910151614596565b93509050821580613d48575080155b15613d5b57600080935093505050610b38565b6000613d678383612f0d565b9050670de0b6b3a76400008111613da35780670de0b6b3a7640000039450613d9c8760c0015186611a2390919063ffffffff16565b9450613db2565b60008094509450505050610b38565b8660800151851115613dd1578660800151600194509450505050610b38565b506001925050509250929050565b600080613e158460c001518560e00151866101000151876000015160a00151613e07886112db565b613e1090615275565b613631565b87516040810192909252602082019290925291909152905080613e3c5760009150506113ce565b6000613e4b8560000151612802565b9250905081613e5f576000925050506113ce565b84602001518110613e75576000925050506113ce565b600085606001518660400151613e8b919061501d565b9050613ea68287602001518361137a9092919063ffffffff16565b612e68908261500a565b60008085606001518660400151613ec7919061501d565b60208701516060880151919250600091613ee1918461137a565b90508660a00151600003613ef85791506143bf9050565b60008080896004881015613f0b57600497505b60005b8881101561426757613f20868b61376c565b95506000613f498360c001518460e00151856101000151866000015160a00151613e078c6112db565b86516040810192909252602082019290925291909152905080613f77576000985050505050505050506143bf565b6000613f868e60000151612802565b9250905081613fa157600099505050505050505050506143bf565b613fac84828b6147d6565b15613fc2578799505050505050505050506143bf565b60008460a00151131561412b57835180516020820151604083015160a084015160e0909401516000946140169493929161400490670de0b6b3a764000061500a565b8a5160608101516080909101516143c7565b93509050826140325760009a50505050505050505050506143bf565b808560a0015110614129576140468561483b565b9099509250826140635760009a50505050505050505050506143bf565b6140888560c001518660e00151876101000151886000015160a00151613e078e6112db565b885160408101929092526020820192909252919091529250826140b85760009a50505050505050505050506143bf565b845180516020820151604083015160a084015160e0909401516140e8949061400490670de0b6b3a764000061500a565b93509050826141045760009a50505050505050505050506143bf565b8e60a00151811161412157889a50505050505050505050506143bf565b505050613f0e565b505b600061413c858f8760a00151614911565b935090508215806141555750670de0b6b3a76400008110155b1561416d5760009a50505050505050505050506143bf565b80670de0b6b3a7640000039050600061419a61310887604001518860200151612add90919063ffffffff16565b6141a7613108858e611a23565b6141b19190615189565b90508815806141cf57506141c489614c6c565b6141cd82614c6c565b125b156141de578098508997508296505b6000811315614206576141f58b610a3c83856113b6565b6141ff908b61501d565b9950614258565b600081121561424f5760006142208c610a3c858186615275565b90508a81101561423457808b039a50614249565b60009c505050505050505050505050506143bf565b50614258565b50505050614267565b84600101945050505050613f0e565b50600061428f8260c001518360e00151846101000151856000015160a00151613e078b6112db565b855160408101929092526020820192909252919091529050806142bc5760009750505050505050506143bf565b60006142cb836000015161128b565b905060006142ed61310885604001518660200151612add90919063ffffffff16565b6142fa613108848c611a23565b6143049190615189565b905061430f87614c6c565b61431882614c6c565b1215614325578795508194505b61434c614340655af3107a4000670de0b6b3a764000061500a565b6020860151908b611a6e565b604085015161435c9087906113b6565b108061439c575061438a61437e655af3107a4000670de0b6b3a764000061501d565b6020860151908b61137a565b604085015161439a908790612f0d565b115b156143b357600099505050505050505050506143bf565b50939750505050505050505b949350505050565b60008060008812156143e9576143dc88615275565b6143e6908761501d565b95505b6000806143f68b8b612dc1565b915091508061440d576000809350935050506144c7565b600061441c838b8a8a8a614c84565b905060006144396144318a611a688a8e612add565b899089611a6e565b9050808210156144535760008095509550505050506144c7565b808203670de0b6b3a764000081106144885761448161447a670de0b6b3a76400008c6113b6565b8290612dfd565b90506144a0565b61449d61447a670de0b6b3a76400008c612f0d565b90505b8b8110156144b9576000809650965050505050506144c7565b8b9003955060019450505050505b97509795505050505050565b60008060006144e58989888888614cb3565b90506144f586611a68898b61501d565b97508781101561450c57600080925092505061458b565b87810361451a818688611a6e565b9050670de0b6b3a764000081106145475761454061447a670de0b6b3a764000089612f0d565b905061455f565b61455c61447a670de0b6b3a7640000896113b6565b90505b6145698186612f0d565b9050808a10156145815760008093509350505061458b565b8903925060019150505b965096945050505050565b60008060006145a88888888888614cb3565b905060006145d3670de0b6b3a76400006145c288886113b6565b6145cc919061501d565b8390612f0d565b9050670de0b6b3a76400008110614600576145f961447a670de0b6b3a764000089612f0d565b9050614618565b61461561447a670de0b6b3a7640000896113b6565b90505b8088101561462e57600080935093505050614638565b8703925060019150505b9550959350505050565b60008060006146548989888888614cb3565b90508688101561466b57600080925092505061458b565b968690039661467a8887612dfd565b97508781101561469157600080925092505061458b565b87810361469f818688611a6e565b9050670de0b6b3a764000081106146cc576146c561447a670de0b6b3a764000089612f0d565b90506146e4565b6146e161447a670de0b6b3a7640000896113b6565b90505b6146ee8186612f0d565b9050898110156147065760008093509350505061458b565b9890980398600198509650505050505050565b600080600061472b8888888888614c84565b9050600061474f670de0b6b3a76400006147458888612f0d565b6127fb919061501d565b9050670de0b6b3a7640000811061477c5761477561447a670de0b6b3a7640000896113b6565b9050614794565b61479161447a670de0b6b3a764000089612f0d565b90505b61479e81866113b6565b9050888110156147b657600080935093505050614638565b97909703976001975095505050505050565b60606113cb83836000614cd8565b60208301516000906147e89084612f0d565b60408501516147f89084906113b6565b101580156143bf57506020840151614821908461045a633b9aca00670de0b6b3a764000061501d565b6040850151614831908490612f0d565b1115949350505050565b60008060008360e001511361485557506000928392509050565b600061486484600001516135cd565b90506000614890856040015186606001518760400151614884919061501d565b60208801519190611a6e565b9050600082126148b757808210156148aa578190036148cd565b5060009485945092505050565b6148c082615275565b6148ca908261501d565b90505b60e085015160c08601516148e2918390611a6e565b9050808560c0015110156148fd575060009485945092505050565b808560c00151036001935093505050915091565b60008060008084126149355785516040015161492e90859061501d565b9050614970565b600061494085615275565b87516040015190915081101561496057865160400151819003915061496e565b6000809350935050506131b5565b505b8551805160209091015160009182916149899190612dc1565b91509150806149a157600080945094505050506131b5565b875160e08101516040909101516000916149d6916149ca916149c39190612dfd565b8a90611a23565b6101008b015190612f0d565b895160e0810151608090910151614a01916149f591611a689088611a23565b8b516060015190612f0d565b614a0b919061501d565b90506000614a43614a37614a308c6000015160e0015188612dfd90919063ffffffff16565b8b90612add565b6101008c0151906113b6565b905080821015614a5e576000809650965050505050506131b5565b80820391506000614aa0858c60000151604001518d6000015160e00151670de0b6b3a7640000614a8e919061500a565b8e516060810151608090910151614cb3565b90506000614aca8c6000015160e00151670de0b6b3a7640000614ac3919061500a565b8890612dfd565b905080821015614ae75760008098509850505050505050506131b5565b8b51608081015160609091015191830391614b03918391611a6e565b9050670de0b6b3a76400008110614b47578b5160e00151614b409061447a90614b3490670de0b6b3a764000061500a565b8e5160e0015190612f0d565b9050614b76565b8b5160e00151614b739061447a90614b6790670de0b6b3a764000061500a565b8e5160e00151906113b6565b90505b8b5160600151614b899085908390611a6e565b935083670de0b6b3a76400001115614bad5783670de0b6b3a7640000039350614bc1565b6000600198509850505050505050506131b5565b60008c60e0015112614c245760c08c015160e08d0151614be091612f0d565b9250670de0b6b3a7640000831115614c055760008098509850505050505050506131b5565b670de0b6b3a76400009290920391614c1d8484611a23565b9350614c59565b614c56614c3d8d60c001518e60e00151610a3c90615275565b614c4f90670de0b6b3a764000061501d565b8590611a23565b93505b50919a60019a5098505050505050505050565b6000808212614c7b57816113ce565b6113ce82615275565b6000614c908585612dfd565b614ca9614ca186611a68868b611a23565b85908561137a565b610105919061501d565b6000614cbf8585612dfd565b614ca9614cd086611a68868b612add565b859085611a6e565b606081471015614d16576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401613cc7565b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051614d3f9190615373565b60006040518083038185875af1925050503d8060008114614d7c576040519150601f19603f3d011682016040523d82523d6000602084013e614d81565b606091505b5091509150612e68868383606082614da157614d9c82614e1b565b6110c2565b8151158015614dc5575073ffffffffffffffffffffffffffffffffffffffff84163b155b15614e14576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401613cc7565b50806110c2565b805115614e2b5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051806101200160405280614ecd6040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000606082840312156130aa57600080fd5b600080600080600060a08688031215614f3557600080fd5b85359450602086013593506040860135925060608601359150608086013567ffffffffffffffff811115614f6857600080fd5b614f7488828901614f0b565b9150509295509295909350565b60008060008060808587031215614f9757600080fd5b843593506020850135925060408501359150606085013567ffffffffffffffff811115614fc357600080fd5b614fcf87828801614f0b565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156113ce576113ce614fdb565b808201808211156113ce576113ce614fdb565b60006020828403121561504257600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146110c257600080fd5b80151581146109d557600080fd5b60006020828403121561508657600080fd5b81356110c281615066565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126150c657600080fd5b83018035915067ffffffffffffffff8211156150e157600080fd5b602001915036819003821315610b3857600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082615134576151346150f6565b500690565b6dffffffffffffffffffffffffffff8181168382160190808211156112d4576112d4614fdb565b6fffffffffffffffffffffffffffffffff8181168382160190808211156112d4576112d4614fdb565b81810360008312801583831316838312821617156112d4576112d4614fdb565b80820281158282048414176113ce576113ce614fdb565b6fffffffffffffffffffffffffffffffff8281168282160390808211156112d4576112d4614fdb565b600f81810b9083900b016f7fffffffffffffffffffffffffffffff81137fffffffffffffffffffffffffffffffff80000000000000000000000000000000821217156113ce576113ce614fdb565b600081600f0b7fffffffffffffffffffffffffffffffff80000000000000000000000000000000810361526c5761526c614fdb565b60000392915050565b60007f800000000000000000000000000000000000000000000000000000000000000082036152a6576152a6614fdb565b5060000390565b80820182811260008312801582168215821617156152cd576152cd614fdb565b505092915050565b6000602082840312156152e757600080fd5b5051919050565b6000826152fd576152fd6150f6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f80000000000000000000000000000000000000000000000000000000000000008314161561535157615351614fdb565b500590565b60006020828403121561536857600080fd5b81516110c281615066565b6000825160005b81811015615394576020818601810151858301520161537a565b50600092019182525091905056fea264697066735822122084f672cd16594eceb0dbd453615b2cd9326198ec5c95d0ce453840c890b5260164736f6c63430008140033" -} \ No newline at end of file diff --git a/deployments/sepolia/TEST_STETH_StETHHyperdrive.json b/deployments/sepolia/TEST_STETH_StETHHyperdrive.json deleted file mode 100644 index 7cf1b9bbf..000000000 --- a/deployments/sepolia/TEST_STETH_StETHHyperdrive.json +++ /dev/null @@ -1,1669 +0,0 @@ -{ - "address": "0x65fEb7fa17813b9E5F3c31a911CF92B8c2fF5c7A", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - }, - { - "internalType": "address", - "name": "_target0", - "type": "address" - }, - { - "internalType": "address", - "name": "_target1", - "type": "address" - }, - { - "internalType": "address", - "name": "_target2", - "type": "address" - }, - { - "internalType": "address", - "name": "_target3", - "type": "address" - }, - { - "internalType": "address", - "name": "_target4", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "ReentrancyGuardReentrantCall", - "type": "error" - }, - { - "inputs": [], - "name": "UnexpectedSuccess", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "AddLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "basePayment", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fees", - "type": "uint256" - } - ], - "name": "CollectGovernanceFee", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "checkpointTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "checkpointVaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedShorts", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedLongs", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "CreateCheckpoint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newFeeCollector", - "type": "address" - } - ], - "name": "FeeCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGovernance", - "type": "address" - } - ], - "name": "GovernanceUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "apr", - "type": "uint256" - } - ], - "name": "Initialize", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseProceeds", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isPaused", - "type": "bool" - } - ], - "name": "PauseStatusUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newPauser", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "status", - "type": "bool" - } - ], - "name": "PauserUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - } - ], - "name": "RedeemWithdrawalShares", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "RemoveLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "Sweep", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newSweepCollector", - "type": "address" - } - ], - "name": "SweepCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "stateMutability": "nonpayable", - "type": "fallback" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "addLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "name": "batchTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "checkpoint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "closeLong", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "closeShort", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "collectGovernanceFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "domainSeparator", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "initialize", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "openLong", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "openShort", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "bool", - "name": "_approved", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permitForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "redeemWithdrawalShares", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "", - "type": "tuple" - } - ], - "name": "removeLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "setApproval", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setApprovalBridge", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setFeeCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setGovernance", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "name": "setPauser", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "setSweepCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IERC20", - "name": "", - "type": "address" - } - ], - "name": "sweep", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "target0", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target1", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target2", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target3", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "target4", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "transferFromBridge", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [ - { - "minimumShareReserves": "1000000000000000", - "minimumTransactionAmount": "1000000000000000", - "positionDuration": "2592000", - "checkpointDuration": "86400", - "timeStretch": "0", - "governance": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "feeCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "sweepCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "fees": { - "curve": "1000000000000000", - "flat": "8333333333333", - "governanceLP": "150000000000000000", - "governanceZombie": "30000000000000000" - }, - "baseToken": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", - "vaultSharesToken": "0x8CB2Ec99CF968551408CC30c5223Fa4D8c402E55", - "linkerFactory": "0xE84d966f6f87C7957719ad4BeC7E3bB35a46E8B2", - "linkerCodeHash": "0x9a69ff3b9a110deacb7d941d71222642f269891c0da9fcc15ec7c63fbd216b3f", - "initialVaultSharePrice": "0" - }, - "0x11097A8fCbB2bDEB2FD08673FDE3bAE9dFE28275", - "0xc4E94850FBD74489D40FF2c6dfdEc34E4100Ef07", - "0x586cf5c51Ca09FEb716ad7B03E2EFcB83d653a51", - "0x23556236B597106068C5E578F707f7995dC6e2CC", - "0xa9c78c6AC5D4580191305C59Cee8f0D1BaEc9BaA" - ], - "numDeployments": 1, - "bytecode": "0x6102e06040523480156200001257600080fd5b506040516200184438038062001844833981016040819052620000359162000201565b600160005585516001600160a01b039081166080908152602080890151831660a0908152918901516101a0908152918901516101c05260c0808a01516101e052610100808b015190915260e0808b01519052610120808b01519091529189018051519092528151015161014090815281516040908101516101609081529251606090810151610180908152918b01518516610200528a01516102205290890151600a80549185166001600160a01b0319928316179055918901516008805491851691841691909117905590970151600980549183169190981617909655938516610240529184166102605283166102805282166102a052166102c0526200036b565b6040516101c081016001600160401b03811182821017156200016957634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b03811681146200018757600080fd5b919050565b6000608082840312156200019f57600080fd5b604051608081016001600160401b0381118282101715620001d057634e487b7160e01b600052604160045260246000fd5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b6000806000806000808688036102c08112156200021d57600080fd5b610220808212156200022e57600080fd5b6200023862000137565b915062000245896200016f565b82526200025560208a016200016f565b60208301526200026860408a016200016f565b6040830152606089015160608301526080890151608083015260a089015160a083015260c089015160c083015260e089015160e0830152610100808a01518184015250610120808a01518184015250610140620002c7818b016200016f565b90830152610160620002db8a82016200016f565b90830152610180620002ef8a82016200016f565b908301526101a0620003048b8b83016200018c565b818401525081975062000319818a016200016f565b965050506200032c61024088016200016f565b93506200033d61026088016200016f565b92506200034e61028088016200016f565b91506200035f6102a088016200016f565b90509295509295509295565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516113a66200049e600039600081816106d9015281816109120152610c7801526000818161061e015281816108e2015281816109700152610c160152600081816105b701528181610c4c0152610ca30152600081816106a5015281816107e9015261087f0152600081816101e40152818161041b015281816107b90152818161081b0152818161084d015281816108b301528181610945015281816109a101528181610be40152610ccc015260005050600050506000505060005050600050506000505060005050600050506000505060005050600050506000505060005050600050506113a66000f3fe6080604052600436106101cd5760003560e01c80639cd241af116100f7578063d899e11211610095578063e4af29d111610064578063e4af29d114610352578063eac3e79914610693578063f3f70707146106c7578063f698da25146106fb576101cd565b8063d899e1121461060c578063dbbe807014610640578063ded0623114610653578063e44808bc14610673576101cd565b8063a6e8a859116100d1578063a6e8a859146105a5578063ab033ea914610352578063cba2e58d146105d9578063cbc13434146105ec576101cd565b80639cd241af14610585578063a22cb46514610532578063a42dce8014610352576101cd565b806330adf81f1161016f5780634ed2d6ac1161013e5780634ed2d6ac146105175780637180c8ca1461053257806377d05ff4146105525780639032c72614610565576101cd565b806330adf81f146104905780633e691db9146104c4578063414f826d146104e45780634c2ac1d914610504576101cd565b806317fad7fc116101ab57806317fad7fc146103c95780631c0f12b6146103e957806321b57d531461040957806329b23fc114610462576101cd565b806301681a621461035257806302329a2914610374578063074a6de91461038f575b3480156101d957600080fd5b5060003660606000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168585604051610229929190610d21565b600060405180830381855af49150503d8060008114610264576040519150601f19603f3d011682016040523d82523d6000602084013e610269565b606091505b509150915081156102a6576040517f8bb0a34b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006102b182610d31565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fdcc81126000000000000000000000000000000000000000000000000000000001461030457815160208301fd5b81517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8101600484019081529261034391810160200190602401610dd4565b80519650602001945050505050f35b34801561035e57600080fd5b5061037261036d366004610ec4565b6107b4565b005b34801561038057600080fd5b5061037261036d366004610efd565b34801561039b57600080fd5b506103af6103aa366004610f2a565b6107e1565b604080519283526020830191909152015b60405180910390f35b3480156103d557600080fd5b506103726103e4366004610fc6565b610816565b3480156103f557600080fd5b5061037261040436600461105b565b610848565b34801561041557600080fd5b5061043d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016103c0565b34801561046e57600080fd5b5061048261047d3660046110a3565b610878565b6040519081526020016103c0565b34801561049c57600080fd5b506104827f65619c8664d6db8aae8c236ad19598696159942a4245b23b45565cc18e97367381565b3480156104d057600080fd5b506104826104df3660046110fd565b6108ac565b3480156104f057600080fd5b506103726104ff36600461113a565b6108dd565b61048261051236600461115c565b61090b565b34801561052357600080fd5b506103726104043660046111c0565b34801561053e57600080fd5b5061037261054d36600461120a565b610940565b610482610560366004610f2a565b610969565b34801561057157600080fd5b5061037261058036600461123f565b61099c565b34801561059157600080fd5b506103726105a03660046112bd565b610bdf565b3480156105b157600080fd5b5061043d7f000000000000000000000000000000000000000000000000000000000000000081565b6103af6105e73660046110a3565b610c0e565b3480156105f857600080fd5b506103af610607366004610f2a565b610c44565b34801561061857600080fd5b5061043d7f000000000000000000000000000000000000000000000000000000000000000081565b6103af61064e3660046110a3565b610c70565b34801561065f57600080fd5b5061048261066e3660046110a3565b610c9c565b34801561067f57600080fd5b5061037261068e3660046112f5565b610cc7565b34801561069f57600080fd5b5061043d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106d357600080fd5b5061043d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561070757600080fd5b50604080518082018252600181527f310000000000000000000000000000000000000000000000000000000000000060209182015281517f2aef22f9d7df5f9d21c56d14029233f3fdaa91917727e1eb68e504d27072d6cd818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc681840152466060820152306080808301919091528351808303909101815260a09091019092528151910120610482565b6107dd7f0000000000000000000000000000000000000000000000000000000000000000610cf8565b5050565b60008061080d7f0000000000000000000000000000000000000000000000000000000000000000610cf8565b50935093915050565b61083f7f0000000000000000000000000000000000000000000000000000000000000000610cf8565b50505050505050565b6108717f0000000000000000000000000000000000000000000000000000000000000000610cf8565b5050505050565b60006108a37f0000000000000000000000000000000000000000000000000000000000000000610cf8565b50949350505050565b60006108d77f0000000000000000000000000000000000000000000000000000000000000000610cf8565b50919050565b6109067f0000000000000000000000000000000000000000000000000000000000000000610cf8565b505050565b60006109367f0000000000000000000000000000000000000000000000000000000000000000610cf8565b5095945050505050565b6109067f0000000000000000000000000000000000000000000000000000000000000000610cf8565b60006109947f0000000000000000000000000000000000000000000000000000000000000000610cf8565b509392505050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610a83604080518082018252600181527f310000000000000000000000000000000000000000000000000000000000000060209182015281517f2aef22f9d7df5f9d21c56d14029233f3fdaa91917727e1eb68e504d27072d6cd818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc681840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b60405160248101919091527f65619c8664d6db8aae8c236ad19598696159942a4245b23b45565cc18e973673604482015273ffffffffffffffffffffffffffffffffffffffff808c1660648301528a16608482015288151560a482015260c4810188905260ff871660e48201526101048101869052610124810185905261014401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f14e5f07b0000000000000000000000000000000000000000000000000000000017905251610b859190611354565b600060405180830381855af49150503d8060008114610bc0576040519150601f19603f3d011682016040523d82523d6000602084013e610bc5565b606091505b509150915081610bd757805160208201fd5b805160208201f35b610c087f0000000000000000000000000000000000000000000000000000000000000000610cf8565b50505050565b600080610c3a7f0000000000000000000000000000000000000000000000000000000000000000610cf8565b5094509492505050565b60008061080d7f0000000000000000000000000000000000000000000000000000000000000000610cf8565b600080610c3a7f0000000000000000000000000000000000000000000000000000000000000000610cf8565b60006108a37f0000000000000000000000000000000000000000000000000000000000000000610cf8565b610cf07f0000000000000000000000000000000000000000000000000000000000000000610cf8565b505050505050565b60606000808373ffffffffffffffffffffffffffffffffffffffff16600036604051610b859291905b8183823760009101908152919050565b6000815160208301517fffffffff0000000000000000000000000000000000000000000000000000000080821693506004831015610d795780818460040360031b1b83161693505b505050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60005b83811015610dcb578181015183820152602001610db3565b50506000910152565b600060208284031215610de657600080fd5b815167ffffffffffffffff80821115610dfe57600080fd5b818401915084601f830112610e1257600080fd5b815181811115610e2457610e24610d81565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610e6a57610e6a610d81565b81604052828152876020848701011115610e8357600080fd5b610e94836020830160208801610db0565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610ec157600080fd5b50565b600060208284031215610ed657600080fd5b8135610ee181610e9f565b9392505050565b80358015158114610ef857600080fd5b919050565b600060208284031215610f0f57600080fd5b610ee182610ee8565b6000606082840312156108d757600080fd5b600080600060608486031215610f3f57600080fd5b8335925060208401359150604084013567ffffffffffffffff811115610f6457600080fd5b610f7086828701610f18565b9150509250925092565b60008083601f840112610f8c57600080fd5b50813567ffffffffffffffff811115610fa457600080fd5b6020830191508360208260051b8501011115610fbf57600080fd5b9250929050565b60008060008060008060808789031215610fdf57600080fd5b8635610fea81610e9f565b95506020870135610ffa81610e9f565b9450604087013567ffffffffffffffff8082111561101757600080fd5b6110238a838b01610f7a565b9096509450606089013591508082111561103c57600080fd5b5061104989828a01610f7a565b979a9699509497509295939492505050565b6000806000806080858703121561107157600080fd5b84359350602085013561108381610e9f565b9250604085013561109381610e9f565b9396929550929360600135925050565b600080600080608085870312156110b957600080fd5b843593506020850135925060408501359150606085013567ffffffffffffffff8111156110e557600080fd5b6110f187828801610f18565b91505092959194509250565b60006020828403121561110f57600080fd5b813567ffffffffffffffff81111561112657600080fd5b61113284828501610f18565b949350505050565b6000806040838503121561114d57600080fd5b50508035926020909101359150565b600080600080600060a0868803121561117457600080fd5b85359450602086013593506040860135925060608601359150608086013567ffffffffffffffff8111156111a757600080fd5b6111b388828901610f18565b9150509295509295909350565b600080600080608085870312156111d657600080fd5b8435935060208501356111e881610e9f565b92506040850135915060608501356111ff81610e9f565b939692955090935050565b6000806040838503121561121d57600080fd5b823561122881610e9f565b915061123660208401610ee8565b90509250929050565b600080600080600080600060e0888a03121561125a57600080fd5b873561126581610e9f565b9650602088013561127581610e9f565b955061128360408901610ee8565b945060608801359350608088013560ff811681146112a057600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806000606084860312156112d257600080fd5b8335925060208401356112e481610e9f565b929592945050506040919091013590565b600080600080600060a0868803121561130d57600080fd5b85359450602086013561131f81610e9f565b9350604086013561132f81610e9f565b925060608601359150608086013561134681610e9f565b809150509295509295909350565b60008251611366818460208701610db0565b919091019291505056fea2646970667358221220f43bee3cdf87cd87f1e459df85dde8c12e177438744a94173b2bd1e2d69de38d64736f6c63430008140033" -} \ No newline at end of file diff --git a/deployments/sepolia/TEST_STETH_StETHTarget0.json b/deployments/sepolia/TEST_STETH_StETHTarget0.json deleted file mode 100644 index 9017aec21..000000000 --- a/deployments/sepolia/TEST_STETH_StETHTarget0.json +++ /dev/null @@ -1,1843 +0,0 @@ -{ - "address": "0x11097A8fCbB2bDEB2FD08673FDE3bAE9dFE28275", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "AddressInsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "BatchInputLengthMismatch", - "type": "error" - }, - { - "inputs": [], - "name": "ExpInvalidExponent", - "type": "error" - }, - { - "inputs": [], - "name": "ExpiredDeadline", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidERC20Bridge", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidFeeDestination", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidPresentValue", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidSignature", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidTimestamp", - "type": "error" - }, - { - "inputs": [], - "name": "LnInvalidInput", - "type": "error" - }, - { - "inputs": [], - "name": "ReentrancyGuardReentrantCall", - "type": "error" - }, - { - "inputs": [], - "name": "RestrictedZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ReturnData", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "SafeERC20FailedOperation", - "type": "error" - }, - { - "inputs": [], - "name": "SweepFailed", - "type": "error" - }, - { - "inputs": [], - "name": "Unauthorized", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt256", - "type": "error" - }, - { - "inputs": [], - "name": "UnsupportedToken", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "AddLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "basePayment", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fees", - "type": "uint256" - } - ], - "name": "CollectGovernanceFee", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "checkpointTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "checkpointVaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedShorts", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedLongs", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "CreateCheckpoint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newFeeCollector", - "type": "address" - } - ], - "name": "FeeCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGovernance", - "type": "address" - } - ], - "name": "GovernanceUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "apr", - "type": "uint256" - } - ], - "name": "Initialize", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseProceeds", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isPaused", - "type": "bool" - } - ], - "name": "PauseStatusUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newPauser", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "status", - "type": "bool" - } - ], - "name": "PauserUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - } - ], - "name": "RedeemWithdrawalShares", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "RemoveLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "Sweep", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newSweepCollector", - "type": "address" - } - ], - "name": "SweepCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "baseToken", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - } - ], - "name": "batchTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "collectGovernanceFee", - "outputs": [ - { - "internalType": "uint256", - "name": "proceeds", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_checkpointTime", - "type": "uint256" - } - ], - "name": "getCheckpoint", - "outputs": [ - { - "components": [ - { - "internalType": "uint128", - "name": "vaultSharePrice", - "type": "uint128" - } - ], - "internalType": "struct IHyperdrive.Checkpoint", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_checkpointTime", - "type": "uint256" - } - ], - "name": "getCheckpointExposure", - "outputs": [ - { - "internalType": "int256", - "name": "", - "type": "int256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getMarketState", - "outputs": [ - { - "components": [ - { - "internalType": "uint128", - "name": "shareReserves", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "bondReserves", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "longExposure", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "longsOutstanding", - "type": "uint128" - }, - { - "internalType": "int128", - "name": "shareAdjustment", - "type": "int128" - }, - { - "internalType": "uint128", - "name": "shortsOutstanding", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "longAverageMaturityTime", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "shortAverageMaturityTime", - "type": "uint128" - }, - { - "internalType": "bool", - "name": "isInitialized", - "type": "bool" - }, - { - "internalType": "bool", - "name": "isPaused", - "type": "bool" - }, - { - "internalType": "uint112", - "name": "zombieBaseProceeds", - "type": "uint112" - }, - { - "internalType": "uint128", - "name": "zombieShareReserves", - "type": "uint128" - } - ], - "internalType": "struct IHyperdrive.MarketState", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getPoolConfig", - "outputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getPoolInfo", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "shareReserves", - "type": "uint256" - }, - { - "internalType": "int256", - "name": "shareAdjustment", - "type": "int256" - }, - { - "internalType": "uint256", - "name": "zombieBaseProceeds", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "zombieShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "bondReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lpTotalSupply", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "vaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "longsOutstanding", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "longAverageMaturityTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "shortsOutstanding", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "shortAverageMaturityTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "withdrawalSharesReadyToWithdraw", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "withdrawalSharesProceeds", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "longExposure", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.PoolInfo", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getUncollectedGovernanceFees", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getWithdrawPool", - "outputs": [ - { - "components": [ - { - "internalType": "uint128", - "name": "readyToWithdraw", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "proceeds", - "type": "uint128" - } - ], - "internalType": "struct IHyperdrive.WithdrawPool", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - } - ], - "name": "isPauser", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256[]", - "name": "_slots", - "type": "uint256[]" - } - ], - "name": "load", - "outputs": [ - { - "internalType": "bytes32[]", - "name": "", - "type": "bytes32[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "_status", - "type": "bool" - } - ], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "perTokenApprovals", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "domainSeparator", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "permitTypeHash", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "bool", - "name": "_approved", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permitForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenID", - "type": "uint256" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "setApproval", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenID", - "type": "uint256" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "caller", - "type": "address" - } - ], - "name": "setApprovalBridge", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_who", - "type": "address" - } - ], - "name": "setFeeCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_who", - "type": "address" - } - ], - "name": "setGovernance", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "who", - "type": "address" - }, - { - "internalType": "bool", - "name": "status", - "type": "bool" - } - ], - "name": "setPauser", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_who", - "type": "address" - } - ], - "name": "setSweepCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_target", - "type": "address" - } - ], - "name": "sweep", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenID", - "type": "uint256" - }, - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenID", - "type": "uint256" - }, - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "caller", - "type": "address" - } - ], - "name": "transferFromBridge", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "vaultSharesToken", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "version", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - } - ], - "args": [ - { - "minimumShareReserves": "1000000000000000", - "minimumTransactionAmount": "1000000000000000", - "positionDuration": "2592000", - "checkpointDuration": "86400", - "timeStretch": "0", - "governance": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "feeCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "sweepCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "fees": { - "curve": "1000000000000000", - "flat": "8333333333333", - "governanceLP": "150000000000000000", - "governanceZombie": "30000000000000000" - }, - "baseToken": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", - "vaultSharesToken": "0x8CB2Ec99CF968551408CC30c5223Fa4D8c402E55", - "linkerFactory": "0xE84d966f6f87C7957719ad4BeC7E3bB35a46E8B2", - "linkerCodeHash": "0x9a69ff3b9a110deacb7d941d71222642f269891c0da9fcc15ec7c63fbd216b3f", - "initialVaultSharePrice": "0" - } - ], - "numDeployments": 1, - "bytecode": "0x6102406040523480156200001257600080fd5b5060405162005259380380620052598339810160408190526200003591620001e1565b600160005580516001600160a01b039081166080908152602080840151831660a0908152918401516101a0908152918401516101c05260c0808501516101e0526101008086015190915260e0808601519052610120808601519091529184018051519092528151015161014090815281516040908101516101609081529251606090810151610180908152918601518516610200528501516102205290840151600a80546001600160a01b03199081169286169290921790559184015160088054841691851691909117905590920151600980549093169116179055620002d4565b6040516101c081016001600160401b03811182821017156200014957634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b03811681146200016757600080fd5b919050565b6000608082840312156200017f57600080fd5b604051608081016001600160401b0381118282101715620001b057634e487b7160e01b600052604160045260246000fd5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b60006102208284031215620001f557600080fd5b620001ff62000117565b6200020a836200014f565b81526200021a602084016200014f565b60208201526200022d604084016200014f565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101406200028c8185016200014f565b90820152610160620002a08482016200014f565b90820152610180620002b48482016200014f565b908201526101a0620002c9858583016200016c565b908201529392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e0516102005161022051614e66620003f36000396000818161092c01528181610ecb01526114060152600081816108dc01528181610ea401526113b6015260008181610f4501526124ab015260008181610f1f0152612485015260008181610ef5015261245f01526000611075015260006110500152600061102b01526000611008015260008181610fb801526124d1015260008181610f6b015281816112030152612da9015260008181610f9101526131630152600081816106b301528181610e7801528181612a7901528181612cdd0152818161302b01526130ef015260008181610e5301526111aa0152614e666000f3fe608060405234801561001057600080fd5b50600436106102405760003560e01c806360246c8811610145578063becee9c3116100bd578063d81657431161008c578063e4af29d111610071578063e4af29d1146105a0578063e985e9c5146105b3578063fba56008146105c657600080fd5b8063d816574314610578578063e44808bc1461058d57600080fd5b8063becee9c314610535578063c55dae6314610555578063c69e16ad1461055d578063cf210e651461056557600080fd5b8063a22cb46511610114578063ab033ea9116100f9578063ab033ea9146104fa578063b0d965801461050d578063bd85b0391461052257600080fd5b8063a22cb465146104d4578063a42dce80146104e757600080fd5b806360246c88146103ea5780637180c8ca1461049b5780637ecebe00146104ae5780639cd241af146104c157600080fd5b806320fc4881116101d85780633e691db9116101a75780634e41a1fb1161018c5780634e41a1fb146103bc5780634ed2d6ac146103cf57806354fd4d50146103e257600080fd5b80633e691db91461038657806346fbf68e1461039957600080fd5b806320fc48811461030457806321ff32a914610338578063313ce567146103595780633656eec21461037357600080fd5b80630a4e1493116102145780630a4e14931461029e57806314e5f07b146102cb57806317fad7fc146102de5780631c0f12b6146102f157600080fd5b8062ad800c1461024557806301681a621461026e57806302329a291461028357806306fdde0314610296575b600080fd5b61025861025336600461421d565b6105fe565b60405161026591906142a4565b60405180910390f35b61028161027c3660046142d9565b610635565b005b610281610291366004614304565b610641565b61025861064a565b6102a6610698565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610265565b6102816102d9366004614321565b6106e5565b6102816102ec3660046143fb565b610701565b6102816102ff366004614490565b610717565b61031761031236600461421d565b61072a565b60405190516fffffffffffffffffffffffffffffffff168152602001610265565b61034b6103463660046144d8565b610774565b604051908152602001610265565b6103616107c7565b60405160ff9091168152602001610265565b61034b61038136600461451a565b6107df565b61034b61039436600461454a565b610825565b6103ac6103a73660046142d9565b610830565b6040519015158152602001610265565b6102586103ca36600461421d565b610873565b6102816103dd366004614585565b610881565b6102586109e5565b6103f2610a30565b6040516102659190815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e08083015190820152610100808301519082015261012080830151908201526101408083015190820152610160808301519082015261018080830151908201526101a080830151908201526101c091820151918101919091526101e00190565b6102816104a93660046145cf565b610d28565b61034b6104bc3660046142d9565b610d36565b6102816104cf3660046145fd565b610d6f565b6102816104e23660046145cf565b610d80565b6102816104f53660046142d9565b610e17565b6102816105083660046142d9565b610e20565b610515610e29565b6040516102659190614635565b61034b61053036600461421d565b6110b2565b610548610543366004614797565b6110d4565b60405161026591906147d9565b6102a661118f565b61034b6111dc565b61034b61057336600461421d565b6111f6565b61058061123f565b604051610265919061481d565b61028161059b36600461497d565b61135b565b6102816105ae3660046142d9565b6114b9565b6103ac6105c13660046149dc565b6114c2565b6105ce611513565b6040805182516fffffffffffffffffffffffffffffffff9081168252602093840151169281019290925201610265565b606061063061060c83611588565b60405160200161061c91906142a4565b6040516020818303038152906040526116d8565b919050565b61063e81611715565b50565b61063e81611932565b60606106956040518060400160405280600f81526020017f537445544848797065726472697665000000000000000000000000000000000081525060405160200161061c91906142a4565b90565b6040805173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152600091610695910161061c565b6106f68989898989898989896119ec565b505050505050505050565b61070f868686868686611cc6565b505050505050565b6107248484848433611dc6565b50505050565b6040805160208101909152600081526106306007600084815260200190815260200160002060405160200161061c91546fffffffffffffffffffffffffffffffff16815260200190565b600083815260106020908152604080832073ffffffffffffffffffffffffffffffffffffffff868116855290835281842090851684528252808320548151928301526107c0910161061c565b9392505050565b6040805160126020820152600091610695910161061c565b6000828152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845282528083205481519283015261081f910161061c565b92915050565b600061081f82612040565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600c602090815260408083205490516106309261061c9260ff169101901515815260200190565b606061063061060c836121dc565b8361096e81604080513060208083019190915281830193909352815180820383018152606080830184528151918501919091207fff0000000000000000000000000000000000000000000000000000000000000060808401527f000000000000000000000000000000000000000000000000000000000000000090911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016608183015260958201527f000000000000000000000000000000000000000000000000000000000000000060b5808301919091528251808303909101815260d5909101909152805191012090565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109d2576040517f2aab8bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109de85858585612312565b5050505050565b60606106956040518060400160405280600681526020017f76312e302e32000000000000000000000000000000000000000000000000000081525060405160200161061c91906142a4565b610aa9604051806101e001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000610ab361238c565b600654600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e95460008080527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c54939450926fffffffffffffffffffffffffffffffff90921691610b279190614a68565b610b319190614a7b565b90506000808311610b43576000610b5e565b610b5e83610b58610b53866123a4565b612566565b906125af565b604080516101e0810182526001546fffffffffffffffffffffffffffffffff8082168352600354600f81900b60208501526005546dffffffffffffffffffffffffffff62010000820416958501959095527001000000000000000000000000000000009485900482166060850152918490048116608084015260a0830187905260c08301889052600254849004811660e0840152600454808216610100850152918490048116610120840152908390048116610140830152600654808216610160840152929092049091166101808201529091506000906101a081018415610c4f57610c4a84866125c4565b610c52565b60005b81526002546fffffffffffffffffffffffffffffffff16602091820152604051919250610d219161061c91849101815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e08083015190820152610100808301519082015261012080830151908201526101408083015190820152610160808301519082015261018080830151908201526101a080830151908201526101c091820151918101919091526101e00190565b5050505090565b610d3282826125d9565b5050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260116020908152604080832054815192830152610630910161061c565b610d7b83838333612312565b505050565b336000818152600f6020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61063e816126b4565b61063e81612774565b610e316140ff565b604080516101c08101825273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811682527f000000000000000000000000000000000000000000000000000000000000000081166020808401919091527f00000000000000000000000000000000000000000000000000000000000000008216838501527f00000000000000000000000000000000000000000000000000000000000000006060808501919091527f00000000000000000000000000000000000000000000000000000000000000006080808601919091527f000000000000000000000000000000000000000000000000000000000000000060a08601527f000000000000000000000000000000000000000000000000000000000000000060c08601527f000000000000000000000000000000000000000000000000000000000000000060e08601527f00000000000000000000000000000000000000000000000000000000000000006101008601527f0000000000000000000000000000000000000000000000000000000000000000610120860152600a5484166101408601526008548416610160860152600954909316610180850152845192830185527f000000000000000000000000000000000000000000000000000000000000000083527f0000000000000000000000000000000000000000000000000000000000000000838301527f0000000000000000000000000000000000000000000000000000000000000000838601527f0000000000000000000000000000000000000000000000000000000000000000908301526101a083019190915291516106959261061c929101614635565b6000818152600e6020908152604080832054815192830152610630910161061c565b606060008267ffffffffffffffff8111156110f1576110f1614a8e565b60405190808252806020026020018201604052801561111a578160200160208202803683370190505b50905060005b8381101561117357600085858381811061113c5761113c614abd565b9050602002013590506000815490508084848151811061115e5761115e614abd565b60209081029190910101525050600101611120565b506111888160405160200161061c91906147d9565b5092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152600091610695910161061c565b6000610695600b5460405160200161061c91815260200190565b600061063061122d6112287f000000000000000000000000000000000000000000000000000000000000000085614a68565b612834565b60405160200161061c91815260200190565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810191909152610695600160405160200161061c919081546fffffffffffffffffffffffffffffffff8082168352608091821c602084015260018401548082166040850152821c60608401526002840154600f81900b83850152821c60a0840152600384015490811660c0840152811c60e083015260049092015460ff8082161515610100840152600882901c1615156101208301526dffffffffffffffffffffffffffff601082901c1661014083015290911c6101608201526101800190565b8461144881604080513060208083019190915281830193909352815180820383018152606080830184528151918501919091207fff0000000000000000000000000000000000000000000000000000000000000060808401527f000000000000000000000000000000000000000000000000000000000000000090911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016608183015260958201527f000000000000000000000000000000000000000000000000000000000000000060b5808301919091528251808303909101815260d5909101909152805191012090565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114ac576040517f2aab8bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61070f8686868686611dc6565b61063e81612878565b73ffffffffffffffffffffffffffffffffffffffff8281166000908152600f60209081526040808320938516835292815282822054835160ff909116151591810191909152909161081f910161061c565b60408051808201909152600080825260208201526040805180820182526006546fffffffffffffffffffffffffffffffff80821680845270010000000000000000000000000000000090920481166020938401908152845193840192909252905116918101919091526106959060600161061c565b606060f882901c7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831660006115bc82612938565b905060008360038111156115d2576115d2614a0a565b03611614576040518060400160405280600d81526020017f48797065726472697665204c500000000000000000000000000000000000000081525093506116d0565b600183600381111561162857611628614a0a565b03611654578060405160200161163e9190614aec565b60405160208183030381529060405293506116d0565b600283600381111561166857611668614a0a565b0361167e578060405160200161163e9190614b31565b600383600381111561169257611692614a0a565b036116d0576040518060400160405280601b81526020017f48797065726472697665205769746864726177616c205368617265000000000081525093505b505050919050565b806040517fdcc8112600000000000000000000000000000000000000000000000000000000815260040161170c91906142a4565b60405180910390fd5b61171d612a05565b600954336000908152600c602052604090205473ffffffffffffffffffffffffffffffffffffffff9091169060ff1615801561176f57503373ffffffffffffffffffffffffffffffffffffffff821614155b80156117935750600a5473ffffffffffffffffffffffffffffffffffffffff163314155b156117ca576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006117d4612a48565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290915060009073ffffffffffffffffffffffffffffffffffffffff8516906370a0823190602401602060405180830381865afa158015611844573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118689190614b76565b905061188b73ffffffffffffffffffffffffffffffffffffffff85168483612af9565b81611894612a48565b146118cb576040517f9eec2ff800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f951f51ee88c8e42633698bba90d1e53c0954470938036879e691c0232b47e09660405160405180910390a350505061063e6001600055565b336000908152600c602052604090205460ff1661197b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60058054821515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff9091161790556040517f7c4d1fe30fdbfda9e9c4c43e759ef32e4db5128d4cb58ff3ae9583b89b6242a5906119e190831515815260200190565b60405180910390a150565b83421115611a26576040517ff87d927100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8716611a73576040517ff0dd15fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87811660008181526011602090815260408083205481518084018f905280830195909552948b166060850152891515608085015260a084019490945260c08084018990528451808503909101815260e0840190945283519301929092207f190100000000000000000000000000000000000000000000000000000000000061010083015261010282018c905261012282015261014201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015611ba7573d6000803e3d6000fd5b5050506020604051035190508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611c18576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff898116600081815260116020908152604080832080546001019055600f8252808320948d168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168c151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff86161580611cfd575073ffffffffffffffffffffffffffffffffffffffff8516155b15611d34576040517ff0dd15fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b828114611d6d576040517fba430d3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b83811015611dbd57611db5858583818110611d8d57611d8d614abd565b905060200201358888868686818110611da857611da8614abd565b9050602002013533611dc6565b600101611d70565b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff84161580611dfd575073ffffffffffffffffffffffffffffffffffffffff8316155b15611e34576040517ff0dd15fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611f575773ffffffffffffffffffffffffffffffffffffffff8085166000908152600f602090815260408083209385168352929052205460ff16611f5757600085815260106020908152604080832073ffffffffffffffffffffffffffffffffffffffff808916855290835281842090851684529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611f5557600086815260106020908152604080832073ffffffffffffffffffffffffffffffffffffffff808a168552908352818420908616845290915281208054859290611f4f908490614a7b565b90915550505b505b6000858152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8816845290915281208054849290611f96908490614a7b565b90915550506000858152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281208054849290611fda908490614a68565b9091555050604080518681526020810184905273ffffffffffffffffffffffffffffffffffffffff8086169287821692918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a45050505050565b600061204a612a05565b61205382612b86565b60085473ffffffffffffffffffffffffffffffffffffffff168061207a60208501856142d9565b73ffffffffffffffffffffffffffffffffffffffff16146120c7576040517f2b44eccc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152600c602052604090205460ff161580156120fd57503373ffffffffffffffffffffffffffffffffffffffff821614155b80156121215750600a5473ffffffffffffffffffffffffffffffffffffffff163314155b15612158576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061216261238c565b600b80546000909155909150612179818387612be2565b93508273ffffffffffffffffffffffffffffffffffffffff167fa4bafc79b3f9fdba2427cd386f1fbc7d8779e9fd7229f6220d53bc04d3901e476121be868589612c7c565b60405190815260200160405180910390a25050506106306001600055565b606060f882901c7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8316600061221082612938565b9050600083600381111561222657612226614a0a565b03612268576040518060400160405280600d81526020017f485950455244524956452d4c500000000000000000000000000000000000000081525093506116d0565b600183600381111561227c5761227c614a0a565b03612292578060405160200161163e9190614b8f565b60028360038111156122a6576122a6614a0a565b036122bc578060405160200161163e9190614bd4565b60038360038111156122d0576122d0614a0a565b036116d057505060408051808201909152600d81527f485950455244524956452d57530000000000000000000000000000000000000060208201529392505050565b600084815260106020908152604080832073ffffffffffffffffffffffffffffffffffffffff85811680865291845282852090881680865290845293829020869055905185815290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050565b600061239f670de0b6b3a7640000612cab565b905090565b6124086040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60408051610180810182526001546fffffffffffffffffffffffffffffffff8082168352600354600f0b602084015270010000000000000000000000000000000091829004811693830193909352606082018590527f000000000000000000000000000000000000000000000000000000000000000060808301527f000000000000000000000000000000000000000000000000000000000000000060a08301527f000000000000000000000000000000000000000000000000000000000000000060c08301527f000000000000000000000000000000000000000000000000000000000000000060e083015260025404821661010082015260045490916101208301916125169116612d5e565b81526003546fffffffffffffffffffffffffffffffff700100000000000000000000000000000000918290048116602084015260045460409093019261255e92900416612d5e565b905292915050565b600080600061257484612dd4565b9150915080611188576040517faa2c651600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006107c08383670de0b6b3a7640000612e61565b60006107c083670de0b6b3a764000084612e61565b600a5473ffffffffffffffffffffffffffffffffffffffff16331461262a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000818152600c602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f902923dcd4814f6cef7005a70e01d5cf2035ab02d4523ef3b865f1d7bab885af910160405180910390a25050565b600a5473ffffffffffffffffffffffffffffffffffffffff163314612705576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fe5693914d19c789bdee50a362998c0bc8d035a835f9871da5d51152f0582c34f90600090a250565b600a5473ffffffffffffffffffffffffffffffffffffffff1633146127c5576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f9d3e522e1e47a2f6009739342b9cc7b252a1888154e843ab55ee1c81745795ab90600090a250565b600061285c600e6000612848600286612e9d565b815260200190815260200160002054612f03565b61286e600e6000612848600187612e9d565b61081f9190614c0c565b600a5473ffffffffffffffffffffffffffffffffffffffff1633146128c9576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fc049058b1df2dd8902739ceb78992df12fa8369c06c450b3c6787137b452fdd290600090a250565b60408051604e80825260808201909252606091906000908260208201818036833701905050905060005b84156129f757612973600a86614c5b565b61297e906030614a68565b60f81b82600161298e8487614a7b565b6129989190614a7b565b815181106129a8576129a8614abd565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350806129e181614c6f565b91506129f09050600a86614ca7565b9450612962565b918290030190815292915050565b600260005403612a41576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040517ff5eb42dc0000000000000000000000000000000000000000000000000000000081523060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063f5eb42dc90602401602060405180830381865afa158015612ad5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061239f9190614b76565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610d7b908490612f63565b6000612b9560208301836142d9565b73ffffffffffffffffffffffffffffffffffffffff160361063e576040517ff0dd15fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080612bef85856125af565b9050612bfa81612ff9565b945084600003612c0e5760009150506107c0565b612c1e6040840160208501614304565b15612c4d57612c4685612c3460208601866142d9565b612c416040870187614cbb565b61306f565b9150612c74565b612c7085612c5e60208601866142d9565b612c6b6040870187614cbb565b6130a3565b8491505b509392505050565b6000612c8e6040830160208401614304565b15612c9a5750826107c0565b612ca484846125af565b90506107c0565b6040517f7a28fb88000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637a28fb88906024015b602060405180830381865afa158015612d3a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081f9190614b76565b600080670de0b6b3a7640000612d7261315c565b612d7c9190614d20565b9050808311612d8c576000612d96565b612d968184614a7b565b91506107c0612dcd670de0b6b3a76400007f0000000000000000000000000000000000000000000000000000000000000000614d20565b83906125c4565b6000806000806000612de586613192565b9150915080612dfc57506000958695509350505050565b612e098660a00151612f03565b612e12876134cc565b83612e208960000151612f03565b612e2a9190614d37565b612e349190614d37565b612e3e9190614c0c565b925050506000811215612e575750600093849350915050565b9360019350915050565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0484118302158202612e9657600080fd5b5091020490565b60007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115612ef8576040517fb7d0949700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060f89190911b1790565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115612f5f576040517f72dd4e0200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5090565b6000612f8573ffffffffffffffffffffffffffffffffffffffff841683613530565b90508051600014158015612faa575080806020019051810190612fa89190614d57565b155b15610d7b576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260240161170c565b6040517f19208451000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690631920845190602401612d1d565b60006040517f6a17288200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f8fcb4e5b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018690527f00000000000000000000000000000000000000000000000000000000000000001690638fcb4e5b906044016020604051808303816000875af1158015613138573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109de9190614b76565b60006131887f000000000000000000000000000000000000000000000000000000000000000042614c5b565b61239f9042614a7b565b60008060006131bc6131b78561016001518661014001516125af90919063ffffffff16565b612f03565b6131dc6131b786610120015187610100015161353e90919063ffffffff16565b6131e69190614c0c565b90506000806131fd86600001518760200151613553565b915091508061321457506000958695509350505050565b60008313156133645760008390506000613262886000015189602001518a604001518b60a001518c60e00151670de0b6b3a76400006132539190614a7b565b8d606001518e60800151613592565b935090508261327b575060009788975095505050505050565b8181106133195760006132b5858a60400151858c60e00151670de0b6b3a76400006132a69190614a7b565b8d606001518e608001516136a4565b94509050831580156132ca57508860c0015183105b156132e15750600098600198509650505050505050565b836132f757506000988998509650505050505050565b61330081612f03565b61330990614d74565b9960019950975050505050505050565b6000886020015112613350576133388860a00151856131b79190614a7b565b61334190614d74565b98600198509650505050505050565b60a08801518851613338916131b791614a7b565b60008312156134bd57600061337884614d74565b905060006133ac8489604001518a60e00151670de0b6b3a764000061339d9190614a7b565b8b606001518c60800151613767565b93509050826133c5575060009788975095505050505050565b81811061344a5760006133ff858a60400151858c60e00151670de0b6b3a76400006133f09190614a7b565b8d606001518e60800151613813565b945090508315801561341457508860c0015183105b1561342b5750600098600198509650505050505050565b8361344157506000988998509650505050505050565b61330981612f03565b600061347c858a604001518b60e00151670de0b6b3a764000061346d9190614a7b565b8c606001518d608001516138ea565b945090508361349657506000988998509650505050505050565b6133096134b38a6060015184866134ad9190614a7b565b906125c4565b6131b79083614a68565b50600095600195509350505050565b60006134ff6131b7836101200151670de0b6b3a76400006134ed9190614a7b565b60608501516101008601519190613999565b61286e6131b7846101600151670de0b6b3a764000061351e9190614a7b565b60608601516101408701519190612e61565b60606107c0838360006139dd565b60006107c08383670de0b6b3a7640000613999565b60008060008361356286612f03565b61356c9190614c0c565b9050600081121561358457600080925092505061358b565b9150600190505b9250929050565b60008060008812156135b4576135a788614d74565b6135b19087614a68565b95505b6000806135c18b8b613553565b91509150806135d857600080935093505050613698565b60006135e7838b8a8a8a613aa0565b9050600061360a6136028a6135fc8a8e61353e565b90613acf565b899089613999565b905080821015613624576000809550955050505050613698565b808203670de0b6b3a764000081106136595761365261364b670de0b6b3a76400008c6125c4565b8290613acf565b9050613671565b61366e61364b670de0b6b3a76400008c613b3a565b90505b8b81101561368a57600080965096505050505050613698565b8b9003955060019450505050505b97509795505050505050565b60008060006136b68989888888613b4f565b90506136c6866135fc898b614a68565b9750878110156136dd57600080925092505061375c565b8781036136eb818688613999565b9050670de0b6b3a764000081106137185761371161364b670de0b6b3a764000089613b3a565b9050613730565b61372d61364b670de0b6b3a7640000896125c4565b90505b61373a8186613b3a565b9050808a10156137525760008093509350505061375c565b8903925060019150505b965096945050505050565b60008060006137798888888888613b4f565b905060006137a4670de0b6b3a764000061379388886125c4565b61379d9190614a68565b8390613b3a565b9050670de0b6b3a764000081106137d1576137ca61364b670de0b6b3a764000089613b3a565b90506137e9565b6137e661364b670de0b6b3a7640000896125c4565b90505b808810156137ff57600080935093505050613809565b8703925060019150505b9550959350505050565b60008060006138258989888888613b4f565b90508688101561383c57600080925092505061375c565b968690039661384b8887613acf565b97508781101561386257600080925092505061375c565b878103613870818688613999565b9050670de0b6b3a7640000811061389d5761389661364b670de0b6b3a764000089613b3a565b90506138b5565b6138b261364b670de0b6b3a7640000896125c4565b90505b6138bf8186613b3a565b9050898110156138d75760008093509350505061375c565b9890980398600198509650505050505050565b60008060006138fc8888888888613aa0565b90506000613920670de0b6b3a76400006139168888613b3a565b612dcd9190614a68565b9050670de0b6b3a7640000811061394d5761394661364b670de0b6b3a7640000896125c4565b9050613965565b61396261364b670de0b6b3a764000089613b3a565b90505b61396f81866125c4565b90508881101561398757600080935093505050613809565b97909703976001975095505050505050565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04841183021582026139ce57600080fd5b50910281810615159190040190565b606081471015613a1b576040517fcd78605900000000000000000000000000000000000000000000000000000000815230600482015260240161170c565b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051613a449190614dac565b60006040518083038185875af1925050503d8060008114613a81576040519150601f19603f3d011682016040523d82523d6000602084013e613a86565b606091505b5091509150613a96868383613b74565b9695505050505050565b6000613aac8585613acf565b613ac5613abd866135fc868b6125af565b859085612e61565b613a969190614a68565b600081600003613ae85750670de0b6b3a764000061081f565b82600003613af85750600061081f565b6000613b0383612f03565b90506000613b18613b1386612f03565b613c03565b9050818102613b2f670de0b6b3a764000082614dc8565b9050613a9681613ea4565b60006107c083670de0b6b3a764000084613999565b6000613b5b8585613acf565b613ac5613b6c866135fc868b61353e565b859085613999565b606082613b8957613b84826140bd565b6107c0565b8151158015613bad575073ffffffffffffffffffffffffffffffffffffffff84163b155b15613bfc576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260240161170c565b50806107c0565b6000808213613c3e576040517fe61b497500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff10600390811b90911782811c600f1060021b1782811c909110600190811b90911782811c90911017609f8181036060019290921b917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0820190613ce89084901c612f03565b6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b391909102017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c18213613ed557506000919050565b680755bf798b4a1bf1e58212613f17576040517f73a2d6b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b3988102909303927fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550484018402606090811d6d0277594991cfc85f6e2461837cd9018502811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018502811d6db1bbb201f443cf962f1a1d3db4a5018502811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018502811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765087018702831d9081019087017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e01810290921d6e0587f503bb6ea29d25fcb74019645001860279d835ebba824c98fb31b83b2ca45c000000000000000000000000018181059550929350909190613a9674029d9dc38563c32e5c2f6dc192ee70ef65f9978af3860260c38690031c612f03565b8051156140cd5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051806101c00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016142186040518060800160405280600081526020016000815260200160008152602001600081525090565b905290565b60006020828403121561422f57600080fd5b5035919050565b60005b83811015614251578181015183820152602001614239565b50506000910152565b60008151808452614272816020860160208601614236565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006107c0602083018461425a565b73ffffffffffffffffffffffffffffffffffffffff8116811461063e57600080fd5b6000602082840312156142eb57600080fd5b81356107c0816142b7565b801515811461063e57600080fd5b60006020828403121561431657600080fd5b81356107c0816142f6565b60008060008060008060008060006101208a8c03121561434057600080fd5b8935985060208a0135975060408a0135614359816142b7565b965060608a0135614369816142b7565b955060808a0135614379816142f6565b945060a08a0135935060c08a013560ff8116811461439657600080fd5b8093505060e08a013591506101008a013590509295985092959850929598565b60008083601f8401126143c857600080fd5b50813567ffffffffffffffff8111156143e057600080fd5b6020830191508360208260051b850101111561358b57600080fd5b6000806000806000806080878903121561441457600080fd5b863561441f816142b7565b9550602087013561442f816142b7565b9450604087013567ffffffffffffffff8082111561444c57600080fd5b6144588a838b016143b6565b9096509450606089013591508082111561447157600080fd5b5061447e89828a016143b6565b979a9699509497509295939492505050565b600080600080608085870312156144a657600080fd5b8435935060208501356144b8816142b7565b925060408501356144c8816142b7565b9396929550929360600135925050565b6000806000606084860312156144ed57600080fd5b8335925060208401356144ff816142b7565b9150604084013561450f816142b7565b809150509250925092565b6000806040838503121561452d57600080fd5b82359150602083013561453f816142b7565b809150509250929050565b60006020828403121561455c57600080fd5b813567ffffffffffffffff81111561457357600080fd5b8201606081850312156107c057600080fd5b6000806000806080858703121561459b57600080fd5b8435935060208501356145ad816142b7565b92506040850135915060608501356145c4816142b7565b939692955090935050565b600080604083850312156145e257600080fd5b82356145ed816142b7565b9150602083013561453f816142f6565b60008060006060848603121561461257600080fd5b833592506020840135614624816142b7565b929592945050506040919091013590565b815173ffffffffffffffffffffffffffffffffffffffff1681526102208101602083015161467b602084018273ffffffffffffffffffffffffffffffffffffffff169052565b5060408301516146a3604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e0830152610100808401518184015250610120808401518184015250610140808401516147168285018273ffffffffffffffffffffffffffffffffffffffff169052565b50506101608381015173ffffffffffffffffffffffffffffffffffffffff81168483015250506101808381015173ffffffffffffffffffffffffffffffffffffffff81168483015250506101a08381015180518483015260208101516101c085015260408101516101e085015260608101516102008501525b505092915050565b600080602083850312156147aa57600080fd5b823567ffffffffffffffff8111156147c157600080fd5b6147cd858286016143b6565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b81811015614811578351835292840192918401916001016147f5565b50909695505050505050565b81516fffffffffffffffffffffffffffffffff1681526101808101602083015161485b60208401826fffffffffffffffffffffffffffffffff169052565b50604083015161487f60408401826fffffffffffffffffffffffffffffffff169052565b5060608301516148a360608401826fffffffffffffffffffffffffffffffff169052565b5060808301516148b86080840182600f0b9052565b5060a08301516148dc60a08401826fffffffffffffffffffffffffffffffff169052565b5060c083015161490060c08401826fffffffffffffffffffffffffffffffff169052565b5060e083015161492460e08401826fffffffffffffffffffffffffffffffff169052565b506101008381015115159083015261012080840151151590830152610140808401516dffffffffffffffffffffffffffff1690830152610160808401516fffffffffffffffffffffffffffffffff81168285015261478f565b600080600080600060a0868803121561499557600080fd5b8535945060208601356149a7816142b7565b935060408601356149b7816142b7565b92506060860135915060808601356149ce816142b7565b809150509295509295909350565b600080604083850312156149ef57600080fd5b82356149fa816142b7565b9150602083013561453f816142b7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561081f5761081f614a39565b8181038181111561081f5761081f614a39565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f48797065726472697665204c6f6e673a20000000000000000000000000000000815260008251614b24816011850160208701614236565b9190910160110192915050565b7f487970657264726976652053686f72743a200000000000000000000000000000815260008251614b69816012850160208701614236565b9190910160120192915050565b600060208284031215614b8857600080fd5b5051919050565b7f485950455244524956452d4c4f4e473a00000000000000000000000000000000815260008251614bc7816010850160208701614236565b9190910160100192915050565b7f485950455244524956452d53484f52543a000000000000000000000000000000815260008251614b24816011850160208701614236565b818103600083128015838313168383128216171561118857611188614a39565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614c6a57614c6a614c2c565b500690565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614ca057614ca0614a39565b5060010190565b600082614cb657614cb6614c2c565b500490565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614cf057600080fd5b83018035915067ffffffffffffffff821115614d0b57600080fd5b60200191503681900382131561358b57600080fd5b808202811582820484141761081f5761081f614a39565b808201828112600083128015821682158216171561478f5761478f614a39565b600060208284031215614d6957600080fd5b81516107c0816142f6565b60007f80000000000000000000000000000000000000000000000000000000000000008203614da557614da5614a39565b5060000390565b60008251614dbe818460208701614236565b9190910192915050565b600082614dd757614dd7614c2c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615614e2b57614e2b614a39565b50059056fea2646970667358221220a38945e91ff127e9278df2cb143b2e8eac3d2b289b00b400e641e3cf44817e1964736f6c63430008140033" -} \ No newline at end of file diff --git a/deployments/sepolia/TEST_STETH_StETHTarget1.json b/deployments/sepolia/TEST_STETH_StETHTarget1.json deleted file mode 100644 index d55767eef..000000000 --- a/deployments/sepolia/TEST_STETH_StETHTarget1.json +++ /dev/null @@ -1,960 +0,0 @@ -{ - "address": "0xc4E94850FBD74489D40FF2c6dfdEc34E4100Ef07", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "DistributeExcessIdleFailed", - "type": "error" - }, - { - "inputs": [], - "name": "ExpInvalidExponent", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientLiquidity", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidPresentValue", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidTimestamp", - "type": "error" - }, - { - "inputs": [], - "name": "LnInvalidInput", - "type": "error" - }, - { - "inputs": [], - "name": "MinimumTransactionAmount", - "type": "error" - }, - { - "inputs": [], - "name": "OutputLimit", - "type": "error" - }, - { - "inputs": [], - "name": "ReentrancyGuardReentrantCall", - "type": "error" - }, - { - "inputs": [], - "name": "RestrictedZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt128", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt256", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToUint112", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToUint128", - "type": "error" - }, - { - "inputs": [], - "name": "UnsupportedToken", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "AddLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "basePayment", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fees", - "type": "uint256" - } - ], - "name": "CollectGovernanceFee", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "checkpointTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "checkpointVaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedShorts", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedLongs", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "CreateCheckpoint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newFeeCollector", - "type": "address" - } - ], - "name": "FeeCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGovernance", - "type": "address" - } - ], - "name": "GovernanceUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "apr", - "type": "uint256" - } - ], - "name": "Initialize", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseProceeds", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isPaused", - "type": "bool" - } - ], - "name": "PauseStatusUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newPauser", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "status", - "type": "bool" - } - ], - "name": "PauserUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - } - ], - "name": "RedeemWithdrawalShares", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "RemoveLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "Sweep", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newSweepCollector", - "type": "address" - } - ], - "name": "SweepCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_maturityTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_bondAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minOutput", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "closeShort", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_withdrawalShares", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minOutputPerShare", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "redeemWithdrawalShares", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [ - { - "minimumShareReserves": "1000000000000000", - "minimumTransactionAmount": "1000000000000000", - "positionDuration": "2592000", - "checkpointDuration": "86400", - "timeStretch": "0", - "governance": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "feeCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "sweepCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "fees": { - "curve": "1000000000000000", - "flat": "8333333333333", - "governanceLP": "150000000000000000", - "governanceZombie": "30000000000000000" - }, - "baseToken": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", - "vaultSharesToken": "0x8CB2Ec99CF968551408CC30c5223Fa4D8c402E55", - "linkerFactory": "0xE84d966f6f87C7957719ad4BeC7E3bB35a46E8B2", - "linkerCodeHash": "0x9a69ff3b9a110deacb7d941d71222642f269891c0da9fcc15ec7c63fbd216b3f", - "initialVaultSharePrice": "0" - } - ], - "numDeployments": 1, - "bytecode": "0x6102406040523480156200001257600080fd5b50604051620053b0380380620053b08339810160408190526200003591620001e1565b600160005580516001600160a01b039081166080908152602080840151831660a0908152918401516101a0908152918401516101c05260c0808501516101e0526101008086015190915260e0808601519052610120808601519091529184018051519092528151015161014090815281516040908101516101609081529251606090810151610180908152918601518516610200528501516102205290840151600a80546001600160a01b03199081169286169290921790559184015160088054841691851691909117905590920151600980549093169116179055620002d4565b6040516101c081016001600160401b03811182821017156200014957634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b03811681146200016757600080fd5b919050565b6000608082840312156200017f57600080fd5b604051608081016001600160401b0381118282101715620001b057634e487b7160e01b600052604160045260246000fd5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b60006102208284031215620001f557600080fd5b620001ff62000117565b6200020a836200014f565b81526200021a602084016200014f565b60208201526200022d604084016200014f565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101406200028c8185016200014f565b90820152610160620002a08482016200014f565b90820152610180620002b48482016200014f565b908201526101a0620002c9858583016200016c565b908201529392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e0516102005161022051614f87620004296000396000505060005050600081816101b40152612df501526000818161155a01528181611c6e01528181611cd1015281816128e90152818161292e01528181612bb60152612dcf015260008181610ed801528181610f3b0152818161112c0152612da9015260006119db015260008181611b2e0152818161244301526124bc01526000818161078a015281816110a501528181611b020152612490015260008181610f8d0152612409015260008181610eb601528181610f5c0152818161114d0152612e1b0152600081816106bc015281816110190152818161228701526138bc015260008181610526015281816105c50152610633015260008181611808015281816126ff01526127c3015260005050614f876000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063074a6de91461003b57806329b23fc114610068575b600080fd5b61004e610049366004614b35565b610089565b604080519283526020830191909152015b60405180910390f35b61007b610076366004614b85565b6100a4565b60405190815260200161005f565b6000806100978585856100bd565b915091505b935093915050565b60006100b28585858561019f565b90505b949350505050565b6000806100c8610465565b6100d1836104a8565b60006100db610507565b90506100f06100e861051f565b826004610555565b506100fe3387838888610aa9565b90935091506101106020850185614bdf565b73ffffffffffffffffffffffffffffffffffffffff16337f4ce1e73a001c994d4d884cd1e382579f9c1e81eccf26e70ece8caa1b60a8c2cf8461015487868a610c92565b61015f88878b610cc1565b61016f60408b0160208c01614c15565b604080519485526020850193909352918301521515606082015260800160405180910390a35061009c6001600055565b60006101a9610465565b6101b2826104a8565b7f000000000000000000000000000000000000000000000000000000000000000084101561020c576040517f423bbb4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610216610507565b9050854210156102315761022b6100e861051f565b5061023f565b61023d86826004610555565b505b61025461024d600288610ce9565b3387610d4f565b60008060008060006102678a878d610e68565b945094509450945094508a4210156103275780600b600082825461028b9190614c66565b9091555061029e90508a8685858f6111a6565b60006102a98c6113d2565b90506102c76102b78c61141c565b6102c19083614c79565b8261147c565b6102d087611553565b6102dc576102dc6115c5565b60006102e7886115f7565b905080610320576040517f8bdf918d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505061033e565b6103318487611604565b935061033c866115f7565b505b600061034b85888b611727565b905089811015610387576040517fc972651700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8a8c85848a8d610398600286610ce9565b6103a56020830183614bdf565b73ffffffffffffffffffffffffffffffffffffffff16337fcb02fec44af7356703a283b87ccec63f4ea688efc67fee9cdc1834a93260c730886103e98c8888610c92565b6103f48d8989610cc1565b6104046040890160208a01614c15565b6104188a6104128d8f614c66565b906117c1565b6040805195865260208601949094529284019190915215156060830152608082015260a081018b905260c00160405180910390a450949b5050505050505050505050506100b56001600055565b6002600054036104a1576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b60006104b76020830183614bdf565b73ffffffffffffffffffffffffffffffffffffffff1603610504576040517ff0dd15fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b600061051a670de0b6b3a76400006117d6565b905090565b600061054b7f000000000000000000000000000000000000000000000000000000000000000042614cc8565b61051a9042614cdc565b600083815260076020526040812080546fffffffffffffffffffffffffffffffff1615158061058357504285115b156105a257546fffffffffffffffffffffffffffffffff169050610aa2565b6000806105ad61051f565b90508087036105be57859150610661565b60006105ea7f000000000000000000000000000000000000000000000000000000000000000089614c66565b90505b6000818152600760205260409020546fffffffffffffffffffffffffffffffff169250818114801561061d575082155b15610626578692505b8260000361065f576106587f000000000000000000000000000000000000000000000000000000000000000082614c66565b90506105ed565b505b61066a82611889565b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff919091161783556106af866118d5565b50600090506007816106e17f00000000000000000000000000000000000000000000000000000000000000008b614cdc565b815260208101919091526040016000908120546fffffffffffffffffffffffffffffffff16915061071360028a610ce9565b6000818152600e60205260408120549192508a8a8315610896576001925060008061074286898c866000611aeb565b9150915080600b60008282546107589190614c66565b9091555061077490508660008461076e8161141c565b886111a6565b61077e8183614c66565b91506107ae86838a8d877f0000000000000000000000000000000000000000000000000000000000000000611bba565b91506107c26107bd83856117c1565b611c04565b600580546002906107ea9084906201000090046dffffffffffffffffffffffffffff16614cef565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff16021790555061082582611889565b6005805460109061085d90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614d16565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505b60006108a3600184610ce9565b6000818152600e602052604090205490915080156109ef57600194506000806108d0838b8e886001611aeb565b9150915080600b60008282546108e69190614c66565b909155506109029050836000846108fc8161141c565b8a611c4e565b61090c8183614cdc565b915061091b6107bd83876117c1565b600580546002906109439084906201000090046dffffffffffffffffffffffffffff16614cef565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff16021790555061097e82611889565b600580546010906109b690849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614d16565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505b8415610a2757610a1b610a018761141c565b610a0a8361141c565b610a149190614c79565b600061147c565b610a258e8e611f08565b505b6000610a328f6120fb565b5090508f7fff888cf98d2696e95c8c39aa98c9ad55a5378008f7a56614c9353b7137a57ab78c868a8686604051610a8b959493929190948552602085019390935260408401919091526060830152608082015260a00190565b60405180910390a250989a50505050505050505050505b9392505050565b600080610ab5856115f7565b505060065485906fffffffffffffffffffffffffffffffff1680821115610aec57806fffffffffffffffffffffffffffffffff1691505b81600003610b01576000809250925050610c88565b610b2c7f03000000000000000000000000000000000000000000000000000000000000008984610d4f565b600654600090610b689084906fffffffffffffffffffffffffffffffff70010000000000000000000000000000000090910481169085166121f4565b9050610b7383611889565b610b7d9083614d3f565b600680547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055610bc781611889565b60068054601090610bff90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614d3f565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550610c40818887611727565b9350610c4c8684612230565b841015610c85576040517fc972651700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505b9550959350505050565b6000610ca46040830160208401614c15565b15610cb0575082610aa2565b610cba84846117c1565b9050610aa2565b6000610cd36040830160208401614c15565b15610ce257610cba8484612245565b5082610aa2565b60007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115610d44576040517fb7d0949700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060f89190911b1790565b6000838152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902054811115610db8576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000838152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452825280832080548590039055858352600e90915281208054839290610e08908490614cdc565b9091555050604080518481526020810183905260009173ffffffffffffffffffffffffffffffffffffffff85169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4505050565b6000806000806000806000610e7c8861225a565b9050610efc610e896122ab565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168c847f00000000000000000000000000000000000000000000000000000000000000008e7f00000000000000000000000000000000000000000000000000000000000000006122d5565b909850955091506000610f80610f106122ab565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612345565b9050610fb68389610fb1847f000000000000000000000000000000000000000000000000000000000000000061235c565b61238c565b15610fc357610fc36115c5565b8a8a60008080610fd5858888876123e4565b9b5091945092509050610fe88184614cdc565b610ff29089614c66565b9750610ffe8284614c66565b611008908c614c66565b9a50505050505050506000600760007f00000000000000000000000000000000000000000000000000000000000000008a6110439190614cdc565b815260208101919091526040016000908120546fffffffffffffffffffffffffffffffff169150428911611097576000898152600760205260409020546fffffffffffffffffffffffffffffffff16611099565b895b90506110c98b8784848e7f0000000000000000000000000000000000000000000000000000000000000000611bba565b96506110d58487614cdc565b9550670de0b6b3a7640000611171846110ec6122ab565b6110f69190614c66565b60015461112a908c9070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614cdc565b7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612345565b111561117f5761117f6115c5565b61118f87878587868660006124f8565b9b9f939e50919c50909a5090975050505050505050565b60035470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661122061121b826111e8670de0b6b3a764000086614d68565b60045470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1691908a6000612597565b611889565b600480546fffffffffffffffffffffffffffffffff92831670010000000000000000000000000000000002921691909117905561125c86611889565b6112669082614d3f565b600380546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790556112a284611889565b600180546000906112c69084906fffffffffffffffffffffffffffffffff16614d16565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555061130583612641565b6003805460009061131a908490600f0b614d7f565b92506101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff16021790555061135c85611889565b6001805460109061139490849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614d3f565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050505050565b60006113fa600e60006113e6600286610ce9565b81526020019081526020016000205461141c565b61140c600e60006113e6600187610ce9565b6114169190614c79565b92915050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115611478576040517f72dd4e0200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5090565b60006114a561148b84836126b7565b6114968460006126b7565b6114a09190614c79565b612641565b9050600081600f0b131561151557600280548291906000906114da9084906fffffffffffffffffffffffffffffffff16614d16565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050565b600081600f0b121561154e5761152a81614dcd565b600280546000906114da9084906fffffffffffffffffffffffffffffffff16614d3f565b505050565b600061157f7f000000000000000000000000000000000000000000000000000000000000000083612230565b60025461159e91906fffffffffffffffffffffffffffffffff16614c66565b6001546115bd906fffffffffffffffffffffffffffffffff16846117c1565b101592915050565b6040517fbb55fd2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611416826004611f08565b6000806000611612846118d5565b9092509050600061162386866117c1565b90508183111561163b576116388683856121f4565b95505b8281101561164d578083039250611652565b600092505b61165b83611c04565b600580546dffffffffffffffffffffffffffff9290921662010000027fffffffffffffffffffffffffffffffff0000000000000000000000000000ffff90921691909117908190556fffffffffffffffffffffffffffffffff70010000000000000000000000000000000090910416808710156116da578690036116de565b5060005b6116e781611889565b600580546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790555085935050505092915050565b60008061173485856117c1565b905061173f816126cd565b945084600003611753576000915050610aa2565b6117636040840160208501614c15565b156117925761178b856117796020860186614bdf565b6117866040870187614e0b565b612743565b91506117b9565b6117b5856117a36020860186614bdf565b6117b06040870187614e0b565b612777565b8491505b509392505050565b6000610aa28383670de0b6b3a76400006121f4565b6040517f7a28fb88000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637a28fb88906024015b602060405180830381865afa158015611865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114169190614e70565b60006fffffffffffffffffffffffffffffffff821115611478576040517f1e15f2a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600554600090819061190e90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166117c1565b6005546201000090046dffffffffffffffffffffffffffff169250905081811115611ae657600061193f8383614cdc565b905061194e61121b8286612837565b6005805460109061198690849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614d3f565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060006119d1858361224590919063ffffffff16565b905060006119ff827f00000000000000000000000000000000000000000000000000000000000000006117c1565b905080600b6000828254611a139190614c66565b90915550611a2390508183614cdc565b9150611a2e82611889565b60018054600090611a529084906fffffffffffffffffffffffffffffffff16614d16565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550611a918261284c565b60038054600090611aa6908490600f0b614d7f565b92506101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff1602179055508493505050505b915091565b600080611af88785612245565b91506000611b26837f00000000000000000000000000000000000000000000000000000000000000006117c1565b9050611b52817f00000000000000000000000000000000000000000000000000000000000000006117c1565b91508315611b7557611b648282614cdc565b611b6e9084614cdc565b9250611b8c565b611b7f8282614cdc565b611b899084614c66565b92505b86861015611baf57611b9f8387896121f4565b9250611bac8287896121f4565b91505b509550959350505050565b600080611bd284611bcc8a888a6121f4565b90612245565b9050611bdf8884866121f4565b611be99082614c66565b905086811115611bf95786810391505b509695505050505050565b60006dffffffffffffffffffffffffffff821115611478576040517f10d62a2e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546fffffffffffffffffffffffffffffffff1683811080611c9957507f0000000000000000000000000000000000000000000000000000000000000000611c978583614cdc565b105b15611ca657611ca66115c5565b6003549084900390600f0b611cbb8482614c79565b905083611cc78661141c565b138015611cfc57507f0000000000000000000000000000000000000000000000000000000000000000611cfa8383612898565b105b15611d0957611d096115c5565b60025470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16611d6a61121b82611d4b670de0b6b3a764000088614d68565b6004546fffffffffffffffffffffffffffffffff1691908c6000612597565b600480547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055611db58882614cdc565b9050611dc081611889565b600280546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055611dfc83611889565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055611e4682612641565b600380547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055611e9087611889565b60018054601090611ec890849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614d16565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050505050505050565b6006547f03000000000000000000000000000000000000000000000000000000000000006000908152600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e95490918291611f78916fffffffffffffffffffffffffffffffff1690614cdc565b905080600003611f8c576001915050611416565b6000611f97856128be565b905080600003611fac57600192505050611416565b600080611fba83858961297b565b9150915080611fd0576000945050505050611416565b600080611fdd8489612a81565b91509150611ffb611fed8261141c565b611ff690614e89565b612b73565b9250826120115760009650505050505050611416565b61201a82611889565b6006805460009061203e9084906fffffffffffffffffffffffffffffffff16614d16565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555061207d81611889565b600680546010906120b590849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614d16565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506001965050505050505092915050565b60008060008061211261210d86612cee565b612eb0565b9150915080612128575060009485945092505050565b6000808611612138576000612142565b61214283876117c1565b600654600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e95460008080527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c54939450926fffffffffffffffffffffffffffffffff909216916121b69190614c66565b6121c09190614cdc565b9050806000036121d95750600096879650945050505050565b60006121e58383612245565b98600198509650505050505050565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048411830215820261222957600080fd5b5091020490565b6000610aa28383670de0b6b3a7640000612f3d565b6000610aa283670de0b6b3a7640000846121f4565b60008061226561051f565b905080831161227557600061227f565b61227f8184614cdc565b9150610aa2827f0000000000000000000000000000000000000000000000000000000000000000612245565b60015460035460009161051a916fffffffffffffffffffffffffffffffff90911690600f0b612898565b600080806122f66122ee88670de0b6b3a7640000614cdc565b899087612f3d565b90508615612338576123088888612230565b91506123298a8a846123228a670de0b6b3a7640000614cdc565b8989612f81565b92506123358382614c66565b90505b9750975097945050505050565b60006100b2826123568588886121f4565b90612fa4565b600061237a61237384670de0b6b3a7640000614cdc565b8390612230565b610aa290670de0b6b3a7640000614cdc565b6000806123d98561239b6122ab565b6123a59190614c66565b60015461112a90879070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614cdc565b909210949350505050565b600080808061243b87866124348b61242e6124078c670de0b6b3a7640000614cdc565b7f000000000000000000000000000000000000000000000000000000000000000090612230565b90612230565b9190612f3d565b9350612467847f00000000000000000000000000000000000000000000000000000000000000006117c1565b9150600061248861248089670de0b6b3a7640000614cdc565b8a9088612f3d565b90506124b4817f0000000000000000000000000000000000000000000000000000000000000000612230565b93506124e0847f00000000000000000000000000000000000000000000000000000000000000006117c1565b6124ea9084614c66565b915050945094509450949050565b6000806000806000808888101561256757861561251d5761251a8d898b6121f4565b9c505b6125288c898b6121f4565b9b506125338b61141c565b61253c8d61141c565b6125469190614c79565b90506125538b898b6121f4565b9a506125608a898b6121f4565b9950612586565b6125708b61141c565b6125798d61141c565b6125839190614c79565b90505b9b9c9a9b999a975050505050505050565b6000826000036125a8575084612638565b81156125fb576125d96125bb8487614c66565b6125c585876117c1565b6125cf888a6117c1565b611bcc9190614c66565b905060006125e78588613019565b9050808210156125f5578091505b50612638565b82850361260a57506000612638565b6126356126178487614cdc565b6126218587612230565b61262b888a6117c1565b611bcc9190614cdc565b90505b95945050505050565b60007fffffffffffffffffffffffffffffffff8000000000000000000000000000000082128061268057506f7fffffffffffffffffffffffffffffff82135b15611478576040517fa5353be500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008183136126c65781610aa2565b5090919050565b6040517f19208451000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690631920845190602401611848565b60006040517f6a17288200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f8fcb4e5b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018690527f00000000000000000000000000000000000000000000000000000000000000001690638fcb4e5b906044016020604051808303816000875af115801561280c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128309190614e70565b5050505050565b6000610aa283670de0b6b3a764000084612f3d565b60006f7fffffffffffffffffffffffffffffff821115611478576040517fa5353be500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806128a58484613028565b9092509050806128b7576128b76115c5565b5092915050565b60025460009081906128e2906fffffffffffffffffffffffffffffffff1684612837565b905061290e7f000000000000000000000000000000000000000000000000000000000000000082614c66565b6001546fffffffffffffffffffffffffffffffff161115612975576001547f00000000000000000000000000000000000000000000000000000000000000009061296b9083906fffffffffffffffffffffffffffffffff16614cdc565b610aa29190614cdc565b50919050565b612983614a75565b60008061298f84612cee565b9050600061299c82612eb0565b93509050826129b157506000915061009c9050565b60006129d86129d38461016001518561014001516117c190919063ffffffff16565b61141c565b6129f86129d385610120015186610100015161223090919063ffffffff16565b612a029190614c79565b604080516101208101825285815260208082019590955260008052600e85527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c54818301526060810199909952608089019990995260a088015250815160c087015281015160e086015290940151610100840152509092600192509050565b600080600080612a998660c001518760e00151613028565b9150915080612ab057600080935093505050612b6c565b6000612abc8784613064565b92509050811580612acb575080155b15612adf5760008094509450505050612b6c565b6000612aeb8883613173565b905080600003612b05576000809550955050505050612b6c565b87606001518111612b1c5794509250612b6c915050565b5060608701516000612b308986858b613244565b905080600003612b4b57600080965096505050505050612b6c565b828110612b6357600080965096505050505050612b6c565b90955093505050505b9250929050565b6001546003546000916fffffffffffffffffffffffffffffffff80821692600f0b9170010000000000000000000000000000000090041683808080612bdb8787877f00000000000000000000000000000000000000000000000000000000000000008d613759565b935093509350935080612bf75750600098975050505050505050565b868414612c4957612c0784611889565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b858314612c9b57612c5983612641565b600380547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b848214612cdf57612cab82611889565b600180546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790555b50600198975050505050505050565b612d526040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60408051610180810182526001546fffffffffffffffffffffffffffffffff8082168352600354600f0b602084015270010000000000000000000000000000000091829004811693830193909352606082018590527f000000000000000000000000000000000000000000000000000000000000000060808301527f000000000000000000000000000000000000000000000000000000000000000060a08301527f000000000000000000000000000000000000000000000000000000000000000060c08301527f000000000000000000000000000000000000000000000000000000000000000060e08301526002540482166101008201526004549091610120830191612e609116613871565b81526003546fffffffffffffffffffffffffffffffff7001000000000000000000000000000000009182900481166020840152600454604090930192612ea892900416613871565b905292915050565b6000806000806000612ec1866138e7565b9150915080612ed857506000958695509350505050565b612ee58660a0015161141c565b612eee87613c07565b83612efc896000015161141c565b612f069190614ec1565b612f109190614ec1565b612f1a9190614c79565b925050506000811215612f335750600093849350915050565b9360019350915050565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0484118302158202612f7257600080fd5b50910281810615159190040190565b600080612f92888888888888613c6b565b909250905080611bf957611bf96115c5565b600081600003612fbd5750670de0b6b3a7640000611416565b82600003612fcd57506000611416565b6000612fd88361141c565b90506000612fed612fe88661141c565b613d4c565b9050818102613004670de0b6b3a764000082614ee9565b905061300f81613fed565b9695505050505050565b60008183116129755782610aa2565b6000806000836130378661141c565b6130419190614c79565b90506000811215613059576000809250925050612b6c565b946001945092505050565b60008060008460a001511261308157505060808201516001612b6c565b60008460a0015161309190614e89565b905060006130cd85876101000151886000015160e00151670de0b6b3a76400006130bb9190614cdc565b89516060810151608090910151614206565b935090508215806130dc575080155b156130ef57600080935093505050612b6c565b60006130fb8383612837565b9050670de0b6b3a764000081116131375780670de0b6b3a76400000394506131308760c00151866117c190919063ffffffff16565b9450613146565b60008094509450505050612b6c565b8660800151851115613165578660800151600194509450505050612b6c565b506001925050509250929050565b6000806131a98460c001518560e00151866101000151876000015160a0015161319b8861141c565b6131a490614e89565b613759565b875160408101929092526020820192909252919091529050806131d0576000915050611416565b60006131df8560000151612eb0565b92509050816131f357600092505050611416565b8460200151811061320957600092505050611416565b60008560600151866040015161321f9190614c66565b905061323a828760200151836121f49092919063ffffffff16565b61300f9082614cdc565b6000808560600151866040015161325b9190614c66565b6020870151606088015191925060009161327591846121f4565b90508660a0015160000361328c5791506100b59050565b6000808089600488101561329f57600497505b60005b888110156135fb576132b4868b613019565b955060006132dd8360c001518460e00151856101000151866000015160a0015161319b8c61141c565b8651604081019290925260208201929092529190915290508061330b576000985050505050505050506100b5565b600061331a8e60000151612eb0565b925090508161333557600099505050505050505050506100b5565b61334084828b6142af565b15613356578799505050505050505050506100b5565b60008460a0015113156134bf57835180516020820151604083015160a084015160e0909401516000946133aa9493929161339890670de0b6b3a7640000614cdc565b8a51606081015160809091015161431b565b93509050826133c65760009a50505050505050505050506100b5565b808560a00151106134bd576133da85614420565b9099509250826133f75760009a50505050505050505050506100b5565b61341c8560c001518660e00151876101000151886000015160a0015161319b8e61141c565b8851604081019290925260208201929092529190915292508261344c5760009a50505050505050505050506100b5565b845180516020820151604083015160a084015160e09094015161347c949061339890670de0b6b3a7640000614cdc565b93509050826134985760009a50505050505050505050506100b5565b8e60a0015181116134b557889a50505050505050505050506100b5565b5050506132a2565b505b60006134d0858f8760a001516144f6565b935090508215806134e95750670de0b6b3a76400008110155b156135015760009a50505050505050505050506100b5565b80670de0b6b3a7640000039050600061352e6129d38760400151886020015161223090919063ffffffff16565b61353b6129d3858e6117c1565b6135459190614c79565b9050881580613563575061355889614851565b61356182614851565b125b15613572578098508997508296505b600081131561359a576135898b611bcc8385612245565b613593908b614c66565b99506135ec565b60008112156135e35760006135b48c611bcc858186614e89565b90508a8110156135c857808b039a506135dd565b60009c505050505050505050505050506100b5565b506135ec565b505050506135fb565b846001019450505050506132a2565b5060006136238260c001518360e00151846101000151856000015160a0015161319b8b61141c565b855160408101929092526020820192909252919091529050806136505760009750505050505050506100b5565b600061365f8360000151614869565b905060006136816129d38560400151866020015161223090919063ffffffff16565b61368e6129d3848c6117c1565b6136989190614c79565b90506136a387614851565b6136ac82614851565b12156136b9578795508194505b6136e06136d4655af3107a4000670de0b6b3a7640000614cdc565b6020860151908b612f3d565b60408501516136f0908790612245565b1080613730575061371e613712655af3107a4000670de0b6b3a7640000614c66565b6020860151908b6121f4565b604085015161372e908790612837565b115b1561374757600099505050505050505050506100b5565b50939c9b505050505050505050505050565b6000806000808460000361377857508792508691508590506001613865565b6000856137848b61141c565b61378e9190614ec1565b90506137998761141c565b8112156137b457600080600080945094509450945050613865565b809450600089126137d4576137cd6129d3868b8d6121f4565b93506137f7565b6137eb6129d36137e38b614e89565b87908d612f3d565b6137f490614e89565b93505b6000806138048c8c613028565b9150915080613823576000806000809650965096509650505050613865565b600061382f8888613028565b925090508161384f57600080600080975097509750975050505050613865565b61385a8b82856121f4565b955060019450505050505b95509550955095915050565b600080670de0b6b3a764000061388561051f565b61388f9190614d68565b905080831161389f5760006138a9565b6138a98184614cdc565b9150610aa26138e0670de0b6b3a76400007f0000000000000000000000000000000000000000000000000000000000000000614d68565b8390612245565b600080600061390c6129d38561016001518661014001516117c190919063ffffffff16565b61392c6129d386610120015187610100015161223090919063ffffffff16565b6139369190614c79565b905060008061394d86600001518760200151613028565b915091508061396457506000958695509350505050565b6000831315613aa557600083905060006139b2886000015189602001518a604001518b60a001518c60e00151670de0b6b3a76400006139a39190614cdc565b8d606001518e6080015161431b565b93509050826139cb575060009788975095505050505050565b818110613a69576000613a05858a60400151858c60e00151670de0b6b3a76400006139f69190614cdc565b8d606001518e608001516148b2565b9450905083158015613a1a57508860c0015183105b15613a315750600098600198509650505050505050565b83613a4757506000988998509650505050505050565b613a508161141c565b613a5990614e89565b9960019950975050505050505050565b6000886020015112613a9157613a888860a00151856129d39190614cdc565b6121e590614e89565b60a08801518851613a88916129d391614cdc565b6000831215613bf8576000613ab984614e89565b90506000613aed8489604001518a60e00151670de0b6b3a7640000613ade9190614cdc565b8b606001518c60800151614206565b9350905082613b06575060009788975095505050505050565b818110613b8b576000613b40858a60400151858c60e00151670de0b6b3a7640000613b319190614cdc565b8d606001518e60800151613c6b565b9450905083158015613b5557508860c0015183105b15613b6c5750600098600198509650505050505050565b83613b8257506000988998509650505050505050565b613a598161141c565b6000613bbd858a604001518b60e00151670de0b6b3a7640000613bae9190614cdc565b8c606001518d60800151614972565b9450905083613bd757506000988998509650505050505050565b613a59613bee8a606001518486611bcc9190614cdc565b6129d39083614c66565b50600095600195509350505050565b6000613c3a6129d3836101200151670de0b6b3a7640000613c289190614cdc565b60608501516101008601519190612f3d565b61140c6129d3846101600151670de0b6b3a7640000613c599190614cdc565b606086015161014087015191906121f4565b6000806000613c7d8989888888614a21565b905086881015613c94576000809250925050613d41565b9686900396613ca38887612fa4565b975087811015613cba576000809250925050613d41565b878103613cc8818688612f3d565b9050670de0b6b3a76400008110613cfc57613cf5613cee670de0b6b3a764000089612837565b8290612fa4565b9050613d14565b613d11613cee670de0b6b3a764000089612245565b90505b613d1e8186612837565b905089811015613d3657600080935093505050613d41565b899003925060019150505b965096945050505050565b6000808213613d87576040517fe61b497500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff10600390811b90911782811c600f1060021b1782811c909110600190811b90911782811c90911017609f8181036060019290921b917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0820190613e319084901c61141c565b6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b391909102017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c1821361401e57506000919050565b680755bf798b4a1bf1e58212614060576040517f73a2d6b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b3988102909303927fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550484018402606090811d6d0277594991cfc85f6e2461837cd9018502811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018502811d6db1bbb201f443cf962f1a1d3db4a5018502811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018502811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765087018702831d9081019087017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e01810290921d6e0587f503bb6ea29d25fcb74019645001860279d835ebba824c98fb31b83b2ca45c00000000000000000000000001818105955092935090919061300f74029d9dc38563c32e5c2f6dc192ee70ef65f9978af3860260c38690031c61141c565b60008060006142188888888888614a21565b90506000614243670de0b6b3a76400006142328888612245565b61423c9190614c66565b8390612837565b9050670de0b6b3a7640000811061427057614269613cee670de0b6b3a764000089612837565b9050614288565b614285613cee670de0b6b3a764000089612245565b90505b8088101561429e57600080935093505050610c88565b909603976001975095505050505050565b60208301516000906142c19084612837565b60408501516142d1908490612245565b101580156100b55750602084015161430190846142fa633b9aca00670de0b6b3a7640000614c66565b91906121f4565b6040850151614311908490612837565b1115949350505050565b600080600088121561433d5761433088614e89565b61433a9087614c66565b95505b60008061434a8b8b613028565b915091508061436157600080935093505050614414565b6000614370838b8a8a8a614a50565b9050600061438d6143858a6123568a8e612230565b899089612f3d565b9050808210156143a7576000809550955050505050614414565b808203670de0b6b3a764000081106143d5576143ce613cee670de0b6b3a76400008c612245565b90506143ed565b6143ea613cee670de0b6b3a76400008c612837565b90505b8b81101561440657600080965096505050505050614414565b8b9003955060019450505050505b97509795505050505050565b60008060008360e001511361443a57506000928392509050565b60006144498460000151613c07565b905060006144758560400151866060015187604001516144699190614c66565b60208801519190612f3d565b90506000821261449c578082101561448f578190036144b2565b5060009485945092505050565b6144a582614e89565b6144af9082614c66565b90505b60e085015160c08601516144c7918390612f3d565b9050808560c0015110156144e2575060009485945092505050565b808560c00151036001935093505050915091565b600080600080841261451a57855160400151614513908590614c66565b9050614555565b600061452585614e89565b875160400151909150811015614545578651604001518190039150614553565b60008093509350505061009c565b505b85518051602090910151600091829161456e9190613028565b9150915080614586576000809450945050505061009c565b875160e08101516040909101516000916145bb916145af916145a89190612fa4565b8a906117c1565b6101008b015190612837565b895160e08101516080909101516145e6916145da9161235690886117c1565b8b516060015190612837565b6145f09190614c66565b9050600061462861461c6146158c6000015160e0015188612fa490919063ffffffff16565b8b90612230565b6101008c015190612245565b9050808210156146435760008096509650505050505061009c565b80820391506000614685858c60000151604001518d6000015160e00151670de0b6b3a76400006146739190614cdc565b8e516060810151608090910151614a21565b905060006146af8c6000015160e00151670de0b6b3a76400006146a89190614cdc565b8890612fa4565b9050808210156146cc57600080985098505050505050505061009c565b8b516080810151606090910151918303916146e8918391612f3d565b9050670de0b6b3a7640000811061472c578b5160e0015161472590613cee9061471990670de0b6b3a7640000614cdc565b8e5160e0015190612837565b905061475b565b8b5160e0015161475890613cee9061474c90670de0b6b3a7640000614cdc565b8e5160e0015190612245565b90505b8b516060015161476e9085908390612f3d565b935083670de0b6b3a764000011156147925783670de0b6b3a76400000393506147a6565b60006001985098505050505050505061009c565b60008c60e00151126148095760c08c015160e08d01516147c591612837565b9250670de0b6b3a76400008311156147ea57600080985098505050505050505061009c565b670de0b6b3a7640000929092039161480284846117c1565b935061483e565b61483b6148228d60c001518e60e00151611bcc90614e89565b61483490670de0b6b3a7640000614c66565b85906117c1565b93505b50919a60019a5098505050505050505050565b60008082126148605781611416565b61141682614e89565b600080600061487784612eb0565b91509150806128b7576040517faa2c651600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060006148c48989888888614a21565b90506148d486612356898b614c66565b9750878110156148eb576000809250925050613d41565b8781036148f9818688612f3d565b9050670de0b6b3a764000081106149265761491f613cee670de0b6b3a764000089612837565b905061493e565b61493b613cee670de0b6b3a764000089612245565b90505b6149488186612837565b9050808a101561496057600080935093505050613d41565b90980398600198509650505050505050565b60008060006149848888888888614a50565b905060006149a8670de0b6b3a764000061499e8888612837565b6138e09190614c66565b9050670de0b6b3a764000081106149d5576149ce613cee670de0b6b3a764000089612245565b90506149ed565b6149ea613cee670de0b6b3a764000089612837565b90505b6149f78186612245565b905088811015614a0f57600080935093505050610c88565b97909703976001975095505050505050565b6000614a2d8585612fa4565b614a46614a3e86612356868b612230565b859085612f3d565b6126359190614c66565b6000614a5c8585612fa4565b614a46614a6d86612356868b6117c1565b8590856121f4565b604051806101200160405280614ae56040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006060828403121561297557600080fd5b600080600060608486031215614b4a57600080fd5b8335925060208401359150604084013567ffffffffffffffff811115614b6f57600080fd5b614b7b86828701614b23565b9150509250925092565b60008060008060808587031215614b9b57600080fd5b843593506020850135925060408501359150606085013567ffffffffffffffff811115614bc757600080fd5b614bd387828801614b23565b91505092959194509250565b600060208284031215614bf157600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610aa257600080fd5b600060208284031215614c2757600080fd5b81358015158114610aa257600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561141657611416614c37565b81810360008312801583831316838312821617156128b7576128b7614c37565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614cd757614cd7614c99565b500690565b8181038181111561141657611416614c37565b6dffffffffffffffffffffffffffff8181168382160190808211156128b7576128b7614c37565b6fffffffffffffffffffffffffffffffff8181168382160190808211156128b7576128b7614c37565b6fffffffffffffffffffffffffffffffff8281168282160390808211156128b7576128b7614c37565b808202811582820484141761141657611416614c37565b600f81810b9083900b016f7fffffffffffffffffffffffffffffff81137fffffffffffffffffffffffffffffffff800000000000000000000000000000008212171561141657611416614c37565b600081600f0b7fffffffffffffffffffffffffffffffff800000000000000000000000000000008103614e0257614e02614c37565b60000392915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614e4057600080fd5b83018035915067ffffffffffffffff821115614e5b57600080fd5b602001915036819003821315612b6c57600080fd5b600060208284031215614e8257600080fd5b5051919050565b60007f80000000000000000000000000000000000000000000000000000000000000008203614eba57614eba614c37565b5060000390565b8082018281126000831280158216821582161715614ee157614ee1614c37565b505092915050565b600082614ef857614ef8614c99565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615614f4c57614f4c614c37565b50059056fea264697066735822122082fcdf1d85eeb3414890894aaa036e87058a5eb92750ab99428073c6f52cb4e964736f6c63430008140033" -} \ No newline at end of file diff --git a/deployments/sepolia/TEST_STETH_StETHTarget2.json b/deployments/sepolia/TEST_STETH_StETHTarget2.json deleted file mode 100644 index 5753d4558..000000000 --- a/deployments/sepolia/TEST_STETH_StETHTarget2.json +++ /dev/null @@ -1,960 +0,0 @@ -{ - "address": "0x586cf5c51Ca09FEb716ad7B03E2EFcB83d653a51", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "DistributeExcessIdleFailed", - "type": "error" - }, - { - "inputs": [], - "name": "ExpInvalidExponent", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientLiquidity", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidPresentValue", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidTimestamp", - "type": "error" - }, - { - "inputs": [], - "name": "LnInvalidInput", - "type": "error" - }, - { - "inputs": [], - "name": "MinimumTransactionAmount", - "type": "error" - }, - { - "inputs": [], - "name": "OutputLimit", - "type": "error" - }, - { - "inputs": [], - "name": "ReentrancyGuardReentrantCall", - "type": "error" - }, - { - "inputs": [], - "name": "RestrictedZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt128", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt256", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToUint112", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToUint128", - "type": "error" - }, - { - "inputs": [], - "name": "UnsupportedToken", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "AddLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "basePayment", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fees", - "type": "uint256" - } - ], - "name": "CollectGovernanceFee", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "checkpointTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "checkpointVaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedShorts", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedLongs", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "CreateCheckpoint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newFeeCollector", - "type": "address" - } - ], - "name": "FeeCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGovernance", - "type": "address" - } - ], - "name": "GovernanceUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "apr", - "type": "uint256" - } - ], - "name": "Initialize", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseProceeds", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isPaused", - "type": "bool" - } - ], - "name": "PauseStatusUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newPauser", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "status", - "type": "bool" - } - ], - "name": "PauserUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - } - ], - "name": "RedeemWithdrawalShares", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "RemoveLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "Sweep", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newSweepCollector", - "type": "address" - } - ], - "name": "SweepCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_maturityTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_bondAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minOutput", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "closeLong", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_lpShares", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minOutputPerShare", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "removeLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "args": [ - { - "minimumShareReserves": "1000000000000000", - "minimumTransactionAmount": "1000000000000000", - "positionDuration": "2592000", - "checkpointDuration": "86400", - "timeStretch": "0", - "governance": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "feeCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "sweepCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "fees": { - "curve": "1000000000000000", - "flat": "8333333333333", - "governanceLP": "150000000000000000", - "governanceZombie": "30000000000000000" - }, - "baseToken": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", - "vaultSharesToken": "0x8CB2Ec99CF968551408CC30c5223Fa4D8c402E55", - "linkerFactory": "0xE84d966f6f87C7957719ad4BeC7E3bB35a46E8B2", - "linkerCodeHash": "0x9a69ff3b9a110deacb7d941d71222642f269891c0da9fcc15ec7c63fbd216b3f", - "initialVaultSharePrice": "0" - } - ], - "numDeployments": 1, - "bytecode": "0x6102406040523480156200001257600080fd5b506040516200535f3803806200535f8339810160408190526200003591620001e1565b600160005580516001600160a01b039081166080908152602080840151831660a0908152918401516101a0908152918401516101c05260c0808501516101e0526101008086015190915260e0808601519052610120808601519091529184018051519092528151015161014090815281516040908101516101609081529251606090810151610180908152918601518516610200528501516102205290840151600a80546001600160a01b03199081169286169290921790559184015160088054841691851691909117905590920151600980549093169116179055620002d4565b6040516101c081016001600160401b03811182821017156200014957634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b03811681146200016757600080fd5b919050565b6000608082840312156200017f57600080fd5b604051608081016001600160401b0381118282101715620001b057634e487b7160e01b600052604160045260246000fd5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b60006102208284031215620001f557600080fd5b620001ff62000117565b6200020a836200014f565b81526200021a602084016200014f565b60208201526200022d604084016200014f565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101406200028c8185016200014f565b90820152610160620002a08482016200014f565b90820152610180620002b48482016200014f565b908201526101a0620002c9858583016200016c565b908201529392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e0516102005161022051614f4c6200041360003960005050600050506000818160d301528181610289015261239901526000818161130c0152818161136f015281816117330152818161237301528181612afd01528181612b420152612dca015260008181611145015281816111ab015261234d01526000611b9f015260008181611cf20152818161265701526126d001526000818161084301528181611cc601526126a40152600061261d015260008181611123015281816111cc01526123bf01526000818161077501528181611254015281816125230152612f910152600081816105df0152818161067e01526106ec0152600081816119cc0152818161293901526129fd015260005050614f4c6000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063cbc134341461003b578063ded0623114610068575b600080fd5b61004e610049366004614afa565b610089565b604080519283526020830191909152015b60405180910390f35b61007b610076366004614b4a565b6100a4565b60405190815260200161005f565b6000806100978585856100bd565b915091505b935093915050565b60006100b285858585610274565b90505b949350505050565b6000806100c861051e565b6100d183610561565b7f000000000000000000000000000000000000000000000000000000000000000085101561012b576040517f423bbb4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006101356105c0565b905061014a6101426105d8565b82600461060e565b5061015760003388610b62565b61018e7f03000000000000000000000000000000000000000000000000000000000000006101886020870187614ba4565b88610c7c565b60006101a96101a06020870187614ba4565b88848989610d36565b90945090506101b88188614c09565b925060006101c583610f1f565b5090506101d56020870187614ba4565b73ffffffffffffffffffffffffffffffffffffffff16337f56e07298e87dce53d3298b9775b947b87b39b2dde51df86371f0540885da83c98a61021989888c611018565b6102248a898d611047565b61023460408d0160208e01614c1c565b60408051948552602085019390935291830152151560608201526080810188905260a0810185905260c00160405180910390a350505061009c6001600055565b600061027e61051e565b61028782610561565b7f00000000000000000000000000000000000000000000000000000000000000008410156102e1576040517f423bbb4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006102eb6105c0565b905085421015610306576103006101426105d8565b50610314565b6103128682600461060e565b505b61032961032260018861106f565b3387610b62565b600080600080600061033c8a878d6110d5565b9450945094509450945060008b90508b4210156104015781600b60008282546103659190614c3e565b9091555061037890508b878686856112ec565b6000610383826115ab565b90506103a16103918d6115f5565b61039b9083614c51565b82611655565b6103aa8861172c565b6103b6576103b661179e565b60006103c1896117d0565b9050806103fa576040517f8bdf918d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050610418565b61040b85886117dd565b9450610416876117d0565b505b600061042586898c611900565b90508a811015610461576040517fc972651700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8b888b61046f60018661106f565b61047c6020830183614ba4565b73ffffffffffffffffffffffffffffffffffffffff16337fc0e1704f2ff88686bdc2a73d31e0dc4e054eddbdc3564af7a148229cf857b802886104c0898888611018565b6104cb8a8989611047565b6104db6040890160208a01614c1c565b60408051948552602085019390935291830152151560608201526080810188905260a00160405180910390a4509199505050505050505050506100b56001600055565b60026000540361055a576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b60006105706020830183614ba4565b73ffffffffffffffffffffffffffffffffffffffff16036105bd576040517ff0dd15fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b60006105d3670de0b6b3a764000061199a565b905090565b60006106047f000000000000000000000000000000000000000000000000000000000000000042614ca8565b6105d39042614c09565b600083815260076020526040812080546fffffffffffffffffffffffffffffffff1615158061063c57504285115b1561065b57546fffffffffffffffffffffffffffffffff169050610b5b565b6000806106666105d8565b90508087036106775785915061071a565b60006106a37f000000000000000000000000000000000000000000000000000000000000000089614c3e565b90505b6000818152600760205260409020546fffffffffffffffffffffffffffffffff16925081811480156106d6575082155b156106df578692505b82600003610718576107117f000000000000000000000000000000000000000000000000000000000000000082614c3e565b90506106a6565b505b61072382611a4d565b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9190911617835561076886611a99565b506000905060078161079a7f00000000000000000000000000000000000000000000000000000000000000008b614c09565b815260208101919091526040016000908120546fffffffffffffffffffffffffffffffff1691506107cc60028a61106f565b6000818152600e60205260408120549192508a8a831561094f57600192506000806107fb86898c866000611caf565b9150915080600b60008282546108119190614c3e565b9091555061082d905086600084610827816115f5565b88611d7e565b6108378183614c3e565b915061086786838a8d877f0000000000000000000000000000000000000000000000000000000000000000611fa5565b915061087b6108768385611fef565b612004565b600580546002906108a39084906201000090046dffffffffffffffffffffffffffff16614cbc565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff1602179055506108de82611a4d565b6005805460109061091690849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614ce3565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505b600061095c60018461106f565b6000818152600e60205260409020549091508015610aa85760019450600080610989838b8e886001611caf565b9150915080600b600082825461099f9190614c3e565b909155506109bb9050836000846109b5816115f5565b8a6112ec565b6109c58183614c09565b91506109d46108768387611fef565b600580546002906109fc9084906201000090046dffffffffffffffffffffffffffff16614cbc565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550610a3782611a4d565b60058054601090610a6f90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614ce3565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505b8415610ae057610ad4610aba876115f5565b610ac3836115f5565b610acd9190614d0c565b6000611655565b610ade8e8e61204e565b505b6000610aeb8f610f1f565b5090508f7fff888cf98d2696e95c8c39aa98c9ad55a5378008f7a56614c9353b7137a57ab78c868a8686604051610b44959493929190948552602085019390935260408401919091526060830152608082015260a00190565b60405180910390a250989a50505050505050505050505b9392505050565b6000838152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902054811115610bcb576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000838152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452825280832080548590039055858352600e90915281208054839290610c1b908490614c09565b9091555050604080518481526020810183905260009173ffffffffffffffffffffffffffffffffffffffff85169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6291015b60405180910390a4505050565b6000838152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616845290915281208054839290610cbb908490614c3e565b90915550506000838152600e602052604081208054839290610cde908490614c3e565b9091555050604080518481526020810183905273ffffffffffffffffffffffffffffffffffffffff84169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629101610c6f565b600080610d42856117d0565b505060065485906fffffffffffffffffffffffffffffffff1680821115610d7957806fffffffffffffffffffffffffffffffff1691505b81600003610d8e576000809250925050610f15565b610db97f03000000000000000000000000000000000000000000000000000000000000008984610b62565b600654600090610df59084906fffffffffffffffffffffffffffffffff7001000000000000000000000000000000009091048116908516612241565b9050610e0083611a4d565b610e0a9083614d2c565b600680547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055610e5481611a4d565b60068054601090610e8c90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614d2c565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550610ecd818887611900565b9350610ed9868461227d565b841015610f12576040517fc972651700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505b9550959350505050565b600080600080610f36610f3186612292565b612454565b9150915080610f4c575060009485945092505050565b6000808611610f5c576000610f66565b610f668387611fef565b600654600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e95460008080527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c54939450926fffffffffffffffffffffffffffffffff90921691610fda9190614c3e565b610fe49190614c09565b905080600003610ffd5750600096879650945050505050565b600061100983836124e1565b98600198509650505050505050565b600061102a6040830160208401614c1c565b15611036575082610b5b565b6110408484611fef565b9050610b5b565b60006110596040830160208401614c1c565b156110685761104084846124e1565b5082610b5b565b60007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8211156110ca576040517fb7d0949700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060f89190911b1790565b60008060008060008060006110e9886124f6565b90506111696110f6612547565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168c847f00000000000000000000000000000000000000000000000000000000000000008e7f0000000000000000000000000000000000000000000000000000000000000000612571565b9098509650915060008080806111f0611180612547565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006125e1565b90508c6111ff8f8784846125f8565b9a5091965090945092506112138486614c09565b61121d9088614c09565b96506112298386614c3e565b611233908c614c09565b9a5061123f888c614c3e565b99505050505050506112d785858385600760007f00000000000000000000000000000000000000000000000000000000000000008e61127e9190614c09565b81526020810191909152604001600020546fffffffffffffffffffffffffffffffff16428d116112ce5760008d8152600760205260409020546fffffffffffffffffffffffffffffffff166112d0565b8d5b600161270c565b999d939c50919a509098509095505050505050565b6001546fffffffffffffffffffffffffffffffff168381108061133757507f00000000000000000000000000000000000000000000000000000000000000006113358583614c09565b105b156113445761134461179e565b6003549084900390600f0b6113598482614d0c565b905083611365866115f5565b13801561139a57507f000000000000000000000000000000000000000000000000000000000000000061139883836127ab565b105b156113a7576113a761179e565b60025470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661140d611408826113e9670de0b6b3a764000088614d55565b6004546fffffffffffffffffffffffffffffffff1691908c60006127d1565b611a4d565b600480547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790556114588882614c09565b905061146381611a4d565b600280546fffffffffffffffffffffffffffffffff92831670010000000000000000000000000000000002921691909117905561149f83611a4d565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790556114e98261287b565b600380547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905561153387611a4d565b6001805460109061156b90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614ce3565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050505050505050565b60006115d3600e60006115bf60028661106f565b8152602001908152602001600020546115f5565b6115e5600e60006115bf60018761106f565b6115ef9190614d0c565b92915050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115611651576040517f72dd4e0200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5090565b600061167e61166484836128f1565b61166f8460006128f1565b6116799190614d0c565b61287b565b9050600081600f0b13156116ee57600280548291906000906116b39084906fffffffffffffffffffffffffffffffff16614ce3565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050565b600081600f0b12156117275761170381614d6c565b600280546000906116b39084906fffffffffffffffffffffffffffffffff16614d2c565b505050565b60006117587f00000000000000000000000000000000000000000000000000000000000000008361227d565b60025461177791906fffffffffffffffffffffffffffffffff16614c3e565b600154611796906fffffffffffffffffffffffffffffffff1684611fef565b101592915050565b6040517fbb55fd2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006115ef82600461204e565b60008060006117eb84611a99565b909250905060006117fc8686611fef565b90508183111561181457611811868385612241565b95505b8281101561182657808303925061182b565b600092505b61183483612004565b600580546dffffffffffffffffffffffffffff9290921662010000027fffffffffffffffffffffffffffffffff0000000000000000000000000000ffff90921691909117908190556fffffffffffffffffffffffffffffffff70010000000000000000000000000000000090910416808710156118b3578690036118b7565b5060005b6118c081611a4d565b600580546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790555085935050505092915050565b60008061190d8585611fef565b905061191881612907565b94508460000361192c576000915050610b5b565b61193c6040840160208501614c1c565b1561196b57611964856119526020860186614ba4565b61195f6040870187614daa565b61297d565b9150611992565b61198e8561197c6020860186614ba4565b6119896040870187614daa565b6129b1565b8491505b509392505050565b6040517f7a28fb88000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637a28fb88906024015b602060405180830381865afa158015611a29573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ef9190614e0f565b60006fffffffffffffffffffffffffffffffff821115611651576040517f1e15f2a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005546000908190611ad290849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16611fef565b6005546201000090046dffffffffffffffffffffffffffff169250905081811115611caa576000611b038383614c09565b9050611b126114088286612a71565b60058054601090611b4a90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614d2c565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506000611b9585836124e190919063ffffffff16565b90506000611bc3827f0000000000000000000000000000000000000000000000000000000000000000611fef565b905080600b6000828254611bd79190614c3e565b90915550611be790508183614c09565b9150611bf282611a4d565b60018054600090611c169084906fffffffffffffffffffffffffffffffff16614ce3565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550611c5582612a86565b60038054600090611c6a908490600f0b614e28565b92506101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff1602179055508493505050505b915091565b600080611cbc87856124e1565b91506000611cea837f0000000000000000000000000000000000000000000000000000000000000000611fef565b9050611d16817f0000000000000000000000000000000000000000000000000000000000000000611fef565b91508315611d3957611d288282614c09565b611d329084614c09565b9250611d50565b611d438282614c09565b611d4d9084614c3e565b92505b86861015611d7357611d63838789612241565b9250611d70828789612241565b91505b509550959350505050565b60035470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16611df361140882611dc0670de0b6b3a764000086614d55565b60045470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1691908a60006127d1565b600480546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055611e2f86611a4d565b611e399082614d2c565b600380546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055611e7584611a4d565b60018054600090611e999084906fffffffffffffffffffffffffffffffff16614ce3565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550611ed88361287b565b60038054600090611eed908490600f0b614e28565b92506101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff160217905550611f2f85611a4d565b60018054601090611f6790849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614d2c565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050505050565b600080611fbd84611fb78a888a612241565b906124e1565b9050611fca888486612241565b611fd49082614c3e565b905086811115611fe45786810391505b509695505050505050565b6000610b5b8383670de0b6b3a7640000612241565b60006dffffffffffffffffffffffffffff821115611651576040517f10d62a2e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006547f03000000000000000000000000000000000000000000000000000000000000006000908152600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e954909182916120be916fffffffffffffffffffffffffffffffff1690614c09565b9050806000036120d25760019150506115ef565b60006120dd85612ad2565b9050806000036120f2576001925050506115ef565b600080612100838589612b8f565b91509150806121165760009450505050506115ef565b6000806121238489612c95565b91509150612141612133826115f5565b61213c90614e76565b612d87565b92508261215757600096505050505050506115ef565b61216082611a4d565b600680546000906121849084906fffffffffffffffffffffffffffffffff16614ce3565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506121c381611a4d565b600680546010906121fb90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614ce3565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506001965050505050505092915050565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048411830215820261227657600080fd5b5091020490565b6000610b5b8383670de0b6b3a7640000612f02565b6122f66040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60408051610180810182526001546fffffffffffffffffffffffffffffffff8082168352600354600f0b602084015270010000000000000000000000000000000091829004811693830193909352606082018590527f000000000000000000000000000000000000000000000000000000000000000060808301527f000000000000000000000000000000000000000000000000000000000000000060a08301527f000000000000000000000000000000000000000000000000000000000000000060c08301527f000000000000000000000000000000000000000000000000000000000000000060e083015260025404821661010082015260045490916101208301916124049116612f46565b81526003546fffffffffffffffffffffffffffffffff700100000000000000000000000000000000918290048116602084015260045460409093019261244c92900416612f46565b905292915050565b600080600080600061246586612fbc565b915091508061247c57506000958695509350505050565b6124898660a001516115f5565b612492876132dc565b836124a089600001516115f5565b6124aa9190614c51565b6124b49190614c51565b6124be9190614d0c565b9250505060008112156124d75750600093849350915050565b9360019350915050565b6000610b5b83670de0b6b3a764000084612241565b6000806125016105d8565b905080831161251157600061251b565b61251b8184614c09565b9150610b5b827f00000000000000000000000000000000000000000000000000000000000000006124e1565b6001546003546000916105d3916fffffffffffffffffffffffffffffffff90911690600f0b6127ab565b6000808061259261258a88670de0b6b3a7640000614c09565b899087612241565b905086156125d4576125a48888611fef565b91506125c58a8a846125be8a670de0b6b3a7640000614c09565b8989613340565b92506125d18382614c3e565b90505b9750975097945050505050565b60006100b2826125f2858888612241565b90613363565b600080808061264f87866126488b61264261261b8c670de0b6b3a7640000614c09565b7f00000000000000000000000000000000000000000000000000000000000000009061227d565b9061227d565b9190612f02565b935061267b847f0000000000000000000000000000000000000000000000000000000000000000611fef565b9150600061269c61269489670de0b6b3a7640000614c09565b8a9088612f02565b90506126c8817f000000000000000000000000000000000000000000000000000000000000000061227d565b93506126f4847f0000000000000000000000000000000000000000000000000000000000000000611fef565b6126fe9084614c3e565b915050945094509450949050565b6000806000806000808888101561277b5786156127315761272e8d898b612241565b9c505b61273c8c898b612241565b9b506127478b6115f5565b6127508d6115f5565b61275a9190614d0c565b90506127678b898b612241565b9a506127748a898b612241565b995061279a565b6127848b6115f5565b61278d8d6115f5565b6127979190614d0c565b90505b9b9c9a9b999a975050505050505050565b6000806127b884846133d8565b9092509050806127ca576127ca61179e565b5092915050565b6000826000036127e2575084612872565b8115612835576128136127f58487614c3e565b6127ff8587611fef565b612809888a611fef565b611fb79190614c3e565b905060006128218588613414565b90508082101561282f578091505b50612872565b82850361284457506000612872565b61286f6128518487614c09565b61285b858761227d565b612865888a611fef565b611fb79190614c09565b90505b95945050505050565b60007fffffffffffffffffffffffffffffffff800000000000000000000000000000008212806128ba57506f7fffffffffffffffffffffffffffffff82135b15611651576040517fa5353be500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008183136129005781610b5b565b5090919050565b6040517f19208451000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690631920845190602401611a0c565b60006040517f6a17288200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f8fcb4e5b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018690527f00000000000000000000000000000000000000000000000000000000000000001690638fcb4e5b906044016020604051808303816000875af1158015612a46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a6a9190614e0f565b5050505050565b6000610b5b83670de0b6b3a764000084612f02565b60006f7fffffffffffffffffffffffffffffff821115611651576040517fa5353be500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002546000908190612af6906fffffffffffffffffffffffffffffffff1684612a71565b9050612b227f000000000000000000000000000000000000000000000000000000000000000082614c3e565b6001546fffffffffffffffffffffffffffffffff161115612b89576001547f000000000000000000000000000000000000000000000000000000000000000090612b7f9083906fffffffffffffffffffffffffffffffff16614c09565b610b5b9190614c09565b50919050565b612b97614a3a565b600080612ba384612292565b90506000612bb082612454565b9350905082612bc557506000915061009c9050565b6000612bec612be7846101600151856101400151611fef90919063ffffffff16565b6115f5565b612c0c612be785610120015186610100015161227d90919063ffffffff16565b612c169190614d0c565b604080516101208101825285815260208082019590955260008052600e85527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c54818301526060810199909952608089019990995260a088015250815160c087015281015160e086015290940151610100840152509092600192509050565b600080600080612cad8660c001518760e001516133d8565b9150915080612cc457600080935093505050612d80565b6000612cd08784613423565b92509050811580612cdf575080155b15612cf35760008094509450505050612d80565b6000612cff8883613532565b905080600003612d19576000809550955050505050612d80565b87606001518111612d305794509250612d80915050565b5060608701516000612d448986858b613603565b905080600003612d5f57600080965096505050505050612d80565b828110612d7757600080965096505050505050612d80565b90955093505050505b9250929050565b6001546003546000916fffffffffffffffffffffffffffffffff80821692600f0b9170010000000000000000000000000000000090041683808080612def8787877f00000000000000000000000000000000000000000000000000000000000000008d613b18565b935093509350935080612e0b5750600098975050505050505050565b868414612e5d57612e1b84611a4d565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b858314612eaf57612e6d8361287b565b600380547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b848214612ef357612ebf82611a4d565b600180546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790555b50600198975050505050505050565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0484118302158202612f3757600080fd5b50910281810615159190040190565b600080670de0b6b3a7640000612f5a6105d8565b612f649190614d55565b9050808311612f74576000612f7e565b612f7e8184614c09565b9150610b5b612fb5670de0b6b3a76400007f0000000000000000000000000000000000000000000000000000000000000000614d55565b83906124e1565b6000806000612fe1612be7856101600151866101400151611fef90919063ffffffff16565b613001612be786610120015187610100015161227d90919063ffffffff16565b61300b9190614d0c565b9050600080613022866000015187602001516133d8565b915091508061303957506000958695509350505050565b600083131561317a5760008390506000613087886000015189602001518a604001518b60a001518c60e00151670de0b6b3a76400006130789190614c09565b8d606001518e60800151613c30565b93509050826130a0575060009788975095505050505050565b81811061313e5760006130da858a60400151858c60e00151670de0b6b3a76400006130cb9190614c09565b8d606001518e60800151613d3c565b94509050831580156130ef57508860c0015183105b156131065750600098600198509650505050505050565b8361311c57506000988998509650505050505050565b613125816115f5565b61312e90614e76565b9960019950975050505050505050565b60008860200151126131665761315d8860a0015185612be79190614c09565b61100990614e76565b60a0880151885161315d91612be791614c09565b60008312156132cd57600061318e84614e76565b905060006131c28489604001518a60e00151670de0b6b3a76400006131b39190614c09565b8b606001518c60800151613dff565b93509050826131db575060009788975095505050505050565b818110613260576000613215858a60400151858c60e00151670de0b6b3a76400006132069190614c09565b8d606001518e60800151613ea8565b945090508315801561322a57508860c0015183105b156132415750600098600198509650505050505050565b8361325757506000988998509650505050505050565b61312e816115f5565b6000613292858a604001518b60e00151670de0b6b3a76400006132839190614c09565b8c606001518d60800151613f7f565b94509050836132ac57506000988998509650505050505050565b61312e6132c38a606001518486611fb79190614c09565b612be79083614c3e565b50600095600195509350505050565b600061330f612be7836101200151670de0b6b3a76400006132fd9190614c09565b60608501516101008601519190612f02565b6115e5612be7846101600151670de0b6b3a764000061332e9190614c09565b60608601516101408701519190612241565b600080613351888888888888613d3c565b909250905080611fe457611fe461179e565b60008160000361337c5750670de0b6b3a76400006115ef565b8260000361338c575060006115ef565b6000613397836115f5565b905060006133ac6133a7866115f5565b61402e565b90508181026133c3670de0b6b3a764000082614eae565b90506133ce816142cf565b9695505050505050565b6000806000836133e7866115f5565b6133f19190614d0c565b90506000811215613409576000809250925050612d80565b946001945092505050565b6000818311612b895782610b5b565b60008060008460a001511261344057505060808201516001612d80565b60008460a0015161345090614e76565b9050600061348c85876101000151886000015160e00151670de0b6b3a764000061347a9190614c09565b89516060810151608090910151613dff565b9350905082158061349b575080155b156134ae57600080935093505050612d80565b60006134ba8383612a71565b9050670de0b6b3a764000081116134f65780670de0b6b3a76400000394506134ef8760c0015186611fef90919063ffffffff16565b9450613505565b60008094509450505050612d80565b8660800151851115613524578660800151600194509450505050612d80565b506001925050509250929050565b6000806135688460c001518560e00151866101000151876000015160a0015161355a886115f5565b61356390614e76565b613b18565b8751604081019290925260208201929092529190915290508061358f5760009150506115ef565b600061359e8560000151612454565b92509050816135b2576000925050506115ef565b846020015181106135c8576000925050506115ef565b6000856060015186604001516135de9190614c3e565b90506135f9828760200151836122419092919063ffffffff16565b6133ce9082614c09565b6000808560600151866040015161361a9190614c3e565b602087015160608801519192506000916136349184612241565b90508660a0015160000361364b5791506100b59050565b6000808089600488101561365e57600497505b60005b888110156139ba57613673868b613414565b9550600061369c8360c001518460e00151856101000151866000015160a0015161355a8c6115f5565b865160408101929092526020820192909252919091529050806136ca576000985050505050505050506100b5565b60006136d98e60000151612454565b92509050816136f457600099505050505050505050506100b5565b6136ff84828b6144e8565b15613715578799505050505050505050506100b5565b60008460a00151131561387e57835180516020820151604083015160a084015160e0909401516000946137699493929161375790670de0b6b3a7640000614c09565b8a516060810151608090910151613c30565b93509050826137855760009a50505050505050505050506100b5565b808560a001511061387c5761379985614554565b9099509250826137b65760009a50505050505050505050506100b5565b6137db8560c001518660e00151876101000151886000015160a0015161355a8e6115f5565b8851604081019290925260208201929092529190915292508261380b5760009a50505050505050505050506100b5565b845180516020820151604083015160a084015160e09094015161383b949061375790670de0b6b3a7640000614c09565b93509050826138575760009a50505050505050505050506100b5565b8e60a00151811161387457889a50505050505050505050506100b5565b505050613661565b505b600061388f858f8760a0015161462a565b935090508215806138a85750670de0b6b3a76400008110155b156138c05760009a50505050505050505050506100b5565b80670de0b6b3a764000003905060006138ed612be78760400151886020015161227d90919063ffffffff16565b6138fa612be7858e611fef565b6139049190614d0c565b9050881580613922575061391789614985565b61392082614985565b125b15613931578098508997508296505b6000811315613959576139488b611fb783856124e1565b613952908b614c3e565b99506139ab565b60008112156139a25760006139738c611fb7858186614e76565b90508a81101561398757808b039a5061399c565b60009c505050505050505050505050506100b5565b506139ab565b505050506139ba565b84600101945050505050613661565b5060006139e28260c001518360e00151846101000151856000015160a0015161355a8b6115f5565b85516040810192909252602082019290925291909152905080613a0f5760009750505050505050506100b5565b6000613a1e836000015161499d565b90506000613a40612be78560400151866020015161227d90919063ffffffff16565b613a4d612be7848c611fef565b613a579190614d0c565b9050613a6287614985565b613a6b82614985565b1215613a78578795508194505b613a9f613a93655af3107a4000670de0b6b3a7640000614c09565b6020860151908b612f02565b6040850151613aaf9087906124e1565b1080613aef5750613add613ad1655af3107a4000670de0b6b3a7640000614c3e565b6020860151908b612241565b6040850151613aed908790612a71565b115b15613b0657600099505050505050505050506100b5565b50939c9b505050505050505050505050565b60008060008084600003613b3757508792508691508590506001613c24565b600085613b438b6115f5565b613b4d9190614c51565b9050613b58876115f5565b811215613b7357600080600080945094509450945050613c24565b80945060008912613b9357613b8c612be7868b8d612241565b9350613bb6565b613baa612be7613ba28b614e76565b87908d612f02565b613bb390614e76565b93505b600080613bc38c8c6133d8565b9150915080613be2576000806000809650965096509650505050613c24565b6000613bee88886133d8565b9250905081613c0e57600080600080975097509750975050505050613c24565b613c198b8285612241565b955060019450505050505b95509550955095915050565b6000806000881215613c5257613c4588614e76565b613c4f9087614c3e565b95505b600080613c5f8b8b6133d8565b9150915080613c7657600080935093505050613d30565b6000613c85838b8a8a8a6149e6565b90506000613ca2613c9a8a6125f28a8e61227d565b899089612f02565b905080821015613cbc576000809550955050505050613d30565b808203670de0b6b3a76400008110613cf157613cea613ce3670de0b6b3a76400008c6124e1565b8290613363565b9050613d09565b613d06613ce3670de0b6b3a76400008c612a71565b90505b8b811015613d2257600080965096505050505050613d30565b8b9003955060019450505050505b97509795505050505050565b6000806000613d4e8989888888614a15565b9050613d5e866125f2898b614c3e565b975087811015613d75576000809250925050613df4565b878103613d83818688612f02565b9050670de0b6b3a76400008110613db057613da9613ce3670de0b6b3a764000089612a71565b9050613dc8565b613dc5613ce3670de0b6b3a7640000896124e1565b90505b613dd28186612a71565b9050808a1015613dea57600080935093505050613df4565b8903925060019150505b965096945050505050565b6000806000613e118888888888614a15565b90506000613e3c670de0b6b3a7640000613e2b88886124e1565b613e359190614c3e565b8390612a71565b9050670de0b6b3a76400008110613e6957613e62613ce3670de0b6b3a764000089612a71565b9050613e81565b613e7e613ce3670de0b6b3a7640000896124e1565b90505b80881015613e9757600080935093505050610f15565b909603976001975095505050505050565b6000806000613eba8989888888614a15565b905086881015613ed1576000809250925050613df4565b9686900396613ee08887613363565b975087811015613ef7576000809250925050613df4565b878103613f05818688612f02565b9050670de0b6b3a76400008110613f3257613f2b613ce3670de0b6b3a764000089612a71565b9050613f4a565b613f47613ce3670de0b6b3a7640000896124e1565b90505b613f548186612a71565b905089811015613f6c57600080935093505050613df4565b9890980398600198509650505050505050565b6000806000613f9188888888886149e6565b90506000613fb5670de0b6b3a7640000613fab8888612a71565b612fb59190614c3e565b9050670de0b6b3a76400008110613fe257613fdb613ce3670de0b6b3a7640000896124e1565b9050613ffa565b613ff7613ce3670de0b6b3a764000089612a71565b90505b61400481866124e1565b90508881101561401c57600080935093505050610f15565b97909703976001975095505050505050565b6000808213614069576040517fe61b497500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff10600390811b90911782811c600f1060021b1782811c909110600190811b90911782811c90911017609f8181036060019290921b917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08201906141139084901c6115f5565b6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b391909102017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c1821361430057506000919050565b680755bf798b4a1bf1e58212614342576040517f73a2d6b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b3988102909303927fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550484018402606090811d6d0277594991cfc85f6e2461837cd9018502811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018502811d6db1bbb201f443cf962f1a1d3db4a5018502811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018502811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765087018702831d9081019087017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e01810290921d6e0587f503bb6ea29d25fcb74019645001860279d835ebba824c98fb31b83b2ca45c0000000000000000000000000181810595509293509091906133ce74029d9dc38563c32e5c2f6dc192ee70ef65f9978af3860260c38690031c6115f5565b60208301516000906144fa9084612a71565b604085015161450a9084906124e1565b101580156100b55750602084015161453a9084614533633b9aca00670de0b6b3a7640000614c3e565b9190612241565b604085015161454a908490612a71565b1115949350505050565b60008060008360e001511361456e57506000928392509050565b600061457d84600001516132dc565b905060006145a985604001518660600151876040015161459d9190614c3e565b60208801519190612f02565b9050600082126145d057808210156145c3578190036145e6565b5060009485945092505050565b6145d982614e76565b6145e39082614c3e565b90505b60e085015160c08601516145fb918390612f02565b9050808560c001511015614616575060009485945092505050565b808560c00151036001935093505050915091565b600080600080841261464e57855160400151614647908590614c3e565b9050614689565b600061465985614e76565b875160400151909150811015614679578651604001518190039150614687565b60008093509350505061009c565b505b8551805160209091015160009182916146a291906133d8565b91509150806146ba576000809450945050505061009c565b875160e08101516040909101516000916146ef916146e3916146dc9190613363565b8a90611fef565b6101008b015190612a71565b895160e081015160809091015161471a9161470e916125f29088611fef565b8b516060015190612a71565b6147249190614c3e565b9050600061475c6147506147498c6000015160e001518861336390919063ffffffff16565b8b9061227d565b6101008c0151906124e1565b9050808210156147775760008096509650505050505061009c565b808203915060006147b9858c60000151604001518d6000015160e00151670de0b6b3a76400006147a79190614c09565b8e516060810151608090910151614a15565b905060006147e38c6000015160e00151670de0b6b3a76400006147dc9190614c09565b8890613363565b90508082101561480057600080985098505050505050505061009c565b8b5160808101516060909101519183039161481c918391612f02565b9050670de0b6b3a76400008110614860578b5160e0015161485990613ce39061484d90670de0b6b3a7640000614c09565b8e5160e0015190612a71565b905061488f565b8b5160e0015161488c90613ce39061488090670de0b6b3a7640000614c09565b8e5160e00151906124e1565b90505b8b51606001516148a29085908390612f02565b935083670de0b6b3a764000011156148c65783670de0b6b3a76400000393506148da565b60006001985098505050505050505061009c565b60008c60e001511261493d5760c08c015160e08d01516148f991612a71565b9250670de0b6b3a764000083111561491e57600080985098505050505050505061009c565b670de0b6b3a764000092909203916149368484611fef565b9350614972565b61496f6149568d60c001518e60e00151611fb790614e76565b61496890670de0b6b3a7640000614c3e565b8590611fef565b93505b50919a60019a5098505050505050505050565b600080821261499457816115ef565b6115ef82614e76565b60008060006149ab84612454565b91509150806127ca576040517faa2c651600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006149f28585613363565b614a0b614a03866125f2868b611fef565b859085612241565b61286f9190614c3e565b6000614a218585613363565b614a0b614a32866125f2868b61227d565b859085612f02565b604051806101200160405280614aaa6040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060608284031215612b8957600080fd5b600080600060608486031215614b0f57600080fd5b8335925060208401359150604084013567ffffffffffffffff811115614b3457600080fd5b614b4086828701614ae8565b9150509250925092565b60008060008060808587031215614b6057600080fd5b843593506020850135925060408501359150606085013567ffffffffffffffff811115614b8c57600080fd5b614b9887828801614ae8565b91505092959194509250565b600060208284031215614bb657600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610b5b57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156115ef576115ef614bda565b600060208284031215614c2e57600080fd5b81358015158114610b5b57600080fd5b808201808211156115ef576115ef614bda565b8082018281126000831280158216821582161715614c7157614c71614bda565b505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614cb757614cb7614c79565b500690565b6dffffffffffffffffffffffffffff8181168382160190808211156127ca576127ca614bda565b6fffffffffffffffffffffffffffffffff8181168382160190808211156127ca576127ca614bda565b81810360008312801583831316838312821617156127ca576127ca614bda565b6fffffffffffffffffffffffffffffffff8281168282160390808211156127ca576127ca614bda565b80820281158282048414176115ef576115ef614bda565b600081600f0b7fffffffffffffffffffffffffffffffff800000000000000000000000000000008103614da157614da1614bda565b60000392915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614ddf57600080fd5b83018035915067ffffffffffffffff821115614dfa57600080fd5b602001915036819003821315612d8057600080fd5b600060208284031215614e2157600080fd5b5051919050565b600f81810b9083900b016f7fffffffffffffffffffffffffffffff81137fffffffffffffffffffffffffffffffff80000000000000000000000000000000821217156115ef576115ef614bda565b60007f80000000000000000000000000000000000000000000000000000000000000008203614ea757614ea7614bda565b5060000390565b600082614ebd57614ebd614c79565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615614f1157614f11614bda565b50059056fea2646970667358221220d93100e37303f8b2f0201fe499b97a2f64206cf12b3be3efaa9921a509f1dcdc64736f6c63430008140033" -} \ No newline at end of file diff --git a/deployments/sepolia/TEST_STETH_StETHTarget3.json b/deployments/sepolia/TEST_STETH_StETHTarget3.json deleted file mode 100644 index 4621184b8..000000000 --- a/deployments/sepolia/TEST_STETH_StETHTarget3.json +++ /dev/null @@ -1,998 +0,0 @@ -{ - "address": "0x23556236B597106068C5E578F707f7995dC6e2CC", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "BelowMinimumContribution", - "type": "error" - }, - { - "inputs": [], - "name": "DistributeExcessIdleFailed", - "type": "error" - }, - { - "inputs": [], - "name": "ExpInvalidExponent", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientLiquidity", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidCheckpointTime", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidPresentValue", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidTimestamp", - "type": "error" - }, - { - "inputs": [], - "name": "LnInvalidInput", - "type": "error" - }, - { - "inputs": [], - "name": "MinimumSharePrice", - "type": "error" - }, - { - "inputs": [], - "name": "MinimumTransactionAmount", - "type": "error" - }, - { - "inputs": [], - "name": "OutputLimit", - "type": "error" - }, - { - "inputs": [], - "name": "PoolAlreadyInitialized", - "type": "error" - }, - { - "inputs": [], - "name": "PoolIsPaused", - "type": "error" - }, - { - "inputs": [], - "name": "ReentrancyGuardReentrantCall", - "type": "error" - }, - { - "inputs": [], - "name": "RestrictedZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "TransferFailed", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt128", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt256", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToUint112", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToUint128", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "AddLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "basePayment", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fees", - "type": "uint256" - } - ], - "name": "CollectGovernanceFee", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "checkpointTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "checkpointVaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedShorts", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedLongs", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "CreateCheckpoint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newFeeCollector", - "type": "address" - } - ], - "name": "FeeCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGovernance", - "type": "address" - } - ], - "name": "GovernanceUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "apr", - "type": "uint256" - } - ], - "name": "Initialize", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseProceeds", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isPaused", - "type": "bool" - } - ], - "name": "PauseStatusUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newPauser", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "status", - "type": "bool" - } - ], - "name": "PauserUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - } - ], - "name": "RedeemWithdrawalShares", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "RemoveLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "Sweep", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newSweepCollector", - "type": "address" - } - ], - "name": "SweepCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_checkpointTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_maxIterations", - "type": "uint256" - } - ], - "name": "checkpoint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_contribution", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_apr", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "initialize", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minOutput", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minVaultSharePrice", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "openLong", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - } - ], - "args": [ - { - "minimumShareReserves": "1000000000000000", - "minimumTransactionAmount": "1000000000000000", - "positionDuration": "2592000", - "checkpointDuration": "86400", - "timeStretch": "0", - "governance": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "feeCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "sweepCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "fees": { - "curve": "1000000000000000", - "flat": "8333333333333", - "governanceLP": "150000000000000000", - "governanceZombie": "30000000000000000" - }, - "baseToken": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", - "vaultSharesToken": "0x8CB2Ec99CF968551408CC30c5223Fa4D8c402E55", - "linkerFactory": "0xE84d966f6f87C7957719ad4BeC7E3bB35a46E8B2", - "linkerCodeHash": "0x9a69ff3b9a110deacb7d941d71222642f269891c0da9fcc15ec7c63fbd216b3f", - "initialVaultSharePrice": "0" - } - ], - "numDeployments": 1, - "bytecode": "0x6102406040523480156200001257600080fd5b5060405162005529380380620055298339810160408190526200003591620001e1565b600160005580516001600160a01b039081166080908152602080840151831660a0908152918401516101a0908152918401516101c05260c0808501516101e0526101008086015190915260e0808601519052610120808601519091529184018051519092528151015161014090815281516040908101516101609081529251606090810151610180908152918601518516610200528501516102205290840151600a80546001600160a01b03199081169286169290921790559184015160088054841691851691909117905590920151600980549093169116179055620002d4565b6040516101c081016001600160401b03811182821017156200014957634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b03811681146200016757600080fd5b919050565b6000608082840312156200017f57600080fd5b604051608081016001600160401b0381118282101715620001b057634e487b7160e01b600052604160045260246000fd5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b60006102208284031215620001f557600080fd5b620001ff62000117565b6200020a836200014f565b81526200021a602084016200014f565b60208201526200022d604084016200014f565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101406200028c8185016200014f565b90820152610160620002a08482016200014f565b90820152610180620002b48482016200014f565b908201526101a0620002c9858583016200016c565b908201529392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516150e4620004456000396000505060005050600081816105430152612e0a015260008181610230015281816102be015281816103dc0152818161188b015281816118d001528181611bbc015281816122b40152818161231701528181612c8b0152612de4015260008181610335015281816112e301528181611341015281816114770152612dbe01526000611dfa015260008181611f4d0152612b74015260008181610c22015281816113b40152611f210152600081816113930152612b30015260008181610378015281816112c101528181611362015281816114980152612e300152600081816103570152818161065a01528181610b540152613eb5015260008181610148015281816109be01528181610a5d0152610acb0152600081816117e0015281816127a9015261285d0152600050506150e46000f3fe6080604052600436106100345760003560e01c8063414f826d1461003957806377d05ff41461005b578063cba2e58d14610081575b600080fd5b34801561004557600080fd5b50610059610054366004614c5e565b6100a9565b005b61006e610069366004614c92565b6100b7565b6040519081526020015b60405180910390f35b61009461008f366004614ce2565b6100ce565b60408051928352602083019190915201610078565b6100b382826100eb565b5050565b60006100c48484846101c9565b90505b9392505050565b6000806100dd868686866104cb565b915091505b94509492505050565b6100f3610768565b60006100fd6107ab565b6000848152600760205260409020549091506fffffffffffffffffffffffffffffffff16156101375761013081836107c3565b50506101bf565b60006101416109b7565b905061016d7f000000000000000000000000000000000000000000000000000000000000000085614d6b565b15158061017957508381105b156101b0576040517fecd29e8100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101bb8483856109ed565b5050505b6100b36001600055565b60006101d3610768565b6101dc82610f3f565b60055460ff1615610219576040517f7983c05100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806102268685610f9e565b90925090506102567f00000000000000000000000000000000000000000000000000000000000000006002614dae565b82101561028f576040517fabed41c400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560027f000000000000000000000000000000000000000000000000000000000000000002820392506102eb82611090565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790556103a161039c837f0000000000000000000000000000000000000000000000000000000000000000887f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006110e0565b611090565b600180546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790556104006000807f000000000000000000000000000000000000000000000000000000000000000061117f565b61041860006104126020870187614dc5565b8561117f565b61042b6104236109b7565b8260046109ed565b506000610439878387611241565b90506104486020860186614dc5565b73ffffffffffffffffffffffffffffffffffffffff167fdfe2bf9f580df5ec15438120ffa6f0603237c4e6b65d07140a4695317da4f95285838661049260408b0160208c01614dfb565b60408051948552602085019390935291830152151560608201526080810189905260a00160405180910390a25050506100c76001600055565b6000806104d6610768565b600554610100900460ff1615610518576040517f21081abf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61052183610f3f565b60008061052e8886610f9e565b9092509050600061053f8383611270565b90507f000000000000000000000000000000000000000000000000000000000000000081101561059b576040517f423bbb4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b868210156105d5576040517f42af972b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006105df6109b7565b90506105ed818460046109ed565b506000806105fb8686611285565b90985090925090508a87101561063d576040517fc972651700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600b600082825461064f9190614e1d565b9091555061067f90507f000000000000000000000000000000000000000000000000000000000000000084614e1d565b975061068d8288878b6114d4565b600061069a60018a611720565b90506106b3816106ad60208d018d614dc5565b8a61117f565b8c8989888d856106c66020830183614dc5565b73ffffffffffffffffffffffffffffffffffffffff167f88087800d03445c97e2009f3f90906bf6ede79bbd194e275c66224e977a5b84c86610709898787611241565b6107148a8888611786565b6107246040880160208901614dfb565b60408051948552602085019390935291830152151560608201526080810187905260a00160405180910390a350909a50505050505050505050506100e26001600055565b6002600054036107a4576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b60006107be670de0b6b3a76400006117ae565b905090565b6006547f03000000000000000000000000000000000000000000000000000000000000006000908152600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e95490918291610833916fffffffffffffffffffffffffffffffff1690614e30565b9050806000036108475760019150506109b1565b600061085285611860565b905080600003610867576001925050506109b1565b600080610875838589611920565b915091508061088b5760009450505050506109b1565b6000806108988489611a2d565b915091506108b66108a882611b1d565b6108b190614e43565b611b79565b9250826108cc57600096505050505050506109b1565b6108d582611090565b600680546000906108f99084906fffffffffffffffffffffffffffffffff16614e7b565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555061093881611090565b6006805460109061097090849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614e7b565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550600196505050505050505b92915050565b60006109e37f000000000000000000000000000000000000000000000000000000000000000042614d6b565b6107be9042614e30565b600083815260076020526040812080546fffffffffffffffffffffffffffffffff16151580610a1b57504285115b15610a3a57546fffffffffffffffffffffffffffffffff1690506100c7565b600080610a456109b7565b9050808703610a5657859150610af9565b6000610a827f000000000000000000000000000000000000000000000000000000000000000089614e1d565b90505b6000818152600760205260409020546fffffffffffffffffffffffffffffffff1692508181148015610ab5575082155b15610abe578692505b82600003610af757610af07f000000000000000000000000000000000000000000000000000000000000000082614e1d565b9050610a85565b505b610b0282611090565b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff91909116178355610b4786611cf4565b5060009050600781610b797f00000000000000000000000000000000000000000000000000000000000000008b614e30565b815260208101919091526040016000908120546fffffffffffffffffffffffffffffffff169150610bab60028a611720565b6000818152600e60205260408120549192508a8a8315610d2e5760019250600080610bda86898c866000611f0a565b9150915080600b6000828254610bf09190614e1d565b90915550610c0c905086600084610c0681611b1d565b88611fd9565b610c168183614e1d565b9150610c4686838a8d877f0000000000000000000000000000000000000000000000000000000000000000612200565b9150610c5a610c558385611270565b61224a565b60058054600290610c829084906201000090046dffffffffffffffffffffffffffff16614ea4565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550610cbd82611090565b60058054601090610cf590849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614e7b565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505b6000610d3b600184611720565b6000818152600e60205260409020549091508015610e875760019450600080610d68838b8e886001611f0a565b9150915080600b6000828254610d7e9190614e1d565b90915550610d9a905083600084610d9481611b1d565b8a612294565b610da48183614e30565b9150610db3610c558387611270565b60058054600290610ddb9084906201000090046dffffffffffffffffffffffffffff16614ea4565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550610e1682611090565b60058054601090610e4e90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614e7b565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505b8415610ebf57610eb3610e9987611b1d565b610ea283611b1d565b610eac9190614ecb565b600061254e565b610ebd8e8e6107c3565b505b6000610eca8f612625565b5090508f7fff888cf98d2696e95c8c39aa98c9ad55a5378008f7a56614c9353b7137a57ab78c868a8686604051610f23959493929190948552602085019390935260408401919091526060830152608082015260a00190565b60405180910390a250989e9d5050505050505050505050505050565b6000610f4e6020830183614dc5565b73ffffffffffffffffffffffffffffffffffffffff1603610f9b576040517ff0dd15fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b60008080610fb26040850160208601614dfb565b15610fd757610fcd85610fc86040870187614eeb565b61271e565b9093509050610ff3565b5034610fef85610fea6040870187614eeb565b612822565b8492505b610ffb6107ab565b9150801561108757604051600090339083908381818185875af1925050503d8060008114611045576040519150601f19603f3d011682016040523d82523d6000602084013e61104a565b606091505b5050905080611085576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b505b9250929050565b60006fffffffffffffffffffffffffffffffff8211156110dc576040517f1e15f2a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5090565b6000806110f1846301e133806128e5565b905060006110ff8683611270565b61111190670de0b6b3a7640000614e1d565b9050670de0b6b3a764000081106111455761113e611137670de0b6b3a7640000866128e5565b82906128fa565b905061115d565b61115a611137670de0b6b3a76400008661296f565b90505b6111718161116b898b611270565b90611270565b925050505b95945050505050565b6000838152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152812080548392906111be908490614e1d565b90915550506000838152600e6020526040812080548392906111e1908490614e1d565b9091555050604080518481526020810183905273ffffffffffffffffffffffffffffffffffffffff84169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4505050565b60006112536040830160208401614dfb565b1561125f5750826100c7565b6112698484611270565b90506100c7565b60006100c78383670de0b6b3a7640000612984565b60008060006113076112956129c0565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16877f0000000000000000000000000000000000000000000000000000000000000000887f00000000000000000000000000000000000000000000000000000000000000006129ea565b915060006113866113166129c0565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612a16565b90506113dd86846113d8847f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612a2d565b612a98565b156113ea576113ea612af0565b6000806113f8888489612b22565b90925090506114078286614e30565b9450611414818489612984565b93506114208489614e30565b9550670de0b6b3a76400006114bc876114376129c0565b6114419190614e1d565b60015461147590899070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614e30565b7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612a16565b11156114ca576114ca612af0565b5050509250925092565b60025470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661153561039c82611516670de0b6b3a764000086614dae565b6004546fffffffffffffffffffffffffffffffff169190886001612ba2565b600480547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905561157f85611090565b600180546000906115a39084906fffffffffffffffffffffffffffffffff16614e7b565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506115e284611090565b6001805460109061161a90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614f50565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555061165984611090565b6116639082614e7b565b600280546fffffffffffffffffffffffffffffffff808416700100000000000000000000000000000000029116179055905060006116a083612c40565b90506116be816116af87611b1d565b6116b99084614f79565b61254e565b6116c784612c84565b6116d3576116d3612af0565b60006116de85612cf6565b905080611717576040517f8bdf918d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505050565b60007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82111561177b576040517fb7d0949700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060f89190911b1790565b60006117986040830160208401614dfb565b156117a75761126984846128e5565b50826100c7565b6040517f7a28fb88000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637a28fb8890602401602060405180830381865afa15801561183c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b19190614fa1565b6002546000908190611884906fffffffffffffffffffffffffffffffff168461296f565b90506118b07f000000000000000000000000000000000000000000000000000000000000000082614e1d565b6001546fffffffffffffffffffffffffffffffff16111561191a576001547f00000000000000000000000000000000000000000000000000000000000000009061190d9083906fffffffffffffffffffffffffffffffff16614e30565b6119179190614e30565b91505b50919050565b611928614bb0565b60008061193484612d03565b9050600061194182612ec5565b9350905082611956575060009150611a259050565b600061197d61197884610160015185610140015161127090919063ffffffff16565b611b1d565b61199d611978856101200151866101000151612f5290919063ffffffff16565b6119a79190614ecb565b604080516101208101825285815260208082019590955260008052600e85527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c5481830152606081018a9052608081018b905260a0810192909252845160c08301529284015160e08201529290910151610100830152509150600190505b935093915050565b600080600080611a458660c001518760e00151612f67565b9150915080611a5c57600080935093505050611089565b6000611a688784612fa3565b92509050811580611a77575080155b15611a8b5760008094509450505050611089565b6000611a9788836130b2565b905080600003611ab1576000809550955050505050611089565b87606001518111611ac85794509250611089915050565b5060608701516000611adc8986858b613183565b905080600003611af757600080965096505050505050611089565b828110611b0f57600080965096505050505050611089565b909890975095505050505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8211156110dc576040517f72dd4e0200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546003546000916fffffffffffffffffffffffffffffffff80821692600f0b9170010000000000000000000000000000000090041683808080611be18787877f00000000000000000000000000000000000000000000000000000000000000008d61369a565b935093509350935080611bfd5750600098975050505050505050565b868414611c4f57611c0d84611090565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b858314611ca157611c5f836137b2565b600380547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b848214611ce557611cb182611090565b600180546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790555b50600198975050505050505050565b6005546000908190611d2d90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16611270565b6005546201000090046dffffffffffffffffffffffffffff169250905081811115611f05576000611d5e8383614e30565b9050611d6d61039c828661296f565b60058054601090611da590849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614f50565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506000611df085836128e590919063ffffffff16565b90506000611e1e827f0000000000000000000000000000000000000000000000000000000000000000611270565b905080600b6000828254611e329190614e1d565b90915550611e4290508183614e30565b9150611e4d82611090565b60018054600090611e719084906fffffffffffffffffffffffffffffffff16614e7b565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550611eb082613828565b60038054600090611ec5908490600f0b614fba565b92506101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff1602179055508493505050505b915091565b600080611f1787856128e5565b91506000611f45837f0000000000000000000000000000000000000000000000000000000000000000611270565b9050611f71817f0000000000000000000000000000000000000000000000000000000000000000611270565b91508315611f9457611f838282614e30565b611f8d9084614e30565b9250611fab565b611f9e8282614e30565b611fa89084614e1d565b92505b86861015611fce57611fbe838789612984565b9250611fcb828789612984565b91505b509550959350505050565b60035470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661204e61039c8261201b670de0b6b3a764000086614dae565b60045470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1691908a6000612ba2565b600480546fffffffffffffffffffffffffffffffff92831670010000000000000000000000000000000002921691909117905561208a86611090565b6120949082614f50565b600380546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790556120d084611090565b600180546000906120f49084906fffffffffffffffffffffffffffffffff16614e7b565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550612133836137b2565b60038054600090612148908490600f0b614fba565b92506101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff16021790555061218a85611090565b600180546010906121c290849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614f50565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050505050565b600080612218846122128a888a612984565b906128e5565b9050612225888486612984565b61222f9082614e1d565b90508681111561223f5786810391505b509695505050505050565b60006dffffffffffffffffffffffffffff8211156110dc576040517f10d62a2e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546fffffffffffffffffffffffffffffffff16838110806122df57507f00000000000000000000000000000000000000000000000000000000000000006122dd8583614e30565b105b156122ec576122ec612af0565b6003549084900390600f0b6123018482614ecb565b90508361230d86611b1d565b13801561234257507f00000000000000000000000000000000000000000000000000000000000000006123408383613874565b105b1561234f5761234f612af0565b60025470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166123b061039c82612391670de0b6b3a764000088614dae565b6004546fffffffffffffffffffffffffffffffff1691908c6000612ba2565b600480547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790556123fb8882614e30565b905061240681611090565b600280546fffffffffffffffffffffffffffffffff92831670010000000000000000000000000000000002921691909117905561244283611090565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905561248c826137b2565b600380547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790556124d687611090565b6001805460109061250e90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614e7b565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050505050505050565b600061257761255d848361389a565b61256884600061389a565b6125729190614ecb565b6137b2565b9050600081600f0b13156125e757600280548291906000906125ac9084906fffffffffffffffffffffffffffffffff16614e7b565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050565b600081600f0b1215612620576125fc81615008565b600280546000906125ac9084906fffffffffffffffffffffffffffffffff16614f50565b505050565b60008060008061263c61263786612d03565b612ec5565b9150915080612652575060009485945092505050565b600080861161266257600061266c565b61266c8387611270565b600654600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e95460008080527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c54939450926fffffffffffffffffffffffffffffffff909216916126e09190614e1d565b6126ea9190614e30565b9050806000036127035750600096879650945050505050565b600061270f83836128e5565b98600198509650505050505050565b6000808434101561275b576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506008546040517fa1903eab00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015234869003917f0000000000000000000000000000000000000000000000000000000000000000169063a1903eab90879060240160206040518083038185885af11580156127f3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128189190614fa1565b9150935093915050565b6040517f6d780459000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636d780459906064016020604051808303816000875af11580156128bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128df9190614fa1565b50505050565b60006100c783670de0b6b3a764000084612984565b6000816000036129135750670de0b6b3a76400006109b1565b82600003612923575060006109b1565b600061292e83611b1d565b9050600061294361293e86611b1d565b6138b0565b905081810261295a670de0b6b3a764000082615046565b905061296581613b51565b9695505050505050565b60006100c783670de0b6b3a764000084613d6a565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04841183021582026129b957600080fd5b5091020490565b6001546003546000916107be916fffffffffffffffffffffffffffffffff90911690600f0b613874565b6000612a0b878787612a0488670de0b6b3a7640000614e30565b8787613dae565b979650505050505050565b600061117682612a27858888612984565b906128fa565b60006100c4612a74612a4784670de0b6b3a7640000614e30565b612a6e670de0b6b3a7640000612a5d818a61296f565b612a679190614e30565b8790612f52565b90612f52565b612a8690670de0b6b3a7640000614e1d565b61221284670de0b6b3a7640000614e30565b600080612ae585612aa76129c0565b612ab19190614e1d565b60015461147590879070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614e30565b909210949350505050565b6040517fbb55fd2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080612b6c85612a6e85817f0000000000000000000000000000000000000000000000000000000000000000670de0b6b3a7640000612b62818c61296f565b612a6e9190614e30565b9150612b98827f0000000000000000000000000000000000000000000000000000000000000000611270565b9050935093915050565b600082600003612bb3575084611176565b8115612c0657612be4612bc68487614e1d565b612bd08587611270565b612bda888a611270565b6122129190614e1d565b90506000612bf28588613e5b565b905080821015612c00578091505b50611176565b828503612c1557506000611176565b612965612c228487614e30565b612c2c8587612f52565b612c36888a611270565b6122129190614e30565b6000612c68600e6000612c54600286611720565b815260200190815260200160002054611b1d565b612c7a600e6000612c54600187611720565b6109b19190614ecb565b6000612cb07f000000000000000000000000000000000000000000000000000000000000000083612f52565b600254612ccf91906fffffffffffffffffffffffffffffffff16614e1d565b600154612cee906fffffffffffffffffffffffffffffffff1684611270565b101592915050565b60006109b18260046107c3565b612d676040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60408051610180810182526001546fffffffffffffffffffffffffffffffff8082168352600354600f0b602084015270010000000000000000000000000000000091829004811693830193909352606082018590527f000000000000000000000000000000000000000000000000000000000000000060808301527f000000000000000000000000000000000000000000000000000000000000000060a08301527f000000000000000000000000000000000000000000000000000000000000000060c08301527f000000000000000000000000000000000000000000000000000000000000000060e08301526002540482166101008201526004549091610120830191612e759116613e6a565b81526003546fffffffffffffffffffffffffffffffff7001000000000000000000000000000000009182900481166020840152600454604090930192612ebd92900416613e6a565b905292915050565b6000806000806000612ed686613ee0565b9150915080612eed57506000958695509350505050565b612efa8660a00151611b1d565b612f0387614200565b83612f118960000151611b1d565b612f1b9190614f79565b612f259190614f79565b612f2f9190614ecb565b925050506000811215612f485750600093849350915050565b9360019350915050565b60006100c78383670de0b6b3a7640000613d6a565b600080600083612f7686611b1d565b612f809190614ecb565b90506000811215612f98576000809250925050611089565b946001945092505050565b60008060008460a0015112612fc057505060808201516001611089565b60008460a00151612fd090614e43565b9050600061300c85876101000151886000015160e00151670de0b6b3a7640000612ffa9190614e30565b89516060810151608090910151614264565b9350905082158061301b575080155b1561302e57600080935093505050611089565b600061303a838361296f565b9050670de0b6b3a764000081116130765780670de0b6b3a764000003945061306f8760c001518661127090919063ffffffff16565b9450613085565b60008094509450505050611089565b86608001518511156130a4578660800151600194509450505050611089565b506001925050509250929050565b6000806130e88460c001518560e00151866101000151876000015160a001516130da88611b1d565b6130e390614e43565b61369a565b8751604081019290925260208201929092529190915290508061310f5760009150506109b1565b600061311e8560000151612ec5565b9250905081613132576000925050506109b1565b84602001518110613148576000925050506109b1565b60008560600151866040015161315e9190614e1d565b9050613179828760200151836129849092919063ffffffff16565b6129659082614e30565b6000808560600151866040015161319a9190614e1d565b602087015160608801519192506000916131b49184612984565b90508660a001516000036131cb5791506136929050565b600080808960048810156131de57600497505b60005b8881101561353a576131f3868b613e5b565b9550600061321c8360c001518460e00151856101000151866000015160a001516130da8c611b1d565b8651604081019290925260208201929092529190915290508061324a57600098505050505050505050613692565b60006132598e60000151612ec5565b92509050816132745760009950505050505050505050613692565b61327f84828b614310565b1561329557879950505050505050505050613692565b60008460a0015113156133fe57835180516020820151604083015160a084015160e0909401516000946132e9949392916132d790670de0b6b3a7640000614e30565b8a51606081015160809091015161437c565b93509050826133055760009a5050505050505050505050613692565b808560a00151106133fc5761331985614481565b9099509250826133365760009a5050505050505050505050613692565b61335b8560c001518660e00151876101000151886000015160a001516130da8e611b1d565b8851604081019290925260208201929092529190915292508261338b5760009a5050505050505050505050613692565b845180516020820151604083015160a084015160e0909401516133bb94906132d790670de0b6b3a7640000614e30565b93509050826133d75760009a5050505050505050505050613692565b8e60a0015181116133f457889a5050505050505050505050613692565b5050506131e1565b505b600061340f858f8760a00151614557565b935090508215806134285750670de0b6b3a76400008110155b156134405760009a5050505050505050505050613692565b80670de0b6b3a7640000039050600061346d61197887604001518860200151612f5290919063ffffffff16565b61347a611978858e611270565b6134849190614ecb565b90508815806134a25750613497896148b2565b6134a0826148b2565b125b156134b1578098508997508296505b60008113156134d9576134c88b61221283856128e5565b6134d2908b614e1d565b995061352b565b60008112156135225760006134f38c612212858186614e43565b90508a81101561350757808b039a5061351c565b60009c50505050505050505050505050613692565b5061352b565b5050505061353a565b846001019450505050506131e1565b5060006135628260c001518360e00151846101000151856000015160a001516130da8b611b1d565b8551604081019290925260208201929092529190915290508061358f576000975050505050505050613692565b600061359e83600001516148ca565b905060006135c061197885604001518660200151612f5290919063ffffffff16565b6135cd611978848c611270565b6135d79190614ecb565b90506135e2876148b2565b6135eb826148b2565b12156135f8578795508194505b61361f613613655af3107a4000670de0b6b3a7640000614e30565b6020860151908b613d6a565b604085015161362f9087906128e5565b108061366f575061365d613651655af3107a4000670de0b6b3a7640000614e1d565b6020860151908b612984565b604085015161366d90879061296f565b115b156136865760009950505050505050505050613692565b50939750505050505050505b949350505050565b600080600080846000036136b9575087925086915085905060016137a6565b6000856136c58b611b1d565b6136cf9190614f79565b90506136da87611b1d565b8112156136f5576000806000809450945094509450506137a6565b809450600089126137155761370e611978868b8d612984565b9350613738565b61372c6119786137248b614e43565b87908d613d6a565b61373590614e43565b93505b6000806137458c8c612f67565b91509150806137645760008060008096509650965096505050506137a6565b60006137708888612f67565b9250905081613790576000806000809750975097509750505050506137a6565b61379b8b8285612984565b955060019450505050505b95509550955095915050565b60007fffffffffffffffffffffffffffffffff800000000000000000000000000000008212806137f157506f7fffffffffffffffffffffffffffffff82135b156110dc576040517fa5353be500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006f7fffffffffffffffffffffffffffffff8211156110dc576040517fa5353be500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806138818484612f67565b90925090508061389357613893612af0565b5092915050565b60008183136138a957816100c7565b5090919050565b60008082136138eb576040517fe61b497500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff10600390811b90911782811c600f1060021b1782811c909110600190811b90911782811c90911017609f8181036060019290921b917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08201906139959084901c611b1d565b6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b391909102017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c18213613b8257506000919050565b680755bf798b4a1bf1e58212613bc4576040517f73a2d6b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b3988102909303927fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550484018402606090811d6d0277594991cfc85f6e2461837cd9018502811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018502811d6db1bbb201f443cf962f1a1d3db4a5018502811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018502811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765087018702831d9081019087017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e01810290921d6e0587f503bb6ea29d25fcb74019645001860279d835ebba824c98fb31b83b2ca45c00000000000000000000000001818105955092935090919061296574029d9dc38563c32e5c2f6dc192ee70ef65f9978af3860260c38690031c611b1d565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0484118302158202613d9f57600080fd5b50910281810615159190040190565b600080613dbe8888878787614913565b9050613dd885612a27613dd1898c614e1d565b8690611270565b9750613de5848985612984565b975087811015613df757613df7612af0565b878103670de0b6b3a76400008110613e2557613e1e611137670de0b6b3a76400008861296f565b9050613e3d565b613e3a611137670de0b6b3a7640000886128e5565b90505b80881015613e4d57613e4d612af0565b909603979650505050505050565b600081831161191a57826100c7565b600080670de0b6b3a7640000613e7e6109b7565b613e889190614dae565b9050808311613e98576000613ea2565b613ea28184614e30565b9150611917613ed9670de0b6b3a76400007f0000000000000000000000000000000000000000000000000000000000000000614dae565b83906128e5565b6000806000613f0561197885610160015186610140015161127090919063ffffffff16565b613f25611978866101200151876101000151612f5290919063ffffffff16565b613f2f9190614ecb565b9050600080613f4686600001518760200151612f67565b9150915080613f5d57506000958695509350505050565b600083131561409e5760008390506000613fab886000015189602001518a604001518b60a001518c60e00151670de0b6b3a7640000613f9c9190614e30565b8d606001518e6080015161437c565b9350905082613fc4575060009788975095505050505050565b818110614062576000613ffe858a60400151858c60e00151670de0b6b3a7640000613fef9190614e30565b8d606001518e60800151614942565b945090508315801561401357508860c0015183105b1561402a5750600098600198509650505050505050565b8361404057506000988998509650505050505050565b61404981611b1d565b61405290614e43565b9960019950975050505050505050565b600088602001511261408a576140818860a00151856119789190614e30565b61270f90614e43565b60a088015188516140819161197891614e30565b60008312156141f15760006140b284614e43565b905060006140e68489604001518a60e00151670de0b6b3a76400006140d79190614e30565b8b606001518c60800151614264565b93509050826140ff575060009788975095505050505050565b818110614184576000614139858a60400151858c60e00151670de0b6b3a764000061412a9190614e30565b8d606001518e60800151614a05565b945090508315801561414e57508860c0015183105b156141655750600098600198509650505050505050565b8361417b57506000988998509650505050505050565b61405281611b1d565b60006141b6858a604001518b60e00151670de0b6b3a76400006141a79190614e30565b8c606001518d60800151614adc565b94509050836141d057506000988998509650505050505050565b6140526141e78a6060015184866122129190614e30565b6119789083614e1d565b50600095600195509350505050565b6000614233611978836101200151670de0b6b3a76400006142219190614e30565b60608501516101008601519190613d6a565b612c7a611978846101600151670de0b6b3a76400006142529190614e30565b60608601516101408701519190612984565b60008060006142768888888888614913565b905060006142a1670de0b6b3a764000061429088886128e5565b61429a9190614e1d565b839061296f565b9050670de0b6b3a764000081106142ce576142c7611137670de0b6b3a76400008961296f565b90506142e6565b6142e3611137670de0b6b3a7640000896128e5565b90505b808810156142fc57600080935093505050614306565b8703925060019150505b9550959350505050565b6020830151600090614322908461296f565b60408501516143329084906128e5565b101580156100c457506020840151614362908461435b633b9aca00670de0b6b3a7640000614e1d565b9190612984565b604085015161437290849061296f565b1115949350505050565b600080600088121561439e5761439188614e43565b61439b9087614e1d565b95505b6000806143ab8b8b612f67565b91509150806143c257600080935093505050614475565b60006143d1838b8a8a8a614b8b565b905060006143ee6143e68a612a278a8e612f52565b899089613d6a565b905080821015614408576000809550955050505050614475565b808203670de0b6b3a764000081106144365761442f611137670de0b6b3a76400008c6128e5565b905061444e565b61444b611137670de0b6b3a76400008c61296f565b90505b8b81101561446757600080965096505050505050614475565b8b9003955060019450505050505b97509795505050505050565b60008060008360e001511361449b57506000928392509050565b60006144aa8460000151614200565b905060006144d68560400151866060015187604001516144ca9190614e1d565b60208801519190613d6a565b9050600082126144fd57808210156144f057819003614513565b5060009485945092505050565b61450682614e43565b6145109082614e1d565b90505b60e085015160c0860151614528918390613d6a565b9050808560c001511015614543575060009485945092505050565b808560c00151036001935093505050915091565b600080600080841261457b57855160400151614574908590614e1d565b90506145b6565b600061458685614e43565b8751604001519091508110156145a65786516040015181900391506145b4565b600080935093505050611a25565b505b8551805160209091015160009182916145cf9190612f67565b91509150806145e75760008094509450505050611a25565b875160e081015160409091015160009161461c916146109161460991906128fa565b8a90611270565b6101008b01519061296f565b895160e08101516080909101516146479161463b91612a279088611270565b8b51606001519061296f565b6146519190614e1d565b9050600061468961467d6146768c6000015160e00151886128fa90919063ffffffff16565b8b90612f52565b6101008c0151906128e5565b9050808210156146a457600080965096505050505050611a25565b808203915060006146e6858c60000151604001518d6000015160e00151670de0b6b3a76400006146d49190614e30565b8e516060810151608090910151614913565b905060006147108c6000015160e00151670de0b6b3a76400006147099190614e30565b88906128fa565b90508082101561472d576000809850985050505050505050611a25565b8b51608081015160609091015191830391614749918391613d6a565b9050670de0b6b3a7640000811061478d578b5160e00151614786906111379061477a90670de0b6b3a7640000614e30565b8e5160e001519061296f565b90506147bc565b8b5160e001516147b990611137906147ad90670de0b6b3a7640000614e30565b8e5160e00151906128e5565b90505b8b51606001516147cf9085908390613d6a565b935083670de0b6b3a764000011156147f35783670de0b6b3a7640000039350614807565b600060019850985050505050505050611a25565b60008c60e001511261486a5760c08c015160e08d01516148269161296f565b9250670de0b6b3a764000083111561484b576000809850985050505050505050611a25565b670de0b6b3a764000092909203916148638484611270565b935061489f565b61489c6148838d60c001518e60e0015161221290614e43565b61489590670de0b6b3a7640000614e1d565b8590611270565b93505b50919a60019a5098505050505050505050565b60008082126148c157816109b1565b6109b182614e43565b60008060006148d884612ec5565b9150915080613893576040517faa2c651600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061491f85856128fa565b61493861493086612a27868b612f52565b859085613d6a565b6129659190614e1d565b60008060006149548989888888614913565b905061496486612a27898b614e1d565b97508781101561497b5760008092509250506149fa565b878103614989818688613d6a565b9050670de0b6b3a764000081106149b6576149af611137670de0b6b3a76400008961296f565b90506149ce565b6149cb611137670de0b6b3a7640000896128e5565b90505b6149d8818661296f565b9050808a10156149f0576000809350935050506149fa565b8903925060019150505b965096945050505050565b6000806000614a178989888888614913565b905086881015614a2e5760008092509250506149fa565b9686900396614a3d88876128fa565b975087811015614a545760008092509250506149fa565b878103614a62818688613d6a565b9050670de0b6b3a76400008110614a8f57614a88611137670de0b6b3a76400008961296f565b9050614aa7565b614aa4611137670de0b6b3a7640000896128e5565b90505b614ab1818661296f565b905089811015614ac9576000809350935050506149fa565b9890980398600198509650505050505050565b6000806000614aee8888888888614b8b565b90506000614b12670de0b6b3a7640000614b08888861296f565b613ed99190614e1d565b9050670de0b6b3a76400008110614b3f57614b38611137670de0b6b3a7640000896128e5565b9050614b57565b614b54611137670de0b6b3a76400008961296f565b90505b614b6181866128e5565b905088811015614b7957600080935093505050614306565b97909703976001975095505050505050565b6000614b9785856128fa565b614938614ba886612a27868b611270565b859085612984565b604051806101200160405280614c206040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60008060408385031215614c7157600080fd5b50508035926020909101359150565b60006060828403121561191a57600080fd5b600080600060608486031215614ca757600080fd5b8335925060208401359150604084013567ffffffffffffffff811115614ccc57600080fd5b614cd886828701614c80565b9150509250925092565b60008060008060808587031215614cf857600080fd5b843593506020850135925060408501359150606085013567ffffffffffffffff811115614d2457600080fd5b614d3087828801614c80565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614d7a57614d7a614d3c565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820281158282048414176109b1576109b1614d7f565b600060208284031215614dd757600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146100c757600080fd5b600060208284031215614e0d57600080fd5b813580151581146100c757600080fd5b808201808211156109b1576109b1614d7f565b818103818111156109b1576109b1614d7f565b60007f80000000000000000000000000000000000000000000000000000000000000008203614e7457614e74614d7f565b5060000390565b6fffffffffffffffffffffffffffffffff81811683821601908082111561389357613893614d7f565b6dffffffffffffffffffffffffffff81811683821601908082111561389357613893614d7f565b818103600083128015838313168383128216171561389357613893614d7f565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614f2057600080fd5b83018035915067ffffffffffffffff821115614f3b57600080fd5b60200191503681900382131561108957600080fd5b6fffffffffffffffffffffffffffffffff82811682821603908082111561389357613893614d7f565b8082018281126000831280158216821582161715614f9957614f99614d7f565b505092915050565b600060208284031215614fb357600080fd5b5051919050565b600f81810b9083900b016f7fffffffffffffffffffffffffffffff81137fffffffffffffffffffffffffffffffff80000000000000000000000000000000821217156109b1576109b1614d7f565b600081600f0b7fffffffffffffffffffffffffffffffff80000000000000000000000000000000810361503d5761503d614d7f565b60000392915050565b60008261505557615055614d3c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f8000000000000000000000000000000000000000000000000000000000000000831416156150a9576150a9614d7f565b50059056fea26469706673582212207daa5591219de41397d9a1823ef91b5e1062069e0fabb3fe853ccb5bbbee0d0d64736f6c63430008140033" -} \ No newline at end of file diff --git a/deployments/sepolia/TEST_STETH_StETHTarget4.json b/deployments/sepolia/TEST_STETH_StETHTarget4.json deleted file mode 100644 index 54e26493a..000000000 --- a/deployments/sepolia/TEST_STETH_StETHTarget4.json +++ /dev/null @@ -1,990 +0,0 @@ -{ - "address": "0xa9c78c6AC5D4580191305C59Cee8f0D1BaEc9BaA", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "baseToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "vaultSharesToken", - "type": "address" - }, - { - "internalType": "address", - "name": "linkerFactory", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "linkerCodeHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "initialVaultSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumShareReserves", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumTransactionAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "positionDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "checkpointDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeStretch", - "type": "uint256" - }, - { - "internalType": "address", - "name": "governance", - "type": "address" - }, - { - "internalType": "address", - "name": "feeCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "sweepCollector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "curve", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flat", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceLP", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "governanceZombie", - "type": "uint256" - } - ], - "internalType": "struct IHyperdrive.Fees", - "name": "fees", - "type": "tuple" - } - ], - "internalType": "struct IHyperdrive.PoolConfig", - "name": "_config", - "type": "tuple" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "DecreasedPresentValueWhenAddingLiquidity", - "type": "error" - }, - { - "inputs": [], - "name": "DistributeExcessIdleFailed", - "type": "error" - }, - { - "inputs": [], - "name": "ExpInvalidExponent", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientLiquidity", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidApr", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidPresentValue", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidTimestamp", - "type": "error" - }, - { - "inputs": [], - "name": "LnInvalidInput", - "type": "error" - }, - { - "inputs": [], - "name": "MinimumSharePrice", - "type": "error" - }, - { - "inputs": [], - "name": "MinimumTransactionAmount", - "type": "error" - }, - { - "inputs": [], - "name": "OutputLimit", - "type": "error" - }, - { - "inputs": [], - "name": "PoolIsPaused", - "type": "error" - }, - { - "inputs": [], - "name": "ReentrancyGuardReentrantCall", - "type": "error" - }, - { - "inputs": [], - "name": "RestrictedZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "TransferFailed", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt128", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToInt256", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToUint112", - "type": "error" - }, - { - "inputs": [], - "name": "UnsafeCastToUint128", - "type": "error" - }, - { - "inputs": [], - "name": "UpdateLiquidityFailed", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "AddLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "basePayment", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "CloseShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fees", - "type": "uint256" - } - ], - "name": "CollectGovernanceFee", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "checkpointTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "checkpointVaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultSharePrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedShorts", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturedLongs", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "CreateCheckpoint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newFeeCollector", - "type": "address" - } - ], - "name": "FeeCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGovernance", - "type": "address" - } - ], - "name": "GovernanceUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "apr", - "type": "uint256" - } - ], - "name": "Initialize", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenLong", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "trader", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "assetId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maturityTime", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseProceeds", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bondAmount", - "type": "uint256" - } - ], - "name": "OpenShort", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isPaused", - "type": "bool" - } - ], - "name": "PauseStatusUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newPauser", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "status", - "type": "bool" - } - ], - "name": "PauserUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - } - ], - "name": "RedeemWithdrawalShares", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "provider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "vaultShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawalShareAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "lpSharePrice", - "type": "uint256" - } - ], - "name": "RemoveLiquidity", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "Sweep", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newSweepCollector", - "type": "address" - } - ], - "name": "SweepCollectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_contribution", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minLpSharePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minApr", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_maxApr", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "addLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_bondAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_maxDeposit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_minVaultSharePrice", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "internalType": "bool", - "name": "asBase", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct IHyperdrive.Options", - "name": "_options", - "type": "tuple" - } - ], - "name": "openShort", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - } - ], - "args": [ - { - "minimumShareReserves": "1000000000000000", - "minimumTransactionAmount": "1000000000000000", - "positionDuration": "2592000", - "checkpointDuration": "86400", - "timeStretch": "0", - "governance": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "feeCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "sweepCollector": "0xd94a3A0BfC798b98a700a785D5C610E8a2d5DBD8", - "fees": { - "curve": "1000000000000000", - "flat": "8333333333333", - "governanceLP": "150000000000000000", - "governanceZombie": "30000000000000000" - }, - "baseToken": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", - "vaultSharesToken": "0x8CB2Ec99CF968551408CC30c5223Fa4D8c402E55", - "linkerFactory": "0xE84d966f6f87C7957719ad4BeC7E3bB35a46E8B2", - "linkerCodeHash": "0x9a69ff3b9a110deacb7d941d71222642f269891c0da9fcc15ec7c63fbd216b3f", - "initialVaultSharePrice": "0" - } - ], - "numDeployments": 1, - "bytecode": "0x6102406040523480156200001257600080fd5b5060405162005577380380620055778339810160408190526200003591620001e1565b600160005580516001600160a01b039081166080908152602080840151831660a0908152918401516101a0908152918401516101c05260c0808501516101e0526101008086015190915260e0808601519052610120808601519091529184018051519092528151015161014090815281516040908101516101609081529251606090810151610180908152918601518516610200528501516102205290840151600a80546001600160a01b03199081169286169290921790559184015160088054841691851691909117905590920151600980549093169116179055620002d4565b6040516101c081016001600160401b03811182821017156200014957634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b03811681146200016757600080fd5b919050565b6000608082840312156200017f57600080fd5b604051608081016001600160401b0381118282101715620001b057634e487b7160e01b600052604160045260246000fd5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b60006102208284031215620001f557600080fd5b620001ff62000117565b6200020a836200014f565b81526200021a602084016200014f565b60208201526200022d604084016200014f565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101406200028c8185016200014f565b90820152610160620002a08482016200014f565b90820152610180620002b48482016200014f565b908201526101a0620002c9858583016200016c565b908201529392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516151406200043760003960005050600050506000818161010b015281816103e3015281816105f9015261110c0152600081816110e601528181611624015281816121bc0152818161221f0152818161295f01528181612de301528181613010015261305501526000818161019b015281816110c00152818161147f01526114f901526000611d08015260008181611e5b01528181612c0a0152612c83015260008181610ce60152818161159301528181611e2f0152612c5701526000612bd60152600081816101dd015281816111320152818161145d015261151a0152600081816101bc015281816106c101528181610c180152612864015260008181610a8201528181610b210152610b8f015260008181611a7901528181611b2e0152612ac90152600050506151406000f3fe6080604052600436106100295760003560e01c80634c2ac1d91461002e578063dbbe807014610054575b600080fd5b61004161003c366004614cda565b61007c565b6040519081526020015b60405180910390f35b610067610062366004614d3e565b610097565b6040805192835260208301919091520161004b565b600061008b86868686866100b4565b90505b95945050505050565b6000806100a6868686866105a1565b915091505b94509492505050565b60006100be610872565b600554610100900460ff1615610100576040517f21081abf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610109826108b5565b7f0000000000000000000000000000000000000000000000000000000000000000861015610163576040517f423bbb4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610201610170610914565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610943565b90508481108061021057508381115b15610247576040517f76c22a2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806102548986610989565b9150915061026b610263610a7b565b826004610ab1565b506006547f03000000000000000000000000000000000000000000000000000000000000006000908152600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e95490916102dc916fffffffffffffffffffffffffffffffff90911690614dc7565b6000808052600e6020527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c5491925090610317908390614dda565b9050600080600061032786611005565b9050610332816111c7565b915061034561034088611217565b611277565b6001546fffffffffffffffffffffffffffffffff8082168352600354600f0b602084015270010000000000000000000000000000000090910416604082015261038d816111c7565b9250818310156103c9576040517f309b2a4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103df84836103d88187614dc7565b91906112b6565b98507f000000000000000000000000000000000000000000000000000000000000000089101561043b576040517f423bbb4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b508b6104478e8a6112f2565b101561047f576040517fc972651700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610497600061049160208c018c614ded565b8a611310565b60006104a2866113d2565b9050806104db576040517f8bdf918d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600084156104f2576104ed83866112f2565b6104f5565b60005b90508e6000610505828a8f6113df565b90508c6105156020820182614ded565b73ffffffffffffffffffffffffffffffffffffffff167fa59daf574c5c8db34377de83bceea2aa1433cc506d656f5e8f46e5f4b5c58a868e848e61055f6040870160208801614e23565b60408051948552602085019390935291830152151560608201526080810187905260a00160405180910390a250505050505050505050505061008e6001600055565b6000806105ac610872565b600554610100900460ff16156105ee576040517f21081abf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105f7836108b5565b7f0000000000000000000000000000000000000000000000000000000000000000861015610651576040517f423bbb4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061065b61140e565b905084811015610697576040517f42af972b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006106a1610a7b565b905060006106b86106b0610a7b565b846004610ab1565b905060006106e67f000000000000000000000000000000000000000000000000000000000000000084614dda565b905060008060006106f88d8887611421565b92509250925080600b60008282546107109190614dda565b909155506000905061072384898d6115cd565b9050808d101561075f576040517fc972651700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610769818c610989565b50506107778e848a886115f5565b60006107846002876118d1565b905060008f90506107a8828e60000160208101906107a29190614ded565b83611310565b848a8e846107b96020830183614ded565b73ffffffffffffffffffffffffffffffffffffffff167fb354b32bd86ebd9f0968a338e5c2873d7f0d473aa7a668c2488e66038380258b8c8c6107fd8b8888611937565b61080d6040880160208901614e23565b610823898f8c61081d9190614dc7565b9061195f565b6040805195865260208601949094529284019190915215156060830152608082015260a0810188905260c00160405180910390a350979c50929a50505050505050505050506100ab6001600055565b6002600054036108ae576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b60006108c46020830183614ded565b73ffffffffffffffffffffffffffffffffffffffff1603610911576040517ff0dd15fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b60015460035460009161093e916fffffffffffffffffffffffffffffffff90911690600f0b611974565b905090565b60008061095287878786611993565b905061097e61096682866301e133806119aa565b61097883670de0b6b3a7640000614dc7565b906112f2565b979650505050505050565b6000808061099d6040850160208601614e23565b156109c2576109b8856109b36040870187614e45565b6119ee565b90935090506109de565b50346109da856109d56040870187614e45565b611af3565b8492505b6109e661140e565b91508015610a7257604051600090339083908381818185875af1925050503d8060008114610a30576040519150601f19603f3d011682016040523d82523d6000602084013e610a35565b606091505b5050905080610a70576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b505b9250929050565b6000610aa77f000000000000000000000000000000000000000000000000000000000000000042614ed9565b61093e9042614dc7565b600083815260076020526040812080546fffffffffffffffffffffffffffffffff16151580610adf57504285115b15610afe57546fffffffffffffffffffffffffffffffff169050610ffe565b600080610b09610a7b565b9050808703610b1a57859150610bbd565b6000610b467f000000000000000000000000000000000000000000000000000000000000000089614dda565b90505b6000818152600760205260409020546fffffffffffffffffffffffffffffffff1692508181148015610b79575082155b15610b82578692505b82600003610bbb57610bb47f000000000000000000000000000000000000000000000000000000000000000082614dda565b9050610b49565b505b610bc682611bb6565b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff91909116178355610c0b86611c02565b5060009050600781610c3d7f00000000000000000000000000000000000000000000000000000000000000008b614dc7565b815260208101919091526040016000908120546fffffffffffffffffffffffffffffffff169150610c6f60028a6118d1565b6000818152600e60205260408120549192508a8a8315610df25760019250600080610c9e86898c866000611e18565b9150915080600b6000828254610cb49190614dda565b90915550610cd0905086600084610cca81611217565b88611ee7565b610cda8183614dda565b9150610d0a86838a8d877f000000000000000000000000000000000000000000000000000000000000000061210e565b9150610d1e610d19838561195f565b612152565b60058054600290610d469084906201000090046dffffffffffffffffffffffffffff16614eed565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550610d8182611bb6565b60058054601090610db990849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614f14565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505b6000610dff6001846118d1565b6000818152600e60205260409020549091508015610f4b5760019450600080610e2c838b8e886001611e18565b9150915080600b6000828254610e429190614dda565b90915550610e5e905083600084610e5881611217565b8a61219c565b610e688183614dc7565b9150610e77610d19838761195f565b60058054600290610e9f9084906201000090046dffffffffffffffffffffffffffff16614eed565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550610eda82611bb6565b60058054601090610f1290849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614f14565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505b8415610f8357610f77610f5d87611217565b610f6683611217565b610f709190614f3d565b6000612456565b610f818e8e61252d565b505b6000610f8e8f612720565b5090508f7fff888cf98d2696e95c8c39aa98c9ad55a5378008f7a56614c9353b7137a57ab78c868a8686604051610fe7959493929190948552602085019390935260408401919091526060830152608082015260a00190565b60405180910390a250989a50505050505050505050505b9392505050565b6110696040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60408051610180810182526001546fffffffffffffffffffffffffffffffff8082168352600354600f0b602084015270010000000000000000000000000000000091829004811693830193909352606082018590527f000000000000000000000000000000000000000000000000000000000000000060808301527f000000000000000000000000000000000000000000000000000000000000000060a08301527f000000000000000000000000000000000000000000000000000000000000000060c08301527f000000000000000000000000000000000000000000000000000000000000000060e083015260025404821661010082015260045490916101208301916111779116612819565b81526003546fffffffffffffffffffffffffffffffff70010000000000000000000000000000000091829004811660208401526004546040909301926111bf92900416612819565b905292915050565b60008060006111d58461288f565b9150915080611210576040517faa2c651600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5092915050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115611273576040517f72dd4e0200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5090565b6112808161291c565b610911576040517f5044b7f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04841183021582026112eb57600080fd5b5091020490565b600061130783670de0b6b3a7640000846112b6565b90505b92915050565b6000838152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091528120805483929061134f908490614dda565b90915550506000838152600e602052604081208054839290611372908490614dda565b9091555050604080518481526020810183905273ffffffffffffffffffffffffffffffffffffffff84169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4505050565b600061130a82600461252d565b60006113f16040830160208401614e23565b156113fd575082610ffe565b611407848461195f565b9050610ffe565b600061093e670de0b6b3a7640000612a97565b60008060006114a3611431610914565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16887f0000000000000000000000000000000000000000000000000000000000000000897f0000000000000000000000000000000000000000000000000000000000000000612b49565b9150856114b08387612b6a565b11156114be576114be612b7f565b600080600061153e6114ce610914565b60015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611993565b905061155489670de0b6b3a7640000838b612bb1565b5091945090925061156790508284614dc7565b6115719086614dc7565b94506115bd886115b78b611585868a614dc7565b8b6115908e82612cbf565b8e7f0000000000000000000000000000000000000000000000000000000000000000612cd5565b90612b6a565b9550909250505093509350939050565b60006115df6040830160208401614e23565b156115eb575082610ffe565b61140784846112f2565b6001546fffffffffffffffffffffffffffffffff168381101561161a5761161a612b7f565b60035490849003907f000000000000000000000000000000000000000000000000000000000000000090611652908390600f0b611974565b101561166057611660612b7f565b6003546116db906116d69070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166116a3670de0b6b3a764000086614f5d565b60045470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff169190896001612cfa565b611bb6565b600480546fffffffffffffffffffffffffffffffff92831670010000000000000000000000000000000002921691909117905561171781611bb6565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905561176185611bb6565b6001805460109061179990849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614f14565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506117d885611bb6565b6003805460109061181090849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614f14565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550600061185183612d98565b905061186f8161186088611217565b61186a9084614f3d565b612456565b61187884612ddc565b61188457611884612b7f565b600061188f856113d2565b9050806118c8576040517f8bdf918d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505050565b60007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82111561192c576040517fb7d0949700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060f89190911b1790565b60006119496040830160208401614e23565b156119585761140784846112f2565b5082610ffe565b60006113078383670de0b6b3a76400006112b6565b6000806119818484612e4e565b90925090508061121057611210612b7f565b600061008e826119a48588886112b6565b90612e8a565b6000827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04841183021582026119df57600080fd5b50910281810615159190040190565b60008084341015611a2b576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506008546040517fa1903eab00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015234869003917f0000000000000000000000000000000000000000000000000000000000000000169063a1903eab90879060240160206040518083038185885af1158015611ac3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ae89190614f74565b91505b935093915050565b6040517f6d780459000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636d780459906064016020604051808303816000875af1158015611b8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb09190614f74565b50505050565b60006fffffffffffffffffffffffffffffffff821115611273576040517f1e15f2a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005546000908190611c3b90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661195f565b6005546201000090046dffffffffffffffffffffffffffff169250905081811115611e13576000611c6c8383614dc7565b9050611c7b6116d68286612eff565b60058054601090611cb390849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614f8d565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506000611cfe85836112f290919063ffffffff16565b90506000611d2c827f000000000000000000000000000000000000000000000000000000000000000061195f565b905080600b6000828254611d409190614dda565b90915550611d5090508183614dc7565b9150611d5b82611bb6565b60018054600090611d7f9084906fffffffffffffffffffffffffffffffff16614f14565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550611dbe82612f14565b60038054600090611dd3908490600f0b614fb6565b92506101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff1602179055508493505050505b915091565b600080611e2587856112f2565b91506000611e53837f000000000000000000000000000000000000000000000000000000000000000061195f565b9050611e7f817f000000000000000000000000000000000000000000000000000000000000000061195f565b91508315611ea257611e918282614dc7565b611e9b9084614dc7565b9250611eb9565b611eac8282614dc7565b611eb69084614dda565b92505b86861015611edc57611ecc8387896112b6565b9250611ed98287896112b6565b91505b509550959350505050565b60035470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16611f5c6116d682611f29670de0b6b3a764000086614f5d565b60045470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1691908a6000612cfa565b600480546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055611f9886611bb6565b611fa29082614f8d565b600380546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055611fde84611bb6565b600180546000906120029084906fffffffffffffffffffffffffffffffff16614f14565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555061204183612f60565b60038054600090612056908490600f0b614fb6565b92506101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff16021790555061209885611bb6565b600180546010906120d090849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614f8d565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050505050565b600080612120846109788a888a6112b6565b905061212d8884866112b6565b6121379082614dda565b9050868111156121475786810391505b509695505050505050565b60006dffffffffffffffffffffffffffff821115611273576040517f10d62a2e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546fffffffffffffffffffffffffffffffff16838110806121e757507f00000000000000000000000000000000000000000000000000000000000000006121e58583614dc7565b105b156121f4576121f4612b7f565b6003549084900390600f0b6122098482614f3d565b90508361221586611217565b13801561224a57507f00000000000000000000000000000000000000000000000000000000000000006122488383611974565b105b1561225757612257612b7f565b60025470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166122b86116d682612299670de0b6b3a764000088614f5d565b6004546fffffffffffffffffffffffffffffffff1691908c6000612cfa565b600480547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790556123038882614dc7565b905061230e81611bb6565b600280546fffffffffffffffffffffffffffffffff92831670010000000000000000000000000000000002921691909117905561234a83611bb6565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905561239482612f60565b600380547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790556123de87611bb6565b6001805460109061241690849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614f14565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050505050505050565b600061247f6124658483612fd6565b612470846000612fd6565b61247a9190614f3d565b612f60565b9050600081600f0b13156124ef57600280548291906000906124b49084906fffffffffffffffffffffffffffffffff16614f14565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050565b600081600f0b12156125285761250481615004565b600280546000906124b49084906fffffffffffffffffffffffffffffffff16614f8d565b505050565b6006547f03000000000000000000000000000000000000000000000000000000000000006000908152600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e9549091829161259d916fffffffffffffffffffffffffffffffff1690614dc7565b9050806000036125b157600191505061130a565b60006125bc85612fe5565b9050806000036125d15760019250505061130a565b6000806125df8385896130a2565b91509150806125f557600094505050505061130a565b60008061260284896131a8565b9150915061262061261282611217565b61261b90615042565b61291c565b925082612636576000965050505050505061130a565b61263f82611bb6565b600680546000906126639084906fffffffffffffffffffffffffffffffff16614f14565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506126a281611bb6565b600680546010906126da90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16614f14565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506001965050505050505092915050565b60008060008061273761273286611005565b61288f565b915091508061274d575060009485945092505050565b600080861161275d576000612767565b612767838761195f565b600654600e6020527fd2d06a3478833ecfcc0864e3afb188a7ff21caef68ea336a6e4f79f78f6fb3e95460008080527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c54939450926fffffffffffffffffffffffffffffffff909216916127db9190614dda565b6127e59190614dc7565b9050806000036127fe5750600096879650945050505050565b600061280a83836112f2565b98600198509650505050505050565b600080670de0b6b3a764000061282d610a7b565b6128379190614f5d565b9050808311612847576000612851565b6128518184614dc7565b9150610ffe612888670de0b6b3a76400007f0000000000000000000000000000000000000000000000000000000000000000614f5d565b83906112f2565b60008060008060006128a086613298565b91509150806128b757506000958695509350505050565b6128c48660a00151611217565b6128cd876135b8565b836128db8960000151611217565b6128e5919061507a565b6128ef919061507a565b6128f99190614f3d565b9250505060008112156129125750600093849350915050565b9360019350915050565b6001546003546000916fffffffffffffffffffffffffffffffff80821692600f0b91700100000000000000000000000000000000900416838080806129848787877f00000000000000000000000000000000000000000000000000000000000000008d61361c565b9350935093509350806129a05750600098975050505050505050565b8684146129f2576129b084611bb6565b600180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b858314612a4457612a0283612f60565b600380547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff929092169190911790555b848214612a8857612a5482611bb6565b600180546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292169190911790555b50600198975050505050505050565b6040517f7a28fb88000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637a28fb8890602401602060405180830381865afa158015612b25573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130a9190614f74565b600061097e878787612b6388670de0b6b3a7640000614dc7565b8787613734565b60006113078383670de0b6b3a76400006119aa565b6040517fbb55fd2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808080612c028786612bfb8b6115b7612bd48c670de0b6b3a7640000614dc7565b7f000000000000000000000000000000000000000000000000000000000000000090612b6a565b91906119aa565b9350612c2e847f000000000000000000000000000000000000000000000000000000000000000061195f565b91506000612c4f612c4789670de0b6b3a7640000614dc7565b8a90886119aa565b9050612c7b817f0000000000000000000000000000000000000000000000000000000000000000612b6a565b9350612ca7847f000000000000000000000000000000000000000000000000000000000000000061195f565b612cb19084614dda565b915050945094509450949050565b6000818311612cce5781611307565b5090919050565b600080612ced84612ce78a888a6119aa565b90612eff565b905061212d8884866119aa565b600082600003612d0b57508461008e565b8115612d5e57612d3c612d1e8487614dda565b612d28858761195f565b612d32888a61195f565b6109789190614dda565b90506000612d4a8588613757565b905080821015612d58578091505b5061008e565b828503612d6d5750600061008e565b61008b612d7a8487614dc7565b612d848587612b6a565b612d8e888a61195f565b6109789190614dc7565b6000612dc0600e6000612dac6002866118d1565b815260200190815260200160002054611217565b612dd2600e6000612dac6001876118d1565b61130a9190614f3d565b6000612e087f000000000000000000000000000000000000000000000000000000000000000083612b6a565b600254612e2791906fffffffffffffffffffffffffffffffff16614dda565b600154612e46906fffffffffffffffffffffffffffffffff168461195f565b101592915050565b600080600083612e5d86611217565b612e679190614f3d565b90506000811215612e7f576000809250925050610a74565b946001945092505050565b600081600003612ea35750670de0b6b3a764000061130a565b82600003612eb35750600061130a565b6000612ebe83611217565b90506000612ed3612ece86611217565b613766565b9050818102612eea670de0b6b3a7640000826150a2565b9050612ef581613a07565b9695505050505050565b600061130783670de0b6b3a7640000846119aa565b60006f7fffffffffffffffffffffffffffffff821115611273576040517fa5353be500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007fffffffffffffffffffffffffffffffff80000000000000000000000000000000821280612f9f57506f7fffffffffffffffffffffffffffffff82135b15611273576040517fa5353be500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000818313612cce5781611307565b6002546000908190613009906fffffffffffffffffffffffffffffffff1684612eff565b90506130357f000000000000000000000000000000000000000000000000000000000000000082614dda565b6001546fffffffffffffffffffffffffffffffff16111561309c576001547f0000000000000000000000000000000000000000000000000000000000000000906130929083906fffffffffffffffffffffffffffffffff16614dc7565b610ffe9190614dc7565b50919050565b6130aa614c1a565b6000806130b684611005565b905060006130c38261288f565b93509050826130d8575060009150611aeb9050565b60006130ff6130fa84610160015185610140015161195f90919063ffffffff16565b611217565b61311f6130fa856101200151866101000151612b6a90919063ffffffff16565b6131299190614f3d565b604080516101208101825285815260208082019590955260008052600e85527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c54818301526060810199909952608089019990995260a088015250815160c087015281015160e086015290940151610100840152509092600192509050565b6000806000806131c08660c001518760e00151612e4e565b91509150806131d757600080935093505050610a74565b60006131e38784613c20565b925090508115806131f2575080155b156132065760008094509450505050610a74565b60006132128883613d2f565b90508060000361322c576000809550955050505050610a74565b876060015181116132435794509250610a74915050565b50606087015160006132578986858b613e00565b90508060000361327257600080965096505050505050610a74565b82811061328a57600080965096505050505050610a74565b909890975095505050505050565b60008060006132bd6130fa85610160015186610140015161195f90919063ffffffff16565b6132dd6130fa866101200151876101000151612b6a90919063ffffffff16565b6132e79190614f3d565b90506000806132fe86600001518760200151612e4e565b915091508061331557506000958695509350505050565b60008313156134565760008390506000613363886000015189602001518a604001518b60a001518c60e00151670de0b6b3a76400006133549190614dc7565b8d606001518e60800151614317565b935090508261337c575060009788975095505050505050565b81811061341a5760006133b6858a60400151858c60e00151670de0b6b3a76400006133a79190614dc7565b8d606001518e60800151614423565b94509050831580156133cb57508860c0015183105b156133e25750600098600198509650505050505050565b836133f857506000988998509650505050505050565b61340181611217565b61340a90615042565b9960019950975050505050505050565b6000886020015112613442576134398860a00151856130fa9190614dc7565b61280a90615042565b60a08801518851613439916130fa91614dc7565b60008312156135a957600061346a84615042565b9050600061349e8489604001518a60e00151670de0b6b3a764000061348f9190614dc7565b8b606001518c608001516144e6565b93509050826134b7575060009788975095505050505050565b81811061353c5760006134f1858a60400151858c60e00151670de0b6b3a76400006134e29190614dc7565b8d606001518e60800151614592565b945090508315801561350657508860c0015183105b1561351d5750600098600198509650505050505050565b8361353357506000988998509650505050505050565b61340a81611217565b600061356e858a604001518b60e00151670de0b6b3a764000061355f9190614dc7565b8c606001518d60800151614669565b945090508361358857506000988998509650505050505050565b61340a61359f8a6060015184866109789190614dc7565b6130fa9083614dda565b50600095600195509350505050565b60006135eb6130fa836101200151670de0b6b3a76400006135d99190614dc7565b606085015161010086015191906119aa565b612dd26130fa846101600151670de0b6b3a764000061360a9190614dc7565b606086015161014087015191906112b6565b6000806000808460000361363b57508792508691508590506001613728565b6000856136478b611217565b613651919061507a565b905061365c87611217565b81121561367757600080600080945094509450945050613728565b80945060008912613697576136906130fa868b8d6112b6565b93506136ba565b6136ae6130fa6136a68b615042565b87908d6119aa565b6136b790615042565b93505b6000806136c78c8c612e4e565b91509150806136e6576000806000809650965096509650505050613728565b60006136f28888612e4e565b925090508161371257600080600080975097509750975050505050613728565b61371d8b82856112b6565b955060019450505050505b95509550955095915050565b600080613745888888888888614423565b90925090508061214757612147612b7f565b600081831161309c5782611307565b60008082136137a1576040517fe61b497500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff10600390811b90911782811c600f1060021b1782811c909110600190811b90911782811c90911017609f8181036060019290921b917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa082019061384b9084901c611217565b6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b391909102017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c18213613a3857506000919050565b680755bf798b4a1bf1e58212613a7a576040517f73a2d6b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b3988102909303927fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550484018402606090811d6d0277594991cfc85f6e2461837cd9018502811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018502811d6db1bbb201f443cf962f1a1d3db4a5018502811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018502811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765087018702831d9081019087017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e01810290921d6e0587f503bb6ea29d25fcb74019645001860279d835ebba824c98fb31b83b2ca45c000000000000000000000000018181059550929350909190612ef574029d9dc38563c32e5c2f6dc192ee70ef65f9978af3860260c38690031c611217565b60008060008460a0015112613c3d57505060808201516001610a74565b60008460a00151613c4d90615042565b90506000613c8985876101000151886000015160e00151670de0b6b3a7640000613c779190614dc7565b895160608101516080909101516144e6565b93509050821580613c98575080155b15613cab57600080935093505050610a74565b6000613cb78383612eff565b9050670de0b6b3a76400008111613cf35780670de0b6b3a7640000039450613cec8760c001518661195f90919063ffffffff16565b9450613d02565b60008094509450505050610a74565b8660800151851115613d21578660800151600194509450505050610a74565b506001925050509250929050565b600080613d658460c001518560e00151866101000151876000015160a00151613d5788611217565b613d6090615042565b61361c565b87516040810192909252602082019290925291909152905080613d8c57600091505061130a565b6000613d9b856000015161288f565b9250905081613daf5760009250505061130a565b84602001518110613dc55760009250505061130a565b600085606001518660400151613ddb9190614dda565b9050613df6828760200151836112b69092919063ffffffff16565b612ef59082614dc7565b60008085606001518660400151613e179190614dda565b60208701516060880151919250600091613e3191846112b6565b90508660a00151600003613e4857915061430f9050565b60008080896004881015613e5b57600497505b60005b888110156141b757613e70868b613757565b95506000613e998360c001518460e00151856101000151866000015160a00151613d578c611217565b86516040810192909252602082019290925291909152905080613ec75760009850505050505050505061430f565b6000613ed68e6000015161288f565b9250905081613ef1576000995050505050505050505061430f565b613efc84828b614718565b15613f125787995050505050505050505061430f565b60008460a00151131561407b57835180516020820151604083015160a084015160e090940151600094613f6694939291613f5490670de0b6b3a7640000614dc7565b8a516060810151608090910151614317565b9350905082613f825760009a505050505050505050505061430f565b808560a001511061407957613f968561477d565b909950925082613fb35760009a505050505050505050505061430f565b613fd88560c001518660e00151876101000151886000015160a00151613d578e611217565b885160408101929092526020820192909252919091529250826140085760009a505050505050505050505061430f565b845180516020820151604083015160a084015160e0909401516140389490613f5490670de0b6b3a7640000614dc7565b93509050826140545760009a505050505050505050505061430f565b8e60a00151811161407157889a505050505050505050505061430f565b505050613e5e565b505b600061408c858f8760a00151614853565b935090508215806140a55750670de0b6b3a76400008110155b156140bd5760009a505050505050505050505061430f565b80670de0b6b3a764000003905060006140ea6130fa87604001518860200151612b6a90919063ffffffff16565b6140f76130fa858e61195f565b6141019190614f3d565b905088158061411f575061411489614bae565b61411d82614bae565b125b1561412e578098508997508296505b6000811315614156576141458b61097883856112f2565b61414f908b614dda565b99506141a8565b600081121561419f5760006141708c610978858186615042565b90508a81101561418457808b039a50614199565b60009c5050505050505050505050505061430f565b506141a8565b505050506141b7565b84600101945050505050613e5e565b5060006141df8260c001518360e00151846101000151856000015160a00151613d578b611217565b8551604081019290925260208201929092529190915290508061420c57600097505050505050505061430f565b600061421b83600001516111c7565b9050600061423d6130fa85604001518660200151612b6a90919063ffffffff16565b61424a6130fa848c61195f565b6142549190614f3d565b905061425f87614bae565b61426882614bae565b1215614275578795508194505b61429c614290655af3107a4000670de0b6b3a7640000614dc7565b6020860151908b6119aa565b60408501516142ac9087906112f2565b10806142ec57506142da6142ce655af3107a4000670de0b6b3a7640000614dda565b6020860151908b6112b6565b60408501516142ea908790612eff565b115b15614303576000995050505050505050505061430f565b50939750505050505050505b949350505050565b60008060008812156143395761432c88615042565b6143369087614dda565b95505b6000806143468b8b612e4e565b915091508061435d57600080935093505050614417565b600061436c838b8a8a8a614bc6565b905060006143896143818a6119a48a8e612b6a565b8990896119aa565b9050808210156143a3576000809550955050505050614417565b808203670de0b6b3a764000081106143d8576143d16143ca670de0b6b3a76400008c6112f2565b8290612e8a565b90506143f0565b6143ed6143ca670de0b6b3a76400008c612eff565b90505b8b81101561440957600080965096505050505050614417565b8b9003955060019450505050505b97509795505050505050565b60008060006144358989888888614bf5565b9050614445866119a4898b614dda565b97508781101561445c5760008092509250506144db565b87810361446a8186886119aa565b9050670de0b6b3a76400008110614497576144906143ca670de0b6b3a764000089612eff565b90506144af565b6144ac6143ca670de0b6b3a7640000896112f2565b90505b6144b98186612eff565b9050808a10156144d1576000809350935050506144db565b8903925060019150505b965096945050505050565b60008060006144f88888888888614bf5565b90506000614523670de0b6b3a764000061451288886112f2565b61451c9190614dda565b8390612eff565b9050670de0b6b3a76400008110614550576145496143ca670de0b6b3a764000089612eff565b9050614568565b6145656143ca670de0b6b3a7640000896112f2565b90505b8088101561457e57600080935093505050614588565b8703925060019150505b9550959350505050565b60008060006145a48989888888614bf5565b9050868810156145bb5760008092509250506144db565b96869003966145ca8887612e8a565b9750878110156145e15760008092509250506144db565b8781036145ef8186886119aa565b9050670de0b6b3a7640000811061461c576146156143ca670de0b6b3a764000089612eff565b9050614634565b6146316143ca670de0b6b3a7640000896112f2565b90505b61463e8186612eff565b905089811015614656576000809350935050506144db565b9890980398600198509650505050505050565b600080600061467b8888888888614bc6565b9050600061469f670de0b6b3a76400006146958888612eff565b6128889190614dda565b9050670de0b6b3a764000081106146cc576146c56143ca670de0b6b3a7640000896112f2565b90506146e4565b6146e16143ca670de0b6b3a764000089612eff565b90505b6146ee81866112f2565b90508881101561470657600080935093505050614588565b97909703976001975095505050505050565b602083015160009061472a9084612eff565b604085015161473a9084906112f2565b1015801561430f5750602084015161476390846103d8633b9aca00670de0b6b3a7640000614dda565b6040850151614773908490612eff565b1115949350505050565b60008060008360e001511361479757506000928392509050565b60006147a684600001516135b8565b905060006147d28560400151866060015187604001516147c69190614dda565b602088015191906119aa565b9050600082126147f957808210156147ec5781900361480f565b5060009485945092505050565b61480282615042565b61480c9082614dda565b90505b60e085015160c08601516148249183906119aa565b9050808560c00151101561483f575060009485945092505050565b808560c00151036001935093505050915091565b600080600080841261487757855160400151614870908590614dda565b90506148b2565b600061488285615042565b8751604001519091508110156148a25786516040015181900391506148b0565b600080935093505050611aeb565b505b8551805160209091015160009182916148cb9190612e4e565b91509150806148e35760008094509450505050611aeb565b875160e08101516040909101516000916149189161490c916149059190612e8a565b8a9061195f565b6101008b015190612eff565b895160e081015160809091015161494391614937916119a4908861195f565b8b516060015190612eff565b61494d9190614dda565b905060006149856149796149728c6000015160e0015188612e8a90919063ffffffff16565b8b90612b6a565b6101008c0151906112f2565b9050808210156149a057600080965096505050505050611aeb565b808203915060006149e2858c60000151604001518d6000015160e00151670de0b6b3a76400006149d09190614dc7565b8e516060810151608090910151614bf5565b90506000614a0c8c6000015160e00151670de0b6b3a7640000614a059190614dc7565b8890612e8a565b905080821015614a29576000809850985050505050505050611aeb565b8b51608081015160609091015191830391614a459183916119aa565b9050670de0b6b3a76400008110614a89578b5160e00151614a82906143ca90614a7690670de0b6b3a7640000614dc7565b8e5160e0015190612eff565b9050614ab8565b8b5160e00151614ab5906143ca90614aa990670de0b6b3a7640000614dc7565b8e5160e00151906112f2565b90505b8b5160600151614acb90859083906119aa565b935083670de0b6b3a76400001115614aef5783670de0b6b3a7640000039350614b03565b600060019850985050505050505050611aeb565b60008c60e0015112614b665760c08c015160e08d0151614b2291612eff565b9250670de0b6b3a7640000831115614b47576000809850985050505050505050611aeb565b670de0b6b3a76400009290920391614b5f848461195f565b9350614b9b565b614b98614b7f8d60c001518e60e0015161097890615042565b614b9190670de0b6b3a7640000614dda565b859061195f565b93505b50919a60019a5098505050505050505050565b6000808212614bbd578161130a565b61130a82615042565b6000614bd28585612e8a565b614beb614be3866119a4868b61195f565b8590856112b6565b61008b9190614dda565b6000614c018585612e8a565b614beb614c12866119a4868b612b6a565b8590856119aa565b604051806101200160405280614c8a6040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006060828403121561309c57600080fd5b600080600080600060a08688031215614cf257600080fd5b85359450602086013593506040860135925060608601359150608086013567ffffffffffffffff811115614d2557600080fd5b614d3188828901614cc8565b9150509295509295909350565b60008060008060808587031215614d5457600080fd5b843593506020850135925060408501359150606085013567ffffffffffffffff811115614d8057600080fd5b614d8c87828801614cc8565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561130a5761130a614d98565b8082018082111561130a5761130a614d98565b600060208284031215614dff57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610ffe57600080fd5b600060208284031215614e3557600080fd5b81358015158114610ffe57600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614e7a57600080fd5b83018035915067ffffffffffffffff821115614e9557600080fd5b602001915036819003821315610a7457600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614ee857614ee8614eaa565b500690565b6dffffffffffffffffffffffffffff81811683821601908082111561121057611210614d98565b6fffffffffffffffffffffffffffffffff81811683821601908082111561121057611210614d98565b818103600083128015838313168383128216171561121057611210614d98565b808202811582820484141761130a5761130a614d98565b600060208284031215614f8657600080fd5b5051919050565b6fffffffffffffffffffffffffffffffff82811682821603908082111561121057611210614d98565b600f81810b9083900b016f7fffffffffffffffffffffffffffffff81137fffffffffffffffffffffffffffffffff800000000000000000000000000000008212171561130a5761130a614d98565b600081600f0b7fffffffffffffffffffffffffffffffff80000000000000000000000000000000810361503957615039614d98565b60000392915050565b60007f8000000000000000000000000000000000000000000000000000000000000000820361507357615073614d98565b5060000390565b808201828112600083128015821682158216171561509a5761509a614d98565b505092915050565b6000826150b1576150b1614eaa565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f80000000000000000000000000000000000000000000000000000000000000008314161561510557615105614d98565b50059056fea26469706673582212209172e82d93ba2d128da7e7483a01c26857d9ebab5ec7cd39d3bc71bbe386e1af64736f6c63430008140033" -} \ No newline at end of file