@gooddollar/goodprotocol 2.0.34-beta.1 → 2.0.34-beta.3

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 (67) hide show
  1. package/artifacts/abis/GenericDistributionHelper.min.json +1 -0
  2. package/artifacts/abis/INonfungiblePositionManager.min.json +1 -0
  3. package/artifacts/abis/IUniswapV3Pool.min.json +1 -0
  4. package/artifacts/abis/UBISchemeV2.min.json +1 -1
  5. package/artifacts/contracts/IUniswapV3.sol/INonfungiblePositionManager.dbg.json +4 -0
  6. package/artifacts/contracts/IUniswapV3.sol/INonfungiblePositionManager.json +102 -0
  7. package/artifacts/contracts/IUniswapV3.sol/IUniswapV3Pool.dbg.json +4 -0
  8. package/artifacts/contracts/IUniswapV3.sol/IUniswapV3Pool.json +93 -0
  9. package/artifacts/contracts/reserve/GenericDistributionHelper.sol/GenericDistributionHelper.dbg.json +4 -0
  10. package/artifacts/contracts/reserve/GenericDistributionHelper.sol/GenericDistributionHelper.json +931 -0
  11. package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.dbg.json +1 -1
  12. package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.json +7 -2
  13. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  14. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.json +2 -2
  15. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  16. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.json +2 -2
  17. package/contracts/IUniswapV3.sol +51 -0
  18. package/contracts/reserve/GenericDistributionHelper.sol +319 -0
  19. package/contracts/ubi/UBISchemeV2.sol +8 -4
  20. package/contracts/utils/ProxyFactory1967.sol +16 -18
  21. package/hardhat.config.ts +14 -6
  22. package/package.json +1 -1
  23. package/releases/deploy-settings.json +15 -2
  24. package/releases/deployment.json +72 -46
  25. package/scripts/multichain-deploy/0_proxyFactory-deploy.ts +4 -3
  26. package/scripts/multichain-deploy/1_basicdao-deploy.ts +18 -9
  27. package/scripts/multichain-deploy/4_ubi-deploy.ts +1 -1
  28. package/scripts/multichain-deploy/8_disthelper-deploy.ts +152 -0
  29. package/scripts/multichain-deploy/createUniswapTestPools.ts +163 -0
  30. package/scripts/multichain-deploy/helpers.ts +76 -6
  31. package/scripts/proposals/gip-25-xdc-upgrade.ts +438 -0
  32. package/test/helpers.ts +1 -1
  33. package/test/ubi/UBISchemeV2.test.ts +35 -108
  34. package/types/@uniswap/index.ts +2 -0
  35. package/types/@uniswap/v2-periphery/contracts/index.ts +5 -0
  36. package/types/@uniswap/v2-periphery/contracts/interfaces/IWETH.ts +159 -0
  37. package/types/@uniswap/v2-periphery/contracts/interfaces/index.ts +4 -0
  38. package/types/@uniswap/v2-periphery/index.ts +5 -0
  39. package/types/contracts/IUniswapV3.sol/INonfungiblePositionManager.ts +151 -0
  40. package/types/contracts/IUniswapV3.sol/IUniswapV3Factory.ts +155 -0
  41. package/types/contracts/IUniswapV3.sol/IUniswapV3Pool.ts +179 -0
  42. package/types/contracts/IUniswapV3.sol/index.ts +5 -0
  43. package/types/contracts/index.ts +2 -0
  44. package/types/contracts/reserve/GenericDistributionHelper copy.sol/GenericDistributionHelper.ts +1247 -0
  45. package/types/contracts/reserve/GenericDistributionHelper copy.sol/index.ts +4 -0
  46. package/types/contracts/reserve/GenericDistributionHelper.ts +1304 -0
  47. package/types/contracts/reserve/index.ts +1 -0
  48. package/types/contracts/ubi/UBISchemeV2.ts +14 -3
  49. package/types/factories/@uniswap/index.ts +1 -0
  50. package/types/factories/@uniswap/v2-periphery/contracts/index.ts +4 -0
  51. package/types/factories/@uniswap/v2-periphery/contracts/interfaces/IWETH__factory.ts +67 -0
  52. package/types/factories/@uniswap/v2-periphery/contracts/interfaces/index.ts +4 -0
  53. package/types/factories/@uniswap/v2-periphery/index.ts +4 -0
  54. package/types/factories/contracts/IUniswapV3.sol/INonfungiblePositionManager__factory.ts +121 -0
  55. package/types/factories/contracts/IUniswapV3.sol/IUniswapV3Factory__factory.ts +84 -0
  56. package/types/factories/contracts/IUniswapV3.sol/IUniswapV3Pool__factory.ts +108 -0
  57. package/types/factories/contracts/IUniswapV3.sol/index.ts +5 -0
  58. package/types/factories/contracts/index.ts +1 -0
  59. package/types/factories/contracts/reserve/GenericDistributionHelper copy.sol/GenericDistributionHelper__factory.ts +935 -0
  60. package/types/factories/contracts/reserve/GenericDistributionHelper copy.sol/index.ts +4 -0
  61. package/types/factories/contracts/reserve/GenericDistributionHelper__factory.ts +987 -0
  62. package/types/factories/contracts/reserve/index.ts +1 -0
  63. package/types/factories/contracts/ubi/UBISchemeV2__factory.ts +6 -1
  64. package/types/factories/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy__factory.ts +1 -1
  65. package/types/factories/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967__factory.ts +1 -1
  66. package/types/hardhat.d.ts +36 -0
  67. package/types/index.ts +8 -0
@@ -5,4 +5,5 @@ export * as goodReserveCDaiSol from "./GoodReserveCDai.sol";
5
5
  export { CeloDistributionHelper__factory } from "./CeloDistributionHelper__factory";
6
6
  export { DistributionHelper__factory } from "./DistributionHelper__factory";
7
7
  export { ExchangeHelper__factory } from "./ExchangeHelper__factory";
8
+ export { GenericDistributionHelper__factory } from "./GenericDistributionHelper__factory";
8
9
  export { GoodMarketMaker__factory } from "./GoodMarketMaker__factory";
@@ -492,6 +492,11 @@ const _abi = [
492
492
  name: "_ns",
493
493
  type: "address",
494
494
  },
495
+ {
496
+ internalType: "uint256",
497
+ name: "_minActiveUsers",
498
+ type: "uint256",
499
+ },
495
500
  ],
496
501
  name: "initialize",
497
502
  outputs: [],
@@ -803,7 +808,7 @@ const _abi = [
803
808
  ] as const;
804
809
 
805
810
  const _bytecode =
