[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "address", "name": "_silo", "type": "address" }, { "internalType": "address", "name": "_asset", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AmountExceedsAllowance", "type": "error" }, { "inputs": [], "name": "MinimumShareRequirement", "type": "error" }, { "inputs": [], "name": "OnlySilo", "type": "error" }, { "inputs": [], "name": "OwnerIsZero", "type": "error" }, { "inputs": [], "name": "RecipientIsZero", "type": "error" }, { "inputs": [], "name": "RecipientNotSolventAfterTransfer", "type": "error" }, { "inputs": [], "name": "ShareTransferNotAllowed", "type": "error" }, { "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": "contract INotificationReceiver", "name": "notificationReceiver", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "success", "type": "bool" } ], "name": "NotificationSent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_receiver", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "ReceiveApproval", "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": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "MINIMUM_SHARE_AMOUNT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "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": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "uint256", "name": "_subtractedValue", "type": "uint256" } ], "name": "decreaseReceiveAllowance", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "uint256", "name": "_addedValue", "type": "uint256" } ], "name": "increaseReceiveAllowance", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "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": "_owner", "type": "address" }, { "internalType": "address", "name": "_recipient", "type": "address" } ], "name": "receiveAllowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "setReceiveApproval", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "silo", "outputs": [ { "internalType": "contract ISilo", "name": "", "type": "address" } ], "stateMutability": "view", "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": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
60e06040523480156200001157600080fd5b50604051620017ba380380620017ba833981016040819052620000349162000283565b81818585816003908051906020019062000050929190620000f3565b50805162000066906004906020840190620000f3565b5050506001600160a01b03808316608052811660a08190526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa158015620000ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e0919062000312565b60ff1660c052506200037a945050505050565b82805462000101906200033e565b90600052602060002090601f01602090048101928262000125576000855562000170565b82601f106200014057805160ff191683800117855562000170565b8280016001018555821562000170579182015b828111156200017057825182559160200191906001019062000153565b506200017e92915062000182565b5090565b5b808211156200017e576000815560010162000183565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001c157600080fd5b81516001600160401b0380821115620001de57620001de62000199565b604051601f8301601f19908116603f0116810190828211818310171562000209576200020962000199565b816040528381526020925086838588010111156200022657600080fd5b600091505b838210156200024a57858201830151818301840152908201906200022b565b838211156200025c5760008385830101525b9695505050505050565b80516001600160a01b03811681146200027e57600080fd5b919050565b600080600080608085870312156200029a57600080fd5b84516001600160401b0380821115620002b257600080fd5b620002c088838901620001af565b95506020870151915080821115620002d757600080fd5b50620002e687828801620001af565b935050620002f76040860162000266565b9150620003076060860162000266565b905092959194509250565b6000602082840312156200032557600080fd5b815160ff811681146200033757600080fd5b9392505050565b600181811c908216806200035357607f821691505b6020821081036200037457634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c0516113df620003db600039600061019e0152600081816101e20152610d2601526000818161035301528181610522015281816105fa01528181610d5601528181610e6d01528181610f80015261101701526113df6000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806362221ca1116100ad5780639dc29fac116100715780639dc29fac146102dc578063a457c2d7146102ef578063a9059cbb14610302578063dd62ed3e14610315578063eb3beb291461034e57600080fd5b806362221ca11461024c57806370a082311461028557806375d68016146102ae57806380d4336e146102c157806395d89b41146102d457600080fd5b806334deadf2116100f457806334deadf2146101c857806338d52e0f146101dd578063395093511461021c5780633ca4aed01461022f57806340c10f191461023957600080fd5b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017257806323b872dd14610184578063313ce56714610197575b600080fd5b610139610375565b60405161014691906111c1565b60405180910390f35b61016261015d36600461120c565b610407565b6040519015158152602001610146565b6002545b604051908152602001610146565b610162610192366004611238565b61041d565b60405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610146565b6101db6101d636600461120c565b6104cc565b005b6102047f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610146565b61016261022a36600461120c565b6104db565b610176620186a081565b6101db61024736600461120c565b610517565b61017661025a366004611279565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b6101766102933660046112b2565b6001600160a01b031660009081526020819052604090205490565b6101db6102bc36600461120c565b61056a565b6101db6102cf36600461120c565b6105aa565b6101396105e0565b6101db6102ea36600461120c565b6105ef565b6101626102fd36600461120c565b610642565b61016261031036600461120c565b6106db565b610176610323366004611279565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6102047f000000000000000000000000000000000000000000000000000000000000000081565b606060038054610384906112cf565b80601f01602080910402602001604051908101604052809291908181526020018280546103b0906112cf565b80156103fd5780601f106103d2576101008083540402835291602001916103fd565b820191906000526020600020905b8154815290600101906020018083116103e057829003601f168201915b5050505050905090565b60006104143384846106e8565b50600192915050565b600061042a84848461080d565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156104b45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6104c185338584036106e8565b506001949350505050565b6104d78233836109f2565b5050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161041491859061051290869061131f565b6106e8565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610560576040516310528c6d60e11b815260040160405180910390fd5b6104d78282610a99565b6001600160a01b038216600090815260056020908152604080832033808552925290912054906105a59084906105a0858561131f565b6109f2565b505050565b6001600160a01b038216600090815260056020908152604080832033808552925290912054906105a59084906105a08585611337565b60606105ea610b8c565b905090565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610638576040516310528c6d60e11b815260040160405180910390fd5b6104d78282610b9b565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156106c45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016104ab565b6106d133858584036106e8565b5060019392505050565b600061041433848461080d565b6001600160a01b03831661074a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104ab565b6001600160a01b0382166107ab5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104ab565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166108715760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104ab565b6001600160a01b0382166108d35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104ab565b6108de838383610cfc565b6001600160a01b038316600090815260208190526040902054818110156109565760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104ab565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061098d90849061131f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109d991815260200190565b60405180910390a36109ec848484610e32565b50505050565b6001600160a01b038316610a1957604051634269a05960e01b815260040160405180910390fd5b6001600160a01b038216610a405760405163b05313bb60e01b815260040160405180910390fd5b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527fa80d0efa8328d29034668db835056d5d5e5876f77ffc7bc09f1e06b2ba18b1219101610800565b6001600160a01b038216610aef5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104ab565b610afb60008383610cfc565b8060026000828254610b0d919061131f565b90915550506001600160a01b03821660009081526020819052604081208054839290610b3a90849061131f565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36104d760008383610e32565b606060048054610384906112cf565b6001600160a01b038216610bfb5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016104ab565b610c0782600083610cfc565b6001600160a01b03821660009081526020819052604090205481811015610c7b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016104ab565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610caa908490611337565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36105a583600084610e32565b610d068383610f03565b610d0f57505050565b6040516379ea386160e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015283811660248301527f0000000000000000000000000000000000000000000000000000000000000000169063f3d470c290604401602060405180830381865afa158015610d9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc1919061134e565b610dde576040516349bb6ced60e11b815260040160405180910390fd5b6001600160a01b0383811660009081526005602090815260408083209386168352929052205481811015610e25576040516303814af160e61b815260040160405180910390fd5b6109ec84848484036109f2565b610e3d838383610f2c565b610e478383610f03565b8015610eda57506040516338b51ce160e01b81526001600160a01b0383811660048301527f000000000000000000000000000000000000000000000000000000000000000016906338b51ce190602401602060405180830381865afa158015610eb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed8919061134e565b155b15610ef8576040516377b1921f60e11b815260040160405180910390fd5b6105a5838383610f7c565b60006001600160a01b03831615801590610f2557506001600160a01b03821615155b9392505050565b610f368383610f03565b15610f4057505050565b6000610f4b60025490565b90508015801590610f5e5750620186a081105b156109ec57604051637e442c1360e01b815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bde127186040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fdc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110009190611370565b604051631a16b46360e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152919091169063342d68c690602401602060405180830381865afa158015611068573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108c9190611370565b90506001600160a01b038116156109ec57604080513060248201526001600160a01b038681166044830152858116606483015260848083018690528351808403909101815260a490920183526020820180516001600160e01b0316630f1bf70d60e01b17905291516000928416916111039161138d565b6000604051808303816000865af19150503d8060008114611140576040519150601f19603f3d011682016040523d82523d6000602084013e611145565b606091505b50509050816001600160a01b03167fe367d7de03229ee9a5f0a76a230fa0c93a7f8605b676469f7df108d5e813c07682604051611186911515815260200190565b60405180910390a25050505050565b60005b838110156111b0578181015183820152602001611198565b838111156109ec5750506000910152565b60208152600082518060208401526111e0816040850160208701611195565b601f01601f19169190910160400192915050565b6001600160a01b038116811461120957600080fd5b50565b6000806040838503121561121f57600080fd5b823561122a816111f4565b946020939093013593505050565b60008060006060848603121561124d57600080fd5b8335611258816111f4565b92506020840135611268816111f4565b929592945050506040919091013590565b6000806040838503121561128c57600080fd5b8235611297816111f4565b915060208301356112a7816111f4565b809150509250929050565b6000602082840312156112c457600080fd5b8135610f25816111f4565b600181811c908216806112e357607f821691505b60208210810361130357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561133257611332611309565b500190565b60008282101561134957611349611309565b500390565b60006020828403121561136057600080fd5b81518015158114610f2557600080fd5b60006020828403121561138257600080fd5b8151610f25816111f4565b6000825161139f818460208701611195565b919091019291505056fea2646970667358221220559fbf7bdc9314a8d76b81a42c64e52f434be54493d9246122eaf111993c7f3064736f6c634300080d0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000001cdbde50f9d122cce8fe8d08d0d482b0161ffd15000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000002453696c6f2046696e616e63652057455448204465627420696e20707a4554482053696c6f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b64574554482d707a455448000000000000000000000000000000000000000000