@meterio/sumer-js 0.1.31 → 0.1.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/dist/browser/sumer.min.js +10 -10
  2. package/dist/nodejs/abi.d.ts +110 -12
  3. package/dist/nodejs/abi.js +6086 -4750
  4. package/dist/nodejs/abi.js.map +1 -1
  5. package/dist/nodejs/comptroller.d.ts +1 -1
  6. package/dist/nodejs/comptroller.js +17 -22
  7. package/dist/nodejs/comptroller.js.map +1 -1
  8. package/dist/nodejs/errors.d.ts +84 -0
  9. package/dist/nodejs/errors.js +84 -0
  10. package/dist/nodejs/errors.js.map +1 -1
  11. package/dist/nodejs/index.d.ts +194 -12
  12. package/dist/nodejs/typechain/contracts/Comptroller/Comptroller.d.ts +21 -175
  13. package/dist/nodejs/typechain/contracts/Comptroller/RedemptionManager.d.ts +82 -79
  14. package/dist/nodejs/typechain/contracts/Interfaces/IComptroller.d.ts +13 -84
  15. package/dist/nodejs/typechain/contracts/Interfaces/IRedemptionManager.d.ts +34 -54
  16. package/dist/nodejs/typechain/contracts/Interfaces/ITimelock.d.ts +46 -49
  17. package/dist/nodejs/typechain/contracts/Library/RateLimiter.d.ts +66 -0
  18. package/dist/nodejs/typechain/contracts/Library/RateLimiter.js +3 -0
  19. package/dist/nodejs/typechain/contracts/Library/RateLimiter.js.map +1 -0
  20. package/dist/nodejs/typechain/contracts/Library/index.d.ts +1 -0
  21. package/dist/nodejs/typechain/contracts/Library/index.js +3 -0
  22. package/dist/nodejs/typechain/contracts/Library/index.js.map +1 -0
  23. package/dist/nodejs/typechain/contracts/Oracle/FeedPriceOracle.d.ts +1 -9
  24. package/dist/nodejs/typechain/contracts/Oracle/FeedPriceOracleSafe.d.ts +1 -9
  25. package/dist/nodejs/typechain/contracts/Timelock.d.ts +515 -0
  26. package/dist/nodejs/typechain/contracts/Timelock.js +3 -0
  27. package/dist/nodejs/typechain/contracts/Timelock.js.map +1 -0
  28. package/dist/nodejs/typechain/contracts/index.d.ts +3 -2
  29. package/dist/nodejs/typechain/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.d.ts +1 -1
  30. package/dist/nodejs/typechain/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.js +1 -1
  31. package/dist/nodejs/typechain/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts +1 -1
  32. package/dist/nodejs/typechain/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.js +1 -1
  33. package/dist/nodejs/typechain/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.d.ts +1 -1
  34. package/dist/nodejs/typechain/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.js +1 -1
  35. package/dist/nodejs/typechain/factories/contracts/CToken/CErc20__factory.d.ts +49 -1
  36. package/dist/nodejs/typechain/factories/contracts/CToken/CErc20__factory.js +61 -1
  37. package/dist/nodejs/typechain/factories/contracts/CToken/CErc20__factory.js.map +1 -1
  38. package/dist/nodejs/typechain/factories/contracts/CToken/CEther__factory.d.ts +49 -1
  39. package/dist/nodejs/typechain/factories/contracts/CToken/CEther__factory.js +61 -1
  40. package/dist/nodejs/typechain/factories/contracts/CToken/CEther__factory.js.map +1 -1
  41. package/dist/nodejs/typechain/factories/contracts/CToken/CToken__factory.d.ts +48 -0
  42. package/dist/nodejs/typechain/factories/contracts/CToken/CToken__factory.js +60 -0
  43. package/dist/nodejs/typechain/factories/contracts/CToken/CToken__factory.js.map +1 -1
  44. package/dist/nodejs/typechain/factories/contracts/CToken/SuErc20__factory.d.ts +49 -1
  45. package/dist/nodejs/typechain/factories/contracts/CToken/SuErc20__factory.js +61 -1
  46. package/dist/nodejs/typechain/factories/contracts/CToken/SuErc20__factory.js.map +1 -1
  47. package/dist/nodejs/typechain/factories/contracts/Comptroller/AccountLiquidity__factory.d.ts +313 -1
  48. package/dist/nodejs/typechain/factories/contracts/Comptroller/AccountLiquidity__factory.js +392 -1
  49. package/dist/nodejs/typechain/factories/contracts/Comptroller/AccountLiquidity__factory.js.map +1 -1
  50. package/dist/nodejs/typechain/factories/contracts/Comptroller/CompLogic__factory.d.ts +1 -1
  51. package/dist/nodejs/typechain/factories/contracts/Comptroller/CompLogic__factory.js +1 -1
  52. package/dist/nodejs/typechain/factories/contracts/Comptroller/CompoundLens__factory.d.ts +49 -1
  53. package/dist/nodejs/typechain/factories/contracts/Comptroller/CompoundLens__factory.js +61 -1
  54. package/dist/nodejs/typechain/factories/contracts/Comptroller/CompoundLens__factory.js.map +1 -1
  55. package/dist/nodejs/typechain/factories/contracts/Comptroller/ComptrollerStorage__factory.d.ts +1 -1
  56. package/dist/nodejs/typechain/factories/contracts/Comptroller/ComptrollerStorage__factory.js +1 -1
  57. package/dist/nodejs/typechain/factories/contracts/Comptroller/Comptroller__factory.d.ts +77 -272
  58. package/dist/nodejs/typechain/factories/contracts/Comptroller/Comptroller__factory.js +97 -348
  59. package/dist/nodejs/typechain/factories/contracts/Comptroller/Comptroller__factory.js.map +1 -1
  60. package/dist/nodejs/typechain/factories/contracts/Comptroller/RedemptionManager__factory.d.ts +428 -94
  61. package/dist/nodejs/typechain/factories/contracts/Comptroller/RedemptionManager__factory.js +536 -121
  62. package/dist/nodejs/typechain/factories/contracts/Comptroller/RedemptionManager__factory.js.map +1 -1
  63. package/dist/nodejs/typechain/factories/contracts/Comptroller/SortedBorrows__factory.d.ts +1 -1
  64. package/dist/nodejs/typechain/factories/contracts/Comptroller/SortedBorrows__factory.js +1 -1
  65. package/dist/nodejs/typechain/factories/contracts/Interfaces/IComptroller__factory.d.ts +19 -91
  66. package/dist/nodejs/typechain/factories/contracts/Interfaces/IComptroller__factory.js +24 -114
  67. package/dist/nodejs/typechain/factories/contracts/Interfaces/IComptroller__factory.js.map +1 -1
  68. package/dist/nodejs/typechain/factories/contracts/Interfaces/IRedemptionManager__factory.d.ts +46 -60
  69. package/dist/nodejs/typechain/factories/contracts/Interfaces/IRedemptionManager__factory.js +45 -67
  70. package/dist/nodejs/typechain/factories/contracts/Interfaces/IRedemptionManager__factory.js.map +1 -1
  71. package/dist/nodejs/typechain/factories/contracts/Interfaces/ITimelock__factory.d.ts +34 -47
  72. package/dist/nodejs/typechain/factories/contracts/Interfaces/ITimelock__factory.js +37 -54
  73. package/dist/nodejs/typechain/factories/contracts/Interfaces/ITimelock__factory.js.map +1 -1
  74. package/dist/nodejs/typechain/factories/contracts/Library/RateLimiter__factory.d.ts +165 -0
  75. package/dist/nodejs/typechain/factories/contracts/Library/RateLimiter__factory.js +228 -0
  76. package/dist/nodejs/typechain/factories/contracts/Library/RateLimiter__factory.js.map +1 -0
  77. package/dist/nodejs/typechain/factories/contracts/Library/index.d.ts +1 -0
  78. package/dist/nodejs/typechain/factories/contracts/Library/index.js +9 -0
  79. package/dist/nodejs/typechain/factories/contracts/Library/index.js.map +1 -0
  80. package/dist/nodejs/typechain/factories/contracts/Oracle/FeedPriceOracleSafe__factory.d.ts +1 -15
  81. package/dist/nodejs/typechain/factories/contracts/Oracle/FeedPriceOracleSafe__factory.js +1 -20
  82. package/dist/nodejs/typechain/factories/contracts/Oracle/FeedPriceOracleSafe__factory.js.map +1 -1
  83. package/dist/nodejs/typechain/factories/contracts/Oracle/FeedPriceOracle__factory.d.ts +1 -15
  84. package/dist/nodejs/typechain/factories/contracts/Oracle/FeedPriceOracle__factory.js +1 -20
  85. package/dist/nodejs/typechain/factories/contracts/Oracle/FeedPriceOracle__factory.js.map +1 -1
  86. package/dist/nodejs/typechain/factories/contracts/SumerErrors__factory.d.ts +49 -1
  87. package/dist/nodejs/typechain/factories/contracts/SumerErrors__factory.js +61 -1
  88. package/dist/nodejs/typechain/factories/contracts/SumerErrors__factory.js.map +1 -1
  89. package/dist/nodejs/typechain/factories/contracts/Timelock.sol/Timelock__factory.d.ts +1 -1
  90. package/dist/nodejs/typechain/factories/contracts/Timelock.sol/Timelock__factory.js +1 -1
  91. package/dist/nodejs/typechain/factories/contracts/Timelock.sol/Timelock__factory.js.map +1 -1
  92. package/dist/nodejs/typechain/factories/contracts/Timelock__factory.d.ts +989 -0
  93. package/dist/nodejs/typechain/factories/contracts/Timelock__factory.js +1277 -0
  94. package/dist/nodejs/typechain/factories/contracts/Timelock__factory.js.map +1 -0
  95. package/dist/nodejs/typechain/factories/contracts/index.d.ts +2 -1
  96. package/dist/nodejs/typechain/factories/contracts/index.js +4 -2
  97. package/dist/nodejs/typechain/factories/contracts/index.js.map +1 -1
  98. package/dist/nodejs/typechain/factories/contracts/proxy/SumerProxyAdmin__factory.d.ts +1 -1
  99. package/dist/nodejs/typechain/factories/contracts/proxy/SumerProxyAdmin__factory.js +1 -1
  100. package/dist/nodejs/typechain/factories/contracts/proxy/SumerProxy__factory.d.ts +1 -1
  101. package/dist/nodejs/typechain/factories/contracts/proxy/SumerProxy__factory.js +1 -1
  102. package/dist/nodejs/typechain/factories/contracts/stake/CommunalFarm__factory.d.ts +1 -1
  103. package/dist/nodejs/typechain/factories/contracts/stake/CommunalFarm__factory.js +1 -1
  104. package/dist/nodejs/typechain/factories/contracts/stake/FraxGaugeFXSRewardsDistributor__factory.d.ts +1 -1
  105. package/dist/nodejs/typechain/factories/contracts/stake/FraxGaugeFXSRewardsDistributor__factory.js +1 -1
  106. package/dist/nodejs/typechain/factories/contracts/stake/StakingRewardsMultiGauge__factory.d.ts +1 -1
  107. package/dist/nodejs/typechain/factories/contracts/stake/StakingRewardsMultiGauge__factory.js +1 -1
  108. package/dist/nodejs/typechain/factories/contracts/stake/VeSumer.sol/VeSumer__factory.d.ts +1 -1
  109. package/dist/nodejs/typechain/factories/contracts/stake/VeSumer.sol/VeSumer__factory.js +1 -1
  110. package/dist/nodejs/typechain/hardhat.d.ts +18 -18
  111. package/dist/nodejs/typechain/index.d.ts +4 -2
  112. package/dist/nodejs/typechain/index.js +5 -3
  113. package/dist/nodejs/typechain/index.js.map +1 -1
  114. package/package.json +1 -1