806
- "0x60a06040523060805234801561001457600080fd5b506080516125a161004c600039600081816109cc01528181610a0c01528181610e3801528181610e780152610ef401526125a16000f3fe6080604052600436106101d55760003560e01c8062f714ce146101da578063013eba92146101fc57806302329a291461023c578063069786ea1461025c5780630ce82d67146102865780631248b1011461029b5780631a787f2e146102d25780631b3c90a8146102f25780631d8f5ea9146103075780633659cfe61461031d578063376585741461033d5780633d84ceca146103535780633e6326fc14610373578063414089be146103a05780634162169f146103c05780634322b714146103e0578063456ac1c2146104175780634e71d92d146104415780634f1ef2861461045657806352d1902d14610469578063560796d11461047e5780635aef7de6146104cf5780635c9302c9146104ef5780635c975abb1461050557806373b2e80e1461051f578063741470ac1461053f57806398d6621b146105555780639dc2c0331461056a578063a21f698a14610580578063ba075410146105a0578063c4d66de8146105b6578063c7713870146105d6578063c7a76adf146105eb578063cc054dfc1461060b578063cef6360014610638578063d7c4cbb814610658578063dddc36161461066e578063de1de3a014610683578063e1758bd8146106a3578063eac471a0146106b8578063eda4e6d6146106ce575b600080fd5b3480156101e657600080fd5b506101fa6101f53660046120a6565b6106e4565b005b34801561020857600080fd5b506102296102173660046120d6565b609b6020526000908152604090205481565b6040519081526020015b60405180910390f35b34801561024857600080fd5b506101fa610257366004612101565b6107b2565b34801561026857600080fd5b506102716107cd565b60408051928352602083019190915201610233565b34801561029257600080fd5b5061022961080b565b3480156102a757600080fd5b506102716102b636600461211e565b609a602052600090815260409020600181015460029091015482565b3480156102de57600080fd5b506102296102ed3660046120d6565b61082e565b3480156102fe57600080fd5b506101fa61089b565b34801561031357600080fd5b50610229609e5481565b34801561032957600080fd5b506101fa6103383660046120d6565b6109c2565b34801561034957600080fd5b5061022960a95481565b34801561035f57600080fd5b506101fa61036e36600461211e565b610a8a565b34801561037f57600080fd5b50606754610393906001600160a01b031681565b6040516102339190612137565b3480156103ac57600080fd5b506101fa6103bb36600461214b565b610b2d565b3480156103cc57600080fd5b50606554610393906001600160a01b031681565b3480156103ec57600080fd5b5060ae5461040290610100900463ffffffff1681565b60405163ffffffff9091168152602001610233565b34801561042357600080fd5b5060a3546104319060ff1681565b6040519015158152602001610233565b34801561044d57600080fd5b50610431610b57565b6101fa6104643660046121de565b610e2e565b34801561047557600080fd5b50610229610ee7565b34801561048a57600080fd5b506104b861049936600461211e565b60ab602052600090815260409020805460019091015460ff9091169082565b604080519215158352602083019190915201610233565b3480156104db57600080fd5b50606654610393906001600160a01b031681565b3480156104fb57600080fd5b50610229609c5481565b34801561051157600080fd5b5060ae546104319060ff1681565b34801561052b57600080fd5b5061043161053a3660046120d6565b610f95565b34801561054b57600080fd5b5061022960a75481565b34801561056157600080fd5b50610229610fc1565b34801561057657600080fd5b5061022960a55481565b34801561058c57600080fd5b5061043161059b3660046120d6565b610fcc565b3480156105ac57600080fd5b5061022960a65481565b3480156105c257600080fd5b506101fa6105d13660046120d6565b610ff2565b3480156105e257600080fd5b50610229611162565b3480156105f757600080fd5b5061022961060636600461211e565b6112c3565b34801561061757600080fd5b506102296106263660046120d6565b60ad6020526000908152604090205481565b34801561064457600080fd5b5061022961065336600461211e565b6112d8565b34801561066457600080fd5b5061022960a15481565b34801561067a57600080fd5b506101fa6112ed565b34801561068f57600080fd5b506101fa61069e366004612101565b61134c565b3480156106af57600080fd5b5061039361139b565b3480156106c457600080fd5b5061022960a45481565b3480156106da57600080fd5b50610229609d5481565b6106ec611423565b60006106f661139b565b60405163a9059cbb60e01b81529091506001600160a01b0382169063a9059cbb906107279085908790600401612270565b6020604051808303816000875af1158015610746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a9190612289565b6107ad5760405162461bcd60e51b815260206004820152600f60248201526e1dda5d1a191c985dc819985a5b1959608a1b60448201526064015b60405180910390fd5b505050565b6107ba611423565b60ae805460ff1916911515919091179055565b600080600062015180609d54426107e491906122bc565b6107ee91906122cf565b90506107f9816112c3565b610802826112d8565b92509250509091565b60006201518060a6544261081f91906122bc565b61082991906122cf565b905090565b6000609d5442101561084257506000919050565b62015180609d544261085491906122bc565b61085e91906122cf565b609c5414801561087057506000609e54115b156108935761087e82610f95565b61088a57609e5461088d565b60005b92915050565b61088d611162565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa1580156108fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092291906122f1565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa15801561097c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a091906122f1565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a0a5760405162461bcd60e51b81526004016107a49061230e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a3c6114e8565b6001600160a01b031614610a625760405162461bcd60e51b81526004016107a490612348565b610a6b81611504565b60408051600080825260208201909252610a879183919061150c565b50565b610a92611423565b60008111610aec5760405162461bcd60e51b815260206004820152602160248201527f6379636c65206d757374206265206174206c65617374203120646179206c6f6e6044820152606760f81b60648201526084016107a4565b60a4819055600060a7556040518181527fa61e6cca2c12e2a0a493683acfe95b034f0f50d793434f4dfe3ba06ea201f344906020015b60405180910390a150565b610b35611423565b60ae805463ffffffff9092166101000264ffffffff0019909216919091179055565b60ae5460009060ff16158015610b6f57506000609d54115b8015610b7d5750609d544210155b610bc95760405162461bcd60e51b815260206004820152601e60248201527f6e6f7420696e20706572696f6453746172746564206f7220706175736564000060448201526064016107a4565b60675460405163bf40fac160e01b81526020600482015260086024820152674944454e5449545960c01b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa158015610c2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4f91906122f1565b6001600160a01b0316632d0e9b46336040518263ffffffff1660e01b8152600401610c7a9190612137565b602060405180830381865afa158015610c97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbb91906122f1565b90506001600160a01b038116610d105760405162461bcd60e51b815260206004820152601a60248201527915509254d8da195b594e881b9bdd081dda1a5d195b1a5cdd195960321b60448201526064016107a4565b6000610d1c8233611677565b60675460405163bf40fac160e01b815260206004820152600d60248201526c4744414f5f434c41494d45525360981b60448201529192506000916001600160a01b039091169063bf40fac190606401602060405180830381865afa158015610d88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dac91906122f1565b9050818015610dc357506001600160a01b03811615155b15610e275760405163748abee960e11b81526001600160a01b0382169063e9157dd290610df4908690600401612137565b600060405180830381600087803b158015610e0e57600080fd5b505af1158015610e22573d6000803e3d6000fd5b505050505b5091505090565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e765760405162461bcd60e51b81526004016107a49061230e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ea86114e8565b6001600160a01b031614610ece5760405162461bcd60e51b81526004016107a490612348565b610ed782611504565b610ee38282600161150c565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f825760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b60648201526084016107a4565b5060008051602061252583398151915290565b609c546000908152609a602090815260408083206001600160a01b039094168352929052205460ff1690565b60006108293361082e565b6001600160a01b0381166000908152609b60205260408120541561088a57506001919050565b600054610100900460ff16158080156110125750600054600160ff909116105b806110335750611021306116b0565b158015611033575060005460ff166001145b6110965760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016107a4565b6000805460ff1916600117905580156110b9576000805461ff0019166101001790555b6110c2826116bf565b60a3805460ff19169055601e60a45561a8c06110e162015180426122cf565b6110ee9062015180612382565b6110f891906122bc565b609d81905560a6556103e860a95560ae805464ffffffff001916622904001790558015610ee3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008061116d61139b565b6001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016111989190612137565b602060405180830381865afa1580156111b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d99190612399565b9050600060a454826111eb91906122cf565b9050600060a7546111fa61080b565b6112059060016123b2565b10158061122b5750606460a554606961121e9190612382565b61122891906122cf565b82115b80611256575061123961080b565b60a45461124691906122bc565b60a5546112539190612382565b83105b60a55490915060008215611268578391505b60ae54609c546000908152609a60205260409020600101546112af916127109161129d91610100900463ffffffff1690612382565b6112a791906122cf565b60a9546116e2565b6112b990836122cf565b9695505050505050565b6000908152609a602052604090206001015490565b6000908152609a602052604090206002015490565b600062015180609d544261130191906122bc565b61130b91906122cf565b9050609c54811115610a8757609c8190556040518181527f67eb03bd555181f9dd23f546e4331ddfb8b4a7d0c8d261ba44e037f30ce894ea90602001610b22565b611354611423565b60a3805460ff191682151590811790915560405160ff909116151581527f6cd9a0fd2e006be39a9918bf56c85cae1d4f4599474483ff18cb93355ebaaf8e90602001610b22565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa1580156113ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082991906122f1565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de69160048083019260209291908290030181865afa15801561146c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149091906122f1565b6001600160a01b0316146114e65760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f6460448201526064016107a4565b565b600080516020612525833981519152546001600160a01b031690565b610a87611423565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561153f576107ad836116fb565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611599575060408051601f3d908101601f1916820190925261159691810190612399565b60015b6115fc5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016107a4565b600080516020612525833981519152811461166b5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016107a4565b506107ad838383611795565b6000806116826117c0565b905061168d84610f95565b6116a65761169c848483611aa9565b600191505061088d565b5060009392505050565b6001600160a01b03163b151590565b606780546001600160a01b0319166001600160a01b038316179055610a8761089b565b6000818310156116f257816116f4565b825b9392505050565b611704816116b0565b6117665760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016107a4565b60008051602061252583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61179e83611c5a565b6000825111806117ab5750805b156107ad576117ba8383611c9a565b50505050565b60006117ca6112ed565b60a154609c541415806117dd5750609e54155b15611aa25760006117ec61139b565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161181c9190612137565b602060405180830381865afa158015611839573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185d9190612399565b9050600060a4548261186f91906122cf565b9050600060a75461187e61080b565b1015806118ce5750606460a55460696118979190612382565b6118a191906122cf565b8211806118ce57506118b161080b565b60a4546118be91906122bc565b60a5546118cb9190612382565b83105b905080156119cf5760a35460ff1615611959576118e9611d8c565b6040516370a0823160e01b81526001600160a01b038516906370a0823190611915903090600401612137565b602060405180830381865afa158015611932573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119569190612399565b92505b60a582905560a45460a755611970610e10426122cf565b61197c90610e10612382565b60a655609c5460a45460a554604080519384526020840187905283019190915260608201527f83e0d535b9e84324e0a25922406398d6ff5f96d0c686204ee490e16d7670566f9060800160405180910390a15b60a180546000908152609a60209081526040808320600190810154609c549586905594845260ab90925290912060a354815460ff191660ff909116151517815590810185905560ae54611a35906127109061129d90610100900463ffffffff1685612382565b60a554611a4291906122cf565b609e55611a536112a76002846122cf565b60a955609c54609e546040805192835260208301919091524382820152517f836fa39995340265746dfe9587d9fe5c5de35b7bce778afd9b124ce1cfeafdc49181900360600190a15050505050505b50609e5490565b6001609a6000609c5481526020019081526020016000206001016000828254611ad291906123b2565b9091555050609c546000908152609a602090815260408083206001600160a01b03871684528252808320805460ff19166001908117909155609b835281842042905560ad9092528220805491929091611b2c9084906123b2565b9091555050609c546000908152609a602052604081206002018054839290611b559084906123b2565b90915550506040518181526001600160a01b038416907f89ed24731df6b066e4c5186901fffdba18cd9a10f07494aff900bdee260d13049060200160405180910390a26000611ba261139b565b60405163a9059cbb60e01b81529091506001600160a01b0382169063a9059cbb90611bd39086908690600401612270565b6020604051808303816000875af1158015611bf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c169190612289565b6117ba5760405162461bcd60e51b815260206004820152601560248201527418db185a5b481d1c985b9cd9995c8819985a5b1959605a1b60448201526064016107a4565b611c63816116fb565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060611ca5836116b0565b611d005760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016107a4565b600080846001600160a01b031684604051611d1b91906123e9565b600060405180830381855af49150503d8060008114611d56576040519150601f19603f3d011682016040523d82523d6000602084013e611d5b565b606091505b5091509150611d83828260405180606001604052806027815260200161254560279139612053565b95945050505050565b6000611d9661139b565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611dc69190612137565b602060405180830381865afa158015611de3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e079190612399565b6066546040516370a0823160e01b81529192506000916001600160a01b03858116926370a0823192611e3f9290911690600401612137565b602060405180830381865afa158015611e5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e809190612399565b6065546040519192506001600160a01b03169063d1b7089a908590611eab9030908690602401612270565b60408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b179052606654905160e085901b6001600160e01b0319168152611f069392916001600160a01b031690600090600401612431565b6000604051808303816000875af1158015611f25573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f4d9190810190612465565b5060009050611f5c82846123b2565b6040516370a0823160e01b81529091506001600160a01b038516906370a0823190611f8b903090600401612137565b602060405180830381865afa158015611fa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fcc9190612399565b81146120145760405162461bcd60e51b8152602060048201526017602482015276111053c81d1c985b9cd9995c881a185cc819985a5b1959604a1b60448201526064016107a4565b60408051848152602081018390527f3107ec7eaa50b775d2486c7a394472235804b6fe1c0d4b7bd1d79b09df60f2ba910160405180910390a150505050565b606083156120625750816116f4565b6116f483838151156120775781518083602001fd5b8060405162461bcd60e51b81526004016107a491906124f1565b6001600160a01b0381168114610a8757600080fd5b600080604083850312156120b957600080fd5b8235915060208301356120cb81612091565b809150509250929050565b6000602082840312156120e857600080fd5b81356116f481612091565b8015158114610a8757600080fd5b60006020828403121561211357600080fd5b81356116f4816120f3565b60006020828403121561213057600080fd5b5035919050565b6001600160a01b0391909116815260200190565b60006020828403121561215d57600080fd5b813563ffffffff811681146116f457600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156121af576121af612171565b604052919050565b60006001600160401b038211156121d0576121d0612171565b50601f01601f191660200190565b600080604083850312156121f157600080fd5b82356121fc81612091565b915060208301356001600160401b0381111561221757600080fd5b8301601f8101851361222857600080fd5b803561223b612236826121b7565b612187565b81815286602083850101111561225057600080fd5b816020840160208301376000602083830101528093505050509250929050565b6001600160a01b03929092168252602082015260400190565b60006020828403121561229b57600080fd5b81516116f4816120f3565b634e487b7160e01b600052601160045260246000fd5b8181038181111561088d5761088d6122a6565b6000826122ec57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561230357600080fd5b81516116f481612091565b6020808252602c9082015260008051602061250583398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061250583398151915260408201526b6163746976652070726f787960a01b606082015260800190565b808202811582820484141761088d5761088d6122a6565b6000602082840312156123ab57600080fd5b5051919050565b8082018082111561088d5761088d6122a6565b60005b838110156123e05781810151838201526020016123c8565b50506000910152565b600082516123fb8184602087016123c5565b9190910192915050565b6000815180845261241d8160208601602086016123c5565b601f01601f19169290920160200192915050565b600060018060a01b038087168352608060208401526124536080840187612405565b94166040830152506060015292915050565b6000806040838503121561247857600080fd5b8251612483816120f3565b60208401519092506001600160401b0381111561249f57600080fd5b8301601f810185136124b057600080fd5b80516124be612236826121b7565b8181528660208385010111156124d357600080fd5b6124e48260208301602086016123c5565b8093505050509250929050565b6020815260006116f4602083018461240556fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212202afe084f86b5a62c028779d92b1d4be9dc3b4c110bbec72781b755b0f6a4896764736f6c63430008130033";
811
+ "0x60a06040523060805234801561001457600080fd5b506080516125f061004c600039600081816109cc01528181610a0c01528181610e3801528181610e780152610ef401526125f06000f3fe6080604052600436106101d55760003560e01c8062f714ce146101da578063013eba92146101fc57806302329a291461023c578063069786ea1461025c5780630ce82d67146102865780631248b1011461029b5780631a787f2e146102d25780631b3c90a8146102f25780631d8f5ea9146103075780633659cfe61461031d578063376585741461033d5780633d84ceca146103535780633e6326fc14610373578063414089be146103a05780634162169f146103c05780634322b714146103e0578063456ac1c2146104175780634e71d92d146104415780634f1ef2861461045657806352d1902d14610469578063560796d11461047e5780635aef7de6146104cf5780635c9302c9146104ef5780635c975abb1461050557806373b2e80e1461051f578063741470ac1461053f57806398d6621b146105555780639dc2c0331461056a578063a21f698a14610580578063ba075410146105a0578063c7713870146105b6578063c7a76adf146105cb578063cc054dfc146105eb578063cd6dc68714610618578063cef6360014610638578063d7c4cbb814610658578063dddc36161461066e578063de1de3a014610683578063e1758bd8146106a3578063eac471a0146106b8578063eda4e6d6146106ce575b600080fd5b3480156101e657600080fd5b506101fa6101f53660046120c9565b6106e4565b005b34801561020857600080fd5b506102296102173660046120f9565b609b6020526000908152604090205481565b6040519081526020015b60405180910390f35b34801561024857600080fd5b506101fa610257366004612124565b6107b2565b34801561026857600080fd5b506102716107cd565b60408051928352602083019190915201610233565b34801561029257600080fd5b5061022961080b565b3480156102a757600080fd5b506102716102b6366004612141565b609a602052600090815260409020600181015460029091015482565b3480156102de57600080fd5b506102296102ed3660046120f9565b61082e565b3480156102fe57600080fd5b506101fa61089b565b34801561031357600080fd5b50610229609e5481565b34801561032957600080fd5b506101fa6103383660046120f9565b6109c2565b34801561034957600080fd5b5061022960a95481565b34801561035f57600080fd5b506101fa61036e366004612141565b610a8a565b34801561037f57600080fd5b50606754610393906001600160a01b031681565b604051610233919061215a565b3480156103ac57600080fd5b506101fa6103bb36600461216e565b610b2d565b3480156103cc57600080fd5b50606554610393906001600160a01b031681565b3480156103ec57600080fd5b5060ae5461040290610100900463ffffffff1681565b60405163ffffffff9091168152602001610233565b34801561042357600080fd5b5060a3546104319060ff1681565b6040519015158152602001610233565b34801561044d57600080fd5b50610431610b57565b6101fa610464366004612201565b610e2e565b34801561047557600080fd5b50610229610ee7565b34801561048a57600080fd5b506104b8610499366004612141565b60ab602052600090815260409020805460019091015460ff9091169082565b604080519215158352602083019190915201610233565b3480156104db57600080fd5b50606654610393906001600160a01b031681565b3480156104fb57600080fd5b50610229609c5481565b34801561051157600080fd5b5060ae546104319060ff1681565b34801561052b57600080fd5b5061043161053a3660046120f9565b610f95565b34801561054b57600080fd5b5061022960a75481565b34801561056157600080fd5b50610229610fc1565b34801561057657600080fd5b5061022960a55481565b34801561058c57600080fd5b5061043161059b3660046120f9565b610fcc565b3480156105ac57600080fd5b5061022960a65481565b3480156105c257600080fd5b50610229610ff2565b3480156105d757600080fd5b506102296105e6366004612141565b61115f565b3480156105f757600080fd5b506102296106063660046120f9565b60ad6020526000908152604090205481565b34801561062457600080fd5b506101fa610633366004612293565b611174565b34801561064457600080fd5b50610229610653366004612141565b6112e4565b34801561066457600080fd5b5061022960a15481565b34801561067a57600080fd5b506101fa6112f9565b34801561068f57600080fd5b506101fa61069e366004612124565b611358565b3480156106af57600080fd5b506103936113a7565b3480156106c457600080fd5b5061022960a45481565b3480156106da57600080fd5b50610229609d5481565b6106ec61142f565b60006106f66113a7565b60405163a9059cbb60e01b81529091506001600160a01b0382169063a9059cbb9061072790859087906004016122bf565b6020604051808303816000875af1158015610746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a91906122d8565b6107ad5760405162461bcd60e51b815260206004820152600f60248201526e1dda5d1a191c985dc819985a5b1959608a1b60448201526064015b60405180910390fd5b505050565b6107ba61142f565b60ae805460ff1916911515919091179055565b600080600062015180609d54426107e4919061230b565b6107ee919061231e565b90506107f98161115f565b610802826112e4565b92509250509091565b60006201518060a6544261081f919061230b565b610829919061231e565b905090565b6000609d5442101561084257506000919050565b62015180609d5442610854919061230b565b61085e919061231e565b609c5414801561087057506000609e54115b156108935761087e82610f95565b61088a57609e5461088d565b60005b92915050565b61088d610ff2565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa1580156108fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109229190612340565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa15801561097c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a09190612340565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a0a5760405162461bcd60e51b81526004016107a49061235d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a3c6114f4565b6001600160a01b031614610a625760405162461bcd60e51b81526004016107a490612397565b610a6b81611510565b60408051600080825260208201909252610a8791839190611518565b50565b610a9261142f565b60008111610aec5760405162461bcd60e51b815260206004820152602160248201527f6379636c65206d757374206265206174206c65617374203120646179206c6f6e6044820152606760f81b60648201526084016107a4565b60a4819055600060a7556040518181527fa61e6cca2c12e2a0a493683acfe95b034f0f50d793434f4dfe3ba06ea201f344906020015b60405180910390a150565b610b3561142f565b60ae805463ffffffff9092166101000264ffffffff0019909216919091179055565b60ae5460009060ff16158015610b6f57506000609d54115b8015610b7d5750609d544210155b610bc95760405162461bcd60e51b815260206004820152601e60248201527f6e6f7420696e20706572696f6453746172746564206f7220706175736564000060448201526064016107a4565b60675460405163bf40fac160e01b81526020600482015260086024820152674944454e5449545960c01b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa158015610c2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4f9190612340565b6001600160a01b0316632d0e9b46336040518263ffffffff1660e01b8152600401610c7a919061215a565b602060405180830381865afa158015610c97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbb9190612340565b90506001600160a01b038116610d105760405162461bcd60e51b815260206004820152601a60248201527915509254d8da195b594e881b9bdd081dda1a5d195b1a5cdd195960321b60448201526064016107a4565b6000610d1c8233611683565b60675460405163bf40fac160e01b815260206004820152600d60248201526c4744414f5f434c41494d45525360981b60448201529192506000916001600160a01b039091169063bf40fac190606401602060405180830381865afa158015610d88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dac9190612340565b9050818015610dc357506001600160a01b03811615155b15610e275760405163748abee960e11b81526001600160a01b0382169063e9157dd290610df490869060040161215a565b600060405180830381600087803b158015610e0e57600080fd5b505af1158015610e22573d6000803e3d6000fd5b505050505b5091505090565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e765760405162461bcd60e51b81526004016107a49061235d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ea86114f4565b6001600160a01b031614610ece5760405162461bcd60e51b81526004016107a490612397565b610ed782611510565b610ee382826001611518565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f825760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b60648201526084016107a4565b5060008051602061257483398151915290565b609c546000908152609a602090815260408083206001600160a01b039094168352929052205460ff1690565b60006108293361082e565b6001600160a01b0381166000908152609b60205260408120541561088a57506001919050565b600080610ffd6113a7565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611028919061215a565b602060405180830381865afa158015611045573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106991906123d1565b9050600060a4548261107b919061231e565b9050600060a75461108a61080b565b6110959060016123ea565b1015806110bb5750606460a55460696110ae91906123fd565b6110b8919061231e565b82115b806110f2575060016110cb61080b565b60a4546110d8919061230b565b6110e2919061230b565b60a5546110ef91906123fd565b83105b60a55490915060008215611104578391505b60ae54609c546000908152609a602052604090206001015461114b916127109161113991610100900463ffffffff16906123fd565b611143919061231e565b60a9546116bc565b611155908361231e565b9695505050505050565b6000908152609a602052604090206001015490565b600054610100900460ff16158080156111945750600054600160ff909116105b806111b557506111a3306116d5565b1580156111b5575060005460ff166001145b6112185760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016107a4565b6000805460ff19166001179055801561123b576000805461ff0019166101001790555b611244836116e4565b60a3805460ff19169055601e60a45561a8c0611263620151804261231e565b61127090620151806123fd565b61127a919061230b565b609d81905560a65560a982905560ae805464ffffffff0019166229040017905580156107ad576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6000908152609a602052604090206002015490565b600062015180609d544261130d919061230b565b611317919061231e565b9050609c54811115610a8757609c8190556040518181527f67eb03bd555181f9dd23f546e4331ddfb8b4a7d0c8d261ba44e037f30ce894ea90602001610b22565b61136061142f565b60a3805460ff191682151590811790915560405160ff909116151581527f6cd9a0fd2e006be39a9918bf56c85cae1d4f4599474483ff18cb93355ebaaf8e90602001610b22565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa15801561140b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108299190612340565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de69160048083019260209291908290030181865afa158015611478573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149c9190612340565b6001600160a01b0316146114f25760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f6460448201526064016107a4565b565b600080516020612574833981519152546001600160a01b031690565b610a8761142f565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561154b576107ad83611707565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156115a5575060408051601f3d908101601f191682019092526115a2918101906123d1565b60015b6116085760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016107a4565b60008051602061257483398151915281146116775760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016107a4565b506107ad8383836117a1565b60008061168e6117cc565b905061169984610f95565b6116b2576116a8848483611acc565b600191505061088d565b5060009392505050565b6000818310156116cc57816116ce565b825b9392505050565b6001600160a01b03163b151590565b606780546001600160a01b0319166001600160a01b038316179055610a8761089b565b611710816116d5565b6117725760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016107a4565b60008051602061257483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6117aa83611c7d565b6000825111806117b75750805b156107ad576117c68383611cbd565b50505050565b60006117d66112f9565b60a154609c541415806117e95750609e54155b15611ac55760006117f86113a7565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611828919061215a565b602060405180830381865afa158015611845573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186991906123d1565b9050600060a4548261187b919061231e565b9050600060a75461188a61080b565b1015806118da5750606460a55460696118a391906123fd565b6118ad919061231e565b8211806118da57506118bd61080b565b60a4546118ca919061230b565b60a5546118d791906123fd565b83105b905080156119db5760a35460ff1615611965576118f5611daf565b6040516370a0823160e01b81526001600160a01b038516906370a082319061192190309060040161215a565b602060405180830381865afa15801561193e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196291906123d1565b92505b60a582905560a45460a75561197c610e104261231e565b61198890610e106123fd565b60a655609c5460a45460a554604080519384526020840187905283019190915260608201527f83e0d535b9e84324e0a25922406398d6ff5f96d0c686204ee490e16d7670566f9060800160405180910390a15b60a180546000908152609a60209081526040808320600190810154609c549586905594845260ab90925290912060a354815460ff191660ff909116151517815590810185905560ae54611a41906127109061113990610100900463ffffffff16856123fd565b60a554611a4e919061231e565b609e5560a954601e90611a6290601d6123fd565b611a6c90846123ea565b611a76919061231e565b60a955609c54609e546040805192835260208301919091524382820152517f836fa39995340265746dfe9587d9fe5c5de35b7bce778afd9b124ce1cfeafdc49181900360600190a15050505050505b50609e5490565b6001609a6000609c5481526020019081526020016000206001016000828254611af591906123ea565b9091555050609c546000908152609a602090815260408083206001600160a01b03871684528252808320805460ff19166001908117909155609b835281842042905560ad9092528220805491929091611b4f9084906123ea565b9091555050609c546000908152609a602052604081206002018054839290611b789084906123ea565b90915550506040518181526001600160a01b038416907f89ed24731df6b066e4c5186901fffdba18cd9a10f07494aff900bdee260d13049060200160405180910390a26000611bc56113a7565b60405163a9059cbb60e01b81529091506001600160a01b0382169063a9059cbb90611bf690869086906004016122bf565b6020604051808303816000875af1158015611c15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3991906122d8565b6117c65760405162461bcd60e51b815260206004820152601560248201527418db185a5b481d1c985b9cd9995c8819985a5b1959605a1b60448201526064016107a4565b611c8681611707565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060611cc8836116d5565b611d235760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016107a4565b600080846001600160a01b031684604051611d3e9190612438565b600060405180830381855af49150503d8060008114611d79576040519150601f19603f3d011682016040523d82523d6000602084013e611d7e565b606091505b5091509150611da6828260405180606001604052806027815260200161259460279139612076565b95945050505050565b6000611db96113a7565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611de9919061215a565b602060405180830381865afa158015611e06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e2a91906123d1565b6066546040516370a0823160e01b81529192506000916001600160a01b03858116926370a0823192611e62929091169060040161215a565b602060405180830381865afa158015611e7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea391906123d1565b6065546040519192506001600160a01b03169063d1b7089a908590611ece90309086906024016122bf565b60408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b179052606654905160e085901b6001600160e01b0319168152611f299392916001600160a01b031690600090600401612480565b6000604051808303816000875af1158015611f48573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f7091908101906124b4565b5060009050611f7f82846123ea565b6040516370a0823160e01b81529091506001600160a01b038516906370a0823190611fae90309060040161215a565b602060405180830381865afa158015611fcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fef91906123d1565b81146120375760405162461bcd60e51b8152602060048201526017602482015276111053c81d1c985b9cd9995c881a185cc819985a5b1959604a1b60448201526064016107a4565b60408051848152602081018390527f3107ec7eaa50b775d2486c7a394472235804b6fe1c0d4b7bd1d79b09df60f2ba910160405180910390a150505050565b606083156120855750816116ce565b6116ce838381511561209a5781518083602001fd5b8060405162461bcd60e51b81526004016107a49190612540565b6001600160a01b0381168114610a8757600080fd5b600080604083850312156120dc57600080fd5b8235915060208301356120ee816120b4565b809150509250929050565b60006020828403121561210b57600080fd5b81356116ce816120b4565b8015158114610a8757600080fd5b60006020828403121561213657600080fd5b81356116ce81612116565b60006020828403121561215357600080fd5b5035919050565b6001600160a01b0391909116815260200190565b60006020828403121561218057600080fd5b813563ffffffff811681146116ce57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156121d2576121d2612194565b604052919050565b60006001600160401b038211156121f3576121f3612194565b50601f01601f191660200190565b6000806040838503121561221457600080fd5b823561221f816120b4565b915060208301356001600160401b0381111561223a57600080fd5b8301601f8101851361224b57600080fd5b803561225e612259826121da565b6121aa565b81815286602083850101111561227357600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080604083850312156122a657600080fd5b82356122b1816120b4565b946020939093013593505050565b6001600160a01b03929092168252602082015260400190565b6000602082840312156122ea57600080fd5b81516116ce81612116565b634e487b7160e01b600052601160045260246000fd5b8181038181111561088d5761088d6122f5565b60008261233b57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561235257600080fd5b81516116ce816120b4565b6020808252602c9082015260008051602061255483398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061255483398151915260408201526b6163746976652070726f787960a01b606082015260800190565b6000602082840312156123e357600080fd5b5051919050565b8082018082111561088d5761088d6122f5565b808202811582820484141761088d5761088d6122f5565b60005b8381101561242f578181015183820152602001612417565b50506000910152565b6000825161244a818460208701612414565b9190910192915050565b6000815180845261246c816020860160208601612414565b601f01601f19169290920160200192915050565b600060018060a01b038087168352608060208401526124a26080840187612454565b94166040830152506060015292915050565b600080604083850312156124c757600080fd5b82516124d281612116565b60208401519092506001600160401b038111156124ee57600080fd5b8301601f810185136124ff57600080fd5b805161250d612259826121da565b81815286602083850101111561252257600080fd5b612533826020830160208601612414565b8093505050509250929050565b6020815260006116ce602083018461245456fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122050a6c23a359a84257b55cf53d11bb3eb1f56912ad335f7bf112b82b36cb91c6f64736f6c63430008130033";
807
812
 
