UNPKG

@descent-protocol/sdk

Version:

A Typescript library for interacting with the Descent Protocol

944 lines (943 loc) 108 kB
{ "abi": [ { "inputs": [ { "internalType": "contract Vault", "name": "_vault", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AlreadyInitialized", "type": "error" }, { "inputs": [], "name": "BadPrice", "type": "error" }, { "inputs": [], "name": "NewOwnerIsZeroAddress", "type": "error" }, { "inputs": [], "name": "NoHandoverRequest", "type": "error" }, { "inputs": [], "name": "NotPaused", "type": "error" }, { "inputs": [], "name": "Paused", "type": "error" }, { "inputs": [], "name": "Unauthorized", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "OwnershipHandoverCanceled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "OwnershipHandoverRequested", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "oldOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "collateral", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "Read", "type": "event" }, { "inputs": [], "name": "cancelOwnershipHandover", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "contract ERC20Token", "name": "", "type": "address" } ], "name": "collaterals", "outputs": [ { "internalType": "contract IOSM", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "completeOwnershipHandover", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "contract ERC20Token", "name": "collateral", "type": "address" }, { "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "mockUpdatePrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "result", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "ownershipHandoverExpiresAt", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "requestOwnershipHandover", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "contract ERC20Token", "name": "collateral", "type": "address" }, { "internalType": "contract IOSM", "name": "oracle", "type": "address" } ], "name": "setCollateralOSM", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "status", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract ERC20Token", "name": "collateral", "type": "address" } ], "name": "updatePrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "vault", "outputs": [ { "internalType": "contract Vault", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ], "bytecode": { "object": "0x608060405234801561001057600080fd5b5060405161097538038061097583398101604081905261002f916100a3565b600260005561003d33610067565b600180546001600160a01b0319166001600160a01b039290921691909117905560026000556100d3565b6001600160a01b0316638b78c6d8198190558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b6000602082840312156100b557600080fd5b81516001600160a01b03811681146100cc57600080fd5b9392505050565b610893806100e26000396000f3fe6080604052600436106100e85760003560e01c80638da5cb5b1161008a578063f04e283e11610059578063f04e283e14610252578063f2fde38b14610265578063fbfa77cf14610278578063fee81cf4146102a557600080fd5b80638da5cb5b1461017a57806396e85ced146101cf578063c7331b01146101ef578063eeb97d3b1461020f57600080fd5b8063425bddcf116100c6578063425bddcf1461013557806354d1f13d14610155578063715018a61461015d5780638456cb591461016557600080fd5b8063200d2ed2146100ed57806325692962146101165780633f4ba83a14610120575b600080fd5b3480156100f957600080fd5b5061010360005481565b6040519081526020015b60405180910390f35b61011e6102d8565b005b34801561012c57600080fd5b5061011e610328565b34801561014157600080fd5b5061011e6101503660046107f1565b610373565b61011e61040a565b61011e610446565b34801561017157600080fd5b5061011e61045a565b34801561018657600080fd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927545b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161010d565b3480156101db57600080fd5b5061011e6101ea36600461082a565b6104a5565b3480156101fb57600080fd5b5061011e61020a36600461084e565b61064e565b34801561021b57600080fd5b506101aa61022a36600461082a565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b61011e61026036600461082a565b6106cc565b61011e61027336600461082a565b61070c565b34801561028457600080fd5b506001546101aa9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156102b157600080fd5b506101036102c036600461082a565b63389a75e1600c908152600091909152602090205490565b60006202a30067ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b600260005403610364576040517f6cd6020100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61036c610733565b6002600055565b6001600054036103af576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103b7610733565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909216179055565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b61044e610733565b6104586000610769565b565b600160005403610496576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61049e610733565b6001600055565b6001600054036104e1576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff80821660009081526002602090815260408083205481517f9fa6a6e3000000000000000000000000000000000000000000000000000000008152915193941692639fa6a6e3926004808401939192918290030181865afa15801561055e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610582919061087a565b9050806000036105be576040517ffd1ee34900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517f457972de00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018490529091169063457972de90604401600060405180830381600087803b15801561063257600080fd5b505af1158015610646573d6000803e3d6000fd5b505050505050565b60016000540361068a576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610692610733565b806000036105be576040517ffd1ee34900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106d4610733565b63389a75e1600c52806000526020600c2080544211156106fc57636f5e88186000526004601cfd5b6000905561070981610769565b50565b610714610733565b8060601b61072a57637448fbae6000526004601cfd5b61070981610769565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610458576382b429006000526004601cfd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b73ffffffffffffffffffffffffffffffffffffffff8116811461070957600080fd5b6000806040838503121561080457600080fd5b823561080f816107cf565b9150602083013561081f816107cf565b809150509250929050565b60006020828403121561083c57600080fd5b8135610847816107cf565b9392505050565b6000806040838503121561086157600080fd5b823561086c816107cf565b946020939093013593505050565b60006020828403121561088c57600080fd5b505191905056", "sourceMap": "348:1130:36:-:0;;;664:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;203:1:29;280:6;:13;700:28:36;717:10;700:16;:28::i;:::-;738:5;:14;;-1:-1:-1;;;;;;738:14:36;-1:-1:-1;;;;;738:14:36;;;;;;;;;;203:1:29;-1:-1:-1;762:13:36;348:1130;;4883:1190:22;-1:-1:-1;;;;;5793:26:22;-1:-1:-1;;5876:29:22;;;5793:26;6031:1;5991:38;6031:1;;5980:63;4883:1190;:::o;14:305:60:-;99:6;152:2;140:9;131:7;127:23;123:32;120:52;;;168:1;165;158:12;120:52;194:16;;-1:-1:-1;;;;;239:31:60;;229:42;;219:70;;285:1;282;275:12;219:70;308:5;14:305;-1:-1:-1;;;14:305:60:o;:::-;348:1130:36;;;;;;", "linkReferences": {} }, "deployedBytecode": { "object": "0x6080604052600436106100e85760003560e01c80638da5cb5b1161008a578063f04e283e11610059578063f04e283e14610252578063f2fde38b14610265578063fbfa77cf14610278578063fee81cf4146102a557600080fd5b80638da5cb5b1461017a57806396e85ced146101cf578063c7331b01146101ef578063eeb97d3b1461020f57600080fd5b8063425bddcf116100c6578063425bddcf1461013557806354d1f13d14610155578063715018a61461015d5780638456cb591461016557600080fd5b8063200d2ed2146100ed57806325692962146101165780633f4ba83a14610120575b600080fd5b3480156100f957600080fd5b5061010360005481565b6040519081526020015b60405180910390f35b61011e6102d8565b005b34801561012c57600080fd5b5061011e610328565b34801561014157600080fd5b5061011e6101503660046107f1565b610373565b61011e61040a565b61011e610446565b34801561017157600080fd5b5061011e61045a565b34801561018657600080fd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927545b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161010d565b3480156101db57600080fd5b5061011e6101ea36600461082a565b6104a5565b3480156101fb57600080fd5b5061011e61020a36600461084e565b61064e565b34801561021b57600080fd5b506101aa61022a36600461082a565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b61011e61026036600461082a565b6106cc565b61011e61027336600461082a565b61070c565b34801561028457600080fd5b506001546101aa9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156102b157600080fd5b506101036102c036600461082a565b63389a75e1600c908152600091909152602090205490565b60006202a30067ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b600260005403610364576040517f6cd6020100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61036c610733565b6002600055565b6001600054036103af576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103b7610733565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909216179055565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b61044e610733565b6104586000610769565b565b600160005403610496576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61049e610733565b6001600055565b6001600054036104e1576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff80821660009081526002602090815260408083205481517f9fa6a6e3000000000000000000000000000000000000000000000000000000008152915193941692639fa6a6e3926004808401939192918290030181865afa15801561055e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610582919061087a565b9050806000036105be576040517ffd1ee34900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517f457972de00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018490529091169063457972de90604401600060405180830381600087803b15801561063257600080fd5b505af1158015610646573d6000803e3d6000fd5b505050505050565b60016000540361068a576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610692610733565b806000036105be576040517ffd1ee34900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106d4610733565b63389a75e1600c52806000526020600c2080544211156106fc57636f5e88186000526004601cfd5b6000905561070981610769565b50565b610714610733565b8060601b61072a57637448fbae6000526004601cfd5b61070981610769565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610458576382b429006000526004601cfd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b73ffffffffffffffffffffffffffffffffffffffff8116811461070957600080fd5b6000806040838503121561080457600080fd5b823561080f816107cf565b9150602083013561081f816107cf565b809150509250929050565b60006020828403121561083c57600080fd5b8135610847816107cf565b9392505050565b6000806040838503121561086157600080fd5b823561086c816107cf565b946020939093013593505050565b60006020828403121561088c57600080fd5b505191905056", "sourceMap": "348:1130:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;211:21:29;;;;;;;;;;;;;;;;;;;160:25:60;;;148:2;133:18;211:21:29;;;;;;;;9021:617:22;;;:::i;:::-;;474:88:36;;;;;;;;;;;;;:::i;788:144::-;;;;;;;;;;-1:-1:-1;788:144:36;;;;;:::i;:::-;;:::i;9720:456:22:-;;;:::i;8762:100::-;;;:::i;568:90:36:-;;;;;;;;;;;;;:::i;11408:182:22:-;;;;;;;;;;-1:-1:-1;11562:11:22;11556:18;11408:182;;;994:42:60;982:55;;;964:74;;952:2;937:18;11408:182:22;818:226:60;997:222:36;;;;;;;;;;-1:-1:-1;997:222:36;;;;;:::i;:::-;;:::i;1284:192::-;;;;;;;;;;-1:-1:-1;1284:192:36;;;;;:::i;:::-;;:::i;421:46::-;;;;;;;;;;-1:-1:-1;421:46:36;;;;;:::i;:::-;;;;;;;;;;;;;;;;10363:708:22;;;;;;:::i;:::-;;:::i;8348:349::-;;;;;;:::i;:::-;;:::i;396:18:36:-;;;;;;;;;;-1:-1:-1;396:18:36;;;;;;;;11693:435:22;;;;;;;;;;-1:-1:-1;11693:435:22;;;;;:::i;:::-;11963:19;11957:4;11950:33;;;11812:14;11996:26;;;;12106:4;12090:21;;12084:28;;11693:435;9021:617;9114:15;7972:9;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;474:88:36:-;203:1:29;437:6;;:14;433:38;;460:11;;;;;;;;;;;;;;433:38;12517:13:22::1;:11;:13::i;:::-;203:1:29::2;542:6:36;:13:::0;474:88::o;788:144::-;163:1:29;345:6;;:15;341:36;;369:8;;;;;;;;;;;;;;341:36;12517:13:22::1;:11;:13::i;:::-;893:23:36::2;::::0;;::::2;;::::0;;;:11:::2;:23;::::0;;;;:32;;;::::2;::::0;;;::::2;;::::0;;788:144::o;9720:456:22:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;568:90:36:-;163:1:29;345:6;;:15;341:36;;369:8;;;;;;;;;;;;;;341:36;12517:13:22::1;:11;:13::i;:::-;163:1:29::2;637:6:36;:14:::0;568:90::o;997:222::-;163:1:29;345:6;;:15;341:36;;369:8;;;;;;;;;;;;;;341:36;1090:23:36::1;::::0;;::::1;1074:13;1090:23:::0;;;:11:::1;:23;::::0;;;;;;;;:33;;;;;;;1074:13;;1090:23:::1;::::0;:31:::1;::::0;:33:::1;::::0;;::::1;::::0;:23;;:33;;;;;;:23;:33:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1074:49;;1137:5;1146:1;1137:10:::0;1133:33:::1;;1156:10;;;;;;;;;;;;;;1133:33;1176:5;::::0;:36:::1;::::0;;;;:5:::1;2841:55:60::0;;;1176:36:36::1;::::0;::::1;2823:74:60::0;2913:18;;;2906:34;;;1176:5:36;;::::1;::::0;:17:::1;::::0;2796:18:60;;1176:36:36::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1064:155;997:222:::0;:::o;1284:192::-;163:1:29;345:6;;:15;341:36;;369:8;;;;;;;;;;;;;;341:36;12517:13:22::1;:11;:13::i;:::-;1394:5:36::2;1403:1;1394:10:::0;1390:33:::2;;1413:10;;;;;;;;;;;;;;10363:708:22::0;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;10999:23:::0;;11041::::1;11051:12:::0;11041:9:::1;:23::i;:::-;10363:708:::0;:::o;8348:349::-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;7292:355::-:0;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;6145:1089;6857:11;7093:16;;6941:26;;;;;;;7053:38;7050:1;;7042:78;7177:27;6145:1089::o;196:166:60:-;294:42;287:5;283:54;276:5;273:65;263:93;;352:1;349;342:12;367:446;469:6;477;530:2;518:9;509:7;505:23;501:32;498:52;;;546:1;543;536:12;498:52;585:9;572:23;604:43;641:5;604:43;:::i;:::-;666:5;-1:-1:-1;723:2:60;708:18;;695:32;736:45;695:32;736:45;:::i;:::-;800:7;790:17;;;367:446;;;;;:::o;1049:279::-;1128:6;1181:2;1169:9;1160:7;1156:23;1152:32;1149:52;;;1197:1;1194;1187:12;1149:52;1236:9;1223:23;1255:43;1292:5;1255:43;:::i;:::-;1317:5;1049:279;-1:-1:-1;;;1049:279:60:o;1333:347::-;1421:6;1429;1482:2;1470:9;1461:7;1457:23;1453:32;1450:52;;;1498:1;1495;1488:12;1450:52;1537:9;1524:23;1556:43;1593:5;1556:43;:::i;:::-;1618:5;1670:2;1655:18;;;;1642:32;;-1:-1:-1;;;1333:347:60:o;2440:184::-;2510:6;2563:2;2551:9;2542:7;2538:23;2534:32;2531:52;;;2579:1;2576;2569:12;2531:52;-1:-1:-1;2602:16:60;;2440:184;-1:-1:-1;2440:184:60:o", "linkReferences": {} }, "methodIdentifiers": { "cancelOwnershipHandover()": "54d1f13d", "collaterals(address)": "eeb97d3b", "completeOwnershipHandover(address)": "f04e283e", "mockUpdatePrice(address,uint256)": "c7331b01", "owner()": "8da5cb5b", "ownershipHandoverExpiresAt(address)": "fee81cf4", "pause()": "8456cb59", "renounceOwnership()": "715018a6", "requestOwnershipHandover()": "25692962", "setCollateralOSM(address,address)": "425bddcf", "status()": "200d2ed2", "transferOwnership(address)": "f2fde38b", "unpause()": "3f4ba83a", "updatePrice(address)": "96e85ced", "vault()": "fbfa77cf" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract Vault\",\"name\":\"_vault\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BadPrice\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Paused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"Read\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ERC20Token\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"collaterals\",\"outputs\":[{\"internalType\":\"contract IOSM\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ERC20Token\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"mockUpdatePrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ERC20Token\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"contract IOSM\",\"name\":\"oracle\",\"type\":\"address\"}],\"name\":\"setCollateralOSM\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ERC20Token\",\"name\":\"collateral\",\"type\":\"address\"}],\"name\":\"updatePrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"contract Vault\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/modules/feed.sol\":\"Feed\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":1000000},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":descent-collective/oracle-module/=lib/oracle-module/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":oracle-module/=lib/oracle-module/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"lib/solady/src/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0xb4a3f9ba8a05107f7370de42cff57f3ad26dafd438712c11531a5892de2f59e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a9ca06e3cf6dea1f9a4c5599581573b7d81cd64dc3afb582f325ccf5fdd6dc\",\"dweb:/ipfs/Qmb9r5dDceNF4W8S5u6i85RsNTgE5XG9HbTXkyS25ad3C6\"]},\"lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0xf98506fade18a92e3d8d0a0ca0bdaeaa099d7620aac2a9d76b5f3d0bcd10691c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3495c9d108bc69951a12c5ce9f05851cc921f0bb69e2505756e79f3ddab4e1a\",\"dweb:/ipfs/QmT3XwbmdbQCxw7iNcF7DoiypDd5vs2ETFWirXqmJ86Meg\"]},\"src/currency.sol\":{\"keccak256\":\"0xc266e97010a71e6ac755dce3e51a5a5844663b355e20ab40bf2020fd9308369b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d2660220b8a14c6d06351765dd7accec03e350e7fa9ae960c1505bea1e5d8d2d\",\"dweb:/ipfs/QmdYdPSnQC2nym38Fca4vRLKU4A78AQkgYasdg3TaRLGNY\"]},\"src/helpers/pausable.sol\":{\"keccak256\":\"0x8acce52dcd450c73da0f77d9539962826da23aca05aa7d0c7568614e89aed997\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://35e2f674e01c0d6107f31d1c32bb2780d442420b7d26636f560a4eb1007f4a8b\",\"dweb:/ipfs/QmWwVLUGiJq6Q3fK6Zhx4pc6kaqC73pkZ1ntfVA3QCHTpd\"]},\"src/interfaces/ICurrency.sol\":{\"keccak256\":\"0x3b7adace3df08c34906612358d435ffff3b90b5eec0eae34b6335cc8dcd0e7ed\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://370c80ec5636bd95342256d4116f703e633e6b0467ee530397e9b5cada37f998\",\"dweb:/ipfs/QmPQ5KY37JpfuSAXpJ16kBXAQVJcE253cfjYGcBEcMLERz\"]},\"src/interfaces/IFeed.sol\":{\"keccak256\":\"0xcb569d8eeab0afb5a2a42772d82b2e213821e7f919c097741b7b2d2440889546\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://01f1ccc183b9567e887e36b2d91c1b6be6dc17cddbfbc31a6768a365b5bebc22\",\"dweb:/ipfs/QmUy25qEjA5QGwtuFRy8fiu3Rcmgn26gpN1tbBUv6hM4gk\"]},\"src/interfaces/IOSM.sol\":{\"keccak256\":\"0x777f22651aedc7c9c528001012a4630bb9a22a6a3a3054dd5a520942aa875cd1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://913b3fa3a86b89c313d8ffd7bebd78255df4203395b69b987cdecf112dd2567a\",\"dweb:/ipfs/Qma8Y6bWoa3nErqDtnD55NkgQZeWbNDpwjDpYAt37z1wiZ\"]},\"src/interfaces/IRate.sol\":{\"keccak256\":\"0x166dc423b74b60302197a27fb64557ee8ef6bafe416deb08fe7ecf94f0ede1d1\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://123ef521857e33b10b6f92b743831b26dd5100e57271353bf5c1882fc41c6a2e\",\"dweb:/ipfs/QmdK5y8SntLHAVoNRq6isddmNYunrpv1JxAxyEgRiHdAAj\"]},\"src/interfaces/IVault.sol\":{\"keccak256\":\"0x5684f59679e090ebe583d31fda6d8882469436e71670a4873151793675c7c6c4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b265c21b1ff01a8c5cf9b1120feb6b5419a96a0e2a6d1ff4bdd89934c7869c9c\",\"dweb:/ipfs/QmdbCgiYE763cAHZ6nevhf7EzF8BzEkfwsbw4qWuxBkm8f\"]},\"src/mocks/ERC20Token.sol\":{\"keccak256\":\"0x62b878fb4dde1f455866e0c1290cc50714805d02c2848a4a9bb33c5dfbc8464d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7af3f5638d366abfbca3186813449259a33ed43e7c13ec983d389d73df1ad204\",\"dweb:/ipfs/QmeMdoEVTGqdcgSicTTcmycSQjToT7Sn5ZTgZdVFH9E6HA\"]},\"src/modules/feed.sol\":{\"keccak256\":\"0x1578828ae5678db9d1b329e65902702f4a1f55c251af4c26c3ef67d16c3f9e3b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://8ec29513508ddd74340d57e24bbfd1ce679a6187ad4b9ec7e7546ad7fc333a44\",\"dweb:/ipfs/Qmc5e6Gwfxh9VExbizSDzm4yQpZ1Yoqtkr5xu2LrK8REjc\"]},\"src/vault.sol\":{\"keccak256\":\"0x377a877ac854164da4e6b2491e2dba44d75cb56216e6b2456fa6b815565ac5e5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a0a67817c649b3f65de4971c5346ea93b7432ac2f4e0013e5fb681e488aa1b58\",\"dweb:/ipfs/Qmbvcgn3AoTEahq9qgfuiL81zkZKLVQRbMhMeeqTMiiuKv\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.21+commit.d9974bed" }, "language": "Solidity", "output": { "abi": [ { "inputs": [ { "internalType": "contract Vault", "name": "_vault", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "type": "error", "name": "AlreadyInitialized" }, { "inputs": [], "type": "error", "name": "BadPrice" }, { "inputs": [], "type": "error", "name": "NewOwnerIsZeroAddress" }, { "inputs": [], "type": "error", "name": "NoHandoverRequest" }, { "inputs": [], "type": "error", "name": "NotPaused" }, { "inputs": [], "type": "error", "name": "Paused" }, { "inputs": [], "type": "error", "name": "Unauthorized" }, { "inputs": [ { "internalType": "address", "name": "pendingOwner", "type": "address", "indexed": true } ], "type": "event", "name": "OwnershipHandoverCanceled", "anonymous": false }, { "inputs": [ { "internalType": "address", "name": "pendingOwner", "type": "address", "indexed": true } ], "type": "event", "name": "OwnershipHandoverRequested", "anonymous": false }, { "inputs": [ { "internalType": "address", "name": "oldOwner", "type": "address", "indexed": true }, { "internalType": "address", "name": "newOwner", "type": "address", "indexed": true } ], "type": "event", "name": "OwnershipTransferred", "anonymous": false }, { "inputs": [ { "internalType": "address", "name": "collateral", "type": "address", "indexed": false }, { "internalType": "uint256", "name": "price", "type": "uint256", "indexed": false } ], "type": "event", "name": "Read", "anonymous": false }, { "inputs": [], "stateMutability": "payable", "type": "function", "name": "cancelOwnershipHandover" }, { "inputs": [ { "internalType": "contract ERC20Token", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function", "name": "collaterals", "outputs": [ { "internalType": "contract IOSM", "name": "", "type": "address" } ] }, { "inputs": [ { "internalType": "address", "name": "pendingOwner", "type": "address" } ], "stateMutability": "payable", "type": "function", "name": "completeOwnershipHandover" }, { "inputs": [ { "internalType": "contract ERC20Token", "name": "collateral", "type": "address" }, { "internalType": "uint256", "name": "price", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function", "name": "mockUpdatePrice" }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "owner", "outputs": [ { "internalType": "address", "name": "result", "type": "address" } ] }, { "inputs": [ { "internalType": "address", "name": "pendingOwner", "type": "address" } ], "stateMutability": "view", "type": "function", "name": "ownershipHandoverExpiresAt", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ] }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "pause" }, { "inputs": [], "stateMutability": "payable", "type": "function", "name": "renounceOwnership" }, { "inputs": [], "stateMutability": "payable", "type": "function", "name": "requestOwnershipHandover" }, { "inputs": [ { "internalType": "contract ERC20Token", "name": "collateral", "type": "address" }, { "internalType": "contract IOSM", "name": "oracle", "type": "address" } ], "stateMutability": "nonpayable", "type": "function", "name": "setCollateralOSM" }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "status", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ] }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "stateMutability": "payable", "type": "function", "name": "transferOwnership" }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "unpause" }, { "inputs": [ { "internalType": "contract ERC20Token", "name": "collateral", "type": "address" } ], "stateMutability": "nonpayable", "type": "function", "name": "updatePrice" }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "vault", "outputs": [ { "internalType": "contract Vault", "name": "", "type": "address" } ] } ], "devdoc": { "kind": "dev", "methods": { "cancelOwnershipHandover()": { "details": "Cancels the two-step ownership handover to the caller, if any." }, "completeOwnershipHandover(address)": { "details": "Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`." }, "owner()": { "details": "Returns the owner of the contract." }, "ownershipHandoverExpiresAt(address)": { "details": "Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`." }, "renounceOwnership()": { "details": "Allows the owner to renounce their ownership." }, "requestOwnershipHandover()": { "details": "Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default." }, "transferOwnership(address)": { "details": "Allows the owner to transfer the ownership to `newOwner`." } }, "version": 1 }, "userdoc": { "kind": "user", "methods": {}, "version": 1 } }, "settings": { "remappings": [ "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "descent-collective/oracle-module/=lib/oracle-module/src/", "ds-test/=lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "oracle-module/=lib/oracle-module/", "solady/=lib/solady/src/" ], "optimizer": { "enabled": true, "runs": 1000000 }, "metadata": { "bytecodeHash": "none", "appendCBOR": false }, "compilationTarget": { "src/modules/feed.sol": "Feed" }, "libraries": {} }, "sources": { "lib/solady/src/auth/Ownable.sol": { "keccak256": "0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3", "urls": [ "bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3", "dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs" ], "license": "MIT" }, "lib/solady/src/tokens/ERC20.sol": { "keccak256": "0xb4a3f9ba8a05107f7370de42cff57f3ad26dafd438712c11531a5892de2f59e0", "urls": [ "bzz-raw://f0a9ca06e3cf6dea1f9a4c5599581573b7d81cd64dc3afb582f325ccf5fdd6dc", "dweb:/ipfs/Qmb9r5dDceNF4W8S5u6i85RsNTgE5XG9HbTXkyS25ad3C6" ], "license": "MIT" }, "lib/solady/src/utils/SafeTransferLib.sol": { "keccak256": "0xf98506fade18a92e3d8d0a0ca0bdaeaa099d7620aac2a9d76b5f3d0bcd10691c", "urls": [ "bzz-raw://a3495c9d108bc69951a12c5ce9f05851cc921f0bb69e2505756e79f3ddab4e1a", "dweb:/ipfs/QmT3XwbmdbQCxw7iNcF7DoiypDd5vs2ETFWirXqmJ86Meg" ], "license": "MIT" }, "src/currency.sol": { "keccak256": "0xc266e97010a71e6ac755dce3e51a5a5844663b355e20ab40bf2020fd9308369b", "urls": [ "bzz-raw://d2660220b8a14c6d06351765dd7accec03e350e7fa9ae960c1505bea1e5d8d2d", "dweb:/ipfs/QmdYdPSnQC2nym38Fca4vRLKU4A78AQkgYasdg3TaRLGNY" ], "license": "GPL-3.0" }, "src/helpers/pausable.sol": { "keccak256": "0x8acce52dcd450c73da0f77d9539962826da23aca05aa7d0c7568614e89aed997", "urls": [ "bzz-raw://35e2f674e01c0d6107f31d1c32bb2780d442420b7d26636f560a4eb1007f4a8b", "dweb:/ipfs/QmWwVLUGiJq6Q3fK6Zhx4pc6kaqC73pkZ1ntfVA3QCHTpd" ], "license": "GPL-3.0" }, "src/interfaces/ICurrency.sol": { "keccak256": "0x3b7adace3df08c34906612358d435ffff3b90b5eec0eae34b6335cc8dcd0e7ed", "urls": [ "bzz-raw://370c80ec5636bd95342256d4116f703e633e6b0467ee530397e9b5cada37f998", "dweb:/ipfs/QmPQ5KY37JpfuSAXpJ16kBXAQVJcE253cfjYGcBEcMLERz" ], "license": "GPL-3.0" }, "src/interfaces/IFeed.sol": { "keccak256": "0xcb569d8eeab0afb5a2a42772d82b2e213821e7f919c097741b7b2d2440889546", "urls": [ "bzz-raw://01f1ccc183b9567e887e36b2d91c1b6be6dc17cddbfbc31a6768a365b5bebc22", "dweb:/ipfs/QmUy25qEjA5QGwtuFRy8fiu3Rcmgn26gpN1tbBUv6hM4gk" ], "license": "GPL-3.0" }, "src/interfaces/IOSM.sol": { "keccak256": "0x777f22651aedc7c9c528001012a4630bb9a22a6a3a3054dd5a520942aa875cd1", "urls": [ "bzz-raw://913b3fa3a86b89c313d8ffd7bebd78255df4203395b69b987cdecf112dd2567a", "dweb:/ipfs/Qma8Y6bWoa3nErqDtnD55NkgQZeWbNDpwjDpYAt37z1wiZ" ], "license": "GPL-3.0" }, "src/interfaces/IRate.sol": { "keccak256": "0x166dc423b74b60302197a27fb64557ee8ef6bafe416deb08fe7ecf94f0ede1d1", "urls": [ "bzz-raw://123ef521857e33b10b6f92b743831b26dd5100e57271353bf5c1882fc41c6a2e", "dweb:/ipfs/QmdK5y8SntLHAVoNRq6isddmNYunrpv1JxAxyEgRiHdAAj" ], "license": "GPL-3.0" }, "src/interfaces/IVault.sol": { "keccak256": "0x5684f59679e090ebe583d31fda6d8882469436e71670a4873151793675c7c6c4", "urls": [ "bzz-raw://b265c21b1ff01a8c5cf9b1120feb6b5419a96a0e2a6d1ff4bdd89934c7869c9c", "dweb:/ipfs/QmdbCgiYE763cAHZ6nevhf7EzF8BzEkfwsbw4qWuxBkm8f" ], "license": "GPL-3.0" }, "src/mocks/ERC20Token.sol": { "keccak256": "0x62b878fb4dde1f455866e0c1290cc50714805d02c2848a4a9bb33c5dfbc8464d", "urls": [ "bzz-raw://7af3f5638d366abfbca3186813449259a33ed43e7c13ec983d389d73df1ad204", "dweb:/ipfs/QmeMdoEVTGqdcgSicTTcmycSQjToT7Sn5ZTgZdVFH9E6HA" ], "license": "GPL-3.0" }, "src/modules/feed.sol": { "keccak256": "0x1578828ae5678db9d1b329e65902702f4a1f55c251af4c26c3ef67d16c3f9e3b", "urls": [ "bzz-raw://8ec29513508ddd74340d57e24bbfd1ce679a6187ad4b9ec7e7546ad7fc333a44", "dweb:/ipfs/Qmc5e6Gwfxh9VExbizSDzm4yQpZ1Yoqtkr5xu2LrK8REjc" ], "license": "GPL-3.0" }, "src/vault.sol": { "keccak256": "0x377a877ac854164da4e6b2491e2dba44d75cb56216e6b2456fa6b815565ac5e5", "urls": [ "bzz-raw://a0a67817c649b3f65de4971c5346ea93b7432ac2f4e0013e5fb681e488aa1b58", "dweb:/ipfs/Qmbvcgn3AoTEahq9qgfuiL81zkZKLVQRbMhMeeqTMiiuKv" ], "license": "GPL-3.0" } }, "version": 1 }, "ast": { "absolutePath": "src/modules/feed.sol", "id": 46592, "exportedSymbols": { "ERC20Token": [46438], "Feed": [46591], "IFeed": [46158], "IOSM": [46166], "Ownable": [44381], "Pausable": [46103], "Vault": [48280] }, "nodeType": "SourceUnit", "src": "36:1443:36", "nodes": [ { "id": 46440, "nodeType": "PragmaDirective", "src": "36:23:36", "nodes": [], "literals": ["solidity", "0.8", ".21"] }, { "id": 46442, "nodeType": "ImportDirective", "src": "108:48:36", "nodes": [], "absolutePath": "lib/solady/src/auth/Ownable.sol", "file": "solady/auth/Ownable.sol", "nameLocation": "-1:-1:-1", "scope": 46592, "sourceUnit": 44382, "symbolAliases": [ { "foreign": { "id": 46441, "name": "Ownable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44381, "src": "116:7:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 46444, "nodeType": "ImportDirective", "src": "157:44:36", "nodes": [], "absolutePath": "src/interfaces/IOSM.sol", "file": "../interfaces/IOSM.sol", "nameLocation": "-1:-1:-1", "scope": 46592, "sourceUnit": 46167, "symbolAliases": [ { "foreign": { "id": 46443, "name": "IOSM", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 46166, "src": "165:4:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 46446, "nodeType": "ImportDirective", "src": "202:46:36", "nodes": [], "absolutePath": "src/interfaces/IFeed.sol", "file": "../interfaces/IFeed.sol", "nameLocation": "-1:-1:-1", "scope": 46592, "sourceUnit": 46159, "symbolAliases": [ { "foreign": { "id": 46445, "name": "IFeed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 46158, "src": "210:5:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 46449, "nodeType": "ImportDirective", "src": "249:47:36", "nodes": [], "absolutePath": "src/vault.sol", "file": "../vault.sol", "nameLocation": "-1:-1:-1", "scope": 46592, "sourceUnit": 48281, "symbolAliases": [ { "foreign": { "id": 46447, "name": "Vault", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 48280, "src": "257:5:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { "id": 46448, "name": "ERC20Token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 46438, "src": "264:10:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 46451, "nodeType": "ImportDirective", "src": "297:49:36", "nodes": [], "absolutePath": "src/helpers/pausable.sol", "file": "../helpers/pausable.sol", "nameLocation": "-1:-1:-1", "scope": 46592, "sourceUnit": 46104, "symbolAliases": [ { "foreign": { "id": 46450, "name": "Pausable", "nodeType": "Identifier", "overloadedDeclarations": [],