@@ -14,8 +14,320 @@ export declare class RedemptionManager__factory extends ContractFactory {
14
14
  deploymentTransaction(): ContractTransactionResponse;
15
15
  }>;
16
16
  connect(runner: ContractRunner | null): RedemptionManager__factory;
17
- static readonly bytecode = "0x608080604052346100165761214f908161001c8239f35b600080fdfe608060408181526004908136101561001657600080fd5b600092833560e01c90816301ffc9a714610d4857508063071a754114610d2c5780630f34360414610cf45780631f68f20a14610cd55780632409266914610cb3578063248a9ca314610c8857806328d28b5b14610c665780632f2ff15d14610bac57806332ba19c214610b8857806336568abe14610af6578063485cc9551461093257806350e85423146108d15780635fe3b567146108a857806361ec893d1461088c5780636d5d44b8146107f25780637498ecd2146107575780638bad38dd146106875780639010d07c1461064657806391d14854146105ff578063947f5b77146105c0578063a20baee61461059d578063a217fddf14610582578063bbf56b3a14610507578063c33520eb14610430578063c7b554811461040d578063ca15c873146103e5578063d201d328146103a4578063d380a37c14610385578063d547741f14610348578063d99550c914610290578063ec8b88ee14610267578063f1dcf16e1461022b5763fb02cd421461018f57600080fd5b346102275760203660031901126102275760206101aa610db6565b60c9548351633b725b2360e01b81526001600160a01b039283169581019590955284916024918391165afa91821561021d57602093926101ee575b50519015158152f35b61020f919250833d8111610216575b61020781836111dd565b810190611572565b90386101e5565b503d6101fd565b81513d85823e3d90fd5b8280fd5b8382346102635760203660031901126102635760209181906001600160a01b03610253610db6565b16815260ce845220549051908152f35b5080fd5b83823461026357816003193601126102635760c95490516001600160a01b039091168152602090f35b5090346102275781600319360112610227576102f39160206102b0610db6565b926102b9610dd1565b60c95484516339ed25cd60e01b81526001600160a01b03968716938101938452918616602084015290958692918616918391829160400190565b03915afa92831561033e576020949361030f575b505191168152f35b610330919350843d8111610337575b61032881836111dd565b8101906117a0565b9138610307565b503d61031e565b81513d86823e3d90fd5b5034610227578060031936011261022757610382913561037d600161036b610dd1565b93838752606560205286200154611068565b6111ff565b80f35b83823461026357816003193601126102635760209060cc549051908152f35b838234610263576020366003190112610263576020916103de9082906001600160a01b036103d0610db6565b16815260cd85522054611774565b9051908152f35b5090346102275760203660031901126102275760209282913581526097845220549051908152f35b83823461026357816003193601126102635760209051670ddd4b8c6c7d70d88152f35b50346102275760203660031901126102275761044a610db6565b610452610e5a565b60c95482516344b7213760e11b815290936001600160a01b039390916020818481888a165afa9081156104fd5787916104df575b50156104a357505016906001600160601b0360a01b161760c95580f35b906020606492519162461bcd60e51b83528201526016602482015275696e76616c696420736f7274656420626f72726f777360501b6044820152fd5b6104f7915060203d81116102165761020781836111dd565b38610486565b82513d89823e3d90fd5b50823461057b5760a036600319011261057b57610522610dd1565b6001600160a01b03936044359190858316830361057e5760643593868516850361057b57608435968716870361057b57509161056393916080969335611b30565b92939091815194855260208501528301526060820152f35b80fd5b8380fd5b83823461026357816003193601126102635751908152602090f35b83823461026357816003193601126102635760209051670de0b6b3a76400008152f35b8382346102635736600319011261057b576103826105dc610db6565b6105e4610dd1565b906105fa60018060a01b0360ca5416331461158a565b6117bf565b5090346102275781600319360112610227578160209360ff92610620610dd1565b90358252606586528282206001600160a01b039091168252855220549151911615158152f35b50903461022757816003193601126102275760209261067191358152609784528260243591206113d3565b905491519160018060a01b039160031b1c168152f35b5090346102275760203660031901126102275780356001600160a01b038116929083900361057e576106b7610e5a565b8051623f1ee960e11b81526020818481875afa90811561074d57859161072f575b50156106f65750506001600160601b0360a01b60ca54161760ca5580f35b906020606492519162461bcd60e51b8352820152601360248201527234b73b30b634b21031b7b6b83a3937b63632b960691b6044820152fd5b610747915060203d81116102165761020781836111dd565b386106d8565b82513d87823e3d90fd5b8382346102635790816107ec60209361079861077236610e30565b60ca5492946001600160a01b03949093909290610792908616331461158a565b856115e6565b918316865260cd875290942084905582516001600160a01b0382168152602081018590527f2f992d01b594c040f05262961e43f8311e780be5fee3deb4c57880dd6374d12d9080604081015b0390a1612099565b51908152f35b83823461026357602036600319011261026357610382907f2f992d01b594c040f05262961e43f8311e780be5fee3deb4c57880dd6374d12d6107e4610835610db6565b9261083e610e5a565b61084784611657565b9061085c670de0b6b3a76400008311156115c9565b6001600160a01b03851680885260cd60209081528289208490559151908152908101919091529081906040820190565b83823461026357816003193601126102635760209051603c8152f35b83823461026357816003193601126102635760ca5490516001600160a01b039091168152602090f35b50346102275760203660031901126102275760249060206108f0610db6565b60c9548351631bdb4c8d60e01b81526001600160a01b039283169681019690965290938591829086165afa92831561033e576020949361030f57505191168152f35b50903461022757816003193601126102275761094c610db6565b90610955610dd1565b9184549260ff8460081c161592838094610ae9575b8015610ad2575b15610a78575060ff1984811660011787559383610a67575b50858052606560209081528587206001600160a01b039384168089529082528688205491956109cb9260ff1615610a1f575b50878052609786528688206113eb565b50166001600160601b0360a01b60c954161760c9556109e8578280f35b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989161ff001984541684555160018152a138808280f35b88805260658752878920828a5287526001888a20918254161790553381897f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4386109bb565b61ffff191661010117865538610989565b608490602087519162461bcd60e51b8352820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152fd5b50303b1580156109715750600160ff861614610971565b50600160ff86161061096a565b50919034610263578260031936011261026357610b11610dd1565b90336001600160a01b03831603610b2d579061038291356111ff565b608490602085519162461bcd60e51b8352820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152fd5b838234610263576020906103de610ba7610ba136610e30565b916115e6565b611774565b5034610227578060031936011261022757610c199135906097610bcd610dd1565b9280865260209060658252610be760018589200154611068565b808752606582528387206001600160a01b039095168088529482528387205460ff1615610c1d575b86525283206113eb565b5080f35b808752606582528387208588528252838720805460ff191660011790553385827f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8a80a4610c0f565b838234610263578160031936011261026357602090516611c37937e080008152f35b5090346102275760203660031901126102275781602093600192358152606585522001549051908152f35b8382346102635781600319360112610263576020905166b1a2bc2ec500008152f35b83823461026357816003193601126102635760209060cb549051908152f35b8382346102635760203660031901126102635760209181906001600160a01b03610d1c610db6565b16815260cd845220549051908152f35b8382346102635781600319360112610263576020905160028152f35b84908434610227576020366003190112610227573563ffffffff60e01b81168091036102275760209250635a05180f60e01b8114908115610d8b575b5015158152f35b637965db0b60e01b811491508115610da5575b5083610d84565b6301ffc9a760e01b14905083610d9e565b600435906001600160a01b0382168203610dcc57565b600080fd5b602435906001600160a01b0382168203610dcc57565b8115610df1570490565b634e487b7160e01b600052601260045260246000fd5b81810292918115918404141715610e1a57565b634e487b7160e01b600052601160045260246000fd5b6060906003190112610dcc576004356001600160a01b0381168103610dcc57906024359060443590565b3360009081527fffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b60209081526040808320549092919060ff1615610e9d57505050565b610ea6336112c4565b835183610eb2826111c1565b6042825283820194606036873782511561105457603086538251906001918210156110545790607860218501536041915b818311610fe657505050610fa45784610f726048610f96936044979851988991610f638984019876020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8a52610f3a815180928d603789019101611174565b8401917001034b99036b4b9b9b4b733903937b6329607d1b603784015251809386840190611174565b010360288101895201876111dd565b5194859362461bcd60e51b8552600485015251809281602486015285850190611174565b601f01601f19168101030190fd5b60648386519062461bcd60e51b825280600483015260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b909192600f81166010811015611040576f181899199a1a9b1b9c1cb0b131b232b360811b901a611016858761129d565b5360041c92801561102c57600019019190610ee3565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b6000818152602060658152604092838320338452825260ff8484205416156110905750505050565b611099336112c4565b908451906110a6826111c1565b6042825283820194606036873782511561105457603086538251906001918210156110545790607860218501536041915b81831161112e57505050610fa45784610f726048610f96936044979851988991610f638984019876020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8a52610f3a815180928d603789019101611174565b909192600f81166010811015611040576f181899199a1a9b1b9c1cb0b131b232b360811b901a61115e858761129d565b5360041c92801561102c576000190191906110d7565b60005b8381106111875750506000910152565b8181015183820152602001611177565b67ffffffffffffffff81116111ab57604052565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff8211176111ab57604052565b90601f8019910116810190811067ffffffffffffffff8211176111ab57604052565b90604061123d9260009080825260656020528282209360018060a01b03169384835260205260ff8383205416611240575b8152609760205220611482565b50565b808252606560205282822084835260205282822060ff1981541690553384827ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8580a4611230565b906706f05b59d3b200008201809211610e1a57565b9081518110156112ae570160200190565b634e487b7160e01b600052603260045260246000fd5b604051906060820182811067ffffffffffffffff8211176111ab57604052602a82526020820160403682378251156112ae576030905381516001908110156112ae57607860218401536029905b8082116113655750506113215790565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f811660108110156113be576f181899199a1a9b1b9c1cb0b131b232b360811b901a611394848661129d565b5360041c9180156113a9576000190190611311565b60246000634e487b7160e01b81526011600452fd5b60246000634e487b7160e01b81526032600452fd5b80548210156112ae5760005260206000200190600090565b9190600183016000908282528060205260408220541560001461146f578454946801000000000000000086101561145b578361144b611434886001604098999a018555846113d3565b819391549060031b91821b91600019901b19161790565b9055549382526020522055600190565b634e487b7160e01b83526041600452602483fd5b50925050565b91908203918211610e1a57565b9060018201906000928184528260205260408420549081151560001461156b5760001991808301818111611557578254908482019182116115435780820361150e575b505050805480156114fa578201916114dd83836113d3565b909182549160031b1b191690555582526020526040812055600190565b634e487b7160e01b86526031600452602486fd5b61152e61151e61143493866113d3565b90549060031b1c928392866113d3565b905586528460205260408620553880806114c5565b634e487b7160e01b88526011600452602488fd5b634e487b7160e01b87526011600452602487fd5b5050505090565b90816020910312610dcc57518015158103610dcc5790565b1561159157565b60405162461bcd60e51b815260206004820152601060248201526f37b7363c9031b7b6b83a3937b63632b960811b6044820152606490fd5b156115d057565b634e487b7160e01b600052600160045260246000fd5b9190918115611648576115f890611657565b91670de0b6b3a76400009182820291808304841490151715610e1a5761161d91610de7565b60011c8201809211610e1a578082101561164157505b61163e8115156115c9565b90565b9050611633565b505050670de0b6b3a764000090565b6116a3670de0b6b3a76400009160018060a01b03168060005260ce60205261168f603c61168960406000205442611475565b046116a7565b9060005260cd602052604060002054610e07565b0490565b90631f54050080831161176c575b50811561175f57670de0b6b3a764000091670ddd4b8c6c7d70d8905b6001918282111561174457818316611709576116fe6116f982670de0b6b3a764000093610e07565b611288565b04911c925b926116d1565b9361172f6116f9670de0b6b3a76400006117276116f982958a610e07565b049680610e07565b049160001982019182116113a9571c92611703565b6116a392506116f9915093670de0b6b3a76400009394610e07565b670de0b6b3a76400009150565b9150386116b5565b6611c37937e08000908101809111610e1a57670de0b6b3a76400008082101561179b575090565b905090565b90816020910312610dcc57516001600160a01b0381168103610dcc5790565b60408051637f4e225760e11b81526001600160a01b0393919260209285821692909160049185818481885afa908115611ad257600091611ab5575b501561180a575b50505050505050565b8551926395dd919360e01b84528781169788848601528685602481895afa948515611aaa57600095611a7b575b508415611a705760c9548851631da4d95d60e31b81526001600160a01b038086168783019081529085166020820152918316918990829081906040010381855afa9081156119e657600091611a53575b50156119f1575060c95488516239c6e160ea1b81526001600160a01b03808616878301908152908516602082015290949183169391908990869081906040010381875afa9485156119e657908992916000966119bf575b508a516339ed25cd60e01b81526001600160a01b039182168882019081529290911660208301529190829081906040015b0381865afa9788156119b457600098611995575b5050813b15610dcc5760009681889460a4978b519c8d9a8b9963bc9b5bd560e01b8b528a0152602489015260448801521660648601521660848401525af190811561198b575061197c575b505b38808080808080611801565b61198590611197565b3861196e565b513d6000823e3d90fd5b6119ac929850803d106103375761032881836111dd565b953880611923565b89513d6000823e3d90fd5b83929196506119dd9061190f943d85116103375761032881836111dd565b959091926118de565b8a513d6000823e3d90fd5b949650505050813b15610dcc57600060a492819587519889968795633e499e0560e11b8752860152602485015260448401528160648401528160848401525af190811561198b5750611a44575b50611970565b611a4d90611197565b38611a3e565b611a6a9150893d8b116102165761020781836111dd565b38611887565b505050505050505050565b90948782813d8311611aa3575b611a9281836111dd565b8101031261057b5750519338611837565b503d611a88565b88513d6000823e3d90fd5b611acc9150863d88116102165761020781836111dd565b386117fa565b87513d6000823e3d90fd5b15611ae457565b60405162461bcd60e51b815260206004820152600b60248201526a383934b1b29032b93937b960a91b6044820152606490fd5b90816020910312610dcc575160ff81168103610dcc5790565b60405163a6afed9560e01b8082526001600160a01b0397959694959492939160208160048160008d8c165af18015611e725761206e575b5060405190815260208160048160008c8c165af18015611e7257612043575b506040516361bfb47160e11b815290871660048201819052608082602481898c165afa928315611e725760008093600095612000575b50611fca578215611f7f57604051916305eff7ef60e21b8352600483015260208260248160008d8d165af1918215611e7257600092611f96575b508115611f7f57604051631d8e90d160e11b81529860208a6004818b85165afa998a15611e725760009a611f4b575b508915611f335760405163fc57d4df60e01b815289821660048201526020816024818686165afa908115611e7257600091611f01575b50816020829b611c6c841515611add565b60046040518094819363313ce56760e01b8352165afa8015611e725760ff91600091611ee2575b501660128110611eb2575b505060208160248a82604051968794859363fc57d4df60e01b8552166004840152165afa918215611e7257600092611e7e575b5060208298611ce1841515611add565b60046040518094819363313ce56760e01b8352165afa8015611e725760ff91600091611e43575b501660128110611e16575b5050670de0b6b3a764000091611d3e83611d3686611d31858c610e07565b610e07565b049289610e07565b80831015611e0c57611d508984610de7565b808711611dd55750505050611d658387610e07565b81810290808204831490151715610e1a5782611d8487611d8993610de7565b610de7565b965b8181029081048203610e1a5782611da191610de7565b91878310611db3575b50505093929190565b82975086919350611d8490611d31611dcc949988610e07565b04388080611daa565b955090918110611de6575096611d8b565b8281029150801590820483141715610e1a5782611d8487611e0693610de7565b96611d8b565b611d508982610de7565b909196506012039060128211610e1a57604d8211610e1a57611e3b91600a0a90610e07565b943880611d13565b611e65915060203d602011611e6b575b611e5d81836111dd565b810190611b17565b38611d08565b503d611e53565b6040513d6000823e3d90fd5b9091506020813d602011611eaa575b81611e9a602093836111dd565b81010312610dcc57519038611cd1565b3d9150611e8d565b9091995060120360ff8111610e1a5760ff1690604d8211610e1a57611eda91600a0a90610e07565b973880611c9e565b611efb915060203d602011611e6b57611e5d81836111dd565b38611c93565b90506020813d602011611f2b575b81611f1c602093836111dd565b81010312610dcc575138611c5b565b3d9150611f0f565b50505050505092505050600090600090600090600090565b9099506020813d602011611f77575b81611f67602093836111dd565b81010312610dcc57519838611c25565b3d9150611f5a565b505050505092505050600090600090600090600090565b9091506020813d602011611fc2575b81611fb2602093836111dd565b81010312610dcc57519038611bf6565b3d9150611fa5565b60405162461bcd60e51b815260206004820152600e60248201526d39b730b839b437ba1032b93937b960911b6044820152606490fd5b94505091506080833d821161203b575b8161201d608093836111dd565b81010312610dcc578251602084015160609094015193929038611bbc565b3d9150612010565b602090813d8311612067575b61205981836111dd565b81010312610dcc5738611b86565b503d61204f565b602090813d8311612092575b61208481836111dd565b81010312610dcc5738611b67565b503d61207a565b6001600160a01b038116600081815260ce6020526040902054603c906120bf9042611475565b10156120c9575050565b600090815260ce6020908152604091829020429081905582516001600160a01b03949094168452908301527f4b1a24436e474bd20ff461d446818e19b145a1ff52f698dec751807684621acc91a156fea264697066735822122032c32bef03f631df127e22e3c052be126cb34d5ad0c258e7d0145b3e2059895364736f6c63430008130033";
17
+ static readonly bytecode = "0x608080604052346100165761269b908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a714610217578063071a7541146102125780630f3436041461020d5780631f68f20a146102085780632409266914610203578063248a9ca3146101fe57806324b735bd146101f957806328d28b5b146101f45780632f2ff15d146101ef57806332ba19c2146101ea57806336568abe146101e55780633c103d7a146101e05780635fe3b567146101db57806361ec893d146101d6578063699f7c95146101d15780636d5d44b8146101cc5780636ec7ba15146101c757806373e54f48146101c25780638bad38dd146101bd5780639010d07c146101b857806391d14854146101b3578063a20baee6146101ae578063a217fddf146101a9578063c4d66de8146101a4578063c7b554811461019f578063ca15c8731461019a578063d201d32814610195578063d380a37c14610190578063d547741f1461018b578063e8a7f3c114610186578063ec8b88ee146101815763f1dcf16e1461017c57600080fd5b610db3565b610d8a565b610d26565b610ce4565b610cc6565b610c89565b610c5d565b610c3a565b610b4d565b610b31565b610b0e565b610ab8565b610a71565b6109b3565b61098a565b610909565b61073e565b6106c9565b6106ad565b610684565b610621565b610589565b61054a565b610458565b610436565b6103db565b6103ac565b61038a565b610301565b6102c4565b610297565b346102875760203660031901126102875760043563ffffffff60e01b811680910361028757602090635a05180f60e01b811490811561025c575b506040519015158152f35b637965db0b60e01b811491508115610276575b5038610251565b6301ffc9a760e01b1490503861026f565b600080fd5b600091031261028757565b3461028757600036600319011261028757602060405160028152f35b6001600160a01b0381160361028757565b34610287576020366003190112610287576004356102e1816102b3565b60018060a01b031660005260cd6020526020604060002054604051908152f35b3461028757600036600319011261028757602060cb54604051908152f35b634e487b7160e01b600052601160045260246000fd5b811561033f570490565b634e487b7160e01b600052601260045260246000fd5b90670de0b6b3a76400009182810292818404149015171561037257565b61031f565b8181029291811591840414171561037257565b3461028757600036600319011261028757602060405166b1a2bc2ec500008152f35b346102875760203660031901126102875760043560005260656020526020600160406000200154604051908152f35b3461028757608036600319011261028757608061041e6024356103fd816102b3565b604435610409816102b3565b60643591610416836102b3565b6004356117c9565b91604051938452602084015260408301526060820152f35b346102875760003660031901126102875760206040516611c37937e080008152f35b34610287576040366003190112610287576004356104d960243561047b816102b3565b6104d460009380855260656020526104996001604087200154611013565b8085526065602090815260408087206001600160a01b0386166000908152925290205460ff16156104dd576000526097602052604060002090565b611339565b5080f35b8085526065602090815260408087206001600160a01b038616600090815292529020805460ff19166001179055336001600160a01b038416827f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8880a46000526097602052604060002090565b3461028757606036600319011261028757602061058161057c60043561056f816102b3565b60443590602435906115a7565b611734565b604051908152f35b34610287576040366003190112610287576024356105a6816102b3565b336001600160a01b038216036105c4576105c29060043561112f565b005b60405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608490fd5b346102875760203660031901126102875760043561063e816102b3565b610646610eb7565b6001600160a01b03168015610672576bffffffffffffffffffffffff60a01b60cf54161760cf55600080f35b60405163e6c4247b60e01b8152600490fd5b346102875760003660031901126102875760ca546040516001600160a01b039091168152602090f35b34610287576000366003190112610287576020604051603c8152f35b346102875760a03660031901126102875760c06107196004356106eb816102b3565b6024356106f7816102b3565b604435610703816102b3565b60643591610710836102b3565b60843593611c26565b93604093919351958652602086015260408501526060840152608083015260a0820152f35b34610287576020366003190112610287576105c260043561075e816102b3565b610766610eb7565b7f2f992d01b594c040f05262961e43f8311e780be5fee3deb4c57880dd6374d12d6107d96107938361161c565b6107a7670de0b6b3a764000082111561158a565b6001600160a01b038416600081815260cd60209081526040918290208490558151928352820192909252918291820190565b0390a1611ba6565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161080b57604052565b6107e1565b90601f8019910116810190811067ffffffffffffffff82111761080b57604052565b67ffffffffffffffff811161080b5760051b60200190565b81601f820112156102875780359161086183610832565b9261086f6040519485610810565b808452602092838086019260051b820101928311610287578301905b828210610899575050505090565b83809183356108a7816102b3565b81520191019061088b565b81601f820112156102875780359067ffffffffffffffff821161080b57604051926108e7601f8401601f191660200185610810565b8284526020838301011161028757816000926020809301838601378301015290565b346102875760c036600319011261028757600435610926816102b3565b67ffffffffffffffff906044358281116102875761094890369060040161084a565b90606435838111610287576109619036906004016108b2565b60a4359384116102875761097c6105c29436906004016108b2565b926084359260243590611d4e565b346102875760003660031901126102875760cf546040516001600160a01b039091168152602090f35b34610287576020366003190112610287576004356109d0816102b3565b6109d8610eb7565b604051623f1ee960e11b81526001600160a01b039190911690602081600481855afa908115610a6c57600091610a3e575b5015610a2c576bffffffffffffffffffffffff60a01b60ca54161760ca55600080f35b6040516383aebebd60e01b8152600490fd5b610a5f915060203d8111610a65575b610a578183610810565b81019061156a565b38610a09565b503d610a4d565b61157e565b346102875760403660031901126102875760043560005260976020526020610a9f602435604060002061134c565b905460405160039290921b1c6001600160a01b03168152f35b3461028757604036600319011261028757602060ff610b02602435610adc816102b3565b6004356000526065845260406000209060018060a01b0316600052602052604060002090565b54166040519015158152f35b34610287576000366003190112610287576020604051670de0b6b3a76400008152f35b3461028757600036600319011261028757602060405160008152f35b3461028757602036600319011261028757600435610b6a816102b3565b610bae60005491610b9260ff8460081c161580948195610c2c575b8115610c0c575b506114fa565b82610ba5600160ff196000541617600055565b610bf357610df0565b610bb457005b610bc461ff001960005416600055565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b610c0761010061ff00196000541617600055565b610df0565b303b15915081610c1e575b5038610b8c565b6001915060ff161438610c17565b600160ff8216109150610b85565b34610287576000366003190112610287576020604051670ddd4b8c6c7d70d88152f35b346102875760203660031901126102875760043560005260976020526020604060002054604051908152f35b3461028757602036600319011261028757600435610ca6816102b3565b60018060a01b031660005260cd6020526020610581604060002054611734565b3461028757600036600319011261028757602060cc54604051908152f35b34610287576040366003190112610287576105c2602435600435610d07826102b3565b806000526065602052610d21600160406000200154611013565b61112f565b3461028757608036600319011261028757600435610d43816102b3565b67ffffffffffffffff9060443582811161028757610d6590369060040161084a565b60643592831161028757610d806105c29336906004016108b2565b9160243590611f28565b346102875760003660031901126102875760c9546040516001600160a01b039091168152602090f35b3461028757602036600319011261028757600435610dd0816102b3565b60018060a01b031660005260ce6020526020604060002054604051908152f35b6001600160a01b03811660009081527fffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b602052604080822054610e5293929060ff1615610e55575b8080526097602052206001600160a01b0390911690611382565b50565b808052606560209081528282206001600160a01b0385166000908152915260409020805460ff19166001179055336001600160a01b038416827f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4610e38565b3360009081527fffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b602052604090205460ff1615610ef057565b610ef9336112a8565b600090610f046111e0565b916030610f1084611222565b536078610f1c8461122f565b5360415b60018111610fcc57610fc86048610fb085610fa288610f3f881561125d565b6040519485937f416363657373436f6e74726f6c3a206163636f756e74200000000000000000006020860152610f7f8151809260206037890191016110bc565b84017001034b99036b4b9b9b4b733903937b6329607d1b603782015201906110df565b03601f198101835282610810565b60405162461bcd60e51b81529182916004830161111b565b0390fd5b90600f811690601082101561100e57611009916f181899199a1a9b1b9c1cb0b131b232b360811b901a610fff848761123f565b5360041c91611250565b610f20565b61120c565b600081815260656020908152604080832033845290915290205460ff16156110385750565b611041336112a8565b6110496111e0565b91603061105584611222565b5360786110618461122f565b5360415b6001811161108457610fc86048610fb085610fa288610f3f881561125d565b90600f811690601082101561100e576110b7916f181899199a1a9b1b9c1cb0b131b232b360811b901a610fff848761123f565b611065565b60005b8381106110cf5750506000910152565b81810151838201526020016110bf565b906110f2602092828151948592016110bc565b0190565b9060209161110f815180928185528580860191016110bc565b601f01601f1916010190565b90602061112c9281815201906110f6565b90565b906040610e5292600090808252606560205260ff611161858585209060018060a01b0316600052602052604060002090565b5416611181575b81526097602052206001600160a01b0390911690611445565b808252606560209081528383206001600160a01b0386166000908152915260409020805460ff19169055336001600160a01b038516827ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8580a4611168565b604051906080820182811067ffffffffffffffff82111761080b57604052604282526060366020840137565b634e487b7160e01b600052603260045260246000fd5b80511561100e5760200190565b80516001101561100e5760210190565b90815181101561100e570160200190565b8015610372576000190190565b1561126457565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b604051906060820182811067ffffffffffffffff82111761080b57604052602a8252604036602084013760306112dd83611222565b5360786112e98361122f565b536029905b600182116113015761112c91501561125d565b600f811690601082101561100e57611333916f181899199a1a9b1b9c1cb0b131b232b360811b901a610fff848661123f565b906112ee565b61112c916001600160a01b031690611382565b805482101561100e5760005260206000200190600090565b9161137e9183549060031b91821b91600019901b19161790565b9055565b60018101908260005281602052604060002054156000146113f05780546801000000000000000081101561080b576113db6113c482600187940185558461134c565b819391549060031b91821b91600019901b19161790565b90555491600052602052604060002055600190565b505050600090565b9190820391821161037257565b805490811561142f576000199182019161141f838361134c565b909182549160031b1b1916905555565b634e487b7160e01b600052603160045260246000fd5b60018101918060005282602052604060002054928315156000146114f1576000199284840190858211610372578054948501948511610372576000958583611499946114a898036114ae575b505050611405565b90600052602052604060002090565b55600190565b6114d86114d2916114c26114e8948761134c565b90549060031b1c9283918761134c565b90611364565b8590600052602052604060002090565b55388080611491565b50505050600090565b1561150157565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b5190811515820361028757565b908160209103126102875761112c9061155d565b6040513d6000823e3d90fd5b1561159157565b634e487b7160e01b600052600160045260246000fd5b82156115fb576115b69061161c565b91670de0b6b3a76400009182810290808204841490151715610372570460011c820180921161037257808210156115f457505b61112c81151561158a565b90506115e9565b505050670de0b6b3a764000090565b9080821015611617575090565b905090565b6001600160a01b0316600081815260ce60205260409020544290810390811161037257670de0b6b3a764000091611658603c61166c9304611670565b9060005260cd602052604060002054610377565b0490565b90631f540500808311611702575b5081156116f557670de0b6b3a7640000670ddd4b8c6c7d70d8925b600193848211156116e8578185166116bf57806116b59161170a565b931c925b92611699565b916116cd6116d4918461170a565b928061170a565b936000198201918211610372571c926116b9565b905061112c92935061170a565b670de0b6b3a76400009150565b91503861167e565b9061171491610377565b6706f05b59d3b20000810180911161037257670de0b6b3a7640000900490565b6611c37937e0800090810180911161037257670de0b6b3a764000080821015611617575090565b90816020910312610287575190565b9190826080910312610287578151916020810151916060604083015192015190565b1561179357565b60405162461bcd60e51b815260206004820152600e60248201526d39b730b839b437ba1032b93937b960911b6044820152606490fd5b6040805163a6afed9560e01b808252600497929695929460209490939092600091906001600160a01b038083169188818e8188875af18015610a6c57611b89575b508916958a5194855287858d81878b5af1948515610a6c5761185795611b6c575b508a516361bfb47160e11b81526001600160a01b038216818e0190815290956080918791829160200190565b0381855afa968715610a6c578485968699611b30575b50611878901561178c565b8515611b1c578b516305eff7ef60e21b81526001600160a01b03909216828e019081529195949392918991879182908790829060200103925af1948515610a6c578395611afd575b508415611acb57878c918c519d8e8092631d8e90d160e11b82525afa9b8c15610a6c57839c611ade575b508b15611acb5760ca5461190e906001600160a01b03165b6001600160a01b031690565b8b516312bdd04160e31b8082526001600160a01b03909c16818401908152909b919291908a908d9081906020010381865afa9b8c15610a6c57859c611aa0575b509b519b8c526001600160a01b03909216918b0191825298999887918a9190829081906020015b03915afa978815610a6c5789968299611a6b575b505090879392916119be6119b76119a9886119a4868a610377565b610377565b670de0b6b3a7640000900490565b9388610377565b906119d2886119cd848761160a565b610335565b9050808511611a3a57505050506119cd611a01846119cd611a07956119cd6119fc8785989b610377565b610355565b98610355565b90868210611a18575b505093929190565b819650611a3392506119cd86916119a46119a9949988610377565b3880611a10565b9650611a07948694506119cd938592908110611a595750505098610355565b611a019350906119cd6119cd92610355565b611a8e929594939950803d10611a99575b611a868183610810565b81019061175b565b969091923880611989565b503d611a7c565b6119759c5090611ac08b95949392863d8811611a9957611a868183610810565b9c509091929361194e565b5050985050505050509150508180918190565b611af6919c50883d8a11611a9957611a868183610810565b9a386118ea565b611b15919550883d8a11611a9957611a868183610810565b93386118c0565b505050509750505050509150508180918190565b90506118789850611b5991965060803d8111611b65575b611b518183610810565b81019061176a565b9991979291905061186d565b503d611b47565b611b8290893d8b11611a9957611a868183610810565b503861182b565b611b9f90893d8b11611a9957611a868183610810565b503861180a565b6001600160a01b038116600081815260ce60205260409020544290810390811161037257603c1115611bd6575050565b600090815260ce6020908152604091829020429081905582516001600160a01b03949094168452908301527f4b1a24436e474bd20ff461d446818e19b145a1ff52f698dec751807684621acc91a1565b92936001600160a01b039391929091841684841614611ced57611c4a9285926117c9565b92959194909386158015611ce5575b611cd457906020600492604051938480926308f7a6e360e31b825285165afa8015610a6c578761057c92611c9594600093611cb4575b506115a7565b90611cad611ca66119a98488610377565b80966113f8565b9493929190565b611ccd91935060203d8111611a9957611a868183610810565b9138611c8f565b506000955085945084939291849150565b508515611c59565b5050505050600090600090600090600090600090600090565b90816020910312610287575161112c816102b3565b919261112c95949160a094600180871b0380921685521660208401526040830152606082015281608082015201906110f6565b604051636f307dc360e01b815293949293919290916001600160a01b03906020816004818588165afa908115610a6c57600091611dec575b501695863b1561028757611db79660009283604051809a81958294639fd5a6cf60e01b84528a8a3360048701611d1b565b03925af1948515610a6c57611dd195611dd3575b50611f28565b565b80611de0611de6926107f7565b8061028c565b38611dcb565b611e0d915060203d8111611e13575b611e058183610810565b810190611d06565b38611d86565b503d611dfb565b805160208092019160005b828110611e33575050505090565b83516001600160a01b031685529381019392810192600101611e25565b9081606091031261028757611e648161155d565b91602082015160ff8116810361028757604061112c91930161155d565b60001981146103725760010190565b805182101561100e5760209160051b010190565b60209081818403126102875780519067ffffffffffffffff821161028757019180601f84011215610287578251611eda81610832565b93611ee86040519586610810565b818552838086019260051b820101928311610287578301905b828210611f0f575050505090565b8380918351611f1d816102b3565b815201910190611f01565b604051637f4e225760e11b815291949390916020816004816001600160a01b0387165afa908115610a6c576000916124aa575b508015612436575b612424576040516020810190611f7d81610fa28488611e1a565b5190206041825103612412576020828101516040808501516060958601518251958652600090811a868601529185019290925293830152828052919060809060015afa15610a6c5760005160cf54611fdd906001600160a01b0316611902565b6001600160a01b03909116036124005760ca54612002906001600160a01b0316611902565b604051638e8f294b60e01b81526001600160a01b03831660048201529490606090869060249082905afa948515610a6c576000956123dc575b5091906000935b82518510806123d3575b156123b55761206b61205e8685611e90565b516001600160a01b031690565b60ca54909190612083906001600160a01b0316611902565b604051632aff3bff60e21b81526001600160a01b03841660048201529490600090869060249082905afa948515610a6c57600095612392575b50336001600160a01b038416146123845760005b855181108061237b575b1561223a57600460206120f661190261190261205e868c611e90565b604051637f4e225760e11b815292839182905afa908115610a6c5760009161221b575b50156121955760ca546121749060609061213b906001600160a01b0316611902565b61214861205e858b611e90565b604051638e8f294b60e01b81526001600160a01b03909116600482015292839190829081906024820190565b03915afa908115610a6c576000916121e9575b5060ff808b169116146121a3575b61219e90611e81565b6120d0565b956121bd81866121b661205e8b8b611e90565b87336124c9565b90808210156121dc5761219e916121d3916113f8565b965b9050612195565b505061219e6000966121d5565b61220b915060603d606011612214575b6122038183610810565b810190611e50565b50905038612187565b503d6121f9565b612234915060203d602011610a6557610a578183610810565b38612119565b509060005b8551811080612372575b15612359576004602061226561190261190261205e868c611e90565b604051637f4e225760e11b815292839182905afa908115610a6c5760009161233a575b50156122cb5760ca546122aa9060609061213b906001600160a01b0316611902565b03915afa908115610a6c57600091612318575b5060ff808b169116036122d9575b6122d490611e81565b61223f565b956122ec81866121b661205e8b8b611e90565b908082101561230b576122d491612302916113f8565b965b90506122cb565b50506122d4600096612304565b612331915060603d606011612214576122038183610810565b509050386122bd565b612353915060203d602011610a6557610a578183610810565b38612288565b5095909293506123699150611e81565b93919091612042565b50861515612249565b508615156120da565b929350946123699150611e81565b6123ae91953d8091833e6123a68183610810565b810190611ea4565b93386120bc565b9450505090506123c157565b60405163518d5aa560e11b8152600490fd5b5083151561204c565b6123f691955060603d606011612214576122038183610810565b509050933861203b565b604051634702195f60e01b8152600490fd5b604051634be6321b60e01b8152600490fd5b604051630f72f32b60e11b8152600490fd5b5060ca5461244c906001600160a01b0316611902565b604051637bca031760e11b81526001600160a01b038416600482015290602090829060249082905afa908115610a6c5760009161248b575b5015611f63565b6124a4915060203d602011610a6557610a578183610810565b38612484565b6124c3915060203d602011610a6557610a578183610810565b38611f5b565b6040516308f7a6e360e31b81526020949192916001600160a01b03811691908682600481865afa918215610a6c5761253d9261250f916000916125e1575b5089836125fe565b5085846125376125318460018060a01b031660005260cd602052604060002090565b54611734565b996117c9565b5050929096871580156125d9575b6125cc576040516372cd916760e01b81526001600160a01b039586166004820152918516602483015260448201889052949093166064840152608483019190915260a4820192909252908290829060c49082906000905af18015610a6c576125b257505090565b816125c892903d10611a9957611a868183610810565b5090565b5050505050505050600090565b50831561254b565b6125f89150893d8b11611a9957611a868183610810565b38612507565b9161260d9061112c92846115a7565b6001600160a01b038316600081815260cd6020908152604091829020849055815192835282018390529193917f2f992d01b594c040f05262961e43f8311e780be5fee3deb4c57880dd6374d12d9190819081016107d956fea2646970667358221220565b7fb9a5fa1a0e6f4239b274f7cc9b0b30ecce52124207af01c3887f5fd2a964736f6c63430008130033";
18
18
  static readonly abi: readonly [{
19
+ readonly inputs: readonly [];
20
+ readonly name: "AddReservesMarketNotFresh";
21
+ readonly type: "error";
22
+ }, {
23
+ readonly inputs: readonly [];
24
+ readonly name: "AddReservesOverflow";
25
+ readonly type: "error";
26
+ }, {
27
+ readonly inputs: readonly [];
28
+ readonly name: "BorrowAndDepositBackFailed";
29
+ readonly type: "error";
30
+ }, {
31
+ readonly inputs: readonly [];
32
+ readonly name: "BorrowCapReached";
33
+ readonly type: "error";
34
+ }, {
35
+ readonly inputs: readonly [];
36
+ readonly name: "BorrowCashNotAvailable";
37
+ readonly type: "error";
38
+ }, {
39
+ readonly inputs: readonly [];
40
+ readonly name: "BorrowMarketNotFresh";
41
+ readonly type: "error";
42
+ }, {
43
+ readonly inputs: readonly [];
44
+ readonly name: "BorrowPaused";
45
+ readonly type: "error";
46
+ }, {
47
+ readonly inputs: readonly [{
48
+ readonly internalType: "uint256";
49
+ readonly name: "usdThreshold";
50
+ readonly type: "uint256";
51
+ }];
52
+ readonly name: "BorrowValueMustBeLargerThanThreshold";
53
+ readonly type: "error";
54
+ }, {
55
+ readonly inputs: readonly [];
56
+ readonly name: "CantExitMarketWithNonZeroBorrowBalance";
57
+ readonly type: "error";
58
+ }, {
59
+ readonly inputs: readonly [];
60
+ readonly name: "CantSweepUnderlying";
61
+ readonly type: "error";
62
+ }, {
63
+ readonly inputs: readonly [];
64
+ readonly name: "ComptrollerMismatch";
65
+ readonly type: "error";
66
+ }, {
67
+ readonly inputs: readonly [];
68
+ readonly name: "GroupIdMismatch";
69
+ readonly type: "error";
70
+ }, {
71
+ readonly inputs: readonly [];
72
+ readonly name: "InsufficientCollateral";
73
+ readonly type: "error";
74
+ }, {
75
+ readonly inputs: readonly [];
76
+ readonly name: "InsufficientShortfall";
77
+ readonly type: "error";
78
+ }, {
79
+ readonly inputs: readonly [];
80
+ readonly name: "InvalidAddress";
81
+ readonly type: "error";
82
+ }, {
83
+ readonly inputs: readonly [];
84
+ readonly name: "InvalidAmount";
85
+ readonly type: "error";
86
+ }, {
87
+ readonly inputs: readonly [];
88
+ readonly name: "InvalidCloseFactor";
89
+ readonly type: "error";
90
+ }, {
91
+ readonly inputs: readonly [];
92
+ readonly name: "InvalidComptroller";
93
+ readonly type: "error";
94
+ }, {
95
+ readonly inputs: readonly [];
96
+ readonly name: "InvalidDiscountRate";
97
+ readonly type: "error";
98
+ }, {
99
+ readonly inputs: readonly [];
100
+ readonly name: "InvalidExchangeRate";
101
+ readonly type: "error";
102
+ }, {
103
+ readonly inputs: readonly [];
104
+ readonly name: "InvalidGroupId";
105
+ readonly type: "error";
106
+ }, {
107
+ readonly inputs: readonly [];
108
+ readonly name: "InvalidInput";
109
+ readonly type: "error";
110
+ }, {
111
+ readonly inputs: readonly [];
112
+ readonly name: "InvalidInterestRateModel";
113
+ readonly type: "error";
114
+ }, {
115
+ readonly inputs: readonly [];
116
+ readonly name: "InvalidMinSuBorrowValue";
117
+ readonly type: "error";
118
+ }, {
119
+ readonly inputs: readonly [];
120
+ readonly name: "InvalidReduceAmount";
121
+ readonly type: "error";
122
+ }, {
123
+ readonly inputs: readonly [];
124
+ readonly name: "InvalidReserveFactor";
125
+ readonly type: "error";
126
+ }, {
127
+ readonly inputs: readonly [];
128
+ readonly name: "InvalidSignatureForRedeemFaceValue";
129
+ readonly type: "error";
130
+ }, {
131
+ readonly inputs: readonly [];
132
+ readonly name: "InvalidSignatureLength";
133
+ readonly type: "error";
134
+ }, {
135
+ readonly inputs: readonly [];
136
+ readonly name: "InvalidSuToken";
137
+ readonly type: "error";
138
+ }, {
139
+ readonly inputs: readonly [];
140
+ readonly name: "LiquidateBorrow_LiquidatorIsBorrower";
141
+ readonly type: "error";
142
+ }, {
143
+ readonly inputs: readonly [];
144
+ readonly name: "LiquidateBorrow_RepayAmountIsMax";
145
+ readonly type: "error";
146
+ }, {
147
+ readonly inputs: readonly [];
148
+ readonly name: "LiquidateBorrow_RepayAmountIsZero";
149
+ readonly type: "error";
150
+ }, {
151
+ readonly inputs: readonly [];
152
+ readonly name: "LiquidateBorrow_SeizeTooMuch";
153
+ readonly type: "error";
154
+ }, {
155
+ readonly inputs: readonly [];
156
+ readonly name: "LiquidateCollateralMarketNotFresh";
157
+ readonly type: "error";
158
+ }, {
159
+ readonly inputs: readonly [];
160
+ readonly name: "LiquidateMarketNotFresh";
161
+ readonly type: "error";
162
+ }, {
163
+ readonly inputs: readonly [];
164
+ readonly name: "MarketAlreadyListed";
165
+ readonly type: "error";
166
+ }, {
167
+ readonly inputs: readonly [];
168
+ readonly name: "MarketCanOnlyInitializeOnce";
169
+ readonly type: "error";
170
+ }, {
171
+ readonly inputs: readonly [];
172
+ readonly name: "MarketNotListed";
173
+ readonly type: "error";
174
+ }, {
175
+ readonly inputs: readonly [];
176
+ readonly name: "MintMarketNotFresh";
177
+ readonly type: "error";
178
+ }, {
179
+ readonly inputs: readonly [];
180
+ readonly name: "MintPaused";
181
+ readonly type: "error";
182
+ }, {
183
+ readonly inputs: readonly [];
184
+ readonly name: "NoRedemptionProvider";
185
+ readonly type: "error";
186
+ }, {
187
+ readonly inputs: readonly [];
188
+ readonly name: "NotCToken";
189
+ readonly type: "error";
190
+ }, {
191
+ readonly inputs: readonly [];
192
+ readonly name: "NotSuToken";
193
+ readonly type: "error";
194
+ }, {
195
+ readonly inputs: readonly [];
196
+ readonly name: "OneOfNetAssetAndNetDebtMustBeZero";
197
+ readonly type: "error";
198
+ }, {
199
+ readonly inputs: readonly [];
200
+ readonly name: "OneOfRedeemTokensAndRedeemAmountMustBeZero";
201
+ readonly type: "error";
202
+ }, {
203
+ readonly inputs: readonly [];
204
+ readonly name: "OnlyAdmin";
205
+ readonly type: "error";
206
+ }, {
207
+ readonly inputs: readonly [];
208
+ readonly name: "OnlyAdminOrCapper";
209
+ readonly type: "error";
210
+ }, {
211
+ readonly inputs: readonly [];
212
+ readonly name: "OnlyAdminOrPauser";
213
+ readonly type: "error";
214
+ }, {
215
+ readonly inputs: readonly [];
216
+ readonly name: "OnlyCToken";
217
+ readonly type: "error";
218
+ }, {
219
+ readonly inputs: readonly [];
220
+ readonly name: "OnlyComptroller";
221
+ readonly type: "error";
222
+ }, {
223
+ readonly inputs: readonly [];
224
+ readonly name: "OnlyListedCToken";
225
+ readonly type: "error";
226
+ }, {
227
+ readonly inputs: readonly [];
228
+ readonly name: "OnlyPendingAdmin";
229
+ readonly type: "error";
230
+ }, {
231
+ readonly inputs: readonly [];
232
+ readonly name: "PriceError";
233
+ readonly type: "error";
234
+ }, {
235
+ readonly inputs: readonly [];
236
+ readonly name: "ProtectedMint_OnlyAllowAssetsInTheSameGroup";
237
+ readonly type: "error";
238
+ }, {
239
+ readonly inputs: readonly [];
240
+ readonly name: "ProtocolIsPaused";
241
+ readonly type: "error";
242
+ }, {
243
+ readonly inputs: readonly [];
244
+ readonly name: "RedeemAndTransferMarketNotFresh";
245
+ readonly type: "error";
246
+ }, {
247
+ readonly inputs: readonly [];
248
+ readonly name: "RedeemAndTransfer_AmountIsZero";
249
+ readonly type: "error";
250
+ }, {
251
+ readonly inputs: readonly [];
252
+ readonly name: "RedeemMarketNotFresh";
253
+ readonly type: "error";
254
+ }, {
255
+ readonly inputs: readonly [];
256
+ readonly name: "RedeemTransferOutNotPossible";
257
+ readonly type: "error";
258
+ }, {
259
+ readonly inputs: readonly [];
260
+ readonly name: "RedemptionSeizeTooMuch";
261
+ readonly type: "error";
262
+ }, {
263
+ readonly inputs: readonly [];
264
+ readonly name: "ReduceReservesCashNotAvailable";
265
+ readonly type: "error";
266
+ }, {
267
+ readonly inputs: readonly [];
268
+ readonly name: "ReduceReservesMarketNotFresh";
269
+ readonly type: "error";
270
+ }, {
271
+ readonly inputs: readonly [];
272
+ readonly name: "ReduceReservesOverflow";
273
+ readonly type: "error";
274
+ }, {
275
+ readonly inputs: readonly [];
276
+ readonly name: "RepayBorrowMarketNotFresh";
277
+ readonly type: "error";
278
+ }, {
279
+ readonly inputs: readonly [];
280
+ readonly name: "SeizePaused";
281
+ readonly type: "error";
282
+ }, {
283
+ readonly inputs: readonly [];
284
+ readonly name: "Seize_LiquidatorIsBorrower";
285
+ readonly type: "error";
286
+ }, {
287
+ readonly inputs: readonly [];
288
+ readonly name: "SenderMustBeCToken";
289
+ readonly type: "error";
290
+ }, {
291
+ readonly inputs: readonly [];
292
+ readonly name: "SetInterestRateModelMarketNotFresh";
293
+ readonly type: "error";
294
+ }, {
295
+ readonly inputs: readonly [];
296
+ readonly name: "SetReservesFactorMarketNotFresh";
297
+ readonly type: "error";
298
+ }, {
299
+ readonly inputs: readonly [];
300
+ readonly name: "SupplyCapReached";
301
+ readonly type: "error";
302
+ }, {
303
+ readonly inputs: readonly [];
304
+ readonly name: "TokenInOrAmountInMustBeZero";
305
+ readonly type: "error";
306
+ }, {
307
+ readonly inputs: readonly [];
308
+ readonly name: "TokenTransferInFailed";
309
+ readonly type: "error";
310
+ }, {
311
+ readonly inputs: readonly [];
312
+ readonly name: "TokenTransferOutFailed";
313
+ readonly type: "error";
314
+ }, {
315
+ readonly inputs: readonly [];
316
+ readonly name: "TooMuchRepay";
317
+ readonly type: "error";
318
+ }, {
319
+ readonly inputs: readonly [];
320
+ readonly name: "TransferNotAllowed";
321
+ readonly type: "error";
322
+ }, {
323
+ readonly inputs: readonly [];
324
+ readonly name: "TransferPaused";
325
+ readonly type: "error";
326
+ }, {
327
+ readonly inputs: readonly [];
328
+ readonly name: "UnderlyingBalanceError";
329
+ readonly type: "error";
330
+ }, {
19
331
  readonly anonymous: false;
20
332
  readonly inputs: readonly [{
21
333
  readonly indexed: false;
@@ -185,6 +497,16 @@ export declare class RedemptionManager__factory extends ContractFactory {
185
497
  }];
186
498
  readonly stateMutability: "view";
187
499
  readonly type: "function";
500
+ }, {
501
+ readonly inputs: readonly [];
502
+ readonly name: "_redeemFaceValueSigner";
503
+ readonly outputs: readonly [{
504
+ readonly internalType: "address";
505
+ readonly name: "";
506
+ readonly type: "address";
507
+ }];
508
+ readonly stateMutability: "view";
509
+ readonly type: "function";
188
510
  }, {
189
511
  readonly inputs: readonly [];
190
512
  readonly name: "baseRate";
@@ -226,10 +548,6 @@ export declare class RedemptionManager__factory extends ContractFactory {
226
548
  readonly internalType: "address";
227
549
  readonly name: "suToken";
228
550
  readonly type: "address";
229
- }, {
230
- readonly internalType: "contract IPriceOracle";
231
- readonly name: "oracle";
232
- readonly type: "address";
233
551
  }];
234
552
  readonly name: "calcActualRepayAndSeize";
235
553
  readonly outputs: readonly [{
@@ -293,38 +611,6 @@ export declare class RedemptionManager__factory extends ContractFactory {
293
611
  }];
294
612
  readonly stateMutability: "view";
295
613
  readonly type: "function";
296
- }, {
297
- readonly inputs: readonly [{
298
- readonly internalType: "address";
299
- readonly name: "_asset";
300
- readonly type: "address";
301
- }];
302
- readonly name: "getFirstProvider";
303
- readonly outputs: readonly [{
304
- readonly internalType: "address";
305
- readonly name: "";
306
- readonly type: "address";
307
- }];
308
- readonly stateMutability: "view";
309
- readonly type: "function";
310
- }, {
311
- readonly inputs: readonly [{
312
- readonly internalType: "address";
313
- readonly name: "_asset";
314
- readonly type: "address";
315
- }, {
316
- readonly internalType: "address";
317
- readonly name: "_id";
318
- readonly type: "address";
319
- }];
320
- readonly name: "getNextProvider";
321
- readonly outputs: readonly [{
322
- readonly internalType: "address";
323
- readonly name: "";
324
- readonly type: "address";
325
- }];
326
- readonly stateMutability: "view";
327
- readonly type: "function";
328
614
  }, {
329
615
  readonly inputs: readonly [{
330
616
  readonly internalType: "address";
@@ -399,20 +685,6 @@ export declare class RedemptionManager__factory extends ContractFactory {
399
685
  readonly outputs: readonly [];
400
686
  readonly stateMutability: "nonpayable";
401
687
  readonly type: "function";
402
- }, {
403
- readonly inputs: readonly [{
404
- readonly internalType: "address";
405
- readonly name: "_asset";
406
- readonly type: "address";
407
- }];
408
- readonly name: "hasNoProvider";
409
- readonly outputs: readonly [{
410
- readonly internalType: "bool";
411
- readonly name: "";
412
- readonly type: "bool";
413
- }];
414
- readonly stateMutability: "view";
415
- readonly type: "function";
416
688
  }, {
417
689
  readonly inputs: readonly [{
418
690
  readonly internalType: "bytes32";
@@ -436,10 +708,6 @@ export declare class RedemptionManager__factory extends ContractFactory {
436
708
  readonly internalType: "address";
437
709
  readonly name: "_admin";
438
710
  readonly type: "address";
439
- }, {
440
- readonly internalType: "contract ISortedBorrows";
441
- readonly name: "_sortedBorrows";
442
- readonly type: "address";
443
711
  }];
444
712
  readonly name: "initialize";
445
713
  readonly outputs: readonly [];
@@ -469,6 +737,108 @@ export declare class RedemptionManager__factory extends ContractFactory {
469
737
  }];
470
738
  readonly stateMutability: "view";
471
739
  readonly type: "function";
740
+ }, {
741
+ readonly inputs: readonly [{
742
+ readonly internalType: "address";
743
+ readonly name: "suToken";
744
+ readonly type: "address";
745
+ }, {
746
+ readonly internalType: "uint256";
747
+ readonly name: "amount";
748
+ readonly type: "uint256";
749
+ }, {
750
+ readonly internalType: "address[]";
751
+ readonly name: "providers";
752
+ readonly type: "address[]";
753
+ }, {
754
+ readonly internalType: "bytes";
755
+ readonly name: "signature";
756
+ readonly type: "bytes";
757
+ }];
758
+ readonly name: "redeemFaceValue";
759
+ readonly outputs: readonly [];
760
+ readonly stateMutability: "nonpayable";
761
+ readonly type: "function";
762
+ }, {
763
+ readonly inputs: readonly [{
764
+ readonly internalType: "address";
765
+ readonly name: "csuToken";
766
+ readonly type: "address";
767
+ }, {
768
+ readonly internalType: "uint256";
769
+ readonly name: "amount";
770
+ readonly type: "uint256";
771
+ }, {
772
+ readonly internalType: "address[]";
773
+ readonly name: "providers";
774
+ readonly type: "address[]";
775
+ }, {
776
+ readonly internalType: "bytes";
777
+ readonly name: "signature";
778
+ readonly type: "bytes";
779
+ }, {
780
+ readonly internalType: "uint256";
781
+ readonly name: "permitDeadline";
782
+ readonly type: "uint256";
783
+ }, {
784
+ readonly internalType: "bytes";
785
+ readonly name: "permitSignature";
786
+ readonly type: "bytes";
787
+ }];
788
+ readonly name: "redeemFaceValueWithPermit";
789
+ readonly outputs: readonly [];
790
+ readonly stateMutability: "nonpayable";
791
+ readonly type: "function";
792
+ }, {
793
+ readonly inputs: readonly [{
794
+ readonly internalType: "address";
795
+ readonly name: "redeemer";
796
+ readonly type: "address";
797
+ }, {
798
+ readonly internalType: "address";
799
+ readonly name: "provider";
800
+ readonly type: "address";
801
+ }, {
802
+ readonly internalType: "address";
803
+ readonly name: "cToken";
804
+ readonly type: "address";
805
+ }, {
806
+ readonly internalType: "address";
807
+ readonly name: "suToken";
808
+ readonly type: "address";
809
+ }, {
810
+ readonly internalType: "uint256";
811
+ readonly name: "redeemAmount";
812
+ readonly type: "uint256";
813
+ }];
814
+ readonly name: "redeemFaceValueWithProviderPreview";
815
+ readonly outputs: readonly [{
816
+ readonly internalType: "uint256";
817
+ readonly name: "";
818
+ readonly type: "uint256";
819
+ }, {
820
+ readonly internalType: "uint256";
821
+ readonly name: "";
822
+ readonly type: "uint256";
823
+ }, {
824
+ readonly internalType: "uint256";
825
+ readonly name: "";
826
+ readonly type: "uint256";
827
+ }, {
828
+ readonly internalType: "uint256";
829
+ readonly name: "";
830
+ readonly type: "uint256";
831
+ }, {
832
+ readonly internalType: "uint256";
833
+ readonly name: "";
834
+ readonly type: "uint256";
835
+ }, {
836
+ readonly internalType: "uint256";
837
+ readonly name: "";
838
+ readonly type: "uint256";
839
+ }];
840
+ readonly stateMutability: "nonpayable";
841
+ readonly type: "function";
472
842
  }, {
473
843
  readonly inputs: readonly [{
474
844
  readonly internalType: "bytes32";
@@ -509,11 +879,11 @@ export declare class RedemptionManager__factory extends ContractFactory {
509
879
  readonly type: "function";
510
880
  }, {
511
881
  readonly inputs: readonly [{
512
- readonly internalType: "contract ISortedBorrows";
513
- readonly name: "_sortedBorrows";
882
+ readonly internalType: "address";
883
+ readonly name: "signer";
514
884
  readonly type: "address";
515
885
  }];
516
- readonly name: "setSortedBorrows";
886
+ readonly name: "setRedeemFaceValueSigner";
517
887
  readonly outputs: readonly [];
518
888
  readonly stateMutability: "nonpayable";
519
889
  readonly type: "function";
@@ -541,42 +911,6 @@ export declare class RedemptionManager__factory extends ContractFactory {
541
911
  }];
542
912
  readonly stateMutability: "view";
543
913
  readonly type: "function";
544
- }, {
545
- readonly inputs: readonly [{
546
- readonly internalType: "address";
547
- readonly name: "asset";
548
- readonly type: "address";
549
- }, {
550
- readonly internalType: "uint256";
551
- readonly name: "redeemAmount";
552
- readonly type: "uint256";
553
- }, {
554
- readonly internalType: "uint256";
555
- readonly name: "_totalSupply";
556
- readonly type: "uint256";
557
- }];
558
- readonly name: "updateBaseRateFromRedemption";
559
- readonly outputs: readonly [{
560
- readonly internalType: "uint256";
561
- readonly name: "";
562
- readonly type: "uint256";
563
- }];
564
- readonly stateMutability: "nonpayable";
565
- readonly type: "function";
566
- }, {
567
- readonly inputs: readonly [{
568
- readonly internalType: "address";
569
- readonly name: "csuToken";
570
- readonly type: "address";
571
- }, {
572
- readonly internalType: "address";
573
- readonly name: "borrower";
574
- readonly type: "address";
575
- }];
576
- readonly name: "updateSortedBorrows";
577
- readonly outputs: readonly [];
578
- readonly stateMutability: "nonpayable";
579
- readonly type: "function";
580
914
  }];
581
915
  static createInterface(): RedemptionManagerInterface;
582
916
  static connect(address: string, runner?: ContractRunner | null): RedemptionManager;