808
813
  type UBISchemeV2ConstructorParams =
809
814
  | [signer?: Signer]
@@ -83,7 +83,7 @@ const _abi = [
83
83
  ] as const;
84
84
 
85
85
  const _bytecode =
86
- "0x608060405234801561001057600080fd5b506105a6806100206000396000f3fe6080604052600436106100225760003560e01c8063d1f578941461003957610031565b366100315761002f61004c565b005b61002f61004c565b61002f6100473660046103ef565b61005e565b61005c61005761013d565b61014c565b565b6000610068610170565b6001600160a01b0316146100b15760405162461bcd60e51b815260206004820152600b60248201526a1a5b9a5d1a585b1a5e995960aa1b60448201526064015b60405180910390fd5b6100dc60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61047f565b60008051602061052a833981519152146100f8576100f86104a0565b6101388383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061018c915050565b505050565b6000610147610170565b905090565b3660008037600080366000845af43d6000803e80801561016b573d6000f35b3d6000fd5b60008051602061052a833981519152546001600160a01b031690565b610195836101b7565b6000825111806101a25750805b15610138576101b183836101f7565b50505050565b6101c081610225565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061021c838360405180606001604052806027815260200161054a602791396102bf565b90505b92915050565b61022e81610337565b6102905760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016100a8565b60008051602061052a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b0316856040516102dc91906104da565b600060405180830381855af49150503d8060008114610317576040519150601f19603f3d011682016040523d82523d6000602084013e61031c565b606091505b509150915061032d86838387610346565b9695505050505050565b6001600160a01b03163b151590565b606083156103b35782516000036103ac5761036085610337565b6103ac5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016100a8565b50816103bd565b6103bd83836103c5565b949350505050565b8151156103d55781518083602001fd5b8060405162461bcd60e51b81526004016100a891906104f6565b60008060006040848603121561040457600080fd5b83356001600160a01b038116811461041b57600080fd5b925060208401356001600160401b038082111561043757600080fd5b818601915086601f83011261044b57600080fd5b81358181111561045a57600080fd5b87602082850101111561046c57600080fd5b6020830194508093505050509250925092565b8181038181111561021f57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60005b838110156104d15781810151838201526020016104b9565b50506000910152565b600082516104ec8184602087016104b6565b9190910192915050565b60208152600082518060208401526105158160408501602087016104b6565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a052ed38aeaa366b056c414db515d80820b6c3e4f102ba57be1a4c2dc0f60e6d64736f6c63430008130033";
86
+ "0x608060405234801561001057600080fd5b506105a6806100206000396000f3fe6080604052600436106100225760003560e01c8063d1f578941461003957610031565b366100315761002f61004c565b005b61002f61004c565b61002f6100473660046103ef565b61005e565b61005c61005761013d565b61014c565b565b6000610068610170565b6001600160a01b0316146100b15760405162461bcd60e51b815260206004820152600b60248201526a1a5b9a5d1a585b1a5e995960aa1b60448201526064015b60405180910390fd5b6100dc60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61047f565b60008051602061052a833981519152146100f8576100f86104a0565b6101388383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061018c915050565b505050565b6000610147610170565b905090565b3660008037600080366000845af43d6000803e80801561016b573d6000f35b3d6000fd5b60008051602061052a833981519152546001600160a01b031690565b610195836101b7565b6000825111806101a25750805b15610138576101b183836101f7565b50505050565b6101c081610225565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061021c838360405180606001604052806027815260200161054a602791396102bf565b90505b92915050565b61022e81610337565b6102905760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016100a8565b60008051602061052a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b0316856040516102dc91906104da565b600060405180830381855af49150503d8060008114610317576040519150601f19603f3d011682016040523d82523d6000602084013e61031c565b606091505b509150915061032d86838387610346565b9695505050505050565b6001600160a01b03163b151590565b606083156103b35782516000036103ac5761036085610337565b6103ac5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016100a8565b50816103bd565b6103bd83836103c5565b949350505050565b8151156103d55781518083602001fd5b8060405162461bcd60e51b81526004016100a891906104f6565b60008060006040848603121561040457600080fd5b83356001600160a01b038116811461041b57600080fd5b925060208401356001600160401b038082111561043757600080fd5b818601915086601f83011261044b57600080fd5b81358181111561045a57600080fd5b87602082850101111561046c57600080fd5b6020830194508093505050509250925092565b8181038181111561021f57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60005b838110156104d15781810151838201526020016104b9565b50506000910152565b600082516104ec8184602087016104b6565b9190910192915050565b60208152600082518060208401526105158160408501602087016104b6565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200e6166433af0aedd2d00610e79bdf008f29d6e0f5d0ecbcb775fac40004d953e64736f6c63430008130033";
87
87
 
