├── ReadMe.txt ├── package.json ├── .gitignore ├── index.js ├── pancakeLP.json ├── bond.json ├── bondV2.json └── bondFour.json /ReadMe.txt: -------------------------------------------------------------------------------- 1 | # BCV bot 2 | this bot for auto controlling of bond price in OHM project 3 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pspautobot", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node index.js" 9 | }, 10 | "author": "Alex Maftei", 11 | "license": "ISC", 12 | "dependencies": { 13 | "axios": "^0.27.2", 14 | "dotenv": "^16.0.1", 15 | "ethers": "^5.5.2", 16 | "express": "^4.17.2" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | packages/subgraph/subgraph.yaml 2 | packages/subgraph/generated 3 | packages/subgraph/abis 4 | packages/hardhat/*.txt 5 | **/aws.json 6 | 7 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 8 | **/node_modules 9 | packages/hardhat/artifacts 10 | packages/hardhat/deployments 11 | packages/react-app/src/contracts/* 12 | !packages/react-app/src/contracts/contracts.js 13 | packages/hardhat/cache 14 | 15 | docker/**/data 16 | 17 | packages/subgraph/config/config.json 18 | tenderly.yaml 19 | 20 | # dependencies 21 | /node_modules 22 | BCV-bot/node_modules 23 | BCV-bot/.env* 24 | /.pnp 25 | .pnp.js 26 | 27 | # testing 28 | coverage 29 | 30 | # production 31 | build 32 | 33 | # misc 34 | .DS_Store 35 | .env* 36 | 37 | # debug 38 | npm-debug.log* 39 | yarn-debug.log* 40 | yarn-error.log* 41 | 42 | .idea 43 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | /************************************************ 2 | * IMPORTS 3 | ************************************************/ 4 | 5 | const express = require("express"); 6 | const ethers = require('ethers'); 7 | const bondABI = require('./bond') 8 | const bondFourABI = require('./bondFour') 9 | const customBondABI = require('./bondV2') 10 | const lpABI = require('./pancakeLP.json'); 11 | const { text } = require("express"); 12 | const { default: axios } = require("axios"); 13 | require('dotenv').config() 14 | 15 | const RPC = "https://rpc01-sg.dogechain.dog" 16 | 17 | var provider = new ethers.providers.JsonRpcProvider(RPC); 18 | const walletForControl = new ethers.Wallet(process.env.PRIVATE_KEY, provider); 19 | 20 | const bonds = [ 21 | // list your bonds 22 | { 23 | address: "0xdc0d8F9a2eDc092AdB4f5b48f63ed38b83b23480", // WDOGE 24 | type: "custom" 25 | }, 26 | ]; 27 | 28 | // token-USD LP address for getting token price 29 | const LPAddress = "0x6be57438D8FFE899953037A7cC365B8a97eE36Dd" 30 | // standard bond's discount 31 | const standardDiscount = 0.3; 32 | // available bond price offset 33 | const tolerance = 0.05; 34 | 35 | 36 | /************************************************ 37 | * CONSTANTS 38 | ************************************************/ 39 | 40 | const port = 3006; 41 | 42 | /************************************************ 43 | * INITIALIZE GLOBAL 44 | ************************************************/ 45 | 46 | const app = express(); 47 | 48 | const main = async () => { 49 | 50 | // getting token price from token-busd LP 51 | const lpContract = new ethers.Contract( 52 | LPAddress, 53 | lpABI, 54 | walletForControl 55 | ) 56 | 57 | try { 58 | const result = await axios.get('https://api.binance.com/api/v3/ticker/price?symbol=DOGEBUSD'); 59 | const dogePrice = result.data.price; 60 | const reserves = await lpContract.getReserves(); 61 | const tokenPrice = reserves._reserve1 / reserves._reserve0 / 10 ** 9 * dogePrice; 62 | console.log('tokenPrice', tokenPrice); 63 | const bondPrice = tokenPrice * (1 - standardDiscount); 64 | 65 | for (let index = 0; index < bonds.length; index++) { 66 | console.log('adjusting bond-', bonds[index].address); 67 | const bondContract = new ethers.Contract( 68 | bonds[index].address, 69 | bonds[index].type == "four" ? bondFourABI : (bonds[index].type == "custom" ? customBondABI : bondABI), 70 | walletForControl 71 | ); 72 | const bondTerms = await bondContract.terms(); 73 | const totalDebt = await bondContract.totalDebt(); 74 | const currentBondPriceInUSD = (await bondContract.bondPriceInUSD()) / 10 ** 18; 75 | const currentBondPrice = (await bondContract.bondPrice()) / 100; 76 | var newControlVariable = bondTerms.controlVariable; 77 | if(totalDebt >= 10000000000000) { 78 | if(bonds[index].type != 'custom') { 79 | newControlVariable = Math.floor(bondTerms.controlVariable * ((currentBondPrice * bondPrice / currentBondPriceInUSD) - 1) / (currentBondPrice - 1)) 80 | } 81 | else { 82 | newControlVariable = Math.floor(bondTerms.controlVariable * bondPrice / currentBondPriceInUSD); 83 | } 84 | } 85 | console.log(`current bond price is ${currentBondPriceInUSD}, target bond price is ${bondPrice}, new control variable is ${newControlVariable} last control variable is ${bondTerms.controlVariable}`) 86 | if (totalDebt >= 10000000000000 && newControlVariable > bondTerms.controlVariable * (1 - tolerance) && newControlVariable < bondTerms.controlVariable * (1 + tolerance)) { 87 | console.log('there is no necessary to reinitialize') 88 | continue; 89 | } 90 | console.log('reinitializing bond terms...'); 91 | if(bonds[index].type == "normal") { 92 | const result = await bondContract.initializeBondTerms( 93 | newControlVariable, 94 | bondTerms.vestingTerm, 95 | bondTerms.minimumPrice, 96 | bondTerms.maxPayout, 97 | bondTerms.fee, 98 | bondTerms.maxDebt, 99 | totalDebt >= 10000000000000 ? totalDebt : 10000000000000 100 | ); 101 | await result.wait(); 102 | console.log('reinitialize finished ... Tx hash is ', result?.hash) 103 | } 104 | else if(bonds[index].type == "four"){ 105 | const result = await bondContract.initializeBondTerms( 106 | newControlVariable, 107 | bondTerms.minimumPrice, 108 | bondTerms.maxPayout, 109 | bondTerms.fee, 110 | bondTerms.maxDebt, 111 | totalDebt >= 10000000000000 ? totalDebt : 10000000000000, 112 | bondTerms.vestingTerm 113 | ); 114 | await result.wait(); 115 | console.log('reinitialize finished ... Tx hash is ', result?.hash) 116 | } 117 | else if(bonds[index].type == "custom") { 118 | const result = await bondContract.initializeBondTerms( 119 | newControlVariable, 120 | bondTerms.vestingTerm, 121 | bondTerms.minimumPrice, 122 | bondTerms.maxPayout, 123 | bondTerms.maxDebt, 124 | totalDebt >= 10000000000000 ? totalDebt : 10000000000000, 125 | ); 126 | await result.wait(); 127 | console.log('reinitialize finished ... Tx hash is ', result?.hash) 128 | } 129 | } 130 | console.log('all operation completed'); 131 | } catch (error) { 132 | console.log(error); 133 | } 134 | 135 | } 136 | 137 | 138 | 139 | /************************************************ 140 | * METHOD FOR LOG APP 141 | ************************************************/ 142 | 143 | app.listen(port, () => { 144 | console.log(`App start on port ${port}`); 145 | console.log(""); 146 | }); 147 | 148 | app.get('/', async function (req, res) { 149 | await main(); 150 | res.send('successfully set') 151 | }) -------------------------------------------------------------------------------- /pancakeLP.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "inputs": [], 3 | "payable": false, 4 | "stateMutability": "nonpayable", 5 | "type": "constructor" 6 | }, { 7 | "anonymous": false, 8 | "inputs": [{ 9 | "indexed": true, 10 | "internalType": "address", 11 | "name": "owner", 12 | "type": "address" 13 | }, { 14 | "indexed": true, 15 | "internalType": "address", 16 | "name": "spender", 17 | "type": "address" 18 | }, { 19 | "indexed": false, 20 | "internalType": "uint256", 21 | "name": "value", 22 | "type": "uint256" 23 | }], 24 | "name": "Approval", 25 | "type": "event" 26 | }, { 27 | "anonymous": false, 28 | "inputs": [{ 29 | "indexed": true, 30 | "internalType": "address", 31 | "name": "sender", 32 | "type": "address" 33 | }, { 34 | "indexed": false, 35 | "internalType": "uint256", 36 | "name": "amount0", 37 | "type": "uint256" 38 | }, { 39 | "indexed": false, 40 | "internalType": "uint256", 41 | "name": "amount1", 42 | "type": "uint256" 43 | }, { 44 | "indexed": true, 45 | "internalType": "address", 46 | "name": "to", 47 | "type": "address" 48 | }], 49 | "name": "Burn", 50 | "type": "event" 51 | }, { 52 | "anonymous": false, 53 | "inputs": [{ 54 | "indexed": true, 55 | "internalType": "address", 56 | "name": "sender", 57 | "type": "address" 58 | }, { 59 | "indexed": false, 60 | "internalType": "uint256", 61 | "name": "amount0", 62 | "type": "uint256" 63 | }, { 64 | "indexed": false, 65 | "internalType": "uint256", 66 | "name": "amount1", 67 | "type": "uint256" 68 | }], 69 | "name": "Mint", 70 | "type": "event" 71 | }, { 72 | "anonymous": false, 73 | "inputs": [{ 74 | "indexed": true, 75 | "internalType": "address", 76 | "name": "sender", 77 | "type": "address" 78 | }, { 79 | "indexed": false, 80 | "internalType": "uint256", 81 | "name": "amount0In", 82 | "type": "uint256" 83 | }, { 84 | "indexed": false, 85 | "internalType": "uint256", 86 | "name": "amount1In", 87 | "type": "uint256" 88 | }, { 89 | "indexed": false, 90 | "internalType": "uint256", 91 | "name": "amount0Out", 92 | "type": "uint256" 93 | }, { 94 | "indexed": false, 95 | "internalType": "uint256", 96 | "name": "amount1Out", 97 | "type": "uint256" 98 | }, { 99 | "indexed": true, 100 | "internalType": "address", 101 | "name": "to", 102 | "type": "address" 103 | }], 104 | "name": "Swap", 105 | "type": "event" 106 | }, { 107 | "anonymous": false, 108 | "inputs": [{ 109 | "indexed": false, 110 | "internalType": "uint112", 111 | "name": "reserve0", 112 | "type": "uint112" 113 | }, { 114 | "indexed": false, 115 | "internalType": "uint112", 116 | "name": "reserve1", 117 | "type": "uint112" 118 | }], 119 | "name": "Sync", 120 | "type": "event" 121 | }, { 122 | "anonymous": false, 123 | "inputs": [{ 124 | "indexed": true, 125 | "internalType": "address", 126 | "name": "from", 127 | "type": "address" 128 | }, { 129 | "indexed": true, 130 | "internalType": "address", 131 | "name": "to", 132 | "type": "address" 133 | }, { 134 | "indexed": false, 135 | "internalType": "uint256", 136 | "name": "value", 137 | "type": "uint256" 138 | }], 139 | "name": "Transfer", 140 | "type": "event" 141 | }, { 142 | "constant": true, 143 | "inputs": [], 144 | "name": "DOMAIN_SEPARATOR", 145 | "outputs": [{ 146 | "internalType": "bytes32", 147 | "name": "", 148 | "type": "bytes32" 149 | }], 150 | "payable": false, 151 | "stateMutability": "view", 152 | "type": "function" 153 | }, { 154 | "constant": true, 155 | "inputs": [], 156 | "name": "MINIMUM_LIQUIDITY", 157 | "outputs": [{ 158 | "internalType": "uint256", 159 | "name": "", 160 | "type": "uint256" 161 | }], 162 | "payable": false, 163 | "stateMutability": "view", 164 | "type": "function" 165 | }, { 166 | "constant": true, 167 | "inputs": [], 168 | "name": "PERMIT_TYPEHASH", 169 | "outputs": [{ 170 | "internalType": "bytes32", 171 | "name": "", 172 | "type": "bytes32" 173 | }], 174 | "payable": false, 175 | "stateMutability": "view", 176 | "type": "function" 177 | }, { 178 | "constant": true, 179 | "inputs": [{ 180 | "internalType": "address", 181 | "name": "", 182 | "type": "address" 183 | }, { 184 | "internalType": "address", 185 | "name": "", 186 | "type": "address" 187 | }], 188 | "name": "allowance", 189 | "outputs": [{ 190 | "internalType": "uint256", 191 | "name": "", 192 | "type": "uint256" 193 | }], 194 | "payable": false, 195 | "stateMutability": "view", 196 | "type": "function" 197 | }, { 198 | "constant": false, 199 | "inputs": [{ 200 | "internalType": "address", 201 | "name": "spender", 202 | "type": "address" 203 | }, { 204 | "internalType": "uint256", 205 | "name": "value", 206 | "type": "uint256" 207 | }], 208 | "name": "approve", 209 | "outputs": [{ 210 | "internalType": "bool", 211 | "name": "", 212 | "type": "bool" 213 | }], 214 | "payable": false, 215 | "stateMutability": "nonpayable", 216 | "type": "function" 217 | }, { 218 | "constant": true, 219 | "inputs": [{ 220 | "internalType": "address", 221 | "name": "", 222 | "type": "address" 223 | }], 224 | "name": "balanceOf", 225 | "outputs": [{ 226 | "internalType": "uint256", 227 | "name": "", 228 | "type": "uint256" 229 | }], 230 | "payable": false, 231 | "stateMutability": "view", 232 | "type": "function" 233 | }, { 234 | "constant": false, 235 | "inputs": [{ 236 | "internalType": "address", 237 | "name": "to", 238 | "type": "address" 239 | }], 240 | "name": "burn", 241 | "outputs": [{ 242 | "internalType": "uint256", 243 | "name": "amount0", 244 | "type": "uint256" 245 | }, { 246 | "internalType": "uint256", 247 | "name": "amount1", 248 | "type": "uint256" 249 | }], 250 | "payable": false, 251 | "stateMutability": "nonpayable", 252 | "type": "function" 253 | }, { 254 | "constant": true, 255 | "inputs": [], 256 | "name": "decimals", 257 | "outputs": [{ 258 | "internalType": "uint8", 259 | "name": "", 260 | "type": "uint8" 261 | }], 262 | "payable": false, 263 | "stateMutability": "view", 264 | "type": "function" 265 | }, { 266 | "constant": true, 267 | "inputs": [], 268 | "name": "factory", 269 | "outputs": [{ 270 | "internalType": "address", 271 | "name": "", 272 | "type": "address" 273 | }], 274 | "payable": false, 275 | "stateMutability": "view", 276 | "type": "function" 277 | }, { 278 | "constant": true, 279 | "inputs": [], 280 | "name": "getReserves", 281 | "outputs": [{ 282 | "internalType": "uint112", 283 | "name": "_reserve0", 284 | "type": "uint112" 285 | }, { 286 | "internalType": "uint112", 287 | "name": "_reserve1", 288 | "type": "uint112" 289 | }, { 290 | "internalType": "uint32", 291 | "name": "_blockTimestampLast", 292 | "type": "uint32" 293 | }], 294 | "payable": false, 295 | "stateMutability": "view", 296 | "type": "function" 297 | }, { 298 | "constant": false, 299 | "inputs": [{ 300 | "internalType": "address", 301 | "name": "_token0", 302 | "type": "address" 303 | }, { 304 | "internalType": "address", 305 | "name": "_token1", 306 | "type": "address" 307 | }], 308 | "name": "initialize", 309 | "outputs": [], 310 | "payable": false, 311 | "stateMutability": "nonpayable", 312 | "type": "function" 313 | }, { 314 | "constant": true, 315 | "inputs": [], 316 | "name": "kLast", 317 | "outputs": [{ 318 | "internalType": "uint256", 319 | "name": "", 320 | "type": "uint256" 321 | }], 322 | "payable": false, 323 | "stateMutability": "view", 324 | "type": "function" 325 | }, { 326 | "constant": false, 327 | "inputs": [{ 328 | "internalType": "address", 329 | "name": "to", 330 | "type": "address" 331 | }], 332 | "name": "mint", 333 | "outputs": [{ 334 | "internalType": "uint256", 335 | "name": "liquidity", 336 | "type": "uint256" 337 | }], 338 | "payable": false, 339 | "stateMutability": "nonpayable", 340 | "type": "function" 341 | }, { 342 | "constant": true, 343 | "inputs": [], 344 | "name": "name", 345 | "outputs": [{ 346 | "internalType": "string", 347 | "name": "", 348 | "type": "string" 349 | }], 350 | "payable": false, 351 | "stateMutability": "view", 352 | "type": "function" 353 | }, { 354 | "constant": true, 355 | "inputs": [{ 356 | "internalType": "address", 357 | "name": "", 358 | "type": "address" 359 | }], 360 | "name": "nonces", 361 | "outputs": [{ 362 | "internalType": "uint256", 363 | "name": "", 364 | "type": "uint256" 365 | }], 366 | "payable": false, 367 | "stateMutability": "view", 368 | "type": "function" 369 | }, { 370 | "constant": false, 371 | "inputs": [{ 372 | "internalType": "address", 373 | "name": "owner", 374 | "type": "address" 375 | }, { 376 | "internalType": "address", 377 | "name": "spender", 378 | "type": "address" 379 | }, { 380 | "internalType": "uint256", 381 | "name": "value", 382 | "type": "uint256" 383 | }, { 384 | "internalType": "uint256", 385 | "name": "deadline", 386 | "type": "uint256" 387 | }, { 388 | "internalType": "uint8", 389 | "name": "v", 390 | "type": "uint8" 391 | }, { 392 | "internalType": "bytes32", 393 | "name": "r", 394 | "type": "bytes32" 395 | }, { 396 | "internalType": "bytes32", 397 | "name": "s", 398 | "type": "bytes32" 399 | }], 400 | "name": "permit", 401 | "outputs": [], 402 | "payable": false, 403 | "stateMutability": "nonpayable", 404 | "type": "function" 405 | }, { 406 | "constant": true, 407 | "inputs": [], 408 | "name": "price0CumulativeLast", 409 | "outputs": [{ 410 | "internalType": "uint256", 411 | "name": "", 412 | "type": "uint256" 413 | }], 414 | "payable": false, 415 | "stateMutability": "view", 416 | "type": "function" 417 | }, { 418 | "constant": true, 419 | "inputs": [], 420 | "name": "price1CumulativeLast", 421 | "outputs": [{ 422 | "internalType": "uint256", 423 | "name": "", 424 | "type": "uint256" 425 | }], 426 | "payable": false, 427 | "stateMutability": "view", 428 | "type": "function" 429 | }, { 430 | "constant": false, 431 | "inputs": [{ 432 | "internalType": "address", 433 | "name": "to", 434 | "type": "address" 435 | }], 436 | "name": "skim", 437 | "outputs": [], 438 | "payable": false, 439 | "stateMutability": "nonpayable", 440 | "type": "function" 441 | }, { 442 | "constant": false, 443 | "inputs": [{ 444 | "internalType": "uint256", 445 | "name": "amount0Out", 446 | "type": "uint256" 447 | }, { 448 | "internalType": "uint256", 449 | "name": "amount1Out", 450 | "type": "uint256" 451 | }, { 452 | "internalType": "address", 453 | "name": "to", 454 | "type": "address" 455 | }, { 456 | "internalType": "bytes", 457 | "name": "data", 458 | "type": "bytes" 459 | }], 460 | "name": "swap", 461 | "outputs": [], 462 | "payable": false, 463 | "stateMutability": "nonpayable", 464 | "type": "function" 465 | }, { 466 | "constant": true, 467 | "inputs": [], 468 | "name": "symbol", 469 | "outputs": [{ 470 | "internalType": "string", 471 | "name": "", 472 | "type": "string" 473 | }], 474 | "payable": false, 475 | "stateMutability": "view", 476 | "type": "function" 477 | }, { 478 | "constant": false, 479 | "inputs": [], 480 | "name": "sync", 481 | "outputs": [], 482 | "payable": false, 483 | "stateMutability": "nonpayable", 484 | "type": "function" 485 | }, { 486 | "constant": true, 487 | "inputs": [], 488 | "name": "token0", 489 | "outputs": [{ 490 | "internalType": "address", 491 | "name": "", 492 | "type": "address" 493 | }], 494 | "payable": false, 495 | "stateMutability": "view", 496 | "type": "function" 497 | }, { 498 | "constant": true, 499 | "inputs": [], 500 | "name": "token1", 501 | "outputs": [{ 502 | "internalType": "address", 503 | "name": "", 504 | "type": "address" 505 | }], 506 | "payable": false, 507 | "stateMutability": "view", 508 | "type": "function" 509 | }, { 510 | "constant": true, 511 | "inputs": [], 512 | "name": "totalSupply", 513 | "outputs": [{ 514 | "internalType": "uint256", 515 | "name": "", 516 | "type": "uint256" 517 | }], 518 | "payable": false, 519 | "stateMutability": "view", 520 | "type": "function" 521 | }, { 522 | "constant": false, 523 | "inputs": [{ 524 | "internalType": "address", 525 | "name": "to", 526 | "type": "address" 527 | }, { 528 | "internalType": "uint256", 529 | "name": "value", 530 | "type": "uint256" 531 | }], 532 | "name": "transfer", 533 | "outputs": [{ 534 | "internalType": "bool", 535 | "name": "", 536 | "type": "bool" 537 | }], 538 | "payable": false, 539 | "stateMutability": "nonpayable", 540 | "type": "function" 541 | }, { 542 | "constant": false, 543 | "inputs": [{ 544 | "internalType": "address", 545 | "name": "from", 546 | "type": "address" 547 | }, { 548 | "internalType": "address", 549 | "name": "to", 550 | "type": "address" 551 | }, { 552 | "internalType": "uint256", 553 | "name": "value", 554 | "type": "uint256" 555 | }], 556 | "name": "transferFrom", 557 | "outputs": [{ 558 | "internalType": "bool", 559 | "name": "", 560 | "type": "bool" 561 | }], 562 | "payable": false, 563 | "stateMutability": "nonpayable", 564 | "type": "function" 565 | }] -------------------------------------------------------------------------------- /bond.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "inputs": [{ 3 | "internalType": "address", 4 | "name": "_ASGARD", 5 | "type": "address" 6 | }, { 7 | "internalType": "address", 8 | "name": "_principle", 9 | "type": "address" 10 | }, { 11 | "internalType": "address", 12 | "name": "_treasury", 13 | "type": "address" 14 | }, { 15 | "internalType": "address", 16 | "name": "_DAO", 17 | "type": "address" 18 | }, { 19 | "internalType": "address", 20 | "name": "_bondCalculator", 21 | "type": "address" 22 | }], 23 | "stateMutability": "nonpayable", 24 | "type": "constructor" 25 | }, { 26 | "anonymous": false, 27 | "inputs": [{ 28 | "indexed": false, 29 | "internalType": "uint256", 30 | "name": "deposit", 31 | "type": "uint256" 32 | }, { 33 | "indexed": true, 34 | "internalType": "uint256", 35 | "name": "payout", 36 | "type": "uint256" 37 | }, { 38 | "indexed": true, 39 | "internalType": "uint256", 40 | "name": "expires", 41 | "type": "uint256" 42 | }, { 43 | "indexed": true, 44 | "internalType": "uint256", 45 | "name": "priceInUSD", 46 | "type": "uint256" 47 | }], 48 | "name": "BondCreated", 49 | "type": "event" 50 | }, { 51 | "anonymous": false, 52 | "inputs": [{ 53 | "indexed": true, 54 | "internalType": "uint256", 55 | "name": "priceInUSD", 56 | "type": "uint256" 57 | }, { 58 | "indexed": true, 59 | "internalType": "uint256", 60 | "name": "internalPrice", 61 | "type": "uint256" 62 | }, { 63 | "indexed": true, 64 | "internalType": "uint256", 65 | "name": "debtRatio", 66 | "type": "uint256" 67 | }], 68 | "name": "BondPriceChanged", 69 | "type": "event" 70 | }, { 71 | "anonymous": false, 72 | "inputs": [{ 73 | "indexed": true, 74 | "internalType": "address", 75 | "name": "recipient", 76 | "type": "address" 77 | }, { 78 | "indexed": false, 79 | "internalType": "uint256", 80 | "name": "payout", 81 | "type": "uint256" 82 | }, { 83 | "indexed": false, 84 | "internalType": "uint256", 85 | "name": "remaining", 86 | "type": "uint256" 87 | }], 88 | "name": "BondRedeemed", 89 | "type": "event" 90 | }, { 91 | "anonymous": false, 92 | "inputs": [{ 93 | "indexed": false, 94 | "internalType": "uint256", 95 | "name": "initialBCV", 96 | "type": "uint256" 97 | }, { 98 | "indexed": false, 99 | "internalType": "uint256", 100 | "name": "newBCV", 101 | "type": "uint256" 102 | }, { 103 | "indexed": false, 104 | "internalType": "uint256", 105 | "name": "adjustment", 106 | "type": "uint256" 107 | }, { 108 | "indexed": false, 109 | "internalType": "bool", 110 | "name": "addition", 111 | "type": "bool" 112 | }], 113 | "name": "ControlVariableAdjustment", 114 | "type": "event" 115 | }, { 116 | "anonymous": false, 117 | "inputs": [{ 118 | "indexed": true, 119 | "internalType": "address", 120 | "name": "previousOwner", 121 | "type": "address" 122 | }, { 123 | "indexed": true, 124 | "internalType": "address", 125 | "name": "newOwner", 126 | "type": "address" 127 | }], 128 | "name": "OwnershipPulled", 129 | "type": "event" 130 | }, { 131 | "anonymous": false, 132 | "inputs": [{ 133 | "indexed": true, 134 | "internalType": "address", 135 | "name": "previousOwner", 136 | "type": "address" 137 | }, { 138 | "indexed": true, 139 | "internalType": "address", 140 | "name": "newOwner", 141 | "type": "address" 142 | }], 143 | "name": "OwnershipPushed", 144 | "type": "event" 145 | }, { 146 | "inputs": [], 147 | "name": "ASGARD", 148 | "outputs": [{ 149 | "internalType": "address", 150 | "name": "", 151 | "type": "address" 152 | }], 153 | "stateMutability": "view", 154 | "type": "function" 155 | }, { 156 | "inputs": [], 157 | "name": "DAO", 158 | "outputs": [{ 159 | "internalType": "address", 160 | "name": "", 161 | "type": "address" 162 | }], 163 | "stateMutability": "view", 164 | "type": "function" 165 | }, { 166 | "inputs": [], 167 | "name": "adjustment", 168 | "outputs": [{ 169 | "internalType": "bool", 170 | "name": "add", 171 | "type": "bool" 172 | }, { 173 | "internalType": "uint256", 174 | "name": "rate", 175 | "type": "uint256" 176 | }, { 177 | "internalType": "uint256", 178 | "name": "target", 179 | "type": "uint256" 180 | }, { 181 | "internalType": "uint256", 182 | "name": "buffer", 183 | "type": "uint256" 184 | }, { 185 | "internalType": "uint256", 186 | "name": "lastBlock", 187 | "type": "uint256" 188 | }], 189 | "stateMutability": "view", 190 | "type": "function" 191 | }, { 192 | "inputs": [], 193 | "name": "bondCalculator", 194 | "outputs": [{ 195 | "internalType": "address", 196 | "name": "", 197 | "type": "address" 198 | }], 199 | "stateMutability": "view", 200 | "type": "function" 201 | }, { 202 | "inputs": [{ 203 | "internalType": "address", 204 | "name": "", 205 | "type": "address" 206 | }], 207 | "name": "bondInfo", 208 | "outputs": [{ 209 | "internalType": "uint256", 210 | "name": "payout", 211 | "type": "uint256" 212 | }, { 213 | "internalType": "uint256", 214 | "name": "vesting", 215 | "type": "uint256" 216 | }, { 217 | "internalType": "uint256", 218 | "name": "lastBlock", 219 | "type": "uint256" 220 | }, { 221 | "internalType": "uint256", 222 | "name": "pricePaid", 223 | "type": "uint256" 224 | }], 225 | "stateMutability": "view", 226 | "type": "function" 227 | }, { 228 | "inputs": [], 229 | "name": "bondPrice", 230 | "outputs": [{ 231 | "internalType": "uint256", 232 | "name": "price_", 233 | "type": "uint256" 234 | }], 235 | "stateMutability": "view", 236 | "type": "function" 237 | }, { 238 | "inputs": [], 239 | "name": "bondPriceInUSD", 240 | "outputs": [{ 241 | "internalType": "uint256", 242 | "name": "price_", 243 | "type": "uint256" 244 | }], 245 | "stateMutability": "view", 246 | "type": "function" 247 | }, { 248 | "inputs": [], 249 | "name": "currentDebt", 250 | "outputs": [{ 251 | "internalType": "uint256", 252 | "name": "", 253 | "type": "uint256" 254 | }], 255 | "stateMutability": "view", 256 | "type": "function" 257 | }, { 258 | "inputs": [], 259 | "name": "debtDecay", 260 | "outputs": [{ 261 | "internalType": "uint256", 262 | "name": "decay_", 263 | "type": "uint256" 264 | }], 265 | "stateMutability": "view", 266 | "type": "function" 267 | }, { 268 | "inputs": [], 269 | "name": "debtRatio", 270 | "outputs": [{ 271 | "internalType": "uint256", 272 | "name": "debtRatio_", 273 | "type": "uint256" 274 | }], 275 | "stateMutability": "view", 276 | "type": "function" 277 | }, { 278 | "inputs": [{ 279 | "internalType": "uint256", 280 | "name": "_amount", 281 | "type": "uint256" 282 | }, { 283 | "internalType": "uint256", 284 | "name": "_maxPrice", 285 | "type": "uint256" 286 | }, { 287 | "internalType": "address", 288 | "name": "_depositor", 289 | "type": "address" 290 | }], 291 | "name": "deposit", 292 | "outputs": [{ 293 | "internalType": "uint256", 294 | "name": "", 295 | "type": "uint256" 296 | }], 297 | "stateMutability": "nonpayable", 298 | "type": "function" 299 | }, { 300 | "inputs": [{ 301 | "internalType": "uint256", 302 | "name": "_controlVariable", 303 | "type": "uint256" 304 | }, { 305 | "internalType": "uint256", 306 | "name": "_vestingTerm", 307 | "type": "uint256" 308 | }, { 309 | "internalType": "uint256", 310 | "name": "_minimumPrice", 311 | "type": "uint256" 312 | }, { 313 | "internalType": "uint256", 314 | "name": "_maxPayout", 315 | "type": "uint256" 316 | }, { 317 | "internalType": "uint256", 318 | "name": "_fee", 319 | "type": "uint256" 320 | }, { 321 | "internalType": "uint256", 322 | "name": "_maxDebt", 323 | "type": "uint256" 324 | }, { 325 | "internalType": "uint256", 326 | "name": "_initialDebt", 327 | "type": "uint256" 328 | }], 329 | "name": "initializeBondTerms", 330 | "outputs": [], 331 | "stateMutability": "nonpayable", 332 | "type": "function" 333 | }, { 334 | "inputs": [], 335 | "name": "isLiquidityBond", 336 | "outputs": [{ 337 | "internalType": "bool", 338 | "name": "", 339 | "type": "bool" 340 | }], 341 | "stateMutability": "view", 342 | "type": "function" 343 | }, { 344 | "inputs": [], 345 | "name": "lastDecay", 346 | "outputs": [{ 347 | "internalType": "uint256", 348 | "name": "", 349 | "type": "uint256" 350 | }], 351 | "stateMutability": "view", 352 | "type": "function" 353 | }, { 354 | "inputs": [], 355 | "name": "maxPayout", 356 | "outputs": [{ 357 | "internalType": "uint256", 358 | "name": "", 359 | "type": "uint256" 360 | }], 361 | "stateMutability": "view", 362 | "type": "function" 363 | }, { 364 | "inputs": [{ 365 | "internalType": "uint256", 366 | "name": "_value", 367 | "type": "uint256" 368 | }], 369 | "name": "payoutFor", 370 | "outputs": [{ 371 | "internalType": "uint256", 372 | "name": "", 373 | "type": "uint256" 374 | }], 375 | "stateMutability": "view", 376 | "type": "function" 377 | }, { 378 | "inputs": [{ 379 | "internalType": "address", 380 | "name": "_depositor", 381 | "type": "address" 382 | }], 383 | "name": "pendingPayoutFor", 384 | "outputs": [{ 385 | "internalType": "uint256", 386 | "name": "pendingPayout_", 387 | "type": "uint256" 388 | }], 389 | "stateMutability": "view", 390 | "type": "function" 391 | }, { 392 | "inputs": [{ 393 | "internalType": "address", 394 | "name": "_depositor", 395 | "type": "address" 396 | }], 397 | "name": "percentVestedFor", 398 | "outputs": [{ 399 | "internalType": "uint256", 400 | "name": "percentVested_", 401 | "type": "uint256" 402 | }], 403 | "stateMutability": "view", 404 | "type": "function" 405 | }, { 406 | "inputs": [], 407 | "name": "policy", 408 | "outputs": [{ 409 | "internalType": "address", 410 | "name": "", 411 | "type": "address" 412 | }], 413 | "stateMutability": "view", 414 | "type": "function" 415 | }, { 416 | "inputs": [], 417 | "name": "principle", 418 | "outputs": [{ 419 | "internalType": "address", 420 | "name": "", 421 | "type": "address" 422 | }], 423 | "stateMutability": "view", 424 | "type": "function" 425 | }, { 426 | "inputs": [], 427 | "name": "pullManagement", 428 | "outputs": [], 429 | "stateMutability": "nonpayable", 430 | "type": "function" 431 | }, { 432 | "inputs": [{ 433 | "internalType": "address", 434 | "name": "newOwner_", 435 | "type": "address" 436 | }], 437 | "name": "pushManagement", 438 | "outputs": [], 439 | "stateMutability": "nonpayable", 440 | "type": "function" 441 | }, { 442 | "inputs": [{ 443 | "internalType": "address", 444 | "name": "_token", 445 | "type": "address" 446 | }], 447 | "name": "recoverLostToken", 448 | "outputs": [{ 449 | "internalType": "bool", 450 | "name": "", 451 | "type": "bool" 452 | }], 453 | "stateMutability": "nonpayable", 454 | "type": "function" 455 | }, { 456 | "inputs": [{ 457 | "internalType": "address", 458 | "name": "_recipient", 459 | "type": "address" 460 | }, { 461 | "internalType": "bool", 462 | "name": "_stake", 463 | "type": "bool" 464 | }], 465 | "name": "redeem", 466 | "outputs": [{ 467 | "internalType": "uint256", 468 | "name": "", 469 | "type": "uint256" 470 | }], 471 | "stateMutability": "nonpayable", 472 | "type": "function" 473 | }, { 474 | "inputs": [], 475 | "name": "renounceManagement", 476 | "outputs": [], 477 | "stateMutability": "nonpayable", 478 | "type": "function" 479 | }, { 480 | "inputs": [{ 481 | "internalType": "bool", 482 | "name": "_addition", 483 | "type": "bool" 484 | }, { 485 | "internalType": "uint256", 486 | "name": "_increment", 487 | "type": "uint256" 488 | }, { 489 | "internalType": "uint256", 490 | "name": "_target", 491 | "type": "uint256" 492 | }, { 493 | "internalType": "uint256", 494 | "name": "_buffer", 495 | "type": "uint256" 496 | }], 497 | "name": "setAdjustment", 498 | "outputs": [], 499 | "stateMutability": "nonpayable", 500 | "type": "function" 501 | }, { 502 | "inputs": [{ 503 | "internalType": "enum ASGARDBondDepository.PARAMETER", 504 | "name": "_parameter", 505 | "type": "uint8" 506 | }, { 507 | "internalType": "uint256", 508 | "name": "_input", 509 | "type": "uint256" 510 | }], 511 | "name": "setBondTerms", 512 | "outputs": [], 513 | "stateMutability": "nonpayable", 514 | "type": "function" 515 | }, { 516 | "inputs": [{ 517 | "internalType": "address", 518 | "name": "_staking", 519 | "type": "address" 520 | }, { 521 | "internalType": "bool", 522 | "name": "_helper", 523 | "type": "bool" 524 | }], 525 | "name": "setStaking", 526 | "outputs": [], 527 | "stateMutability": "nonpayable", 528 | "type": "function" 529 | }, { 530 | "inputs": [], 531 | "name": "staking", 532 | "outputs": [{ 533 | "internalType": "address", 534 | "name": "", 535 | "type": "address" 536 | }], 537 | "stateMutability": "view", 538 | "type": "function" 539 | }, { 540 | "inputs": [], 541 | "name": "stakingHelper", 542 | "outputs": [{ 543 | "internalType": "address", 544 | "name": "", 545 | "type": "address" 546 | }], 547 | "stateMutability": "view", 548 | "type": "function" 549 | }, { 550 | "inputs": [], 551 | "name": "standardizedDebtRatio", 552 | "outputs": [{ 553 | "internalType": "uint256", 554 | "name": "", 555 | "type": "uint256" 556 | }], 557 | "stateMutability": "view", 558 | "type": "function" 559 | }, { 560 | "inputs": [], 561 | "name": "terms", 562 | "outputs": [{ 563 | "internalType": "uint256", 564 | "name": "controlVariable", 565 | "type": "uint256" 566 | }, { 567 | "internalType": "uint256", 568 | "name": "vestingTerm", 569 | "type": "uint256" 570 | }, { 571 | "internalType": "uint256", 572 | "name": "minimumPrice", 573 | "type": "uint256" 574 | }, { 575 | "internalType": "uint256", 576 | "name": "maxPayout", 577 | "type": "uint256" 578 | }, { 579 | "internalType": "uint256", 580 | "name": "fee", 581 | "type": "uint256" 582 | }, { 583 | "internalType": "uint256", 584 | "name": "maxDebt", 585 | "type": "uint256" 586 | }], 587 | "stateMutability": "view", 588 | "type": "function" 589 | }, { 590 | "inputs": [], 591 | "name": "totalDebt", 592 | "outputs": [{ 593 | "internalType": "uint256", 594 | "name": "", 595 | "type": "uint256" 596 | }], 597 | "stateMutability": "view", 598 | "type": "function" 599 | }, { 600 | "inputs": [], 601 | "name": "treasury", 602 | "outputs": [{ 603 | "internalType": "address", 604 | "name": "", 605 | "type": "address" 606 | }], 607 | "stateMutability": "view", 608 | "type": "function" 609 | }, { 610 | "inputs": [], 611 | "name": "useHelper", 612 | "outputs": [{ 613 | "internalType": "bool", 614 | "name": "", 615 | "type": "bool" 616 | }], 617 | "stateMutability": "view", 618 | "type": "function" 619 | }] -------------------------------------------------------------------------------- /bondV2.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "address", 6 | "name": "_NETW", 7 | "type": "address" 8 | }, 9 | { 10 | "internalType": "address", 11 | "name": "_principle", 12 | "type": "address" 13 | }, 14 | { 15 | "internalType": "address", 16 | "name": "_treasury", 17 | "type": "address" 18 | }, 19 | { 20 | "internalType": "address", 21 | "name": "_DAO", 22 | "type": "address" 23 | }, 24 | { 25 | "internalType": "address", 26 | "name": "_pair", 27 | "type": "address" 28 | } 29 | ], 30 | "stateMutability": "nonpayable", 31 | "type": "constructor" 32 | }, 33 | { 34 | "anonymous": false, 35 | "inputs": [ 36 | { 37 | "indexed": false, 38 | "internalType": "uint256", 39 | "name": "deposit", 40 | "type": "uint256" 41 | }, 42 | { 43 | "indexed": true, 44 | "internalType": "uint256", 45 | "name": "payout", 46 | "type": "uint256" 47 | }, 48 | { 49 | "indexed": true, 50 | "internalType": "uint256", 51 | "name": "expires", 52 | "type": "uint256" 53 | }, 54 | { 55 | "indexed": true, 56 | "internalType": "uint256", 57 | "name": "priceInUSD", 58 | "type": "uint256" 59 | } 60 | ], 61 | "name": "BondCreated", 62 | "type": "event" 63 | }, 64 | { 65 | "anonymous": false, 66 | "inputs": [ 67 | { 68 | "indexed": true, 69 | "internalType": "uint256", 70 | "name": "priceInUSD", 71 | "type": "uint256" 72 | }, 73 | { 74 | "indexed": true, 75 | "internalType": "uint256", 76 | "name": "internalPrice", 77 | "type": "uint256" 78 | }, 79 | { 80 | "indexed": true, 81 | "internalType": "uint256", 82 | "name": "debtRatio", 83 | "type": "uint256" 84 | } 85 | ], 86 | "name": "BondPriceChanged", 87 | "type": "event" 88 | }, 89 | { 90 | "anonymous": false, 91 | "inputs": [ 92 | { 93 | "indexed": true, 94 | "internalType": "address", 95 | "name": "recipient", 96 | "type": "address" 97 | }, 98 | { 99 | "indexed": false, 100 | "internalType": "uint256", 101 | "name": "payout", 102 | "type": "uint256" 103 | }, 104 | { 105 | "indexed": false, 106 | "internalType": "uint256", 107 | "name": "remaining", 108 | "type": "uint256" 109 | } 110 | ], 111 | "name": "BondRedeemed", 112 | "type": "event" 113 | }, 114 | { 115 | "anonymous": false, 116 | "inputs": [ 117 | { 118 | "indexed": false, 119 | "internalType": "uint256", 120 | "name": "initialBCV", 121 | "type": "uint256" 122 | }, 123 | { 124 | "indexed": false, 125 | "internalType": "uint256", 126 | "name": "newBCV", 127 | "type": "uint256" 128 | }, 129 | { 130 | "indexed": false, 131 | "internalType": "uint256", 132 | "name": "adjustment", 133 | "type": "uint256" 134 | }, 135 | { 136 | "indexed": false, 137 | "internalType": "bool", 138 | "name": "addition", 139 | "type": "bool" 140 | } 141 | ], 142 | "name": "ControlVariableAdjustment", 143 | "type": "event" 144 | }, 145 | { 146 | "inputs": [ 147 | { 148 | "internalType": "uint256", 149 | "name": "_amount", 150 | "type": "uint256" 151 | }, 152 | { 153 | "internalType": "uint256", 154 | "name": "_maxPrice", 155 | "type": "uint256" 156 | }, 157 | { 158 | "internalType": "address", 159 | "name": "_depositor", 160 | "type": "address" 161 | } 162 | ], 163 | "name": "deposit", 164 | "outputs": [ 165 | { 166 | "internalType": "uint256", 167 | "name": "", 168 | "type": "uint256" 169 | } 170 | ], 171 | "stateMutability": "nonpayable", 172 | "type": "function" 173 | }, 174 | { 175 | "inputs": [ 176 | { 177 | "internalType": "uint256", 178 | "name": "_controlVariable", 179 | "type": "uint256" 180 | }, 181 | { 182 | "internalType": "uint256", 183 | "name": "_vestingTerm", 184 | "type": "uint256" 185 | }, 186 | { 187 | "internalType": "uint256", 188 | "name": "_minimumPrice", 189 | "type": "uint256" 190 | }, 191 | { 192 | "internalType": "uint256", 193 | "name": "_maxPayout", 194 | "type": "uint256" 195 | }, 196 | { 197 | "internalType": "uint256", 198 | "name": "_maxDebt", 199 | "type": "uint256" 200 | }, 201 | { 202 | "internalType": "uint256", 203 | "name": "_initialDebt", 204 | "type": "uint256" 205 | } 206 | ], 207 | "name": "initializeBondTerms", 208 | "outputs": [], 209 | "stateMutability": "nonpayable", 210 | "type": "function" 211 | }, 212 | { 213 | "anonymous": false, 214 | "inputs": [ 215 | { 216 | "indexed": true, 217 | "internalType": "address", 218 | "name": "previousOwner", 219 | "type": "address" 220 | }, 221 | { 222 | "indexed": true, 223 | "internalType": "address", 224 | "name": "newOwner", 225 | "type": "address" 226 | } 227 | ], 228 | "name": "OwnershipPulled", 229 | "type": "event" 230 | }, 231 | { 232 | "anonymous": false, 233 | "inputs": [ 234 | { 235 | "indexed": true, 236 | "internalType": "address", 237 | "name": "previousOwner", 238 | "type": "address" 239 | }, 240 | { 241 | "indexed": true, 242 | "internalType": "address", 243 | "name": "newOwner", 244 | "type": "address" 245 | } 246 | ], 247 | "name": "OwnershipPushed", 248 | "type": "event" 249 | }, 250 | { 251 | "inputs": [], 252 | "name": "pullManagement", 253 | "outputs": [], 254 | "stateMutability": "nonpayable", 255 | "type": "function" 256 | }, 257 | { 258 | "inputs": [ 259 | { 260 | "internalType": "address", 261 | "name": "newOwner_", 262 | "type": "address" 263 | } 264 | ], 265 | "name": "pushManagement", 266 | "outputs": [], 267 | "stateMutability": "nonpayable", 268 | "type": "function" 269 | }, 270 | { 271 | "inputs": [ 272 | { 273 | "internalType": "address", 274 | "name": "_token", 275 | "type": "address" 276 | } 277 | ], 278 | "name": "recoverLostToken", 279 | "outputs": [ 280 | { 281 | "internalType": "bool", 282 | "name": "", 283 | "type": "bool" 284 | } 285 | ], 286 | "stateMutability": "nonpayable", 287 | "type": "function" 288 | }, 289 | { 290 | "inputs": [ 291 | { 292 | "internalType": "address", 293 | "name": "_recipient", 294 | "type": "address" 295 | }, 296 | { 297 | "internalType": "bool", 298 | "name": "_stake", 299 | "type": "bool" 300 | } 301 | ], 302 | "name": "redeem", 303 | "outputs": [ 304 | { 305 | "internalType": "uint256", 306 | "name": "", 307 | "type": "uint256" 308 | } 309 | ], 310 | "stateMutability": "nonpayable", 311 | "type": "function" 312 | }, 313 | { 314 | "inputs": [], 315 | "name": "renounceManagement", 316 | "outputs": [], 317 | "stateMutability": "nonpayable", 318 | "type": "function" 319 | }, 320 | { 321 | "inputs": [ 322 | { 323 | "internalType": "bool", 324 | "name": "_addition", 325 | "type": "bool" 326 | }, 327 | { 328 | "internalType": "uint256", 329 | "name": "_increment", 330 | "type": "uint256" 331 | }, 332 | { 333 | "internalType": "uint256", 334 | "name": "_target", 335 | "type": "uint256" 336 | }, 337 | { 338 | "internalType": "uint256", 339 | "name": "_buffer", 340 | "type": "uint256" 341 | } 342 | ], 343 | "name": "setAdjustment", 344 | "outputs": [], 345 | "stateMutability": "nonpayable", 346 | "type": "function" 347 | }, 348 | { 349 | "inputs": [ 350 | { 351 | "internalType": "enum NETWBondDepository.PARAMETER", 352 | "name": "_parameter", 353 | "type": "uint8" 354 | }, 355 | { 356 | "internalType": "uint256", 357 | "name": "_input", 358 | "type": "uint256" 359 | } 360 | ], 361 | "name": "setBondTerms", 362 | "outputs": [], 363 | "stateMutability": "nonpayable", 364 | "type": "function" 365 | }, 366 | { 367 | "inputs": [ 368 | { 369 | "internalType": "address", 370 | "name": "_staking", 371 | "type": "address" 372 | }, 373 | { 374 | "internalType": "bool", 375 | "name": "_helper", 376 | "type": "bool" 377 | } 378 | ], 379 | "name": "setStaking", 380 | "outputs": [], 381 | "stateMutability": "nonpayable", 382 | "type": "function" 383 | }, 384 | { 385 | "inputs": [ 386 | { 387 | "internalType": "uint256", 388 | "name": "decimal", 389 | "type": "uint256" 390 | } 391 | ], 392 | "name": "updatePriceDecimal", 393 | "outputs": [], 394 | "stateMutability": "nonpayable", 395 | "type": "function" 396 | }, 397 | { 398 | "inputs": [], 399 | "name": "adjustment", 400 | "outputs": [ 401 | { 402 | "internalType": "bool", 403 | "name": "add", 404 | "type": "bool" 405 | }, 406 | { 407 | "internalType": "uint256", 408 | "name": "rate", 409 | "type": "uint256" 410 | }, 411 | { 412 | "internalType": "uint256", 413 | "name": "target", 414 | "type": "uint256" 415 | }, 416 | { 417 | "internalType": "uint256", 418 | "name": "buffer", 419 | "type": "uint256" 420 | }, 421 | { 422 | "internalType": "uint256", 423 | "name": "lastBlock", 424 | "type": "uint256" 425 | } 426 | ], 427 | "stateMutability": "view", 428 | "type": "function" 429 | }, 430 | { 431 | "inputs": [], 432 | "name": "assetPrice", 433 | "outputs": [ 434 | { 435 | "internalType": "uint256", 436 | "name": "price", 437 | "type": "uint256" 438 | } 439 | ], 440 | "stateMutability": "view", 441 | "type": "function" 442 | }, 443 | { 444 | "inputs": [], 445 | "name": "assetPriceDecimal", 446 | "outputs": [ 447 | { 448 | "internalType": "uint256", 449 | "name": "", 450 | "type": "uint256" 451 | } 452 | ], 453 | "stateMutability": "view", 454 | "type": "function" 455 | }, 456 | { 457 | "inputs": [ 458 | { 459 | "internalType": "address", 460 | "name": "", 461 | "type": "address" 462 | } 463 | ], 464 | "name": "bondInfo", 465 | "outputs": [ 466 | { 467 | "internalType": "uint256", 468 | "name": "payout", 469 | "type": "uint256" 470 | }, 471 | { 472 | "internalType": "uint256", 473 | "name": "vesting", 474 | "type": "uint256" 475 | }, 476 | { 477 | "internalType": "uint256", 478 | "name": "lastBlock", 479 | "type": "uint256" 480 | }, 481 | { 482 | "internalType": "uint256", 483 | "name": "pricePaid", 484 | "type": "uint256" 485 | } 486 | ], 487 | "stateMutability": "view", 488 | "type": "function" 489 | }, 490 | { 491 | "inputs": [], 492 | "name": "bondPrice", 493 | "outputs": [ 494 | { 495 | "internalType": "uint256", 496 | "name": "price_", 497 | "type": "uint256" 498 | } 499 | ], 500 | "stateMutability": "view", 501 | "type": "function" 502 | }, 503 | { 504 | "inputs": [], 505 | "name": "bondPriceInUSD", 506 | "outputs": [ 507 | { 508 | "internalType": "uint256", 509 | "name": "price_", 510 | "type": "uint256" 511 | } 512 | ], 513 | "stateMutability": "view", 514 | "type": "function" 515 | }, 516 | { 517 | "inputs": [], 518 | "name": "currentDebt", 519 | "outputs": [ 520 | { 521 | "internalType": "uint256", 522 | "name": "", 523 | "type": "uint256" 524 | } 525 | ], 526 | "stateMutability": "view", 527 | "type": "function" 528 | }, 529 | { 530 | "inputs": [], 531 | "name": "DAO", 532 | "outputs": [ 533 | { 534 | "internalType": "address", 535 | "name": "", 536 | "type": "address" 537 | } 538 | ], 539 | "stateMutability": "view", 540 | "type": "function" 541 | }, 542 | { 543 | "inputs": [], 544 | "name": "debtDecay", 545 | "outputs": [ 546 | { 547 | "internalType": "uint256", 548 | "name": "decay_", 549 | "type": "uint256" 550 | } 551 | ], 552 | "stateMutability": "view", 553 | "type": "function" 554 | }, 555 | { 556 | "inputs": [], 557 | "name": "debtRatio", 558 | "outputs": [ 559 | { 560 | "internalType": "uint256", 561 | "name": "debtRatio_", 562 | "type": "uint256" 563 | } 564 | ], 565 | "stateMutability": "view", 566 | "type": "function" 567 | }, 568 | { 569 | "inputs": [], 570 | "name": "lastDecay", 571 | "outputs": [ 572 | { 573 | "internalType": "uint256", 574 | "name": "", 575 | "type": "uint256" 576 | } 577 | ], 578 | "stateMutability": "view", 579 | "type": "function" 580 | }, 581 | { 582 | "inputs": [], 583 | "name": "maxPayout", 584 | "outputs": [ 585 | { 586 | "internalType": "uint256", 587 | "name": "", 588 | "type": "uint256" 589 | } 590 | ], 591 | "stateMutability": "view", 592 | "type": "function" 593 | }, 594 | { 595 | "inputs": [], 596 | "name": "NETW", 597 | "outputs": [ 598 | { 599 | "internalType": "address", 600 | "name": "", 601 | "type": "address" 602 | } 603 | ], 604 | "stateMutability": "view", 605 | "type": "function" 606 | }, 607 | { 608 | "inputs": [], 609 | "name": "pair", 610 | "outputs": [ 611 | { 612 | "internalType": "address", 613 | "name": "", 614 | "type": "address" 615 | } 616 | ], 617 | "stateMutability": "view", 618 | "type": "function" 619 | }, 620 | { 621 | "inputs": [ 622 | { 623 | "internalType": "uint256", 624 | "name": "_value", 625 | "type": "uint256" 626 | } 627 | ], 628 | "name": "payoutFor", 629 | "outputs": [ 630 | { 631 | "internalType": "uint256", 632 | "name": "", 633 | "type": "uint256" 634 | } 635 | ], 636 | "stateMutability": "view", 637 | "type": "function" 638 | }, 639 | { 640 | "inputs": [ 641 | { 642 | "internalType": "address", 643 | "name": "_depositor", 644 | "type": "address" 645 | } 646 | ], 647 | "name": "pendingPayoutFor", 648 | "outputs": [ 649 | { 650 | "internalType": "uint256", 651 | "name": "pendingPayout_", 652 | "type": "uint256" 653 | } 654 | ], 655 | "stateMutability": "view", 656 | "type": "function" 657 | }, 658 | { 659 | "inputs": [ 660 | { 661 | "internalType": "address", 662 | "name": "_depositor", 663 | "type": "address" 664 | } 665 | ], 666 | "name": "percentVestedFor", 667 | "outputs": [ 668 | { 669 | "internalType": "uint256", 670 | "name": "percentVested_", 671 | "type": "uint256" 672 | } 673 | ], 674 | "stateMutability": "view", 675 | "type": "function" 676 | }, 677 | { 678 | "inputs": [], 679 | "name": "policy", 680 | "outputs": [ 681 | { 682 | "internalType": "address", 683 | "name": "", 684 | "type": "address" 685 | } 686 | ], 687 | "stateMutability": "view", 688 | "type": "function" 689 | }, 690 | { 691 | "inputs": [], 692 | "name": "principle", 693 | "outputs": [ 694 | { 695 | "internalType": "address", 696 | "name": "", 697 | "type": "address" 698 | } 699 | ], 700 | "stateMutability": "view", 701 | "type": "function" 702 | }, 703 | { 704 | "inputs": [], 705 | "name": "staking", 706 | "outputs": [ 707 | { 708 | "internalType": "address", 709 | "name": "", 710 | "type": "address" 711 | } 712 | ], 713 | "stateMutability": "view", 714 | "type": "function" 715 | }, 716 | { 717 | "inputs": [], 718 | "name": "stakingHelper", 719 | "outputs": [ 720 | { 721 | "internalType": "address", 722 | "name": "", 723 | "type": "address" 724 | } 725 | ], 726 | "stateMutability": "view", 727 | "type": "function" 728 | }, 729 | { 730 | "inputs": [], 731 | "name": "standardizedDebtRatio", 732 | "outputs": [ 733 | { 734 | "internalType": "uint256", 735 | "name": "", 736 | "type": "uint256" 737 | } 738 | ], 739 | "stateMutability": "view", 740 | "type": "function" 741 | }, 742 | { 743 | "inputs": [], 744 | "name": "terms", 745 | "outputs": [ 746 | { 747 | "internalType": "uint256", 748 | "name": "controlVariable", 749 | "type": "uint256" 750 | }, 751 | { 752 | "internalType": "uint256", 753 | "name": "vestingTerm", 754 | "type": "uint256" 755 | }, 756 | { 757 | "internalType": "uint256", 758 | "name": "minimumPrice", 759 | "type": "uint256" 760 | }, 761 | { 762 | "internalType": "uint256", 763 | "name": "maxPayout", 764 | "type": "uint256" 765 | }, 766 | { 767 | "internalType": "uint256", 768 | "name": "maxDebt", 769 | "type": "uint256" 770 | } 771 | ], 772 | "stateMutability": "view", 773 | "type": "function" 774 | }, 775 | { 776 | "inputs": [], 777 | "name": "totalDebt", 778 | "outputs": [ 779 | { 780 | "internalType": "uint256", 781 | "name": "", 782 | "type": "uint256" 783 | } 784 | ], 785 | "stateMutability": "view", 786 | "type": "function" 787 | }, 788 | { 789 | "inputs": [], 790 | "name": "treasury", 791 | "outputs": [ 792 | { 793 | "internalType": "address", 794 | "name": "", 795 | "type": "address" 796 | } 797 | ], 798 | "stateMutability": "view", 799 | "type": "function" 800 | }, 801 | { 802 | "inputs": [], 803 | "name": "useHelper", 804 | "outputs": [ 805 | { 806 | "internalType": "bool", 807 | "name": "", 808 | "type": "bool" 809 | } 810 | ], 811 | "stateMutability": "view", 812 | "type": "function" 813 | } 814 | ] -------------------------------------------------------------------------------- /bondFour.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "inputs": [{ 3 | "internalType": "string", 4 | "name": "_name", 5 | "type": "string" 6 | }, { 7 | "internalType": "address", 8 | "name": "_NETW", 9 | "type": "address" 10 | }, { 11 | "internalType": "address", 12 | "name": "_sNETW", 13 | "type": "address" 14 | }, { 15 | "internalType": "address", 16 | "name": "_principle", 17 | "type": "address" 18 | }, { 19 | "internalType": "address", 20 | "name": "_treasury", 21 | "type": "address" 22 | }, { 23 | "internalType": "address", 24 | "name": "_DAO", 25 | "type": "address" 26 | }, { 27 | "internalType": "address", 28 | "name": "_bondCalculator", 29 | "type": "address" 30 | }], 31 | "stateMutability": "nonpayable", 32 | "type": "constructor" 33 | }, { 34 | "anonymous": false, 35 | "inputs": [{ 36 | "indexed": false, 37 | "internalType": "uint256", 38 | "name": "deposit", 39 | "type": "uint256" 40 | }, { 41 | "indexed": true, 42 | "internalType": "uint256", 43 | "name": "payout", 44 | "type": "uint256" 45 | }, { 46 | "indexed": true, 47 | "internalType": "uint256", 48 | "name": "expires", 49 | "type": "uint256" 50 | }, { 51 | "indexed": true, 52 | "internalType": "uint256", 53 | "name": "priceInUSD", 54 | "type": "uint256" 55 | }], 56 | "name": "BondCreated", 57 | "type": "event" 58 | }, { 59 | "anonymous": false, 60 | "inputs": [{ 61 | "indexed": true, 62 | "internalType": "uint256", 63 | "name": "priceInUSD", 64 | "type": "uint256" 65 | }, { 66 | "indexed": true, 67 | "internalType": "uint256", 68 | "name": "internalPrice", 69 | "type": "uint256" 70 | }, { 71 | "indexed": true, 72 | "internalType": "uint256", 73 | "name": "debtRatio", 74 | "type": "uint256" 75 | }], 76 | "name": "BondPriceChanged", 77 | "type": "event" 78 | }, { 79 | "anonymous": false, 80 | "inputs": [{ 81 | "indexed": true, 82 | "internalType": "address", 83 | "name": "recipient", 84 | "type": "address" 85 | }, { 86 | "indexed": false, 87 | "internalType": "uint256", 88 | "name": "payout", 89 | "type": "uint256" 90 | }, { 91 | "indexed": false, 92 | "internalType": "uint256", 93 | "name": "remaining", 94 | "type": "uint256" 95 | }], 96 | "name": "BondRedeemed", 97 | "type": "event" 98 | }, { 99 | "anonymous": false, 100 | "inputs": [{ 101 | "indexed": false, 102 | "internalType": "uint256", 103 | "name": "initialBCV", 104 | "type": "uint256" 105 | }, { 106 | "indexed": false, 107 | "internalType": "uint256", 108 | "name": "newBCV", 109 | "type": "uint256" 110 | }, { 111 | "indexed": false, 112 | "internalType": "uint256", 113 | "name": "adjustment", 114 | "type": "uint256" 115 | }, { 116 | "indexed": false, 117 | "internalType": "bool", 118 | "name": "addition", 119 | "type": "bool" 120 | }], 121 | "name": "ControlVariableAdjustment", 122 | "type": "event" 123 | }, { 124 | "anonymous": false, 125 | "inputs": [{ 126 | "indexed": true, 127 | "internalType": "address", 128 | "name": "previousOwner", 129 | "type": "address" 130 | }, { 131 | "indexed": true, 132 | "internalType": "address", 133 | "name": "newOwner", 134 | "type": "address" 135 | }], 136 | "name": "OwnershipPulled", 137 | "type": "event" 138 | }, { 139 | "anonymous": false, 140 | "inputs": [{ 141 | "indexed": true, 142 | "internalType": "address", 143 | "name": "previousOwner", 144 | "type": "address" 145 | }, { 146 | "indexed": true, 147 | "internalType": "address", 148 | "name": "newOwner", 149 | "type": "address" 150 | }], 151 | "name": "OwnershipPushed", 152 | "type": "event" 153 | }, { 154 | "inputs": [], 155 | "name": "DAO", 156 | "outputs": [{ 157 | "internalType": "address", 158 | "name": "", 159 | "type": "address" 160 | }], 161 | "stateMutability": "view", 162 | "type": "function" 163 | }, { 164 | "inputs": [], 165 | "name": "NETW", 166 | "outputs": [{ 167 | "internalType": "address", 168 | "name": "", 169 | "type": "address" 170 | }], 171 | "stateMutability": "view", 172 | "type": "function" 173 | }, { 174 | "inputs": [{ 175 | "internalType": "address", 176 | "name": "", 177 | "type": "address" 178 | }], 179 | "name": "_bondInfo", 180 | "outputs": [{ 181 | "internalType": "uint256", 182 | "name": "gonsPayout", 183 | "type": "uint256" 184 | }, { 185 | "internalType": "uint256", 186 | "name": "netwPayout", 187 | "type": "uint256" 188 | }, { 189 | "internalType": "uint32", 190 | "name": "vesting", 191 | "type": "uint32" 192 | }, { 193 | "internalType": "uint32", 194 | "name": "lastTime", 195 | "type": "uint32" 196 | }, { 197 | "internalType": "uint256", 198 | "name": "pricePaid", 199 | "type": "uint256" 200 | }], 201 | "stateMutability": "view", 202 | "type": "function" 203 | }, { 204 | "inputs": [], 205 | "name": "adjustment", 206 | "outputs": [{ 207 | "internalType": "bool", 208 | "name": "add", 209 | "type": "bool" 210 | }, { 211 | "internalType": "uint256", 212 | "name": "rate", 213 | "type": "uint256" 214 | }, { 215 | "internalType": "uint256", 216 | "name": "target", 217 | "type": "uint256" 218 | }, { 219 | "internalType": "uint32", 220 | "name": "buffer", 221 | "type": "uint32" 222 | }, { 223 | "internalType": "uint32", 224 | "name": "lastTime", 225 | "type": "uint32" 226 | }], 227 | "stateMutability": "view", 228 | "type": "function" 229 | }, { 230 | "inputs": [], 231 | "name": "bondCalculator", 232 | "outputs": [{ 233 | "internalType": "address", 234 | "name": "", 235 | "type": "address" 236 | }], 237 | "stateMutability": "view", 238 | "type": "function" 239 | }, { 240 | "inputs": [{ 241 | "internalType": "address", 242 | "name": "_depositor", 243 | "type": "address" 244 | }], 245 | "name": "bondInfo", 246 | "outputs": [{ 247 | "internalType": "uint256", 248 | "name": "payout", 249 | "type": "uint256" 250 | }, { 251 | "internalType": "uint256", 252 | "name": "vesting", 253 | "type": "uint256" 254 | }, { 255 | "internalType": "uint256", 256 | "name": "lastTime", 257 | "type": "uint256" 258 | }, { 259 | "internalType": "uint256", 260 | "name": "pricePaid", 261 | "type": "uint256" 262 | }], 263 | "stateMutability": "view", 264 | "type": "function" 265 | }, { 266 | "inputs": [], 267 | "name": "bondPrice", 268 | "outputs": [{ 269 | "internalType": "uint256", 270 | "name": "price_", 271 | "type": "uint256" 272 | }], 273 | "stateMutability": "view", 274 | "type": "function" 275 | }, { 276 | "inputs": [], 277 | "name": "bondPriceInUSD", 278 | "outputs": [{ 279 | "internalType": "uint256", 280 | "name": "price_", 281 | "type": "uint256" 282 | }], 283 | "stateMutability": "view", 284 | "type": "function" 285 | }, { 286 | "inputs": [], 287 | "name": "currentDebt", 288 | "outputs": [{ 289 | "internalType": "uint256", 290 | "name": "", 291 | "type": "uint256" 292 | }], 293 | "stateMutability": "view", 294 | "type": "function" 295 | }, { 296 | "inputs": [], 297 | "name": "debtDecay", 298 | "outputs": [{ 299 | "internalType": "uint256", 300 | "name": "decay_", 301 | "type": "uint256" 302 | }], 303 | "stateMutability": "view", 304 | "type": "function" 305 | }, { 306 | "inputs": [], 307 | "name": "debtRatio", 308 | "outputs": [{ 309 | "internalType": "uint256", 310 | "name": "debtRatio_", 311 | "type": "uint256" 312 | }], 313 | "stateMutability": "view", 314 | "type": "function" 315 | }, { 316 | "inputs": [{ 317 | "internalType": "uint256", 318 | "name": "_amount", 319 | "type": "uint256" 320 | }, { 321 | "internalType": "uint256", 322 | "name": "_maxPrice", 323 | "type": "uint256" 324 | }, { 325 | "internalType": "address", 326 | "name": "_depositor", 327 | "type": "address" 328 | }], 329 | "name": "deposit", 330 | "outputs": [{ 331 | "internalType": "uint256", 332 | "name": "", 333 | "type": "uint256" 334 | }], 335 | "stateMutability": "nonpayable", 336 | "type": "function" 337 | }, { 338 | "inputs": [{ 339 | "internalType": "uint256", 340 | "name": "_controlVariable", 341 | "type": "uint256" 342 | }, { 343 | "internalType": "uint256", 344 | "name": "_minimumPrice", 345 | "type": "uint256" 346 | }, { 347 | "internalType": "uint256", 348 | "name": "_maxPayout", 349 | "type": "uint256" 350 | }, { 351 | "internalType": "uint256", 352 | "name": "_fee", 353 | "type": "uint256" 354 | }, { 355 | "internalType": "uint256", 356 | "name": "_maxDebt", 357 | "type": "uint256" 358 | }, { 359 | "internalType": "uint256", 360 | "name": "_initialDebt", 361 | "type": "uint256" 362 | }, { 363 | "internalType": "uint32", 364 | "name": "_vestingTerm", 365 | "type": "uint32" 366 | }], 367 | "name": "initializeBondTerms", 368 | "outputs": [], 369 | "stateMutability": "nonpayable", 370 | "type": "function" 371 | }, { 372 | "inputs": [], 373 | "name": "isLiquidityBond", 374 | "outputs": [{ 375 | "internalType": "bool", 376 | "name": "", 377 | "type": "bool" 378 | }], 379 | "stateMutability": "view", 380 | "type": "function" 381 | }, { 382 | "inputs": [], 383 | "name": "lastDecay", 384 | "outputs": [{ 385 | "internalType": "uint32", 386 | "name": "", 387 | "type": "uint32" 388 | }], 389 | "stateMutability": "view", 390 | "type": "function" 391 | }, { 392 | "inputs": [], 393 | "name": "maxPayout", 394 | "outputs": [{ 395 | "internalType": "uint256", 396 | "name": "", 397 | "type": "uint256" 398 | }], 399 | "stateMutability": "view", 400 | "type": "function" 401 | }, { 402 | "inputs": [], 403 | "name": "name", 404 | "outputs": [{ 405 | "internalType": "string", 406 | "name": "_name", 407 | "type": "string" 408 | }], 409 | "stateMutability": "view", 410 | "type": "function" 411 | }, { 412 | "inputs": [{ 413 | "internalType": "uint256", 414 | "name": "_value", 415 | "type": "uint256" 416 | }], 417 | "name": "payoutFor", 418 | "outputs": [{ 419 | "internalType": "uint256", 420 | "name": "", 421 | "type": "uint256" 422 | }], 423 | "stateMutability": "view", 424 | "type": "function" 425 | }, { 426 | "inputs": [{ 427 | "internalType": "address", 428 | "name": "_depositor", 429 | "type": "address" 430 | }], 431 | "name": "pendingPayoutFor", 432 | "outputs": [{ 433 | "internalType": "uint256", 434 | "name": "pendingPayout_", 435 | "type": "uint256" 436 | }], 437 | "stateMutability": "view", 438 | "type": "function" 439 | }, { 440 | "inputs": [{ 441 | "internalType": "address", 442 | "name": "_depositor", 443 | "type": "address" 444 | }], 445 | "name": "percentVestedFor", 446 | "outputs": [{ 447 | "internalType": "uint256", 448 | "name": "percentVested_", 449 | "type": "uint256" 450 | }], 451 | "stateMutability": "view", 452 | "type": "function" 453 | }, { 454 | "inputs": [], 455 | "name": "policy", 456 | "outputs": [{ 457 | "internalType": "address", 458 | "name": "", 459 | "type": "address" 460 | }], 461 | "stateMutability": "view", 462 | "type": "function" 463 | }, { 464 | "inputs": [], 465 | "name": "principle", 466 | "outputs": [{ 467 | "internalType": "address", 468 | "name": "", 469 | "type": "address" 470 | }], 471 | "stateMutability": "view", 472 | "type": "function" 473 | }, { 474 | "inputs": [], 475 | "name": "pullManagement", 476 | "outputs": [], 477 | "stateMutability": "nonpayable", 478 | "type": "function" 479 | }, { 480 | "inputs": [{ 481 | "internalType": "address", 482 | "name": "newOwner_", 483 | "type": "address" 484 | }], 485 | "name": "pushManagement", 486 | "outputs": [], 487 | "stateMutability": "nonpayable", 488 | "type": "function" 489 | }, { 490 | "inputs": [{ 491 | "internalType": "address", 492 | "name": "_token", 493 | "type": "address" 494 | }], 495 | "name": "recoverLostToken", 496 | "outputs": [{ 497 | "internalType": "bool", 498 | "name": "", 499 | "type": "bool" 500 | }], 501 | "stateMutability": "nonpayable", 502 | "type": "function" 503 | }, { 504 | "inputs": [{ 505 | "internalType": "address", 506 | "name": "_recipient", 507 | "type": "address" 508 | }, { 509 | "internalType": "bool", 510 | "name": "_stake", 511 | "type": "bool" 512 | }], 513 | "name": "redeem", 514 | "outputs": [{ 515 | "internalType": "uint256", 516 | "name": "", 517 | "type": "uint256" 518 | }], 519 | "stateMutability": "nonpayable", 520 | "type": "function" 521 | }, { 522 | "inputs": [], 523 | "name": "renounceManagement", 524 | "outputs": [], 525 | "stateMutability": "nonpayable", 526 | "type": "function" 527 | }, { 528 | "inputs": [], 529 | "name": "sNETW", 530 | "outputs": [{ 531 | "internalType": "address", 532 | "name": "", 533 | "type": "address" 534 | }], 535 | "stateMutability": "view", 536 | "type": "function" 537 | }, { 538 | "inputs": [{ 539 | "internalType": "bool", 540 | "name": "_addition", 541 | "type": "bool" 542 | }, { 543 | "internalType": "uint256", 544 | "name": "_increment", 545 | "type": "uint256" 546 | }, { 547 | "internalType": "uint256", 548 | "name": "_target", 549 | "type": "uint256" 550 | }, { 551 | "internalType": "uint32", 552 | "name": "_buffer", 553 | "type": "uint32" 554 | }], 555 | "name": "setAdjustment", 556 | "outputs": [], 557 | "stateMutability": "nonpayable", 558 | "type": "function" 559 | }, { 560 | "inputs": [{ 561 | "internalType": "enum NetwBondStakeDepository.PARAMETER", 562 | "name": "_parameter", 563 | "type": "uint8" 564 | }, { 565 | "internalType": "uint256", 566 | "name": "_input", 567 | "type": "uint256" 568 | }], 569 | "name": "setBondTerms", 570 | "outputs": [], 571 | "stateMutability": "nonpayable", 572 | "type": "function" 573 | }, { 574 | "inputs": [{ 575 | "internalType": "address", 576 | "name": "_staking", 577 | "type": "address" 578 | }], 579 | "name": "setStaking", 580 | "outputs": [], 581 | "stateMutability": "nonpayable", 582 | "type": "function" 583 | }, { 584 | "inputs": [], 585 | "name": "staking", 586 | "outputs": [{ 587 | "internalType": "address", 588 | "name": "", 589 | "type": "address" 590 | }], 591 | "stateMutability": "view", 592 | "type": "function" 593 | }, { 594 | "inputs": [], 595 | "name": "standardizedDebtRatio", 596 | "outputs": [{ 597 | "internalType": "uint256", 598 | "name": "", 599 | "type": "uint256" 600 | }], 601 | "stateMutability": "view", 602 | "type": "function" 603 | }, { 604 | "inputs": [], 605 | "name": "terms", 606 | "outputs": [{ 607 | "internalType": "uint256", 608 | "name": "controlVariable", 609 | "type": "uint256" 610 | }, { 611 | "internalType": "uint256", 612 | "name": "minimumPrice", 613 | "type": "uint256" 614 | }, { 615 | "internalType": "uint256", 616 | "name": "maxPayout", 617 | "type": "uint256" 618 | }, { 619 | "internalType": "uint256", 620 | "name": "fee", 621 | "type": "uint256" 622 | }, { 623 | "internalType": "uint256", 624 | "name": "maxDebt", 625 | "type": "uint256" 626 | }, { 627 | "internalType": "uint32", 628 | "name": "vestingTerm", 629 | "type": "uint32" 630 | }], 631 | "stateMutability": "view", 632 | "type": "function" 633 | }, { 634 | "inputs": [], 635 | "name": "totalDebt", 636 | "outputs": [{ 637 | "internalType": "uint256", 638 | "name": "", 639 | "type": "uint256" 640 | }], 641 | "stateMutability": "view", 642 | "type": "function" 643 | }, { 644 | "inputs": [], 645 | "name": "totalPrinciple", 646 | "outputs": [{ 647 | "internalType": "uint256", 648 | "name": "", 649 | "type": "uint256" 650 | }], 651 | "stateMutability": "view", 652 | "type": "function" 653 | }, { 654 | "inputs": [], 655 | "name": "treasury", 656 | "outputs": [{ 657 | "internalType": "address", 658 | "name": "", 659 | "type": "address" 660 | }], 661 | "stateMutability": "view", 662 | "type": "function" 663 | }] --------------------------------------------------------------------------------