diff --git a/package.json b/package.json index 45d972f..352af5c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "ghost-dao-interface", "private": true, - "version": "0.0.30", + "version": "0.0.31", "type": "module", "scripts": { "dev": "vite", diff --git a/src/abi/GhostBondingCalculator.json b/src/abi/GhostBondingCalculator.json new file mode 100644 index 0000000..d7b21bc --- /dev/null +++ b/src/abi/GhostBondingCalculator.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_ftso","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"getKValue","inputs":[{"name":"pair","type":"address","internalType":"address"}],"outputs":[{"name":"k","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalValue","inputs":[{"name":"pair","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"markdown","inputs":[{"name":"pair","type":"address","internalType":"address"}],"outputs":[{"name":"reserve","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"valuation","inputs":[{"name":"pair","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"error","name":"InvalidPair","inputs":[]}],"bytecode":{"object":"0x60a060405234801561000f575f80fd5b50604051610d9c380380610d9c83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b608051610d1161008b5f395f818161012801526101c80152610d115ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c806332da80a31461004e5780634249719f14610073578063490084ef146100865780636863754914610099575b5f80fd5b61006161005c366004610a7b565b6100ac565b60405190815260200160405180910390f35b610061610081366004610a96565b6102a4565b610061610094366004610a7b565b61034c565b6100616100a7366004610a7b565b6105ee565b5f805f836001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156100eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061010f9190610ad6565b506001600160701b031691506001600160701b031691507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b09190610b22565b6001600160a01b0316036101c65780925061027b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561022c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102509190610b22565b6001600160a01b03161461027757604051630793df6360e21b815260040160405180910390fd5b8192505b610284846105ee565b610292846377359400610b51565b61029c9190610b7c565b949350505050565b5f806102af846105ee565b90505f846001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ee573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103129190610b9b565b9050670de0b6b3a764000061032f61032a8684610611565b61074e565b6103399084610b51565b6103439190610b7c565b95945050505050565b5f80826001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561038a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ae9190610b22565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040d9190610bb2565b60ff1690505f836001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104739190610b22565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104d29190610bb2565b60ff1690505f846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610514573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105389190610bb2565b60ff166105458385610bd2565b61054f9190610be5565b90505f80866001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561058f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b39190610ad6565b506001600160701b0391821693501690506105cf83600a610cd0565b6105d98284610b51565b6105e39190610b7c565b979650505050505050565b5f6106006105fb8361034c565b61076d565b61060b906002610b51565b92915050565b60408051602081019091525f81525f82116106825760405162461bcd60e51b815260206004820152602660248201527f4669786564506f696e743a3a6672616374696f6e3a206469766973696f6e206260448201526579207a65726f60d01b60648201526084015b60405180910390fd5b825f0361069d575060408051602081019091525f815261060b565b71ffffffffffffffffffffffffffffffffffff831161073e575f6106c583607086901b610b7c565b90506001600160e01b0381111561071e5760405162461bcd60e51b815260206004820152601e60248201527f4669786564506f696e743a3a6672616374696f6e3a206f766572666c6f7700006044820152606401610679565b6040518060200160405280826001600160e01b031681525091505061060b565b5f6106c584600160701b856107db565b80515f9061060b906612725dd1d243ab906001600160e01b0316610b7c565b5f60038211156107cc5750805f610785600283610b7c565b610790906001610bd2565b90505b818110156107c6579050806002816107ab8186610b7c565b6107b59190610bd2565b6107bf9190610b7c565b9050610793565b50919050565b81156107d6575060015b919050565b5f805f6107e886866108a4565b915091505f84806107fb576107fb610b68565b86880990508281111561081657610813600183610be5565b91505b6108208184610be5565b9250815f0361083d576108338584610b7c565b935050505061089d565b84821061088c5760405162461bcd60e51b815260206004820152601a60248201527f46756c6c4d6174683a2046554c4c4449565f4f564552464c4f570000000000006044820152606401610679565b6108978383876108e4565b93505050505b9392505050565b5f80805f1984860990506108b88486610b51565b92506108c48382610be5565b9150828110156108dc576108d9600183610be5565b91505b509250929050565b5f806108f283196001610bd2565b831690506109008184610b7c565b925061090c8186610b7c565b94508061091b81196001610bd2565b6109259190610b7c565b610930906001610bd2565b61093a9085610b51565b6109449086610bd2565b945060016109528185610b51565b61095d906002610be5565b6109679082610b51565b90506109738185610b51565b61097e906002610be5565b6109889082610b51565b90506109948185610b51565b61099f906002610be5565b6109a99082610b51565b90506109b58185610b51565b6109c0906002610be5565b6109ca9082610b51565b90506109d68185610b51565b6109e1906002610be5565b6109eb9082610b51565b90506109f78185610b51565b610a02906002610be5565b610a0c9082610b51565b9050610a188185610b51565b610a23906002610be5565b610a2d9082610b51565b9050610a398185610b51565b610a44906002610be5565b610a4e9082610b51565b9050610a5a8187610b51565b9695505050505050565b6001600160a01b0381168114610a78575f80fd5b50565b5f60208284031215610a8b575f80fd5b813561089d81610a64565b5f8060408385031215610aa7575f80fd5b8235610ab281610a64565b946020939093013593505050565b80516001600160701b03811681146107d6575f80fd5b5f805f60608486031215610ae8575f80fd5b610af184610ac0565b9250610aff60208501610ac0565b9150604084015163ffffffff81168114610b17575f80fd5b809150509250925092565b5f60208284031215610b32575f80fd5b815161089d81610a64565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761060b5761060b610b3d565b634e487b7160e01b5f52601260045260245ffd5b5f82610b9657634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215610bab575f80fd5b5051919050565b5f60208284031215610bc2575f80fd5b815160ff8116811461089d575f80fd5b8082018082111561060b5761060b610b3d565b8181038181111561060b5761060b610b3d565b600181815b808511156108dc57815f1904821115610c1857610c18610b3d565b80851615610c2557918102915b93841c9390800290610bfd565b5f82610c405750600161060b565b81610c4c57505f61060b565b8160018114610c625760028114610c6c57610c88565b600191505061060b565b60ff841115610c7d57610c7d610b3d565b50506001821b61060b565b5060208310610133831016604e8410600b8410161715610cab575081810a61060b565b610cb58383610bf8565b805f1904821115610cc857610cc8610b3d565b029392505050565b5f61089d8383610c3256fea264697066735822122070b03a90c6406f01c19b5bf46644e4b48a4f7b0ac8b73f2f954a52f83553e8bf64736f6c63430008140033","sourceMap":"511:1868:80:-:0;;;638:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;675:12:80;;;511:1868;;14:290:121;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:121;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:121:o;:::-;511:1868:80;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b506004361061004a575f3560e01c806332da80a31461004e5780634249719f14610073578063490084ef146100865780636863754914610099575b5f80fd5b61006161005c366004610a7b565b6100ac565b60405190815260200160405180910390f35b610061610081366004610a96565b6102a4565b610061610094366004610a7b565b61034c565b6100616100a7366004610a7b565b6105ee565b5f805f836001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156100eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061010f9190610ad6565b506001600160701b031691506001600160701b031691507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b09190610b22565b6001600160a01b0316036101c65780925061027b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561022c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102509190610b22565b6001600160a01b03161461027757604051630793df6360e21b815260040160405180910390fd5b8192505b610284846105ee565b610292846377359400610b51565b61029c9190610b7c565b949350505050565b5f806102af846105ee565b90505f846001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ee573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103129190610b9b565b9050670de0b6b3a764000061032f61032a8684610611565b61074e565b6103399084610b51565b6103439190610b7c565b95945050505050565b5f80826001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561038a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ae9190610b22565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040d9190610bb2565b60ff1690505f836001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104739190610b22565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104d29190610bb2565b60ff1690505f846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610514573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105389190610bb2565b60ff166105458385610bd2565b61054f9190610be5565b90505f80866001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561058f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b39190610ad6565b506001600160701b0391821693501690506105cf83600a610cd0565b6105d98284610b51565b6105e39190610b7c565b979650505050505050565b5f6106006105fb8361034c565b61076d565b61060b906002610b51565b92915050565b60408051602081019091525f81525f82116106825760405162461bcd60e51b815260206004820152602660248201527f4669786564506f696e743a3a6672616374696f6e3a206469766973696f6e206260448201526579207a65726f60d01b60648201526084015b60405180910390fd5b825f0361069d575060408051602081019091525f815261060b565b71ffffffffffffffffffffffffffffffffffff831161073e575f6106c583607086901b610b7c565b90506001600160e01b0381111561071e5760405162461bcd60e51b815260206004820152601e60248201527f4669786564506f696e743a3a6672616374696f6e3a206f766572666c6f7700006044820152606401610679565b6040518060200160405280826001600160e01b031681525091505061060b565b5f6106c584600160701b856107db565b80515f9061060b906612725dd1d243ab906001600160e01b0316610b7c565b5f60038211156107cc5750805f610785600283610b7c565b610790906001610bd2565b90505b818110156107c6579050806002816107ab8186610b7c565b6107b59190610bd2565b6107bf9190610b7c565b9050610793565b50919050565b81156107d6575060015b919050565b5f805f6107e886866108a4565b915091505f84806107fb576107fb610b68565b86880990508281111561081657610813600183610be5565b91505b6108208184610be5565b9250815f0361083d576108338584610b7c565b935050505061089d565b84821061088c5760405162461bcd60e51b815260206004820152601a60248201527f46756c6c4d6174683a2046554c4c4449565f4f564552464c4f570000000000006044820152606401610679565b6108978383876108e4565b93505050505b9392505050565b5f80805f1984860990506108b88486610b51565b92506108c48382610be5565b9150828110156108dc576108d9600183610be5565b91505b509250929050565b5f806108f283196001610bd2565b831690506109008184610b7c565b925061090c8186610b7c565b94508061091b81196001610bd2565b6109259190610b7c565b610930906001610bd2565b61093a9085610b51565b6109449086610bd2565b945060016109528185610b51565b61095d906002610be5565b6109679082610b51565b90506109738185610b51565b61097e906002610be5565b6109889082610b51565b90506109948185610b51565b61099f906002610be5565b6109a99082610b51565b90506109b58185610b51565b6109c0906002610be5565b6109ca9082610b51565b90506109d68185610b51565b6109e1906002610be5565b6109eb9082610b51565b90506109f78185610b51565b610a02906002610be5565b610a0c9082610b51565b9050610a188185610b51565b610a23906002610be5565b610a2d9082610b51565b9050610a398185610b51565b610a44906002610be5565b610a4e9082610b51565b9050610a5a8187610b51565b9695505050505050565b6001600160a01b0381168114610a78575f80fd5b50565b5f60208284031215610a8b575f80fd5b813561089d81610a64565b5f8060408385031215610aa7575f80fd5b8235610ab281610a64565b946020939093013593505050565b80516001600160701b03811681146107d6575f80fd5b5f805f60608486031215610ae8575f80fd5b610af184610ac0565b9250610aff60208501610ac0565b9150604084015163ffffffff81168114610b17575f80fd5b809150509250925092565b5f60208284031215610b32575f80fd5b815161089d81610a64565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761060b5761060b610b3d565b634e487b7160e01b5f52601260045260245ffd5b5f82610b9657634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215610bab575f80fd5b5051919050565b5f60208284031215610bc2575f80fd5b815160ff8116811461089d575f80fd5b8082018082111561060b5761060b610b3d565b8181038181111561060b5761060b610b3d565b600181815b808511156108dc57815f1904821115610c1857610c18610b3d565b80851615610c2557918102915b93841c9390800290610bfd565b5f82610c405750600161060b565b81610c4c57505f61060b565b8160018114610c625760028114610c6c57610c88565b600191505061060b565b60ff841115610c7d57610c7d610b3d565b50506001821b61060b565b5060208310610133831016604e8410600b8410161715610cab575081810a61060b565b610cb58383610bf8565b805f1904821115610cc857610cc8610b3d565b029392505050565b5f61089d8383610c3256fea264697066735822122070b03a90c6406f01c19b5bf46644e4b48a4f7b0ac8b73f2f954a52f83553e8bf64736f6c63430008140033","sourceMap":"511:1868:80:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1609:457;;;;;;:::i;:::-;;:::i;:::-;;;548:25:121;;;536:2;521:18;1609:457:80;;;;;;;1287:316;;;;;;:::i;:::-;;:::i;700:452::-;;;;;;:::i;:::-;;:::i;1158:123::-;;;;;;:::i;:::-;;:::i;1609:457::-;1673:15;1701:16;1719;1756:4;-1:-1:-1;;;;;1741:32:80;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1700:75;-1:-1:-1;;;;;1700:75:80;;;-1:-1:-1;;;;;1700:75:80;;;1823:4;-1:-1:-1;;;;;1790:37:80;1805:4;-1:-1:-1;;;;;1790:27:80;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1790:37:80;;1786:212;;1853:8;1843:18;;1786:212;;;1929:4;-1:-1:-1;;;;;1896:37:80;1911:4;-1:-1:-1;;;;;1896:27:80;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1896:37:80;;1892:63;;1942:13;;-1:-1:-1;;;1942:13:80;;;;;;;;;;;1892:63;1979:8;1969:18;;1786:212;2040:19;2054:4;2040:13;:19::i;:::-;2018;:7;2029;2018:19;:::i;:::-;:41;;;;:::i;:::-;2008:51;1609:457;-1:-1:-1;;;;1609:457:80:o;1287:316::-;1368:13;1393:18;1414:19;1428:4;1414:13;:19::i;:::-;1393:40;;1443:19;1480:4;-1:-1:-1;;;;;1465:32:80;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1443:56;;1592:4;1531:58;:40;1551:6;1559:11;1531:19;:40::i;:::-;:56;:58::i;:::-;1518:71;;:10;:71;:::i;:::-;:78;;;;:::i;:::-;1510:86;1287:316;-1:-1:-1;;;;;1287:316:80:o;700:452::-;754:9;775:14;822:4;-1:-1:-1;;;;;807:27:80;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;792:54:80;;:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;775:73;;;;858:14;905:4;-1:-1:-1;;;;;890:27:80;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;875:54:80;;:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;858:73;;;;941:16;993:4;-1:-1:-1;;;;;978:29:80;;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;960:49;;:15;969:6;960;:15;:::i;:::-;:49;;;;:::i;:::-;941:68;;1021:16;1039;1076:4;-1:-1:-1;;;;;1061:32:80;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;1020:75:80;;;;-1:-1:-1;1020:75:80;;-1:-1:-1;1132:12:80;1136:8;1132:2;:12;:::i;:::-;1109:19;1120:8;1109;:19;:::i;:::-;:36;;;;:::i;:::-;1105:40;700:452;-1:-1:-1;;;;;;;700:452:80:o;1158:123::-;1216:13;1248:22;1254:15;1264:4;1254:9;:15::i;:::-;1248:5;:22::i;:::-;:26;;1273:1;1248:26;:::i;:::-;1241:33;1158:123;-1:-1:-1;;1158:123:80:o;2679:724:99:-;-1:-1:-1;;;;;;;;;;;;2810:1:99;2796:11;:15;2788:66;;;;-1:-1:-1;;;2788:66:99;;4773:2:121;2788:66:99;;;4755:21:121;4812:2;4792:18;;;4785:30;4851:34;4831:18;;;4824:62;-1:-1:-1;;;4902:18:121;;;4895:36;4948:19;;2788:66:99;;;;;;;;;2868:9;2881:1;2868:14;2864:50;;-1:-1:-1;2891:23:99;;;;;;;;;-1:-1:-1;2891:23:99;;2884:30;;2864:50;2942:17;2929:30;;2925:472;;2975:14;2992:39;3020:11;2114:3;2993:23;;;2992:39;:::i;:::-;2975:56;-1:-1:-1;;;;;;3053:27:99;;;3045:70;;;;-1:-1:-1;;;3045:70:99;;5180:2:121;3045:70:99;;;5162:21:121;5219:2;5199:18;;;5192:30;5258:32;5238:18;;;5231:60;5308:18;;3045:70:99;4978:354:121;3045:70:99;3136:26;;;;;;;;3154:6;-1:-1:-1;;;;;3136:26:99;;;;3129:33;;;;;2925:472;3193:14;3210:45;3226:9;-1:-1:-1;;;3243:11:99;3210:15;:45::i;2534:139::-;2639:7;;2605;;2631:35;;2650:16;;-1:-1:-1;;;;;2631:16:99;:35;:::i;2072:305:80:-;2120:9;2149:1;2145;:5;2141:230;;;-1:-1:-1;2170:1:80;2185:9;2198:5;2202:1;2170;2198:5;:::i;:::-;2197:11;;2207:1;2197:11;:::i;:::-;2185:23;;2222:91;2233:1;2229;:5;2222:91;;;2258:1;-1:-1:-1;2258:1:80;2297;2258;2283:5;2258:1;2283;:5;:::i;:::-;2282:11;;;;:::i;:::-;2281:17;;;;:::i;:::-;2277:21;;2222:91;;;2152:171;2072:305;;;:::o;2141:230::-;2333:6;;2329:42;;-1:-1:-1;2359:1:80;2329:42;2072:305;;;:::o;777:373:100:-;879:7;899:9;910;923:13;931:1;934;923:7;:13::i;:::-;898:38;;;;947:10;973:1;960:15;;;;;:::i;:::-;970:1;967;960:15;947:28;;994:1;989:2;:6;985:18;;;997:6;1002:1;997:6;;:::i;:::-;;;985:18;1013:7;1018:2;1013:7;;:::i;:::-;;;1035:1;1040;1035:6;1031:24;;1050:5;1054:1;1050;:5;:::i;:::-;1043:12;;;;;;;1031:24;1078:1;1074;:5;1066:44;;;;-1:-1:-1;;;1066:44:100;;5539:2:121;1066:44:100;;;5521:21:121;5578:2;5558:18;;;5551:30;5617:28;5597:18;;;5590:56;5663:18;;1066:44:100;5337:350:121;1066:44:100;1127:16;1135:1;1138;1141;1127:7;:16::i;:::-;1120:23;;;;;777:373;;;;;;:::o;81:211::-;142:9;;;-1:-1:-1;;197:1:100;194;187:31;174:44;-1:-1:-1;232:5:100;236:1;232;:5;:::i;:::-;228:9;-1:-1:-1;251:6:100;228:9;251:2;:6;:::i;:::-;247:10;;276:1;271:2;:6;267:18;;;279:6;284:1;279:6;;:::i;:::-;;;267:18;164:128;81:211;;;;;:::o;298:473::-;400:7;;439:6;:2;;444:1;439:6;:::i;:::-;434:12;;;-1:-1:-1;456:9:100;434:12;:1;456:9;:::i;:::-;;-1:-1:-1;475:9:100;480:4;475:9;;:::i;:::-;;-1:-1:-1;518:4:100;505:9;:5;;513:1;505:9;:::i;:::-;504:18;;;;:::i;:::-;:22;;525:1;504:22;:::i;:::-;499:28;;:1;:28;:::i;:::-;494:33;;;;:::i;:::-;;-1:-1:-1;549:1:100;569:5;549:1;569;:5;:::i;:::-;565:9;;:1;:9;:::i;:::-;560:14;;;;:::i;:::-;;-1:-1:-1;593:5:100;560:14;593:1;:5;:::i;:::-;589:9;;:1;:9;:::i;:::-;584:14;;;;:::i;:::-;;-1:-1:-1;617:5:100;584:14;617:1;:5;:::i;:::-;613:9;;:1;:9;:::i;:::-;608:14;;;;:::i;:::-;;-1:-1:-1;641:5:100;608:14;641:1;:5;:::i;:::-;637:9;;:1;:9;:::i;:::-;632:14;;;;:::i;:::-;;-1:-1:-1;665:5:100;632:14;665:1;:5;:::i;:::-;661:9;;:1;:9;:::i;:::-;656:14;;;;:::i;:::-;;-1:-1:-1;689:5:100;656:14;689:1;:5;:::i;:::-;685:9;;:1;:9;:::i;:::-;680:14;;;;:::i;:::-;;-1:-1:-1;713:5:100;680:14;713:1;:5;:::i;:::-;709:9;;:1;:9;:::i;:::-;704:14;;;;:::i;:::-;;-1:-1:-1;737:5:100;704:14;737:1;:5;:::i;:::-;733:9;;:1;:9;:::i;:::-;728:14;;;;:::i;:::-;;-1:-1:-1;759:5:100;728:14;759:1;:5;:::i;:::-;752:12;298:473;-1:-1:-1;;;;;;298:473:100:o;14:131:121:-;-1:-1:-1;;;;;89:31:121;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:247::-;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;584:315::-;652:6;660;713:2;701:9;692:7;688:23;684:32;681:52;;;729:1;726;719:12;681:52;768:9;755:23;787:31;812:5;787:31;:::i;:::-;837:5;889:2;874:18;;;;861:32;;-1:-1:-1;;;584:315:121:o;904:188::-;983:13;;-1:-1:-1;;;;;1025:42:121;;1015:53;;1005:81;;1082:1;1079;1072:12;1097:450;1184:6;1192;1200;1253:2;1241:9;1232:7;1228:23;1224:32;1221:52;;;1269:1;1266;1259:12;1221:52;1292:40;1322:9;1292:40;:::i;:::-;1282:50;;1351:49;1396:2;1385:9;1381:18;1351:49;:::i;:::-;1341:59;;1443:2;1432:9;1428:18;1422:25;1487:10;1480:5;1476:22;1469:5;1466:33;1456:61;;1513:1;1510;1503:12;1456:61;1536:5;1526:15;;;1097:450;;;;;:::o;1552:251::-;1622:6;1675:2;1663:9;1654:7;1650:23;1646:32;1643:52;;;1691:1;1688;1681:12;1643:52;1723:9;1717:16;1742:31;1767:5;1742:31;:::i;1808:127::-;1869:10;1864:3;1860:20;1857:1;1850:31;1900:4;1897:1;1890:15;1924:4;1921:1;1914:15;1940:168;2013:9;;;2044;;2061:15;;;2055:22;;2041:37;2031:71;;2082:18;;:::i;2113:127::-;2174:10;2169:3;2165:20;2162:1;2155:31;2205:4;2202:1;2195:15;2229:4;2226:1;2219:15;2245:217;2285:1;2311;2301:132;;2355:10;2350:3;2346:20;2343:1;2336:31;2390:4;2387:1;2380:15;2418:4;2415:1;2408:15;2301:132;-1:-1:-1;2447:9:121;;2245:217::o;2467:184::-;2537:6;2590:2;2578:9;2569:7;2565:23;2561:32;2558:52;;;2606:1;2603;2596:12;2558:52;-1:-1:-1;2629:16:121;;2467:184;-1:-1:-1;2467:184:121:o;2656:273::-;2724:6;2777:2;2765:9;2756:7;2752:23;2748:32;2745:52;;;2793:1;2790;2783:12;2745:52;2825:9;2819:16;2875:4;2868:5;2864:16;2857:5;2854:27;2844:55;;2895:1;2892;2885:12;2934:125;2999:9;;;3020:10;;;3017:36;;;3033:18;;:::i;3064:128::-;3131:9;;;3152:11;;;3149:37;;;3166:18;;:::i;3197:422::-;3286:1;3329:5;3286:1;3343:270;3364:7;3354:8;3351:21;3343:270;;;3423:4;3419:1;3415:6;3411:17;3405:4;3402:27;3399:53;;;3432:18;;:::i;:::-;3482:7;3472:8;3468:22;3465:55;;;3502:16;;;;3465:55;3581:22;;;;3541:15;;;;3343:270;;3624:806;3673:5;3703:8;3693:80;;-1:-1:-1;3744:1:121;3758:5;;3693:80;3792:4;3782:76;;-1:-1:-1;3829:1:121;3843:5;;3782:76;3874:4;3892:1;3887:59;;;;3960:1;3955:130;;;;3867:218;;3887:59;3917:1;3908:10;;3931:5;;;3955:130;3992:3;3982:8;3979:17;3976:43;;;3999:18;;:::i;:::-;-1:-1:-1;;4055:1:121;4041:16;;4070:5;;3867:218;;4169:2;4159:8;4156:16;4150:3;4144:4;4141:13;4137:36;4131:2;4121:8;4118:16;4113:2;4107:4;4104:12;4100:35;4097:77;4094:159;;;-1:-1:-1;4206:19:121;;;4238:5;;4094:159;4285:34;4310:8;4304:4;4285:34;:::i;:::-;4355:6;4351:1;4347:6;4343:19;4334:7;4331:32;4328:58;;;4366:18;;:::i;:::-;4404:20;;3624:806;-1:-1:-1;;;3624:806:121:o;4435:131::-;4495:5;4524:36;4551:8;4545:4;4524:36;:::i","linkReferences":{},"immutableReferences":{"56547":[{"start":296,"length":32},{"start":456,"length":32}]}},"methodIdentifiers":{"getKValue(address)":"490084ef","getTotalValue(address)":"68637549","markdown(address)":"32da80a3","valuation(address,uint256)":"4249719f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ftso\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidPair\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"name\":\"getKValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"k\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"name\":\"getTotalValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"name\":\"markdown\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reserve\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"valuation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/StandardBondingCalculator.sol\":\"GhostBondingCalculator\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-contracts/=dependencies/@openzeppelin-contracts-5.0.2/\",\":@uniswap-v2-core/=dependencies/@uniswap-v2-core-1.0.1/contracts/\",\":forge-std-1.9.2/=dependencies/forge-std-1.9.2/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"dependencies/@openzeppelin-contracts-5.0.2/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"dependencies/@openzeppelin-contracts-5.0.2/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"dependencies/@openzeppelin-contracts-5.0.2/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"dependencies/@openzeppelin-contracts-5.0.2/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"dependencies/@openzeppelin-contracts-5.0.2/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"dependencies/@uniswap-v2-core-1.0.1/contracts/interfaces/IUniswapV2ERC20.sol\":{\"keccak256\":\"0x9e433765e9ef7b4ff5e406b260b222c47c2aa27d36df756db708064fcb239ae7\",\"urls\":[\"bzz-raw://5b67c24a5e1652b51ad2f37adad2905519f0e05e7c8b2b4d8b3e00b429bb9213\",\"dweb:/ipfs/QmarJq43GabAGGSqtMUb87ACYQt73mSFbXKyFAPDXpbFNM\"]},\"dependencies/@uniswap-v2-core-1.0.1/contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b\",\"urls\":[\"bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf\",\"dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH\"]},\"src/StandardBondingCalculator.sol\":{\"keccak256\":\"0xfb9405c5b1ff6c540a6bed01af73aaa0be4ee3c604182efefa5fb562774bf940\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d2fb9eca10835badda4d25dfa4370a387ea3ce1b81cbf177e97f52f3a97b5914\",\"dweb:/ipfs/QmSgFCQ2ii4F4KKQWWeVEcnh1MT1E5nsS6Kf3M8CkR7ETD\"]},\"src/interfaces/IBondingCalculator.sol\":{\"keccak256\":\"0xccd54e87a9c9809469f23041f41374ac7d0de8eea169049497358d21e98ae19a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29c9b228e7981b271bbad9e2370f973fb17074d070f10c94be2b2290c9420002\",\"dweb:/ipfs/QmWmGcF75Qi7hzo6k6d8gBjqsofNCkffw8ZrSqu8im6mrh\"]},\"src/libraries/FixedPoint.sol\":{\"keccak256\":\"0x6fa19266fe36857cd3eef2115b981863d0dbfff257ac491c0b677c9c8bb6a53e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01bc65c7dd23125833c3b979a241e84063db8fdec2fe46c55608b2f051a83d74\",\"dweb:/ipfs/QmeCMD1LE3BQoUdYur8TL6MqPehcB8Ykf4yRs7F3SsqvGM\"]},\"src/libraries/FullMath.sol\":{\"keccak256\":\"0x45a20875ee1bbcf36966a694b157c401ab36fa1fde419803f1ffae89cc059aad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://32f73c0a9a18871a033420595569b80bcbed60fa25c088c60a5560c840999fe9\",\"dweb:/ipfs/QmNp1Zhw9SioKpK3nwDd2ihPU9D4bnULc8KEufkka2MEGK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_ftso","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"InvalidPair"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"stateMutability":"view","type":"function","name":"getKValue","outputs":[{"internalType":"uint256","name":"k","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"stateMutability":"view","type":"function","name":"getTotalValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"stateMutability":"view","type":"function","name":"markdown","outputs":[{"internalType":"uint256","name":"reserve","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"valuation","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-contracts/=dependencies/@openzeppelin-contracts-5.0.2/","@uniswap-v2-core/=dependencies/@uniswap-v2-core-1.0.1/contracts/","forge-std-1.9.2/=dependencies/forge-std-1.9.2/","forge-std/=lib/forge-std/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/StandardBondingCalculator.sol":"GhostBondingCalculator"},"evmVersion":"shanghai","libraries":{}},"sources":{"dependencies/@openzeppelin-contracts-5.0.2/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.0.2/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2","urls":["bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850","dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.0.2/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.0.2/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.0.2/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"dependencies/@uniswap-v2-core-1.0.1/contracts/interfaces/IUniswapV2ERC20.sol":{"keccak256":"0x9e433765e9ef7b4ff5e406b260b222c47c2aa27d36df756db708064fcb239ae7","urls":["bzz-raw://5b67c24a5e1652b51ad2f37adad2905519f0e05e7c8b2b4d8b3e00b429bb9213","dweb:/ipfs/QmarJq43GabAGGSqtMUb87ACYQt73mSFbXKyFAPDXpbFNM"],"license":null},"dependencies/@uniswap-v2-core-1.0.1/contracts/interfaces/IUniswapV2Pair.sol":{"keccak256":"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b","urls":["bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf","dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH"],"license":null},"src/StandardBondingCalculator.sol":{"keccak256":"0xfb9405c5b1ff6c540a6bed01af73aaa0be4ee3c604182efefa5fb562774bf940","urls":["bzz-raw://d2fb9eca10835badda4d25dfa4370a387ea3ce1b81cbf177e97f52f3a97b5914","dweb:/ipfs/QmSgFCQ2ii4F4KKQWWeVEcnh1MT1E5nsS6Kf3M8CkR7ETD"],"license":"MIT"},"src/interfaces/IBondingCalculator.sol":{"keccak256":"0xccd54e87a9c9809469f23041f41374ac7d0de8eea169049497358d21e98ae19a","urls":["bzz-raw://29c9b228e7981b271bbad9e2370f973fb17074d070f10c94be2b2290c9420002","dweb:/ipfs/QmWmGcF75Qi7hzo6k6d8gBjqsofNCkffw8ZrSqu8im6mrh"],"license":"MIT"},"src/libraries/FixedPoint.sol":{"keccak256":"0x6fa19266fe36857cd3eef2115b981863d0dbfff257ac491c0b677c9c8bb6a53e","urls":["bzz-raw://01bc65c7dd23125833c3b979a241e84063db8fdec2fe46c55608b2f051a83d74","dweb:/ipfs/QmeCMD1LE3BQoUdYur8TL6MqPehcB8Ykf4yRs7F3SsqvGM"],"license":"MIT"},"src/libraries/FullMath.sol":{"keccak256":"0x45a20875ee1bbcf36966a694b157c401ab36fa1fde419803f1ffae89cc059aad","urls":["bzz-raw://32f73c0a9a18871a033420595569b80bcbed60fa25c088c60a5560c840999fe9","dweb:/ipfs/QmNp1Zhw9SioKpK3nwDd2ihPU9D4bnULc8KEufkka2MEGK"],"license":"MIT"}},"version":1},"id":80} \ No newline at end of file diff --git a/src/constants/addresses.js b/src/constants/addresses.js index 9e87d64..bc3e29d 100644 --- a/src/constants/addresses.js +++ b/src/constants/addresses.js @@ -48,6 +48,10 @@ export const GHOST_GOVERNANCE_ADDRESSES = { [NetworkId.TESTNET_SEPOLIA]: "0xD40E6442Ee01c234CD8AaF335122CfbB2aec8548", }; +export const BONDING_CALCULATOR_ADDRESSES = { + [NetworkId.TESTNET_SEPOLIA]: "0x29a6bb5De7a1049632E107544CaEF05e518451e7", +} + export const UNISWAP_V2_ROUTER = { [NetworkId.TESTNET_SEPOLIA]: "0xee567fe1712faf6149d80da1e6934e354124cfe3", }; diff --git a/src/hooks/bonds/index.jsx b/src/hooks/bonds/index.jsx index dbf8002..19536f2 100644 --- a/src/hooks/bonds/index.jsx +++ b/src/hooks/bonds/index.jsx @@ -4,9 +4,14 @@ import toast from "react-hot-toast"; import { config } from "../../config"; -import { BOND_DEPOSITORY_ADDRESSES, DAO_TREASURY_ADDRESSES } from "../../constants/addresses"; +import { + BOND_DEPOSITORY_ADDRESSES, + DAO_TREASURY_ADDRESSES, + BONDING_CALCULATOR_ADDRESSES, +} from "../../constants/addresses"; import { abi as BondAbi } from "../../abi/GhostBondDepository.json"; import { abi as TreasuryAbi } from "../../abi/GhostTreasury.json"; +import { abi as BondingCalculatorAbi } from "../../abi/GhostBondingCalculator.json"; import { useFtsoPrice } from "../prices"; import { getTokenAddress, getTokenIcons, getTokenName, getBondNameDisplayName, getTokenPurchaseLink } from "../helpers"; @@ -85,6 +90,20 @@ export const useLiveBonds = (chainId) => { }) }); + const { data: markdowns } = useReadContracts({ + contracts: markets?.map((_, index) => { + const quoteTokenAddress = markets?.at(index).result?.at(1) ? markets.at(index).result.at(1) : ""; + return { + abi: BondingCalculatorAbi, + address: BONDING_CALCULATOR_ADDRESSES[chainId], + functionName: "markdown", + args: [quoteTokenAddress], + scopeKey: `markdown-${quoteTokenAddress}-${chainId}`, + chainId: chainId, + } + }) + }); + const liveBonds = liveIndexesRaw ? liveIndexesRaw.map((bondIndex, index) => { const id = Number(bondIndex); @@ -97,9 +116,12 @@ export const useLiveBonds = (chainId) => { const quoteTokenPerUsd = quotePrices?.at(index).result ? new DecimalBigNumber(quotePrices.at(index).result * (10n ** 9n), quoteTokenDecimals) : new DecimalBigNumber(0n, quoteTokenDecimals); + const markdown = markdowns?.at(index).result + ? new DecimalBigNumber(markdowns.at(index).result, quoteTokenDecimals) + : new DecimalBigNumber(1n, 0); const quoteTokenPerBaseToken = new DecimalBigNumber(marketPrice, 9); - const priceInUsd = quoteTokenPerUsd.mul(quoteTokenPerBaseToken); + const priceInUsd = quoteTokenPerUsd.mul(quoteTokenPerBaseToken).mul(markdown); const discount = baseTokenPerUsd._value > 0n ? baseTokenPerUsd.sub(priceInUsd).div(baseTokenPerUsd) : new DecimalBigNumber("0", baseTokenPerUsd._decimals);