88
88
  type ERC1967ProxyConstructorParams =
89
89
  | [signer?: Signer]
@@ -173,7 +173,7 @@ const _abi = [
173
173
  ] as const;
174
174
 
175
175
  const _bytecode =
176
- "0x608060405234801561001057600080fd5b5060405161002060208201610044565b601f1982820381018352601f90910116604052805160209190910120600055610051565b6105c680610d8383390190565b610d23806100606000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630bf61a011461005c5780631b903b841461008557806340ad200d1461009857806381ae1f5b146100ab578063b3eeb5e2146100be575b600080fd5b61006f61006a366004610512565b6100d1565b60405161007c9190610568565b60405180910390f35b61006f61009336600461057c565b6100e7565b61006f6100a63660046105f7565b61016c565b61006f6100b936600461062c565b6101df565b61006f6100cc366004610658565b6101f5565b60006100df848484336102f2565b949350505050565b60008061012b853386868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103cd92505050565b90507fcf78cf0d6f3d8371e1075c69c492ab4ec5d8cf23a1a239b6a51a1d00be7ca3128160405161015c9190610568565b60405180910390a1949350505050565b60008061017985856103fe565b6040516001600160f81b031960208201526001600160601b03193060601b166021820152603581018290526055810185905290915060009060750160408051808303601f1901815291905280516020909101206001600160a01b03169695505050505050565b60006101ee838360005461016c565b9392505050565b6000808360601b9050604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528160148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09250507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349826040516102709190610568565b60405180910390a18251156102eb576000826001600160a01b03168460405161029991906106c9565b6000604051808303816000865af19150503d80600081146102d6576040519150601f19603f3d011682016040523d82523d6000602084013e6102db565b606091505b50509050806102e957600080fd5b505b5092915050565b6000806040518060200161030590610447565b601f1982820381018352601f90910116604052905060006103278785846103cd565b60405163347d5e2560e21b815290915081906001600160a01b0382169063d1f578949061035a908a908a906004016106e5565b600060405180830381600087803b15801561037457600080fd5b505af1158015610388573d6000803e3d6000fd5b505050507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349816040516103ba9190610568565b60405180910390a1979650505050505050565b60008060006103dc86866103fe565b9050808451602086016000f59150813b6103f557600080fd5b50949350505050565b6000828260405160200161042992919091825260601b6001600160601b031916602082015260340190565b60405160208183030381529060405280519060200120905092915050565b6105c68061072883390190565b80356001600160a01b038116811461046b57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261049757600080fd5b81356001600160401b03808211156104b1576104b1610470565b604051601f8301601f19908116603f011681019082821181831017156104d9576104d9610470565b816040528381528660208588010111156104f257600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848603121561052757600080fd5b8335925061053760208501610454565b915060408401356001600160401b0381111561055257600080fd5b61055e86828701610486565b9150509250925092565b6001600160a01b0391909116815260200190565b60008060006040848603121561059157600080fd5b8335925060208401356001600160401b03808211156105af57600080fd5b818601915086601f8301126105c357600080fd5b8135818111156105d257600080fd5b8760208285010111156105e457600080fd5b6020830194508093505050509250925092565b60008060006060848603121561060c57600080fd5b8335925061061c60208501610454565b9150604084013590509250925092565b6000806040838503121561063f57600080fd5b8235915061064f60208401610454565b90509250929050565b6000806040838503121561066b57600080fd5b61067483610454565b915060208301356001600160401b0381111561068f57600080fd5b61069b85828601610486565b9150509250929050565b60005b838110156106c05781810151838201526020016106a8565b50506000910152565b600082516106db8184602087016106a5565b9190910192915050565b60018060a01b038316815260406020820152600082518060408401526107128160608501602087016106a5565b601f01601f191691909101606001939250505056fe608060405234801561001057600080fd5b506105a6806100206000396000f3fe6080604052600436106100225760003560e01c8063d1f578941461003957610031565b366100315761002f61004c565b005b61002f61004c565b61002f6100473660046103ef565b61005e565b61005c61005761013d565b61014c565b565b6000610068610170565b6001600160a01b0316146100b15760405162461bcd60e51b815260206004820152600b60248201526a1a5b9a5d1a585b1a5e995960aa1b60448201526064015b60405180910390fd5b6100dc60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61047f565b60008051602061052a833981519152146100f8576100f86104a0565b6101388383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061018c915050565b505050565b6000610147610170565b905090565b3660008037600080366000845af43d6000803e80801561016b573d6000f35b3d6000fd5b60008051602061052a833981519152546001600160a01b031690565b610195836101b7565b6000825111806101a25750805b15610138576101b183836101f7565b50505050565b6101c081610225565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061021c838360405180606001604052806027815260200161054a602791396102bf565b90505b92915050565b61022e81610337565b6102905760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016100a8565b60008051602061052a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b0316856040516102dc91906104da565b600060405180830381855af49150503d8060008114610317576040519150601f19603f3d011682016040523d82523d6000602084013e61031c565b606091505b509150915061032d86838387610346565b9695505050505050565b6001600160a01b03163b151590565b606083156103b35782516000036103ac5761036085610337565b6103ac5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016100a8565b50816103bd565b6103bd83836103c5565b949350505050565b8151156103d55781518083602001fd5b8060405162461bcd60e51b81526004016100a891906104f6565b60008060006040848603121561040457600080fd5b83356001600160a01b038116811461041b57600080fd5b925060208401356001600160401b038082111561043757600080fd5b818601915086601f83011261044b57600080fd5b81358181111561045a57600080fd5b87602082850101111561046c57600080fd5b6020830194508093505050509250925092565b8181038181111561021f57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60005b838110156104d15781810151838201526020016104b9565b50506000910152565b600082516104ec8184602087016104b6565b9190910192915050565b60208152600082518060208401526105158160408501602087016104b6565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a052ed38aeaa366b056c414db515d80820b6c3e4f102ba57be1a4c2dc0f60e6d64736f6c63430008130033a2646970667358221220c219a52ffd1d85e967482a4bef1ddd314c4c96bc3a9b6123fa5a915da413cb4064736f6c63430008130033608060405234801561001057600080fd5b506105a6806100206000396000f3fe6080604052600436106100225760003560e01c8063d1f578941461003957610031565b366100315761002f61004c565b005b61002f61004c565b61002f6100473660046103ef565b61005e565b61005c61005761013d565b61014c565b565b6000610068610170565b6001600160a01b0316146100b15760405162461bcd60e51b815260206004820152600b60248201526a1a5b9a5d1a585b1a5e995960aa1b60448201526064015b60405180910390fd5b6100dc60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61047f565b60008051602061052a833981519152146100f8576100f86104a0565b6101388383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061018c915050565b505050565b6000610147610170565b905090565b3660008037600080366000845af43d6000803e80801561016b573d6000f35b3d6000fd5b60008051602061052a833981519152546001600160a01b031690565b610195836101b7565b6000825111806101a25750805b15610138576101b183836101f7565b50505050565b6101c081610225565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061021c838360405180606001604052806027815260200161054a602791396102bf565b90505b92915050565b61022e81610337565b6102905760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016100a8565b60008051602061052a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b0316856040516102dc91906104da565b600060405180830381855af49150503d8060008114610317576040519150601f19603f3d011682016040523d82523d6000602084013e61031c565b606091505b509150915061032d86838387610346565b9695505050505050565b6001600160a01b03163b151590565b606083156103b35782516000036103ac5761036085610337565b6103ac5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016100a8565b50816103bd565b6103bd83836103c5565b949350505050565b8151156103d55781518083602001fd5b8060405162461bcd60e51b81526004016100a891906104f6565b60008060006040848603121561040457600080fd5b83356001600160a01b038116811461041b57600080fd5b925060208401356001600160401b038082111561043757600080fd5b818601915086601f83011261044b57600080fd5b81358181111561045a57600080fd5b87602082850101111561046c57600080fd5b6020830194508093505050509250925092565b8181038181111561021f57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60005b838110156104d15781810151838201526020016104b9565b50506000910152565b600082516104ec8184602087016104b6565b9190910192915050565b60208152600082518060208401526105158160408501602087016104b6565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a052ed38aeaa366b056c414db515d80820b6c3e4f102ba57be1a4c2dc0f60e6d64736f6c63430008130033";
176
+ "0x608060405234801561001057600080fd5b5060405161002060208201610044565b601f1982820381018352601f90910116604052805160209190910120600055610051565b6105c680610d8383390190565b610d23806100606000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630bf61a011461005c5780631b903b841461008557806340ad200d1461009857806381ae1f5b146100ab578063b3eeb5e2146100be575b600080fd5b61006f61006a366004610512565b6100d1565b60405161007c9190610568565b60405180910390f35b61006f61009336600461057c565b6100e7565b61006f6100a63660046105f7565b61016c565b61006f6100b936600461062c565b6101df565b61006f6100cc366004610658565b6101f5565b60006100df848484336102f2565b949350505050565b60008061012b853386868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103cd92505050565b90507fcf78cf0d6f3d8371e1075c69c492ab4ec5d8cf23a1a239b6a51a1d00be7ca3128160405161015c9190610568565b60405180910390a1949350505050565b60008061017985856103fe565b6040516001600160f81b031960208201526001600160601b03193060601b166021820152603581018290526055810185905290915060009060750160408051808303601f1901815291905280516020909101206001600160a01b03169695505050505050565b60006101ee838360005461016c565b9392505050565b6000808360601b9050604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528160148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09250507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349826040516102709190610568565b60405180910390a18251156102eb576000826001600160a01b03168460405161029991906106c9565b6000604051808303816000865af19150503d80600081146102d6576040519150601f19603f3d011682016040523d82523d6000602084013e6102db565b606091505b50509050806102e957600080fd5b505b5092915050565b6000806040518060200161030590610447565b601f1982820381018352601f90910116604052905060006103278785846103cd565b60405163347d5e2560e21b815290915081906001600160a01b0382169063d1f578949061035a908a908a906004016106e5565b600060405180830381600087803b15801561037457600080fd5b505af1158015610388573d6000803e3d6000fd5b505050507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349816040516103ba9190610568565b60405180910390a1979650505050505050565b60008060006103dc86866103fe565b9050808451602086016000f59150813b6103f557600080fd5b50949350505050565b6000828260405160200161042992919091825260601b6001600160601b031916602082015260340190565b60405160208183030381529060405280519060200120905092915050565b6105c68061072883390190565b80356001600160a01b038116811461046b57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261049757600080fd5b81356001600160401b03808211156104b1576104b1610470565b604051601f8301601f19908116603f011681019082821181831017156104d9576104d9610470565b816040528381528660208588010111156104f257600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848603121561052757600080fd5b8335925061053760208501610454565b915060408401356001600160401b0381111561055257600080fd5b61055e86828701610486565b9150509250925092565b6001600160a01b0391909116815260200190565b60008060006040848603121561059157600080fd5b8335925060208401356001600160401b03808211156105af57600080fd5b818601915086601f8301126105c357600080fd5b8135818111156105d257600080fd5b8760208285010111156105e457600080fd5b6020830194508093505050509250925092565b60008060006060848603121561060c57600080fd5b8335925061061c60208501610454565b9150604084013590509250925092565b6000806040838503121561063f57600080fd5b8235915061064f60208401610454565b90509250929050565b6000806040838503121561066b57600080fd5b61067483610454565b915060208301356001600160401b0381111561068f57600080fd5b61069b85828601610486565b9150509250929050565b60005b838110156106c05781810151838201526020016106a8565b50506000910152565b600082516106db8184602087016106a5565b9190910192915050565b60018060a01b038316815260406020820152600082518060408401526107128160608501602087016106a5565b601f01601f191691909101606001939250505056fe608060405234801561001057600080fd5b506105a6806100206000396000f3fe6080604052600436106100225760003560e01c8063d1f578941461003957610031565b366100315761002f61004c565b005b61002f61004c565b61002f6100473660046103ef565b61005e565b61005c61005761013d565b61014c565b565b6000610068610170565b6001600160a01b0316146100b15760405162461bcd60e51b815260206004820152600b60248201526a1a5b9a5d1a585b1a5e995960aa1b60448201526064015b60405180910390fd5b6100dc60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61047f565b60008051602061052a833981519152146100f8576100f86104a0565b6101388383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061018c915050565b505050565b6000610147610170565b905090565b3660008037600080366000845af43d6000803e80801561016b573d6000f35b3d6000fd5b60008051602061052a833981519152546001600160a01b031690565b610195836101b7565b6000825111806101a25750805b15610138576101b183836101f7565b50505050565b6101c081610225565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061021c838360405180606001604052806027815260200161054a602791396102bf565b90505b92915050565b61022e81610337565b6102905760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016100a8565b60008051602061052a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b0316856040516102dc91906104da565b600060405180830381855af49150503d8060008114610317576040519150601f19603f3d011682016040523d82523d6000602084013e61031c565b606091505b509150915061032d86838387610346565b9695505050505050565b6001600160a01b03163b151590565b606083156103b35782516000036103ac5761036085610337565b6103ac5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016100a8565b50816103bd565b6103bd83836103c5565b949350505050565b8151156103d55781518083602001fd5b8060405162461bcd60e51b81526004016100a891906104f6565b60008060006040848603121561040457600080fd5b83356001600160a01b038116811461041b57600080fd5b925060208401356001600160401b038082111561043757600080fd5b818601915086601f83011261044b57600080fd5b81358181111561045a57600080fd5b87602082850101111561046c57600080fd5b6020830194508093505050509250925092565b8181038181111561021f57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60005b838110156104d15781810151838201526020016104b9565b50506000910152565b600082516104ec8184602087016104b6565b9190910192915050565b60208152600082518060208401526105158160408501602087016104b6565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200e6166433af0aedd2d00610e79bdf008f29d6e0f5d0ecbcb775fac40004d953e64736f6c63430008130033a2646970667358221220692640a4c39c212fc492192c3f1a222f3611bc814d0e23bff4d232f5f02e366f64736f6c63430008130033608060405234801561001057600080fd5b506105a6806100206000396000f3fe6080604052600436106100225760003560e01c8063d1f578941461003957610031565b366100315761002f61004c565b005b61002f61004c565b61002f6100473660046103ef565b61005e565b61005c61005761013d565b61014c565b565b6000610068610170565b6001600160a01b0316146100b15760405162461bcd60e51b815260206004820152600b60248201526a1a5b9a5d1a585b1a5e995960aa1b60448201526064015b60405180910390fd5b6100dc60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61047f565b60008051602061052a833981519152146100f8576100f86104a0565b6101388383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061018c915050565b505050565b6000610147610170565b905090565b3660008037600080366000845af43d6000803e80801561016b573d6000f35b3d6000fd5b60008051602061052a833981519152546001600160a01b031690565b610195836101b7565b6000825111806101a25750805b15610138576101b183836101f7565b50505050565b6101c081610225565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061021c838360405180606001604052806027815260200161054a602791396102bf565b90505b92915050565b61022e81610337565b6102905760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016100a8565b60008051602061052a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b0316856040516102dc91906104da565b600060405180830381855af49150503d8060008114610317576040519150601f19603f3d011682016040523d82523d6000602084013e61031c565b606091505b509150915061032d86838387610346565b9695505050505050565b6001600160a01b03163b151590565b606083156103b35782516000036103ac5761036085610337565b6103ac5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016100a8565b50816103bd565b6103bd83836103c5565b949350505050565b8151156103d55781518083602001fd5b8060405162461bcd60e51b81526004016100a891906104f6565b60008060006040848603121561040457600080fd5b83356001600160a01b038116811461041b57600080fd5b925060208401356001600160401b038082111561043757600080fd5b818601915086601f83011261044b57600080fd5b81358181111561045a57600080fd5b87602082850101111561046c57600080fd5b6020830194508093505050509250925092565b8181038181111561021f57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60005b838110156104d15781810151838201526020016104b9565b50506000910152565b600082516104ec8184602087016104b6565b9190910192915050565b60208152600082518060208401526105158160408501602087016104b6565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200e6166433af0aedd2d00610e79bdf008f29d6e0f5d0ecbcb775fac40004d953e64736f6c63430008130033";
177
177
 
