tycho-simulation 0.255.1

Provides tools for interacting with protocol states, calculating spot prices, and quoting token swaps.
Documentation
1
608060405260043610610058575f3560e01c8063095ea7b3146100ea57806323b872dd1461011e57806370a082311461013d578063a9059cbb1461016a578063dd62ed3e14610189578063e30443bc146101a85761005f565b3661005f57005b5f6100755f516020610f535f395f51905f525490565b90505f5f826001600160a01b03165f36604051610093929190610df5565b5f60405180830381855af49150503d805f81146100cb576040519150601f19603f3d011682016040523d82523d5f602084013e6100d0565b606091505b5091509150816100e257805160208201fd5b805160208201f35b3480156100f5575f5ffd5b50610109610104366004610e1f565b6101c9565b60405190151581526020015b60405180910390f35b348015610129575f5ffd5b50610109610138366004610e47565b610263565b348015610148575f5ffd5b5061015c610157366004610e81565b6106fa565b604051908152602001610115565b348015610175575f5ffd5b50610109610184366004610e1f565b610838565b348015610194575f5ffd5b5061015c6101a3366004610e9a565b610ba2565b3480156101b3575f5ffd5b506101c76101c2366004610e1f565b610cdd565b005b335f8181527f71a54e125991077003bef7e7ca57369c919dac6d2458895f1eab4d03960f4aeb602090815260408083206001600160a01b0387168452909152812083905590610219906001610d12565b6040518281526001600160a01b0384169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259060200160405180910390a35060015b92915050565b5f5f516020610f335f395f51905f527f71a54e125991077003bef7e7ca57369c919dac6d2458895f1eab4d03960f4aeb8261029d87610d63565b90505f6102a987610d63565b90505f6102b589610da7565b90508280156102c15750805b156105e3576001600160a01b0389165f908152602086905260409020548711156103295760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b60448201526064015b60405180910390fd5b6001600160a01b0389165f908152602085815260408083203384529091529020548711156103925760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420616c6c6f77616e636560501b6044820152606401610320565b6001600160a01b0389165f90815260208690526040812080548992906103b9908490610edf565b90915550506001600160a01b0389165f90815260208581526040808320338452909152812080548992906103ee908490610edf565b9091555050811561042b576001600160a01b0388165f9081526020869052604081208054899290610420908490610ef2565b9091555061059b9050565b5f5f6104425f516020610f535f395f51905f525490565b6040516001600160a01b038c81166024830152919091169060440160408051601f198184030181529181526020820180516001600160e01b03166370a0823160e01b179052516104929190610f05565b5f60405180830381855afa9150503d805f81146104ca576040519150601f19603f3d011682016040523d82523d5f602084013e6104cf565b606091505b50915091508180156104e357506020815110155b61052f5760405162461bcd60e51b815260206004820152601e60248201527f4661696c656420746f206765742072656365697665722062616c616e636500006044820152606401610320565b5f818060200190518101906105449190610f1b565b6001600160a01b038c165f90815260208a905260409020819055905061056b8b6001610dce565b6001600160a01b038b165f90815260208990526040812080548c9290610592908490610ef2565b90915550505050505b876001600160a01b0316896001600160a01b03165f516020610f735f395f51905f52896040516105cd91815260200190565b60405180910390a36001955050505050506106f3565b5f6105f95f516020610f535f395f51905f525490565b6040516001600160a01b038c811660248301528b81166044830152606482018b9052919091169060840160408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b179052516106589190610f05565b5f604051808303815f865af19150503d805f8114610691576040519150601f19603f3d011682016040523d82523d5f602084013e610696565b606091505b5050905080156106e957886001600160a01b03168a6001600160a01b03165f516020610f735f395f51905f528a6040516106d291815260200190565b60405180910390a3600196505050505050506106f3565b5f96505050505050505b9392505050565b6001600160a01b0381165f9081525f516020610f335f395f51905f5260208190526040822054151580610731575061073183610d63565b15610754576001600160a01b039092165f90815260209290925250604090205490565b5f5f61076b5f516020610f535f395f51905f525490565b6040516001600160a01b038781166024830152919091169060440160408051601f198184030181529181526020820180516001600160e01b03166370a0823160e01b179052516107bb9190610f05565b5f60405180830381855afa9150503d805f81146107f3576040519150601f19603f3d011682016040523d82523d5f602084013e6107f8565b606091505b509150915081801561080c57506020815110155b1561082e57808060200190518101906108259190610f1b565b95945050505050565b505f949350505050565b5f5f516020610f335f395f51905f5261085033610d63565b15610ab557335f908152602082905260409020548311156108aa5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152606401610320565b335f90815260208290526040812080548592906108c8908490610edf565b909155506108d7905084610d63565b1561090e576001600160a01b0384165f9081526020829052604081208054859290610903908490610ef2565b90915550610a7e9050565b5f5f6109255f516020610f535f395f51905f525490565b6040516001600160a01b038881166024830152919091169060440160408051601f198184030181529181526020820180516001600160e01b03166370a0823160e01b179052516109759190610f05565b5f60405180830381855afa9150503d805f81146109ad576040519150601f19603f3d011682016040523d82523d5f602084013e6109b2565b606091505b50915091508180156109c657506020815110155b610a125760405162461bcd60e51b815260206004820152601e60248201527f4661696c656420746f206765742072656365697665722062616c616e636500006044820152606401610320565b5f81806020019051810190610a279190610f1b565b6001600160a01b0388165f9081526020869052604090208190559050610a4e876001610dce565b6001600160a01b0387165f9081526020859052604081208054889290610a75908490610ef2565b90915550505050505b6040518381526001600160a01b0385169033905f516020610f735f395f51905f529060200160405180910390a3600191505061025d565b5f610acb5f516020610f535f395f51905f525490565b6040516001600160a01b03878116602483015260448201879052919091169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b17905251610b229190610f05565b5f604051808303815f865af19150503d805f8114610b5b576040519150601f19603f3d011682016040523d82523d5f602084013e610b60565b606091505b50509050801561082e576040518481526001600160a01b0386169033905f516020610f735f395f51905f529060200160405180910390a360019250505061025d565b5f610bac83610da7565b15610bfb57506001600160a01b038281165f9081527f71a54e125991077003bef7e7ca57369c919dac6d2458895f1eab4d03960f4aeb602090815260408083209385168352929052205461025d565b5f5f610c125f516020610f535f395f51905f525490565b6040516001600160a01b0387811660248301528681166044830152919091169060640160408051601f198184030181529181526020820180516001600160e01b0316636eb1769f60e11b17905251610c6a9190610f05565b5f60405180830381855afa9150503d805f8114610ca2576040519150601f19603f3d011682016040523d82523d5f602084013e610ca7565b606091505b5091509150818015610cbb57506020815110155b1561082e5780806020019051810190610cd49190610f1b565b9250505061025d565b6001600160a01b0382165f9081525f516020610f335f395f51905f5260205260409020819055610d0e826001610dce565b5050565b807f9f0c1bc0e9c3078f9ad5fc59c8606416b3fabcbd4c8353fed22937c66c866ce35b6001600160a01b03939093165f9081526020939093526040909220805460ff19169215159290921790915550565b5f7f7ead8ede9dbb385b0664952c7462c9938a5821e6f78e859da2e683216e99411b5b6001600160a01b039092165f90815260209290925250604090205460ff1690565b5f7f9f0c1bc0e9c3078f9ad5fc59c8606416b3fabcbd4c8353fed22937c66c866ce3610d86565b807f7ead8ede9dbb385b0664952c7462c9938a5821e6f78e859da2e683216e99411b610d35565b818382375f9101908152919050565b80356001600160a01b0381168114610e1a575f5ffd5b919050565b5f5f60408385031215610e30575f5ffd5b610e3983610e04565b946020939093013593505050565b5f5f5f60608486031215610e59575f5ffd5b610e6284610e04565b9250610e7060208501610e04565b929592945050506040919091013590565b5f60208284031215610e91575f5ffd5b6106f382610e04565b5f5f60408385031215610eab575f5ffd5b610eb483610e04565b9150610ec260208401610e04565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561025d5761025d610ecb565b8082018082111561025d5761025d610ecb565b5f82518060208501845e5f920191825250919050565b5f60208284031215610f2b575f5ffd5b505191905056fe474f5fd57ee674f7b6851bc6f07e751b49076dfb356356985b9daf10e9abc9416677c72cdeb41acaf2b17ec8a6e275c4205f27dbfe4de34ebaf2e928a7e610dbddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122040b28d325986f9da476054c3fa7378ba9d98fbb76e65cef13853be82fc77ab7964736f6c634300081d0033w