178
178
  type ProxyFactory1967ConstructorParams =
179
179
  | [signer?: Signer]
@@ -296,6 +296,10 @@ declare module "hardhat/types/runtime" {
296
296
  name: "UUPSProxiable",
297
297
  signerOrOptions?: ethers.Signer | FactoryOptions
298
298
  ): Promise<Contracts.UUPSProxiable__factory>;
299
+ getContractFactory(
300
+ name: "IWETH",
301
+ signerOrOptions?: ethers.Signer | FactoryOptions
302
+ ): Promise<Contracts.IWETH__factory>;
299
303
  getContractFactory(
300
304
  name: "IUniswapV3Factory",
301
305
  signerOrOptions?: ethers.Signer | FactoryOptions
@@ -512,6 +516,14 @@ declare module "hardhat/types/runtime" {
512
516
  name: "IQuoterV2",
513
517
  signerOrOptions?: ethers.Signer | FactoryOptions
514
518
  ): Promise<Contracts.IQuoterV2__factory>;
519
+ getContractFactory(
520
+ name: "INonfungiblePositionManager",
521
+ signerOrOptions?: ethers.Signer | FactoryOptions
522
+ ): Promise<Contracts.INonfungiblePositionManager__factory>;
523
+ getContractFactory(
524
+ name: "IUniswapV3Pool",
525
+ signerOrOptions?: ethers.Signer | FactoryOptions
526
+ ): Promise<Contracts.IUniswapV3Pool__factory>;
515
527
  getContractFactory(
516
528
  name: "IBancorExchangeProvider",
517
529
  signerOrOptions?: ethers.Signer | FactoryOptions
@@ -716,6 +728,10 @@ declare module "hardhat/types/runtime" {
716
728
  name: "ExchangeHelper",
717
729
  signerOrOptions?: ethers.Signer | FactoryOptions
718
730
  ): Promise<Contracts.ExchangeHelper__factory>;
731
+ getContractFactory(
732
+ name: "GenericDistributionHelper",
733
+ signerOrOptions?: ethers.Signer | FactoryOptions
734
+ ): Promise<Contracts.GenericDistributionHelper__factory>;
719
735
  getContractFactory(
720
736
  name: "GoodMarketMaker",
721
737
  signerOrOptions?: ethers.Signer | FactoryOptions
@@ -1380,6 +1396,11 @@ declare module "hardhat/types/runtime" {
1380
1396
  address: string,
1381
1397
  signer?: ethers.Signer
1382
1398
  ): Promise<Contracts.UUPSProxiable>;
1399
+ getContractAt(
1400
+ name: "IWETH",
1401
+ address: string,
1402
+ signer?: ethers.Signer
1403
+ ): Promise<Contracts.IWETH>;
1383
1404
  getContractAt(
1384
1405
  name: "IUniswapV3Factory",
1385
1406
  address: string,
@@ -1650,6 +1671,16 @@ declare module "hardhat/types/runtime" {
1650
1671
  address: string,
1651
1672
  signer?: ethers.Signer
1652
1673
  ): Promise<Contracts.IQuoterV2>;
1674
+ getContractAt(
1675
+ name: "INonfungiblePositionManager",
1676
+ address: string,
1677
+ signer?: ethers.Signer
1678
+ ): Promise<Contracts.INonfungiblePositionManager>;
1679
+ getContractAt(
1680
+ name: "IUniswapV3Pool",
1681
+ address: string,
1682
+ signer?: ethers.Signer
1683
+ ): Promise<Contracts.IUniswapV3Pool>;
1653
1684
  getContractAt(
1654
1685
  name: "IBancorExchangeProvider",
1655
1686
  address: string,
@@ -1905,6 +1936,11 @@ declare module "hardhat/types/runtime" {
1905
1936
  address: string,
1906
1937
  signer?: ethers.Signer
1907
1938
  ): Promise<Contracts.ExchangeHelper>;
1939
+ getContractAt(
1940
+ name: "GenericDistributionHelper",
1941
+ address: string,
1942
+ signer?: ethers.Signer
1943
+ ): Promise<Contracts.GenericDistributionHelper>;
1908
1944
  getContractAt(
1909
1945
  name: "GoodMarketMaker",
1910
1946
  address: string,
package/types/index.ts CHANGED
@@ -154,6 +154,8 @@ export type { FlowNFTBase } from "./@superfluid-finance/ethereum-contracts/contr
154
154
  export { FlowNFTBase__factory } from "./factories/@superfluid-finance/ethereum-contracts/contracts/superfluid/FlowNFTBase__factory";
155
155
  export type { UUPSProxiable } from "./@superfluid-finance/ethereum-contracts/contracts/upgradability/UUPSProxiable";
156
156
  export { UUPSProxiable__factory } from "./factories/@superfluid-finance/ethereum-contracts/contracts/upgradability/UUPSProxiable__factory";
157
+ export type { IWETH } from "./@uniswap/v2-periphery/contracts/interfaces/IWETH";
158
+ export { IWETH__factory } from "./factories/@uniswap/v2-periphery/contracts/interfaces/IWETH__factory";
157
159
  export type { IUniswapV3Factory } from "./@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory";
158
160
  export { IUniswapV3Factory__factory } from "./factories/@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory__factory";
159
161
  export type { Avatar } from "./contracts/DAOStackInterfaces.sol/Avatar";
@@ -258,6 +260,10 @@ export type { InvitesV2 } from "./contracts/invite/InvitesV2";
258
260
  export { InvitesV2__factory } from "./factories/contracts/invite/InvitesV2__factory";
259
261
  export type { OneTimeReward } from "./contracts/invite/OneTimeReward";
260
262
  export { OneTimeReward__factory } from "./factories/contracts/invite/OneTimeReward__factory";
263
+ export type { INonfungiblePositionManager } from "./contracts/IUniswapV3.sol/INonfungiblePositionManager";
264
+ export { INonfungiblePositionManager__factory } from "./factories/contracts/IUniswapV3.sol/INonfungiblePositionManager__factory";
265
+ export type { IUniswapV3Pool } from "./contracts/IUniswapV3.sol/IUniswapV3Pool";
266
+ export { IUniswapV3Pool__factory } from "./factories/contracts/IUniswapV3.sol/IUniswapV3Pool__factory";
261
267
  export type { IBancorExchangeProvider } from "./contracts/MentoInterfaces.sol/IBancorExchangeProvider";
262
268
  export { IBancorExchangeProvider__factory } from "./factories/contracts/MentoInterfaces.sol/IBancorExchangeProvider__factory";
263
269
  export type { IBroker } from "./contracts/MentoInterfaces.sol/IBroker";
@@ -360,6 +366,8 @@ export type { DistributionHelper } from "./contracts/reserve/DistributionHelper"
360
366
  export { DistributionHelper__factory } from "./factories/contracts/reserve/DistributionHelper__factory";
361
367
  export type { ExchangeHelper } from "./contracts/reserve/ExchangeHelper";
362
368
  export { ExchangeHelper__factory } from "./factories/contracts/reserve/ExchangeHelper__factory";
369
+ export type { GenericDistributionHelper } from "./contracts/reserve/GenericDistributionHelper";
370
+ export { GenericDistributionHelper__factory } from "./factories/contracts/reserve/GenericDistributionHelper__factory";
363
371
  export type { GoodMarketMaker } from "./contracts/reserve/GoodMarketMaker";
364
372
  export { GoodMarketMaker__factory } from "./factories/contracts/reserve/GoodMarketMaker__factory";
365
373
  export type { ContributionCalc } from "./contracts/reserve/GoodReserveCDai.sol/ContributionCalc";