@gooddollar/goodcollective-contracts 1.3.0 → 1.4.0

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 (98) hide show
  1. package/artifacts/contracts/DirectPayments/DirectPaymentsFactory.sol/DirectPaymentsFactory.dbg.json +4 -0
  2. package/artifacts/contracts/DirectPayments/DirectPaymentsFactory.sol/DirectPaymentsFactory.json +995 -0
  3. package/artifacts/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPaymentsLibrary.dbg.json +4 -0
  4. package/artifacts/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPaymentsLibrary.json +113 -0
  5. package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool.dbg.json +4 -0
  6. package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool.json +2210 -0
  7. package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/IIdentityV2.dbg.json +4 -0
  8. package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/IIdentityV2.json +30 -0
  9. package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/IMembersValidator.dbg.json +4 -0
  10. package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/IMembersValidator.json +45 -0
  11. package/artifacts/contracts/DirectPayments/ProvableNFT.sol/ProvableNFT.dbg.json +4 -0
  12. package/artifacts/contracts/DirectPayments/ProvableNFT.sol/ProvableNFT.json +1187 -0
  13. package/artifacts/contracts/GoodCollective/GoodCollectiveSuperApp.sol/GoodCollectiveSuperApp.dbg.json +4 -0
  14. package/artifacts/contracts/GoodCollective/GoodCollectiveSuperApp.sol/GoodCollectiveSuperApp.json +831 -0
  15. package/artifacts/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp.dbg.json +4 -0
  16. package/artifacts/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp.json +42 -0
  17. package/artifacts/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IRegistry.dbg.json +4 -0
  18. package/artifacts/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IRegistry.json +61 -0
  19. package/artifacts/contracts/GoodCollective/SuperAppBaseFlow.sol/IRegisterSuperapp.dbg.json +4 -0
  20. package/artifacts/contracts/GoodCollective/SuperAppBaseFlow.sol/IRegisterSuperapp.json +47 -0
  21. package/artifacts/contracts/GoodCollective/SuperAppBaseFlow.sol/SuperAppBaseFlow.dbg.json +4 -0
  22. package/artifacts/contracts/GoodCollective/SuperAppBaseFlow.sol/SuperAppBaseFlow.json +320 -0
  23. package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +4 -0
  24. package/artifacts/contracts/Interfaces.sol/IIdentityV2.json +30 -0
  25. package/artifacts/contracts/Interfaces.sol/IMembersValidator.dbg.json +4 -0
  26. package/artifacts/contracts/Interfaces.sol/IMembersValidator.json +45 -0
  27. package/artifacts/contracts/UBI/UBIPool.sol/UBIPool.dbg.json +4 -0
  28. package/artifacts/contracts/UBI/UBIPool.sol/UBIPool.json +2078 -0
  29. package/artifacts/contracts/UBI/UBIPoolFactory.sol/UBIPoolFactory.dbg.json +4 -0
  30. package/artifacts/contracts/UBI/UBIPoolFactory.sol/UBIPoolFactory.json +1011 -0
  31. package/artifacts/contracts/test/HelperLibraryTest.sol/HelperLibraryTest.dbg.json +4 -0
  32. package/artifacts/contracts/test/HelperLibraryTest.sol/HelperLibraryTest.json +90 -0
  33. package/artifacts/contracts/utils/HelperLibrary.sol/HelperLibrary.dbg.json +4 -0
  34. package/artifacts/contracts/utils/HelperLibrary.sol/HelperLibrary.json +117 -0
  35. package/artifacts/contracts/utils/SwapRouterMock.sol/SwapRouterMock.dbg.json +4 -0
  36. package/artifacts/contracts/utils/SwapRouterMock.sol/SwapRouterMock.json +119 -0
  37. package/contracts/DirectPayments/DirectPaymentsFactory.sol +32 -6
  38. package/contracts/DirectPayments/DirectPaymentsLibrary.sol +168 -14
  39. package/contracts/DirectPayments/DirectPaymentsPool.sol +31 -116
  40. package/contracts/GoodCollective/GoodCollectiveSuperApp.sol +7 -6
  41. package/contracts/GoodCollective/IGoodCollectiveSuperApp.sol +4 -0
  42. package/contracts/GoodCollective/SuperAppBaseFlow.sol +6 -0
  43. package/contracts/UBI/UBIPool.sol +62 -18
  44. package/contracts/UBI/UBIPoolFactory.sol +32 -4
  45. package/contracts/utils/HelperLibrary.sol +10 -0
  46. package/contracts/utils/Recover.sol +16 -0
  47. package/package.json +4 -4
  48. package/releases/deployment.json +7417 -30724
  49. package/typechain-types/contracts/DirectPayments/DirectPaymentsFactory.ts +54 -0
  50. package/typechain-types/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPayemntsLibrary.ts +77 -0
  51. package/typechain-types/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPaymentsLibrary.ts +77 -0
  52. package/typechain-types/contracts/DirectPayments/DirectPaymentsLibrary.sol/index.ts +5 -0
  53. package/typechain-types/contracts/DirectPayments/DirectPaymentsLibrary.ts +146 -0
  54. package/typechain-types/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool.ts +90 -11
  55. package/typechain-types/contracts/DirectPayments/DirectPaymentsPool.sol/IMembersValidator.ts +6 -8
  56. package/typechain-types/contracts/DirectPayments/index.ts +1 -0
  57. package/typechain-types/contracts/GoodCollective/GoodCollectiveSuperApp.ts +40 -0
  58. package/typechain-types/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp.ts +22 -1
  59. package/typechain-types/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IRegistry.ts +38 -1
  60. package/typechain-types/contracts/GoodCollective/SuperAppBaseFlow.sol/IRegisterSuperapp.ts +152 -0
  61. package/typechain-types/contracts/GoodCollective/SuperAppBaseFlow.sol/SuperAppBaseFlow.ts +523 -0
  62. package/typechain-types/contracts/GoodCollective/SuperAppBaseFlow.sol/index.ts +5 -0
  63. package/typechain-types/contracts/GoodCollective/index.ts +2 -1
  64. package/typechain-types/contracts/UBI/MultiClaimModule.sol/IClaimable.ts +92 -0
  65. package/typechain-types/contracts/UBI/MultiClaimModule.sol/IModule.ts +196 -0
  66. package/typechain-types/contracts/UBI/MultiClaimModule.sol/MultiClaimModule.ts +242 -0
  67. package/typechain-types/contracts/UBI/MultiClaimModule.sol/index.ts +6 -0
  68. package/typechain-types/contracts/UBI/UBIPool.ts +77 -0
  69. package/typechain-types/contracts/UBI/UBIPoolFactory.ts +54 -0
  70. package/typechain-types/contracts/utils/Recover.ts +263 -0
  71. package/typechain-types/contracts/utils/index.ts +1 -0
  72. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsFactory__factory.ts +38 -1
  73. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPayemntsLibrary__factory.ts +96 -0
  74. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPaymentsLibrary__factory.ts +96 -0
  75. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary.sol/index.ts +5 -0
  76. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary__factory.ts +169 -0
  77. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool__factory.ts +53 -2
  78. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsPool.sol/IMembersValidator__factory.ts +1 -1
  79. package/typechain-types/factories/contracts/DirectPayments/index.ts +1 -0
  80. package/typechain-types/factories/contracts/GoodCollective/GoodCollectiveSuperApp__factory.ts +18 -0
  81. package/typechain-types/factories/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp__factory.ts +13 -0
  82. package/typechain-types/factories/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IRegistry__factory.ts +24 -0
  83. package/typechain-types/factories/contracts/GoodCollective/SuperAppBaseFlow.sol/IRegisterSuperapp__factory.ts +62 -0
  84. package/typechain-types/factories/contracts/GoodCollective/SuperAppBaseFlow.sol/SuperAppBaseFlow__factory.ts +335 -0
  85. package/typechain-types/factories/contracts/GoodCollective/SuperAppBaseFlow.sol/index.ts +5 -0
  86. package/typechain-types/factories/contracts/GoodCollective/index.ts +1 -1
  87. package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/IClaimable__factory.ts +33 -0
  88. package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/IModule__factory.ts +84 -0
  89. package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/MultiClaimModule__factory.ts +150 -0
  90. package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/index.ts +6 -0
  91. package/typechain-types/factories/contracts/UBI/UBIPoolFactory__factory.ts +38 -1
  92. package/typechain-types/factories/contracts/UBI/UBIPool__factory.ts +42 -1
  93. package/typechain-types/factories/contracts/test/HelperLibraryTest__factory.ts +1 -1
  94. package/typechain-types/factories/contracts/utils/HelperLibrary__factory.ts +11 -1
  95. package/typechain-types/factories/contracts/utils/Recover__factory.ts +172 -0
  96. package/typechain-types/factories/contracts/utils/index.ts +1 -0
  97. package/typechain-types/hardhat.d.ts +27 -0
  98. package/typechain-types/index.ts +8 -2
@@ -15,6 +15,11 @@ const _abi = [
15
15
  name: "NOT_POOL",
16
16
  type: "error",
17
17
  },
18
+ {
19
+ inputs: [],
20
+ name: "NOT_PROJECT_MANAGER",
21
+ type: "error",
22
+ },
18
23
  {
19
24
  inputs: [],
20
25
  name: "NOT_PROJECT_OWNER",
@@ -65,6 +70,25 @@ const _abi = [
65
70
  name: "Initialized",
66
71
  type: "event",
67
72
  },
73
+ {
74
+ anonymous: false,
75
+ inputs: [
76
+ {
77
+ indexed: true,
78
+ internalType: "address",
79
+ name: "member",
80
+ type: "address",
81
+ },
82
+ {
83
+ indexed: true,
84
+ internalType: "address",
85
+ name: "pool",
86
+ type: "address",
87
+ },
88
+ ],
89
+ name: "MemberAdded",
90
+ type: "event",
91
+ },
68
92
  {
69
93
  anonymous: false,
70
94
  inputs: [
@@ -332,6 +356,19 @@ const _abi = [
332
356
  stateMutability: "nonpayable",
333
357
  type: "function",
334
358
  },
359
+ {
360
+ inputs: [
361
+ {
362
+ internalType: "address[]",
363
+ name: "members",
364
+ type: "address[]",
365
+ },
366
+ ],
367
+ name: "addMembers",
368
+ outputs: [],
369
+ stateMutability: "nonpayable",
370
+ type: "function",
371
+ },
335
372
  {
336
373
  inputs: [
337
374
  {
@@ -960,7 +997,7 @@ const _abi = [
960
997
  ] as const;
961
998
 
962
999
  const _bytecode =
963
- "0x60a06040523060805234801561001457600080fd5b50608051613eae61004c600039600081816109b6015281816109f901528181610a8a01528181610acd0152610cb70152613eae6000f3fe608060405260043610620001645760003560e01c806301ffc9a71462000169578063038defd714620001a35780630b1ca49a14620001d9578063248a9ca3146200020057806324a9d85314620002345780632f2ff15d146200027057806336568abe14620002955780633659cfe614620002ba5780634690484014620002df57806347ccca0214620003105780634f1ef28614620003325780634f962c8c146200034957806352d1902d146200036e57806357b707671462000386578063592f7b0514620003ab57806376967ae014620003d15780638abf607714620003f657806391d1485414620004185780639cedd89b146200043d5780639cf5c6131462000477578063a217fddf146200049c578063ac4afa3814620004b3578063ae6ec80114620004d8578063ca6d56dc14620004fd578063d547741f1462000522578063e9e50b041462000547578063f8a2334c146200056c578063fcf1e0091462000591575b600080fd5b3480156200017657600080fd5b506200018e620001883660046200206d565b620005b6565b60405190151581526020015b60405180910390f35b348015620001b057600080fd5b50620001c8620001c2366004620020c1565b620005ee565b6040516200019a9392919062002135565b348015620001e657600080fd5b50620001fe620001f8366004620020c1565b62000739565b005b3480156200020d57600080fd5b50620002256200021f36600462002170565b620008ee565b6040519081526020016200019a565b3480156200024157600080fd5b5060ff546200025a90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016200019a565b3480156200027d57600080fd5b50620001fe6200028f3660046200218a565b62000903565b348015620002a257600080fd5b50620001fe620002b43660046200218a565b6200092a565b348015620002c757600080fd5b50620001fe620002d9366004620020c1565b620009ac565b348015620002ec57600080fd5b5060ff5462000301906001600160a01b031681565b6040516200019a9190620021ca565b3480156200031d57600080fd5b5060fc5462000301906001600160a01b031681565b620001fe62000343366004620022b0565b62000a80565b3480156200035657600080fd5b50620001fe620003683660046200233d565b62000b41565b3480156200037b57600080fd5b506200022562000caa565b3480156200039357600080fd5b5062000301620003a536600462002388565b62000d5b565b348015620003b857600080fd5b5060fc546200025a90600160a01b900463ffffffff1681565b348015620003de57600080fd5b5062000301620003f03660046200256b565b62000d95565b3480156200040357600080fd5b5060fb5462000301906001600160a01b031681565b3480156200042557600080fd5b506200018e620004373660046200218a565b62000ed9565b3480156200044a57600080fd5b50620003016200045c36600462002170565b60fe602052600090815260409020546001600160a01b031681565b3480156200048457600080fd5b50620001fe62000496366004620026f1565b62000f04565b348015620004a957600080fd5b5062000225600081565b348015620004c057600080fd5b5062000301620004d236600462002170565b62000f6d565b348015620004e557600080fd5b5062000301620004f73660046200256b565b62000f99565b3480156200050a57600080fd5b50620001fe6200051c366004620020c1565b620010d1565b3480156200052f57600080fd5b50620001fe620005413660046200218a565b6200114d565b3480156200055457600080fd5b50620001fe6200056636600462002724565b6200116f565b3480156200057957600080fd5b50620001fe6200058b3660046200275e565b620011bc565b3480156200059e57600080fd5b50620001fe620005b0366004620020c1565b6200138a565b60006001600160e01b03198216637965db0b60e01b1480620005e857506301ffc9a760e01b6001600160e01b03198316145b92915050565b60fd602052600090815260409020805481906200060b90620027ca565b80601f01602080910402602001604051908101604052809291908181526020018280546200063990620027ca565b80156200068a5780601f106200065e576101008083540402835291602001916200068a565b820191906000526020600020905b8154815290600101906020018083116200066c57829003601f168201915b5050506001840154600285018054949560ff909216949193509150620006b090620027ca565b80601f0160208091040260200160405190810160405280929190818152602001828054620006de90620027ca565b80156200072f5780601f1062000703576101008083540402835291602001916200072f565b820191906000526020600020905b8154815290600101906020018083116200071157829003601f168201915b5050505050905083565b33600090815260fd6020526040902060020180546200075890620027ca565b90506000036200077b57604051630cc15fbb60e11b815260040160405180910390fd5b60005b6001600160a01b03821660009081526101006020526040902054811015620008ea576001600160a01b038216600090815261010060205260409020805433919083908110620007d157620007d162002806565b6000918252602090912001546001600160a01b031603620008d5576001600160a01b0382166000908152610100602052604090208054620008159060019062002832565b8154811062000828576200082862002806565b60009182526020808320909101546001600160a01b038581168452610100909252604090922080549190921691908390811062000869576200086962002806565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918416815261010090915260409020805480620008b257620008b262002848565b600082815260209020810160001990810180546001600160a01b03191690550190555b80620008e1816200285e565b9150506200077e565b5050565b60009081526065602052604090206001015490565b6200090e82620008ee565b620009198162001435565b62000925838362001441565b505050565b6001600160a01b0381163314620009a05760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b620008ea8282620014cb565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003620009f75760405162461bcd60e51b815260040162000997906200287a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031662000a2b62001535565b6001600160a01b03161462000a545760405162461bcd60e51b81526004016200099790620028b5565b62000a5f8162001552565b6040805160008082526020820190925262000a7d918391906200155f565b50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300362000acb5760405162461bcd60e51b815260040162000997906200287a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031662000aff62001535565b6001600160a01b03161462000b285760405162461bcd60e51b81526004016200099790620028b5565b62000b338262001552565b620008ea828260016200155f565b81806001600160a01b03166391d14854826001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000b90573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000bb69190620028f0565b336040518363ffffffff1660e01b815260040162000bd69291906200290a565b602060405180830381865afa15801562000bf4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c1a919062002921565b151560000362000c3d57604051631d799a6d60e21b815260040160405180910390fd5b6001600160a01b038316600090815260fd6020526040902062000c6183826200298b565b50826001600160a01b03167f941ad6ac0538b96f9e89b9b52ec11031b50591baa2f16c0cdf1f94c69f389d6d8360405162000c9d919062002a57565b60405180910390a2505050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161462000d475760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b606482015260840162000997565b5060008051602062003e3283398151915290565b610100602052816000526040600020818154811062000d7957600080fd5b6000918252602090912001546001600160a01b03169150829050565b8451602080870191909120600090815260fe909152604081205486906001600160a01b0316801562000ebc57806001600160a01b03166391d14854826001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000e0f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e359190620028f0565b336040518363ffffffff1660e01b815260040162000e559291906200290a565b602060405180830381865afa15801562000e73573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e99919062002921565b151560000362000ebc57604051631d799a6d60e21b815260040160405180910390fd5b62000ecd88888888886000620016d7565b98975050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600062000f118162001435565b6001600160a01b038316600081815260fd6020908152604091829020600101805460ff191686151590811790915591519182527fafdc942e2e075abc791516f168aed9293862095eb31c0dab19c8d0d061018a93910162000c9d565b610101818154811062000f7f57600080fd5b6000918252602090912001546001600160a01b0316905081565b8451602080870191909120600090815260fe909152604081205486906001600160a01b03168015620010c057806001600160a01b03166391d14854826001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001013573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010399190620028f0565b336040518363ffffffff1660e01b8152600401620010599291906200290a565b602060405180830381865afa15801562001077573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200109d919062002921565b1515600003620010c057604051631d799a6d60e21b815260040160405180910390fd5b62000ecd88888888886001620016d7565b33600090815260fd602052604090206002018054620010f090620027ca565b90506000036200111357604051630cc15fbb60e11b815260040160405180910390fd5b6001600160a01b03166000908152610100602090815260408220805460018101825590835291200180546001600160a01b03191633179055565b6200115882620008ee565b620011638162001435565b620009258383620014cb565b60006200117c8162001435565b5060ff80546001600160a01b039093166001600160a01b031963ffffffff909316600160a01b02929092166001600160c01b031990931692909217179055565b600054610100900460ff1615808015620011dd5750600054600160ff909116105b80620012025750620011ef3062001b9e565b15801562001202575060005460ff166001145b620012675760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162000997565b6000805460ff1916600117905580156200128b576000805461ff0019166101001790555b60fc805463ffffffff60a01b1916600160a01b1790556040518590620012b19062002043565b620012bd9190620021ca565b604051809103906000f080158015620012da573d6000803e3d6000fd5b5060fb80546001600160a01b03199081166001600160a01b039384161790915560fc805490911686831617905560ff80549185166001600160c01b031990921691909117600160a01b63ffffffff8516021790556200133b60008762001bad565b801562001382576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b6000620013978162001435565b60fb54604051631b2ce7f360e11b81526001600160a01b0390911690633659cfe690620013c9908590600401620021ca565b600060405180830381600087803b158015620013e457600080fd5b505af1158015620013f9573d6000803e3d6000fd5b50506040516001600160a01b03851692507f71ce7583e9b7e543de8a69a6af369c0b3528b287064f9dce26a38025e36dc2c79150600090a25050565b62000a7d813362001bb9565b6200144d828262000ed9565b620008ea5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620014873390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b620014d7828262000ed9565b15620008ea5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008051602062003e32833981519152546001600160a01b031690565b6000620008ea8162001435565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156200159557620009258362001c1d565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015620015f2575060408051601f3d908101601f19168201909252620015ef91810190620028f0565b60015b620016575760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840162000997565b60008051602062003e328339815191528114620016c95760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840162000997565b506200092583838362001cbc565b60fc5463ffffffff600160a01b8204168552604051600091829162001711916001600160a01b031690889088908890309060240162002bb1565b60408051601f198184030181529190526020810180516001600160e01b0316634b1e337f60e01b17905290508215620017965760fb546040516001600160a01b03909116908290620017639062002051565b6200177092919062002c05565b604051809103906000f0801580156200178d573d6000803e3d6000fd5b5091506200184d565b60fb60009054906101000a90046001600160a01b03166001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620017ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001810919062002c33565b816040516200181f906200205f565b6200182c92919062002c05565b604051809103906000f08015801562001849573d6000803e3d6000fd5b5091505b60fc54604051634e93f47b60e01b815263ffffffff600160a01b83041660048201526001600160a01b0390911690632f2ff15d908290634e93f47b90602401602060405180830381865afa158015620018aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620018d09190620028f0565b846040518363ffffffff1660e01b8152600401620018f09291906200290a565b600060405180830381600087803b1580156200190b57600080fd5b505af115801562001920573d6000803e3d6000fd5b505089516020808c0191909120600090815260fe90915260409020546001600160a01b031691506200198190505787516020808a0191909120600090815260fe9091526040902080546001600160a01b0319166001600160a01b0384161790555b6001600160a01b038216600090815260fd60205260409020620019a588826200298b565b506001600160a01b038216600090815260fd60205260409020600201620019cd89826200298b565b50604051632f2ff15d60e01b81526001600160a01b03831690632f2ff15d90620019ff9060009033906004016200290a565b600060405180830381600087803b15801562001a1a57600080fd5b505af115801562001a2f573d6000803e3d6000fd5b5050604051631b2b455f60e11b81526001600160a01b03851692506336568abe915062001a649060009030906004016200290a565b600060405180830381600087803b15801562001a7f57600080fd5b505af115801562001a94573d6000803e3d6000fd5b505061010180546001810182556000919091527f109ea3cebb188b9c1b9fc5bb3920be60dfdc8699098dff92f3d80daaca7476890180546001600160a01b0319166001600160a01b038616179055505060fc54604051600160a01b90910463ffffffff169062001b06908a9062002c53565b6040518091039020836001600160a01b03167fabf24e13dd04b5233e0ccecc88963e42e9d8b5ceae25458b61109fcbc0201bfe8a8a8a60405162001b4d9392919062002c71565b60405180910390a460fc8054600160a01b900463ffffffff1690601462001b748362002cac565b91906101000a81548163ffffffff021916908363ffffffff16021790555050509695505050505050565b6001600160a01b03163b151590565b620008ea828262001441565b62001bc5828262000ed9565b620008ea5762001bd58162001ced565b62001be283602062001d00565b60405160200162001bf592919062002cd2565b60408051601f198184030181529082905262461bcd60e51b8252620009979160040162002a57565b62001c288162001b9e565b62001c8c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840162000997565b60008051602062003e3283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b62001cc78362001ec0565b60008251118062001cd55750805b15620009255762001ce7838362001f02565b50505050565b6060620005e86001600160a01b03831660145b6060600062001d1183600262002d45565b62001d1e90600262002d5f565b6001600160401b0381111562001d385762001d38620021de565b6040519080825280601f01601f19166020018201604052801562001d63576020820181803683370190505b509050600360fc1b8160008151811062001d815762001d8162002806565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811062001db35762001db362002806565b60200101906001600160f81b031916908160001a905350600062001dd984600262002d45565b62001de690600162002d5f565b90505b600181111562001e68576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811062001e1e5762001e1e62002806565b1a60f81b82828151811062001e375762001e3762002806565b60200101906001600160f81b031916908160001a90535060049490941c9362001e608162002d75565b905062001de9565b50831562001eb95760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640162000997565b9392505050565b62001ecb8162001c1d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606062001f0f8362001b9e565b62001f6c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840162000997565b600080846001600160a01b03168460405162001f89919062002c53565b600060405180830381855af49150503d806000811462001fc6576040519150601f19603f3d011682016040523d82523d6000602084013e62001fcb565b606091505b509150915062001ff6828260405180606001604052806027815260200162003e526027913962001fff565b95945050505050565b606083156200201057508162001eb9565b62001eb98383815115620020275781518083602001fd5b8060405162461bcd60e51b815260040162000997919062002a57565b6104c98062002d9083390190565b6106cd806200325983390190565b6104ec806200392683390190565b6000602082840312156200208057600080fd5b81356001600160e01b03198116811462001eb957600080fd5b6001600160a01b038116811462000a7d57600080fd5b8035620020bc8162002099565b919050565b600060208284031215620020d457600080fd5b813562001eb98162002099565b60005b83811015620020fe578181015183820152602001620020e4565b50506000910152565b6000815180845262002121816020860160208601620020e1565b601f01601f19169290920160200192915050565b6060815260006200214a606083018662002107565b8415156020840152828103604084015262002166818562002107565b9695505050505050565b6000602082840312156200218357600080fd5b5035919050565b600080604083850312156200219e57600080fd5b823591506020830135620021b28162002099565b809150509250929050565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b03811182821017156200221a576200221a620021de565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200224b576200224b620021de565b604052919050565b60006001600160401b038311156200226f576200226f620021de565b62002284601f8401601f191660200162002220565b90508281528383830111156200229957600080fd5b828260208301376000602084830101529392505050565b60008060408385031215620022c457600080fd5b8235620022d18162002099565b915060208301356001600160401b03811115620022ed57600080fd5b8301601f81018513620022ff57600080fd5b620023108582356020840162002253565b9150509250929050565b600082601f8301126200232c57600080fd5b62001eb98383356020850162002253565b600080604083850312156200235157600080fd5b82356200235e8162002099565b915060208301356001600160401b038111156200237a57600080fd5b62002310858286016200231a565b600080604083850312156200239c57600080fd5b8235620023a98162002099565b946020939093013593505050565b803563ffffffff81168114620020bc57600080fd5b60006001600160401b03821115620023e857620023e8620021de565b5060051b60200190565b600082601f8301126200240457600080fd5b813560206200241d6200241783620023cc565b62002220565b82815260059290921b840181019181810190868411156200243d57600080fd5b8286015b848110156200246c57803561ffff811681146200245e5760008081fd5b835291830191830162002441565b509695505050505050565b600082601f8301126200248957600080fd5b813560206200249c6200241783620023cc565b82815260059290921b84018101918181019086841115620024bc57600080fd5b8286015b848110156200246c5780356001600160801b0381168114620024e25760008081fd5b8352918301918301620024c0565b801515811462000a7d57600080fd5b8035620020bc81620024f0565b6000606082840312156200251f57600080fd5b604051606081016001600160401b0381118282101715620025445762002544620021de565b80604052508091508235815260208301356020820152604083013560408201525092915050565b600080600080600060e086880312156200258457600080fd5b85356001600160401b03808211156200259c57600080fd5b620025aa89838a016200231a565b96506020880135915080821115620025c157600080fd5b620025cf89838a016200231a565b95506040880135915080821115620025e657600080fd5b90870190610100828a031215620025fc57600080fd5b62002606620021f4565b6200261183620023b7565b81526020830135828111156200262657600080fd5b620026348b828601620023f2565b6020830152506040830135828111156200264d57600080fd5b6200265b8b82860162002477565b6040830152506200266f60608401620020af565b60608201526200268260808401620020af565b60808201526200269560a08401620020af565b60a0820152620026a860c08401620020af565b60c0820152620026bb60e08401620024ff565b60e0820152809550505050620026d587606088016200250c565b9150620026e560c08701620023b7565b90509295509295909350565b600080604083850312156200270557600080fd5b8235620027128162002099565b91506020830135620021b281620024f0565b600080604083850312156200273857600080fd5b8235620027458162002099565b91506200275560208401620023b7565b90509250929050565b600080600080600060a086880312156200277757600080fd5b8535620027848162002099565b94506020860135620027968162002099565b93506040860135620027a88162002099565b92506060860135620027ba8162002099565b9150620026e560808701620023b7565b600181811c90821680620027df57607f821691505b6020821081036200280057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115620005e857620005e86200281c565b634e487b7160e01b600052603160045260246000fd5b6000600182016200287357620028736200281c565b5060010190565b6020808252602c9082015260008051602062003e1283398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602062003e1283398151915260408201526b6163746976652070726f787960a01b606082015260800190565b6000602082840312156200290357600080fd5b5051919050565b9182526001600160a01b0316602082015260400190565b6000602082840312156200293457600080fd5b815162001eb981620024f0565b601f8211156200092557600081815260208120601f850160051c810160208610156200296a5750805b601f850160051c820191505b81811015620013825782815560010162002976565b81516001600160401b03811115620029a757620029a7620021de565b620029bf81620029b88454620027ca565b8462002941565b602080601f831160018114620029f75760008415620029de5750858301515b600019600386901b1c1916600185901b17855562001382565b600085815260208120601f198616915b8281101562002a285788860151825594840194600190910190840162002a07565b508582101562002a475787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208152600062001eb9602083018462002107565b600081518084526020808501945080840160005b8381101562002aa75781516001600160801b03168752958201959082019060010162002a80565b509495945050505050565b805163ffffffff168252602080820151610100828501819052815190850181905260009261012086019281019184905b8082101562002b0857835161ffff16855293820193928201926001919091019062002ae2565b505050506040830151848203604086015262002b25828262002a6c565b915050606083015162002b3c6060860182620021bd565b50608083015162002b516080860182620021bd565b5060a083015162002b6660a0860182620021bd565b5060c083015162002b7b60c0860182620021bd565b5060e083015162002b9060e086018215159052565b509392505050565b8051825260208082015190830152604090810151910152565b600060018060a01b03808816835260e0602084015262002bd560e084018862002ab2565b915062002be6604084018762002b98565b63ffffffff851660a084015280841660c0840152509695505050505050565b6001600160a01b038316815260406020820181905260009062002c2b9083018462002107565b949350505050565b60006020828403121562002c4657600080fd5b815162001eb98162002099565b6000825162002c67818460208701620020e1565b9190910192915050565b60a08152600062002c8660a083018662002107565b828103602084015262002c9a818662002ab2565b91505062002c2b604083018462002b98565b600063ffffffff80831681810362002cc85762002cc86200281c565b6001019392505050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b81526000835162002d06816017850160208801620020e1565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835162002d39816028840160208801620020e1565b01602801949350505050565b8082028115828204841417620005e857620005e86200281c565b80820180821115620005e857620005e86200281c565b60008162002d875762002d876200281c565b50600019019056fe608060405234801561001057600080fd5b506040516104c93803806104c983398101604081905261002f9161013a565b61003833610047565b61004181610097565b5061016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381163b6101185760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006020828403121561014c57600080fd5b81516001600160a01b038116811461016357600080fd5b9392505050565b610350806101796000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100aa575b600080fd5b61006f61006a3660046102ea565b6100bd565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f610105565b61007e610119565b61006f6100b83660046102ea565b610128565b6100c56101a6565b6100ce81610205565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b61010d6101a6565b610117600061029a565b565b6000546001600160a01b031690565b6101306101a6565b6001600160a01b03811661019a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6101a38161029a565b50565b336101af610119565b6001600160a01b0316146101175760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610191565b6001600160a01b0381163b6102785760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b6064820152608401610191565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102fc57600080fd5b81356001600160a01b038116811461031357600080fd5b939250505056fea264697066735822122038970e7cf09dc887c70d5260fa612ed542a4b7fc825586d54bcad83fc1ebdd9164736f6c6343000813003360806040526040516106cd3803806106cd83398101604081905261002291610421565b61002e82826000610035565b505061054b565b61003e836100f6565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100f1576100ef836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e991906104e1565b8361026e565b505b505050565b6100ff8161029a565b61015e5760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101c8816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561019f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c391906104e1565b61029a565b61022d5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610155565b7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392909216919091179055565b606061029383836040518060600160405280602781526020016106a6602791396102a9565b9392505050565b6001600160a01b03163b151590565b6060600080856001600160a01b0316856040516102c691906104fc565b600060405180830381855af49150503d8060008114610301576040519150601f19603f3d011682016040523d82523d6000602084013e610306565b606091505b50909250905061031886838387610322565b9695505050505050565b6060831561038f5782516000036103885761033c8561029a565b6103885760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610155565b5081610399565b61039983836103a1565b949350505050565b8151156103b15781518083602001fd5b8060405162461bcd60e51b81526004016101559190610518565b80516001600160a01b03811681146103e257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015610418578181015183820152602001610400565b50506000910152565b6000806040838503121561043457600080fd5b61043d836103cb565b60208401519092506001600160401b038082111561045a57600080fd5b818501915085601f83011261046e57600080fd5b815181811115610480576104806103e7565b604051601f8201601f19908116603f011681019083821181831017156104a8576104a86103e7565b816040528281528860208487010111156104c157600080fd5b6104d28360208301602088016103fd565b80955050505050509250929050565b6000602082840312156104f357600080fd5b610293826103cb565b6000825161050e8184602087016103fd565b9190910192915050565b60208152600082518060208401526105378160408501602087016103fd565b601f01601f19169190910160400192915050565b61014c8061055a6000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610029565b6100c2565b565b600061005c7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610099573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100bd91906100e6565b905090565b3660008037600080366000845af43d6000803e8080156100e1573d6000f35b3d6000fd5b6000602082840312156100f857600080fd5b81516001600160a01b038116811461010f57600080fd5b939250505056fea26469706673582212207b4f4f4bd905b812712d76801c617b8aa3f4c3f8d6d9e59a18563606189dd4e564736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656460806040526040516104ec3803806104ec833981016040819052610022916102e9565b61002e82826000610035565b5050610406565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104c56027913961017e565b9392505050565b6100d6816101f7565b61013d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b03168560405161019b91906103b7565b600060405180830381855af49150503d80600081146101d6576040519150601f19603f3d011682016040523d82523d6000602084013e6101db565b606091505b5090925090506101ed86838387610206565b9695505050505050565b6001600160a01b03163b151590565b6060831561027357825160000361026c57610220856101f7565b61026c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610134565b508161027d565b61027d8383610285565b949350505050565b8151156102955781518083602001fd5b8060405162461bcd60e51b815260040161013491906103d3565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102e05781810151838201526020016102c8565b50506000910152565b600080604083850312156102fc57600080fd5b82516001600160a01b038116811461031357600080fd5b60208401519092506001600160401b038082111561033057600080fd5b818501915085601f83011261034457600080fd5b815181811115610356576103566102af565b604051601f8201601f19908116603f0116810190838211818310171561037e5761037e6102af565b8160405282815288602084870101111561039757600080fd5b6103a88360208301602088016102c5565b80955050505050509250929050565b600082516103c98184602087016102c5565b9190910192915050565b60208152600082518060208401526103f28160408501602087016102c5565b601f01601f19169190910160400192915050565b60b1806104146000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea2646970667358221220a4cda07e5b291f61d81b4ee016ef5ca6a806aa56384b08ff8d52828dbed4d68d64736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656446756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122044f5c400a13c9fd8ca4b2b561a2460b2351e0706773dd9516462a1e1f772b88e64736f6c63430008130033";
1000
+ "0x60a06040523060805234801561001457600080fd5b506080516142b761004c600039600081816109e701528181610a2a01528181610abb01528181610afe0152610ce801526142b76000f3fe608060405260043610620001705760003560e01c806301ffc9a71462000175578063038defd714620001af5780630b1ca49a14620001e5578063248a9ca3146200020c57806324a9d85314620002405780632f2ff15d146200027c57806336568abe14620002a15780633659cfe614620002c65780634690484014620002eb57806347ccca02146200031c5780634f1ef286146200033e5780634f962c8c146200035557806352d1902d146200037a57806357b707671462000392578063592f7b0514620003b75780636f4d469b14620003dd57806376967ae014620004025780638abf6077146200042757806391d1485414620004495780639cedd89b146200046e5780639cf5c61314620004a8578063a217fddf14620004cd578063ac4afa3814620004e4578063ae6ec8011462000509578063ca6d56dc146200052e578063d547741f1462000553578063e9e50b041462000578578063f8a2334c146200059d578063fcf1e00914620005c2575b600080fd5b3480156200018257600080fd5b506200019a62000194366004620023e4565b620005e7565b60405190151581526020015b60405180910390f35b348015620001bc57600080fd5b50620001d4620001ce36600462002438565b6200061f565b604051620001a693929190620024ac565b348015620001f257600080fd5b506200020a6200020436600462002438565b6200076a565b005b3480156200021957600080fd5b50620002316200022b366004620024e7565b6200091f565b604051908152602001620001a6565b3480156200024d57600080fd5b5060ff546200026690600160a01b900463ffffffff1681565b60405163ffffffff9091168152602001620001a6565b3480156200028957600080fd5b506200020a6200029b36600462002501565b62000934565b348015620002ae57600080fd5b506200020a620002c036600462002501565b6200095b565b348015620002d357600080fd5b506200020a620002e536600462002438565b620009dd565b348015620002f857600080fd5b5060ff546200030d906001600160a01b031681565b604051620001a6919062002541565b3480156200032957600080fd5b5060fc546200030d906001600160a01b031681565b6200020a6200034f36600462002627565b62000ab1565b3480156200036257600080fd5b506200020a62000374366004620026b4565b62000b72565b3480156200038757600080fd5b506200023162000cdb565b3480156200039f57600080fd5b506200030d620003b1366004620026ff565b62000d8c565b348015620003c457600080fd5b5060fc546200026690600160a01b900463ffffffff1681565b348015620003ea57600080fd5b506200020a620003fc3660046200272e565b62000dc6565b3480156200040f57600080fd5b506200030d620004213660046200295b565b62000e5f565b3480156200043457600080fd5b5060fb546200030d906001600160a01b031681565b3480156200045657600080fd5b506200019a6200046836600462002501565b62000fa3565b3480156200047b57600080fd5b506200030d6200048d366004620024e7565b60fe602052600090815260409020546001600160a01b031681565b348015620004b557600080fd5b506200020a620004c736600462002ae1565b62000fce565b348015620004da57600080fd5b5062000231600081565b348015620004f157600080fd5b506200030d62000503366004620024e7565b62001037565b3480156200051657600080fd5b506200030d620005283660046200295b565b62001063565b3480156200053b57600080fd5b506200020a6200054d36600462002438565b6200119b565b3480156200056057600080fd5b506200020a6200057236600462002501565b620011e8565b3480156200058557600080fd5b506200020a6200059736600462002b14565b6200120a565b348015620005aa57600080fd5b506200020a620005bc36600462002b4e565b62001257565b348015620005cf57600080fd5b506200020a620005e136600462002438565b62001425565b60006001600160e01b03198216637965db0b60e01b14806200061957506301ffc9a760e01b6001600160e01b03198316145b92915050565b60fd602052600090815260409020805481906200063c9062002bba565b80601f01602080910402602001604051908101604052809291908181526020018280546200066a9062002bba565b8015620006bb5780601f106200068f57610100808354040283529160200191620006bb565b820191906000526020600020905b8154815290600101906020018083116200069d57829003601f168201915b5050506001840154600285018054949560ff909216949193509150620006e19062002bba565b80601f01602080910402602001604051908101604052809291908181526020018280546200070f9062002bba565b8015620007605780601f10620007345761010080835404028352916020019162000760565b820191906000526020600020905b8154815290600101906020018083116200074257829003601f168201915b5050505050905083565b33600090815260fd602052604090206002018054620007899062002bba565b9050600003620007ac57604051630cc15fbb60e11b815260040160405180910390fd5b60005b6001600160a01b038216600090815261010060205260409020548110156200091b576001600160a01b03821660009081526101006020526040902080543391908390811062000802576200080262002bf6565b6000918252602090912001546001600160a01b03160362000906576001600160a01b0382166000908152610100602052604090208054620008469060019062002c22565b8154811062000859576200085962002bf6565b60009182526020808320909101546001600160a01b03858116845261010090925260409092208054919092169190839081106200089a576200089a62002bf6565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918416815261010090915260409020805480620008e357620008e362002c38565b600082815260209020810160001990810180546001600160a01b03191690550190555b80620009128162002c4e565b915050620007af565b5050565b60009081526065602052604090206001015490565b6200093f826200091f565b6200094a81620014d0565b620009568383620014dc565b505050565b6001600160a01b0381163314620009d15760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6200091b828262001566565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300362000a285760405162461bcd60e51b8152600401620009c89062002c6a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031662000a5c620015d0565b6001600160a01b03161462000a855760405162461bcd60e51b8152600401620009c89062002ca5565b62000a9081620015ed565b6040805160008082526020820190925262000aae91839190620015fa565b50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300362000afc5760405162461bcd60e51b8152600401620009c89062002c6a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031662000b30620015d0565b6001600160a01b03161462000b595760405162461bcd60e51b8152600401620009c89062002ca5565b62000b6482620015ed565b6200091b82826001620015fa565b81806001600160a01b03166391d14854826001600160a01b031663ec87621c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000bc1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000be7919062002ce0565b336040518363ffffffff1660e01b815260040162000c0792919062002cfa565b602060405180830381865afa15801562000c25573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c4b919062002d11565b151560000362000c6e5760405163188c1dd560e01b815260040160405180910390fd5b6001600160a01b038316600090815260fd6020526040902062000c92838262002d7b565b50826001600160a01b03167f941ad6ac0538b96f9e89b9b52ec11031b50591baa2f16c0cdf1f94c69f389d6d8360405162000cce919062002e47565b60405180910390a2505050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161462000d785760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401620009c8565b506000805160206200423b83398151915290565b610100602052816000526040600020818154811062000daa57600080fd5b6000918252602090912001546001600160a01b03169150829050565b33600090815260fd60205260409020600201805462000de59062002bba565b905060000362000e0857604051630cc15fbb60e11b815260040160405180910390fd5b60005b81811015620009565762000e4a83838381811062000e2d5762000e2d62002bf6565b905060200201602081019062000e44919062002438565b62001772565b8062000e568162002c4e565b91505062000e0b565b8451602080870191909120600090815260fe909152604081205486906001600160a01b0316801562000f8657806001600160a01b03166391d14854826001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000ed9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000eff919062002ce0565b336040518363ffffffff1660e01b815260040162000f1f92919062002cfa565b602060405180830381865afa15801562000f3d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f63919062002d11565b151560000362000f8657604051631d799a6d60e21b815260040160405180910390fd5b62000f9788888888886000620017dd565b98975050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600062000fdb81620014d0565b6001600160a01b038316600081815260fd6020908152604091829020600101805460ff191686151590811790915591519182527fafdc942e2e075abc791516f168aed9293862095eb31c0dab19c8d0d061018a93910162000cce565b61010181815481106200104957600080fd5b6000918252602090912001546001600160a01b0316905081565b8451602080870191909120600090815260fe909152604081205486906001600160a01b031680156200118a57806001600160a01b03166391d14854826001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620010dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001103919062002ce0565b336040518363ffffffff1660e01b81526004016200112392919062002cfa565b602060405180830381865afa15801562001141573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001167919062002d11565b15156000036200118a57604051631d799a6d60e21b815260040160405180910390fd5b62000f9788888888886001620017dd565b33600090815260fd602052604090206002018054620011ba9062002bba565b9050600003620011dd57604051630cc15fbb60e11b815260040160405180910390fd5b62000aae8162001772565b620011f3826200091f565b620011fe81620014d0565b62000956838362001566565b60006200121781620014d0565b5060ff80546001600160a01b039093166001600160a01b031963ffffffff909316600160a01b02929092166001600160c01b031990931692909217179055565b600054610100900460ff1615808015620012785750600054600160ff909116105b806200129d57506200128a3062001f15565b1580156200129d575060005460ff166001145b620013025760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401620009c8565b6000805460ff19166001179055801562001326576000805461ff0019166101001790555b60fc805463ffffffff60a01b1916600160a01b17905560405185906200134c90620023ba565b62001358919062002541565b604051809103906000f08015801562001375573d6000803e3d6000fd5b5060fb80546001600160a01b03199081166001600160a01b039384161790915560fc805490911686831617905560ff80549185166001600160c01b031990921691909117600160a01b63ffffffff851602179055620013d660008762001f24565b80156200141d576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b60006200143281620014d0565b60fb54604051631b2ce7f360e11b81526001600160a01b0390911690633659cfe6906200146490859060040162002541565b600060405180830381600087803b1580156200147f57600080fd5b505af115801562001494573d6000803e3d6000fd5b50506040516001600160a01b03851692507f71ce7583e9b7e543de8a69a6af369c0b3528b287064f9dce26a38025e36dc2c79150600090a25050565b62000aae813362001f30565b620014e8828262000fa3565b6200091b5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620015223390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b62001572828262000fa3565b156200091b5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000805160206200423b833981519152546001600160a01b031690565b60006200091b81620014d0565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156200163057620009568362001f94565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156200168d575060408051601f3d908101601f191682019092526200168a9181019062002ce0565b60015b620016f25760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401620009c8565b6000805160206200423b8339815191528114620017645760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401620009c8565b506200095683838362002033565b6001600160a01b038116600081815261010060209081526040808320805460018101825590845291832090910180546001600160a01b0319163390811790915590519092917f6a2af11b2d73f347f9d5840aea46899e17609730b5cd91bd9c312098038acba691a350565b60fc5463ffffffff600160a01b8204168552604051600091829162001817916001600160a01b031690889088908890309060240162002fa1565b60408051601f198184030181529190526020810180516001600160e01b0316634b1e337f60e01b179052905082156200189c5760fb546040516001600160a01b039091169082906200186990620023c8565b6200187692919062002ff5565b604051809103906000f08015801562001893573d6000803e3d6000fd5b50915062001953565b60fb60009054906101000a90046001600160a01b03166001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620018f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001916919062003023565b816040516200192590620023d6565b6200193292919062002ff5565b604051809103906000f0801580156200194f573d6000803e3d6000fd5b5091505b816001600160a01b031663f437bc596040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001992573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019b8919062003023565b6001600160a01b0316633ca3ad4e836040518263ffffffff1660e01b8152600401620019e5919062002541565b602060405180830381865afa15801562001a03573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a29919062002d11565b151560000362001bc457816001600160a01b031663f437bc596040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001a72573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a98919062003023565b6001600160a01b031663c60944a68360016040518363ffffffff1660e01b815260040162001ac892919062003043565b600060405180830381600087803b15801562001ae357600080fd5b505af192505050801562001af5575060015b62001bc457816001600160a01b031663f437bc596040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001b39573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b5f919062003023565b6001600160a01b031663f37330528360016040518363ffffffff1660e01b815260040162001b8f92919062003043565b600060405180830381600087803b15801562001baa57600080fd5b505af115801562001bbf573d6000803e3d6000fd5b505050505b60fc54604051634e93f47b60e01b815263ffffffff600160a01b83041660048201526001600160a01b0390911690632f2ff15d908290634e93f47b90602401602060405180830381865afa15801562001c21573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c47919062002ce0565b846040518363ffffffff1660e01b815260040162001c6792919062002cfa565b600060405180830381600087803b15801562001c8257600080fd5b505af115801562001c97573d6000803e3d6000fd5b505089516020808c0191909120600090815260fe90915260409020546001600160a01b0316915062001cf890505787516020808a0191909120600090815260fe9091526040902080546001600160a01b0319166001600160a01b0384161790555b6001600160a01b038216600090815260fd6020526040902062001d1c888262002d7b565b506001600160a01b038216600090815260fd6020526040902060020162001d44898262002d7b565b50604051632f2ff15d60e01b81526001600160a01b03831690632f2ff15d9062001d7690600090339060040162002cfa565b600060405180830381600087803b15801562001d9157600080fd5b505af115801562001da6573d6000803e3d6000fd5b5050604051631b2b455f60e11b81526001600160a01b03851692506336568abe915062001ddb90600090309060040162002cfa565b600060405180830381600087803b15801562001df657600080fd5b505af115801562001e0b573d6000803e3d6000fd5b505061010180546001810182556000919091527f109ea3cebb188b9c1b9fc5bb3920be60dfdc8699098dff92f3d80daaca7476890180546001600160a01b0319166001600160a01b038616179055505060fc54604051600160a01b90910463ffffffff169062001e7d908a906200305c565b6040518091039020836001600160a01b03167fabf24e13dd04b5233e0ccecc88963e42e9d8b5ceae25458b61109fcbc0201bfe8a8a8a60405162001ec4939291906200307a565b60405180910390a460fc8054600160a01b900463ffffffff1690601462001eeb83620030b5565b91906101000a81548163ffffffff021916908363ffffffff16021790555050509695505050505050565b6001600160a01b03163b151590565b6200091b8282620014dc565b62001f3c828262000fa3565b6200091b5762001f4c8162002064565b62001f5983602062002077565b60405160200162001f6c929190620030db565b60408051601f198184030181529082905262461bcd60e51b8252620009c89160040162002e47565b62001f9f8162001f15565b620020035760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620009c8565b6000805160206200423b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6200203e8362002237565b6000825111806200204c5750805b1562000956576200205e838362002279565b50505050565b6060620006196001600160a01b03831660145b60606000620020888360026200314e565b6200209590600262003168565b6001600160401b03811115620020af57620020af62002555565b6040519080825280601f01601f191660200182016040528015620020da576020820181803683370190505b509050600360fc1b81600081518110620020f857620020f862002bf6565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106200212a576200212a62002bf6565b60200101906001600160f81b031916908160001a9053506000620021508460026200314e565b6200215d90600162003168565b90505b6001811115620021df576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811062002195576200219562002bf6565b1a60f81b828281518110620021ae57620021ae62002bf6565b60200101906001600160f81b031916908160001a90535060049490941c93620021d7816200317e565b905062002160565b508315620022305760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620009c8565b9392505050565b620022428162001f94565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060620022868362001f15565b620022e35760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620009c8565b600080846001600160a01b0316846040516200230091906200305c565b600060405180830381855af49150503d80600081146200233d576040519150601f19603f3d011682016040523d82523d6000602084013e62002342565b606091505b50915091506200236d82826040518060600160405280602781526020016200425b6027913962002376565b95945050505050565b606083156200238757508162002230565b6200223083838151156200239e5781518083602001fd5b8060405162461bcd60e51b8152600401620009c8919062002e47565b6104c9806200319983390190565b6106cd806200366283390190565b6104ec8062003d2f83390190565b600060208284031215620023f757600080fd5b81356001600160e01b0319811681146200223057600080fd5b6001600160a01b038116811462000aae57600080fd5b8035620024338162002410565b919050565b6000602082840312156200244b57600080fd5b8135620022308162002410565b60005b83811015620024755781810151838201526020016200245b565b50506000910152565b600081518084526200249881602086016020860162002458565b601f01601f19169290920160200192915050565b606081526000620024c160608301866200247e565b84151560208401528281036040840152620024dd81856200247e565b9695505050505050565b600060208284031215620024fa57600080fd5b5035919050565b600080604083850312156200251557600080fd5b823591506020830135620025298162002410565b809150509250929050565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b038111828210171562002591576200259162002555565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620025c257620025c262002555565b604052919050565b60006001600160401b03831115620025e657620025e662002555565b620025fb601f8401601f191660200162002597565b90508281528383830111156200261057600080fd5b828260208301376000602084830101529392505050565b600080604083850312156200263b57600080fd5b8235620026488162002410565b915060208301356001600160401b038111156200266457600080fd5b8301601f810185136200267657600080fd5b6200268785823560208401620025ca565b9150509250929050565b600082601f830112620026a357600080fd5b6200223083833560208501620025ca565b60008060408385031215620026c857600080fd5b8235620026d58162002410565b915060208301356001600160401b03811115620026f157600080fd5b620026878582860162002691565b600080604083850312156200271357600080fd5b8235620027208162002410565b946020939093013593505050565b600080602083850312156200274257600080fd5b82356001600160401b03808211156200275a57600080fd5b818501915085601f8301126200276f57600080fd5b8135818111156200277f57600080fd5b8660208260051b85010111156200279557600080fd5b60209290920196919550909350505050565b803563ffffffff811681146200243357600080fd5b60006001600160401b03821115620027d857620027d862002555565b5060051b60200190565b600082601f830112620027f457600080fd5b813560206200280d6200280783620027bc565b62002597565b82815260059290921b840181019181810190868411156200282d57600080fd5b8286015b848110156200285c57803561ffff811681146200284e5760008081fd5b835291830191830162002831565b509695505050505050565b600082601f8301126200287957600080fd5b813560206200288c6200280783620027bc565b82815260059290921b84018101918181019086841115620028ac57600080fd5b8286015b848110156200285c5780356001600160801b0381168114620028d25760008081fd5b8352918301918301620028b0565b801515811462000aae57600080fd5b80356200243381620028e0565b6000606082840312156200290f57600080fd5b604051606081016001600160401b038111828210171562002934576200293462002555565b80604052508091508235815260208301356020820152604083013560408201525092915050565b600080600080600060e086880312156200297457600080fd5b85356001600160401b03808211156200298c57600080fd5b6200299a89838a0162002691565b96506020880135915080821115620029b157600080fd5b620029bf89838a0162002691565b95506040880135915080821115620029d657600080fd5b90870190610100828a031215620029ec57600080fd5b620029f66200256b565b62002a0183620027a7565b815260208301358281111562002a1657600080fd5b62002a248b828601620027e2565b60208301525060408301358281111562002a3d57600080fd5b62002a4b8b82860162002867565b60408301525062002a5f6060840162002426565b606082015262002a726080840162002426565b608082015262002a8560a0840162002426565b60a082015262002a9860c0840162002426565b60c082015262002aab60e08401620028ef565b60e082015280955050505062002ac58760608801620028fc565b915062002ad560c08701620027a7565b90509295509295909350565b6000806040838503121562002af557600080fd5b823562002b028162002410565b915060208301356200252981620028e0565b6000806040838503121562002b2857600080fd5b823562002b358162002410565b915062002b4560208401620027a7565b90509250929050565b600080600080600060a0868803121562002b6757600080fd5b853562002b748162002410565b9450602086013562002b868162002410565b9350604086013562002b988162002410565b9250606086013562002baa8162002410565b915062002ad560808701620027a7565b600181811c9082168062002bcf57607f821691505b60208210810362002bf057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111562000619576200061962002c0c565b634e487b7160e01b600052603160045260246000fd5b60006001820162002c635762002c6362002c0c565b5060010190565b6020808252602c908201526000805160206200421b83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201526000805160206200421b83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121562002cf357600080fd5b5051919050565b9182526001600160a01b0316602082015260400190565b60006020828403121562002d2457600080fd5b81516200223081620028e0565b601f8211156200095657600081815260208120601f850160051c8101602086101562002d5a5750805b601f850160051c820191505b818110156200141d5782815560010162002d66565b81516001600160401b0381111562002d975762002d9762002555565b62002daf8162002da8845462002bba565b8462002d31565b602080601f83116001811462002de7576000841562002dce5750858301515b600019600386901b1c1916600185901b1785556200141d565b600085815260208120601f198616915b8281101562002e185788860151825594840194600190910190840162002df7565b508582101562002e375787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020815260006200223060208301846200247e565b600081518084526020808501945080840160005b8381101562002e975781516001600160801b03168752958201959082019060010162002e70565b509495945050505050565b805163ffffffff168252602080820151610100828501819052815190850181905260009261012086019281019184905b8082101562002ef857835161ffff16855293820193928201926001919091019062002ed2565b505050506040830151848203604086015262002f15828262002e5c565b915050606083015162002f2c606086018262002534565b50608083015162002f41608086018262002534565b5060a083015162002f5660a086018262002534565b5060c083015162002f6b60c086018262002534565b5060e083015162002f8060e086018215159052565b509392505050565b8051825260208082015190830152604090810151910152565b600060018060a01b03808816835260e0602084015262002fc560e084018862002ea2565b915062002fd6604084018762002f88565b63ffffffff851660a084015280841660c0840152509695505050505050565b6001600160a01b03831681526040602082018190526000906200301b908301846200247e565b949350505050565b6000602082840312156200303657600080fd5b8151620022308162002410565b6001600160a01b03929092168252602082015260400190565b600082516200307081846020870162002458565b9190910192915050565b60a0815260006200308f60a08301866200247e565b8281036020840152620030a3818662002ea2565b9150506200301b604083018462002f88565b600063ffffffff808316818103620030d157620030d162002c0c565b6001019392505050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8152600083516200310f81601785016020880162002458565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516200314281602884016020880162002458565b01602801949350505050565b808202811582820484141762000619576200061962002c0c565b8082018082111562000619576200061962002c0c565b60008162003190576200319062002c0c565b50600019019056fe608060405234801561001057600080fd5b506040516104c93803806104c983398101604081905261002f9161013a565b61003833610047565b61004181610097565b5061016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381163b6101185760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006020828403121561014c57600080fd5b81516001600160a01b038116811461016357600080fd5b9392505050565b610350806101796000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100aa575b600080fd5b61006f61006a3660046102ea565b6100bd565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f610105565b61007e610119565b61006f6100b83660046102ea565b610128565b6100c56101a6565b6100ce81610205565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b61010d6101a6565b610117600061029a565b565b6000546001600160a01b031690565b6101306101a6565b6001600160a01b03811661019a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6101a38161029a565b50565b336101af610119565b6001600160a01b0316146101175760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610191565b6001600160a01b0381163b6102785760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b6064820152608401610191565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102fc57600080fd5b81356001600160a01b038116811461031357600080fd5b939250505056fea264697066735822122038970e7cf09dc887c70d5260fa612ed542a4b7fc825586d54bcad83fc1ebdd9164736f6c6343000813003360806040526040516106cd3803806106cd83398101604081905261002291610421565b61002e82826000610035565b505061054b565b61003e836100f6565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100f1576100ef836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e991906104e1565b8361026e565b505b505050565b6100ff8161029a565b61015e5760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101c8816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561019f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c391906104e1565b61029a565b61022d5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610155565b7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392909216919091179055565b606061029383836040518060600160405280602781526020016106a6602791396102a9565b9392505050565b6001600160a01b03163b151590565b6060600080856001600160a01b0316856040516102c691906104fc565b600060405180830381855af49150503d8060008114610301576040519150601f19603f3d011682016040523d82523d6000602084013e610306565b606091505b50909250905061031886838387610322565b9695505050505050565b6060831561038f5782516000036103885761033c8561029a565b6103885760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610155565b5081610399565b61039983836103a1565b949350505050565b8151156103b15781518083602001fd5b8060405162461bcd60e51b81526004016101559190610518565b80516001600160a01b03811681146103e257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015610418578181015183820152602001610400565b50506000910152565b6000806040838503121561043457600080fd5b61043d836103cb565b60208401519092506001600160401b038082111561045a57600080fd5b818501915085601f83011261046e57600080fd5b815181811115610480576104806103e7565b604051601f8201601f19908116603f011681019083821181831017156104a8576104a86103e7565b816040528281528860208487010111156104c157600080fd5b6104d28360208301602088016103fd565b80955050505050509250929050565b6000602082840312156104f357600080fd5b610293826103cb565b6000825161050e8184602087016103fd565b9190910192915050565b60208152600082518060208401526105378160408501602087016103fd565b601f01601f19169190910160400192915050565b61014c8061055a6000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610029565b6100c2565b565b600061005c7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610099573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100bd91906100e6565b905090565b3660008037600080366000845af43d6000803e8080156100e1573d6000f35b3d6000fd5b6000602082840312156100f857600080fd5b81516001600160a01b038116811461010f57600080fd5b939250505056fea26469706673582212207b4f4f4bd905b812712d76801c617b8aa3f4c3f8d6d9e59a18563606189dd4e564736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656460806040526040516104ec3803806104ec833981016040819052610022916102e9565b61002e82826000610035565b5050610406565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104c56027913961017e565b9392505050565b6100d6816101f7565b61013d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b03168560405161019b91906103b7565b600060405180830381855af49150503d80600081146101d6576040519150601f19603f3d011682016040523d82523d6000602084013e6101db565b606091505b5090925090506101ed86838387610206565b9695505050505050565b6001600160a01b03163b151590565b6060831561027357825160000361026c57610220856101f7565b61026c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610134565b508161027d565b61027d8383610285565b949350505050565b8151156102955781518083602001fd5b8060405162461bcd60e51b815260040161013491906103d3565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102e05781810151838201526020016102c8565b50506000910152565b600080604083850312156102fc57600080fd5b82516001600160a01b038116811461031357600080fd5b60208401519092506001600160401b038082111561033057600080fd5b818501915085601f83011261034457600080fd5b815181811115610356576103566102af565b604051601f8201601f19908116603f0116810190838211818310171561037e5761037e6102af565b8160405282815288602084870101111561039757600080fd5b6103a88360208301602088016102c5565b80955050505050509250929050565b600082516103c98184602087016102c5565b9190910192915050565b60208152600082518060208401526103f28160408501602087016102c5565b601f01601f19169190910160400192915050565b60b1806104146000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea2646970667358221220a4cda07e5b291f61d81b4ee016ef5ca6a806aa56384b08ff8d52828dbed4d68d64736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656446756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212209f95647c40bf4acf1b69342e5f985abea23390d2fb6c6e808d274cc4265b0b1a64736f6c63430008130033";
964
1001
 
965
1002
  type DirectPaymentsFactoryConstructorParams =
966
1003
  | [signer?: Signer]
@@ -0,0 +1,96 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
5
+ import type { Provider, TransactionRequest } from "@ethersproject/providers";
6
+ import type { PromiseOrValue } from "../../../../common";
7
+ import type {
8
+ DirectPayemntsLibrary,
9
+ DirectPayemntsLibraryInterface,
10
+ } from "../../../../contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPayemntsLibrary";
11
+
12
+ const _abi = [
13
+ {
14
+ inputs: [],
15
+ name: "OVER_GLOBAL_LIMITS",
16
+ type: "error",
17
+ },
18
+ {
19
+ inputs: [
20
+ {
21
+ internalType: "address",
22
+ name: "",
23
+ type: "address",
24
+ },
25
+ ],
26
+ name: "OVER_MEMBER_LIMITS",
27
+ type: "error",
28
+ },
29
+ {
30
+ anonymous: false,
31
+ inputs: [
32
+ {
33
+ indexed: false,
34
+ internalType: "address",
35
+ name: "contributer",
36
+ type: "address",
37
+ },
38
+ ],
39
+ name: "NOT_MEMBER_OR_WHITELISTED",
40
+ type: "event",
41
+ },
42
+ ] as const;
43
+
44
+ const _bytecode =
45
+ "0x610efa61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c806327fdccf11461005b578063ba3587511461007d578063bfd8847e1461009d578063d8e7cd72146100d1575b600080fd5b81801561006757600080fd5b5061007b6100763660046109a9565b6100f1565b005b81801561008957600080fd5b5061007b6100983660046109e6565b6102ea565b8180156100a957600080fd5b506100bd6100b8366004610a35565b6104ad565b604051901515815260200160405180910390f35b8180156100dd57600080fd5b5061007b6100ec366004610c17565b61051e565b6001830154429061011590600160801b90046001600160401b031662015180610d81565b6001600160401b031610156101425782546001600160801b0319166001600160801b038216178355610184565b82548190849060009061015f9084906001600160801b0316610da8565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b61018c61067f565b60018401546001600160401b03918216600160c01b90910490911610156101ca5782546001600160801b03808316600160801b029116178355610213565b8254819084906010906101ee908490600160801b90046001600160801b0316610da8565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6001830180548291906000906102339084906001600160801b0316610da8565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550428360010160106101000a8154816001600160401b0302191690836001600160401b0316021790555061028861067f565b6001840180546001600160401b0392909216600160c01b026001600160c01b03909216919091179055815183546001600160801b03600160801b9091041611156102e557604051639803f99760e01b815260040160405180910390fd5b505050565b6001820154429061030e90600160801b90046001600160401b031662015180610d81565b6001600160401b0316101561033b5781546001600160801b0319166001600160801b03821617825561037d565b8154819083906000906103589084906001600160801b0316610da8565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b61038561067f565b60018301546001600160401b03918216600160c01b90910490911610156103c35781546001600160801b03808316600160801b02911617825561040c565b8154819083906010906103e7908490600160801b90046001600160801b0316610da8565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b60018201805482919060009061042c9084906001600160801b0316610da8565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550428260010160106101000a8154816001600160401b0302191690836001600160401b0316021790555061048161067f565b8260010160186101000a8154816001600160401b0302191690836001600160401b031602179055505050565b60006104b985836102ea565b604084015185546001600160801b031611806104e9575060208401518554600160801b90046001600160801b0316115b156105125782604051636e661e3360e11b81526004016105099190610dc8565b60405180910390fd5b5060015b949350505050565b60008251826001600160801b03166105369190610ddc565b90506000805b84518110156106695760006105a888600088858151811061055f5761055f610dfe565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208a88858151811061059a5761059a610dfe565b6020026020010151876104ad565b90508015610605576105f48683815181106105c5576105c5610dfe565b6020026020010151856001600160801b03168960c001516001600160a01b03166106939092919063ffffffff16565b6105fe8484610da8565b9250610656565b7f617c38e0fa04973365b7abb47a8f354a5b3fbe3ea04b8a0649580d208a88cc6086838151811061063857610638610dfe565b602002602001015160405161064d9190610dc8565b60405180910390a15b508061066181610e14565b91505061053c565b506106758888836100f1565b5050505050505050565b600061068e62278d0042610ddc565b905090565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526102e5928692916000916107239185169084906107a0565b8051909150156102e557808060200190518101906107419190610e2d565b6102e55760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610509565b6060610516848460008585600080866001600160a01b031685876040516107c79190610e75565b60006040518083038185875af1925050503d8060008114610804576040519150601f19603f3d011682016040523d82523d6000602084013e610809565b606091505b509150915061081a87838387610825565b979650505050505050565b6060831561089457825160000361088d576001600160a01b0385163b61088d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610509565b5081610516565b61051683838151156108a95781518083602001fd5b8060405162461bcd60e51b81526004016105099190610e91565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b03811182821017156108fc576108fc6108c3565b60405290565b604051601f8201601f191681016001600160401b038111828210171561092a5761092a6108c3565b604052919050565b60006060828403121561094457600080fd5b604051606081016001600160401b0381118282101715610966576109666108c3565b80604052508091508235815260208301356020820152604083013560408201525092915050565b80356001600160801b03811681146109a457600080fd5b919050565b600080600060a084860312156109be57600080fd5b833592506109cf8560208601610932565b91506109dd6080850161098d565b90509250925092565b600080604083850312156109f957600080fd5b82359150610a096020840161098d565b90509250929050565b6001600160a01b0381168114610a2757600080fd5b50565b80356109a481610a12565b60008060008060c08587031215610a4b57600080fd5b84359350610a5c8660208701610932565b92506080850135610a6c81610a12565b9150610a7a60a0860161098d565b905092959194509250565b803563ffffffff811681146109a457600080fd5b60006001600160401b03821115610ab257610ab26108c3565b5060051b60200190565b600082601f830112610acd57600080fd5b81356020610ae2610add83610a99565b610902565b82815260059290921b84018101918181019086841115610b0157600080fd5b8286015b84811015610b2d57803561ffff81168114610b205760008081fd5b8352918301918301610b05565b509695505050505050565b600082601f830112610b4957600080fd5b81356020610b59610add83610a99565b82815260059290921b84018101918181019086841115610b7857600080fd5b8286015b84811015610b2d57610b8d8161098d565b8352918301918301610b7c565b8015158114610a2757600080fd5b80356109a481610b9a565b600082601f830112610bc457600080fd5b81356020610bd4610add83610a99565b82815260059290921b84018101918181019086841115610bf357600080fd5b8286015b84811015610b2d578035610c0a81610a12565b8352918301918301610bf7565b60008060008060008061010080888a031215610c3257600080fd5b87359650610c438960208a01610932565b95506080880135945060a08801356001600160401b0380821115610c6657600080fd5b818a01915082828c031215610c7a57600080fd5b610c826108d9565b9250610c8d82610a85565b8352602082013581811115610ca157600080fd5b610cad8c828501610abc565b602085015250604082013581811115610cc557600080fd5b610cd18c828501610b38565b604085015250610ce360608301610a2a565b6060840152610cf460808301610a2a565b6080840152610d0560a08301610a2a565b60a0840152610d1660c08301610a2a565b60c0840152610d2760e08301610ba8565b60e084015291945060c08901359180831115610d4257600080fd5b5050610d5089828a01610bb3565b925050610d5f60e0880161098d565b90509295509295509295565b634e487b7160e01b600052601160045260246000fd5b6001600160401b03818116838216019080821115610da157610da1610d6b565b5092915050565b6001600160801b03818116838216019080821115610da157610da1610d6b565b6001600160a01b0391909116815260200190565b600082610df957634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201610e2657610e26610d6b565b5060010190565b600060208284031215610e3f57600080fd5b8151610e4a81610b9a565b9392505050565b60005b83811015610e6c578181015183820152602001610e54565b50506000910152565b60008251610e87818460208701610e51565b9190910192915050565b6020815260008251806020840152610eb0816040850160208701610e51565b601f01601f1916919091016040019291505056fea2646970667358221220c436c498834a027382db3ccc10d0416d8e1d6992e12dbfbbcfbe2d3a933e8fd464736f6c63430008130033";
46
+
47
+ type DirectPayemntsLibraryConstructorParams =
48
+ | [signer?: Signer]
49
+ | ConstructorParameters<typeof ContractFactory>;
50
+
51
+ const isSuperArgs = (
52
+ xs: DirectPayemntsLibraryConstructorParams
53
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
54
+
55
+ export class DirectPayemntsLibrary__factory extends ContractFactory {
56
+ constructor(...args: DirectPayemntsLibraryConstructorParams) {
57
+ if (isSuperArgs(args)) {
58
+ super(...args);
59
+ } else {
60
+ super(_abi, _bytecode, args[0]);
61
+ }
62
+ }
63
+
64
+ override deploy(
65
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
66
+ ): Promise<DirectPayemntsLibrary> {
67
+ return super.deploy(overrides || {}) as Promise<DirectPayemntsLibrary>;
68
+ }
69
+ override getDeployTransaction(
70
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
71
+ ): TransactionRequest {
72
+ return super.getDeployTransaction(overrides || {});
73
+ }
74
+ override attach(address: string): DirectPayemntsLibrary {
75
+ return super.attach(address) as DirectPayemntsLibrary;
76
+ }
77
+ override connect(signer: Signer): DirectPayemntsLibrary__factory {
78
+ return super.connect(signer) as DirectPayemntsLibrary__factory;
79
+ }
80
+
81
+ static readonly bytecode = _bytecode;
82
+ static readonly abi = _abi;
83
+ static createInterface(): DirectPayemntsLibraryInterface {
84
+ return new utils.Interface(_abi) as DirectPayemntsLibraryInterface;
85
+ }
86
+ static connect(
87
+ address: string,
88
+ signerOrProvider: Signer | Provider
89
+ ): DirectPayemntsLibrary {
90
+ return new Contract(
91
+ address,
92
+ _abi,
93
+ signerOrProvider
94
+ ) as DirectPayemntsLibrary;
95
+ }
96
+ }
@@ -0,0 +1,96 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
5
+ import type { Provider, TransactionRequest } from "@ethersproject/providers";
6
+ import type { PromiseOrValue } from "../../../../common";
7
+ import type {
8
+ DirectPaymentsLibrary,
9
+ DirectPaymentsLibraryInterface,
10
+ } from "../../../../contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPaymentsLibrary";
11
+
12
+ const _abi = [
13
+ {
14
+ inputs: [],
15
+ name: "OVER_GLOBAL_LIMITS",
16
+ type: "error",
17
+ },
18
+ {
19
+ inputs: [
20
+ {
21
+ internalType: "address",
22
+ name: "",
23
+ type: "address",
24
+ },
25
+ ],
26
+ name: "OVER_MEMBER_LIMITS",
27
+ type: "error",
28
+ },
29
+ {
30
+ anonymous: false,
31
+ inputs: [
32
+ {
33
+ indexed: false,
34
+ internalType: "address",
35
+ name: "contributer",
36
+ type: "address",
37
+ },
38
+ ],
39
+ name: "NOT_MEMBER_OR_WHITELISTED",
40
+ type: "event",
41
+ },
42
+ ] as const;
43
+
44
+ const _bytecode =
45
+ "0x610efa61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c806327fdccf11461005b578063ba3587511461007d578063bfd8847e1461009d578063d8e7cd72146100d1575b600080fd5b81801561006757600080fd5b5061007b6100763660046109a9565b6100f1565b005b81801561008957600080fd5b5061007b6100983660046109e6565b6102ea565b8180156100a957600080fd5b506100bd6100b8366004610a35565b6104ad565b604051901515815260200160405180910390f35b8180156100dd57600080fd5b5061007b6100ec366004610c17565b61051e565b6001830154429061011590600160801b90046001600160401b031662015180610d81565b6001600160401b031610156101425782546001600160801b0319166001600160801b038216178355610184565b82548190849060009061015f9084906001600160801b0316610da8565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b61018c61067f565b60018401546001600160401b03918216600160c01b90910490911610156101ca5782546001600160801b03808316600160801b029116178355610213565b8254819084906010906101ee908490600160801b90046001600160801b0316610da8565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6001830180548291906000906102339084906001600160801b0316610da8565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550428360010160106101000a8154816001600160401b0302191690836001600160401b0316021790555061028861067f565b6001840180546001600160401b0392909216600160c01b026001600160c01b03909216919091179055815183546001600160801b03600160801b9091041611156102e557604051639803f99760e01b815260040160405180910390fd5b505050565b6001820154429061030e90600160801b90046001600160401b031662015180610d81565b6001600160401b0316101561033b5781546001600160801b0319166001600160801b03821617825561037d565b8154819083906000906103589084906001600160801b0316610da8565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b61038561067f565b60018301546001600160401b03918216600160c01b90910490911610156103c35781546001600160801b03808316600160801b02911617825561040c565b8154819083906010906103e7908490600160801b90046001600160801b0316610da8565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b60018201805482919060009061042c9084906001600160801b0316610da8565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550428260010160106101000a8154816001600160401b0302191690836001600160401b0316021790555061048161067f565b8260010160186101000a8154816001600160401b0302191690836001600160401b031602179055505050565b60006104b985836102ea565b604084015185546001600160801b031611806104e9575060208401518554600160801b90046001600160801b0316115b156105125782604051636e661e3360e11b81526004016105099190610dc8565b60405180910390fd5b5060015b949350505050565b60008251826001600160801b03166105369190610ddc565b90506000805b84518110156106695760006105a888600088858151811061055f5761055f610dfe565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208a88858151811061059a5761059a610dfe565b6020026020010151876104ad565b90508015610605576105f48683815181106105c5576105c5610dfe565b6020026020010151856001600160801b03168960c001516001600160a01b03166106939092919063ffffffff16565b6105fe8484610da8565b9250610656565b7f617c38e0fa04973365b7abb47a8f354a5b3fbe3ea04b8a0649580d208a88cc6086838151811061063857610638610dfe565b602002602001015160405161064d9190610dc8565b60405180910390a15b508061066181610e14565b91505061053c565b506106758888836100f1565b5050505050505050565b600061068e62278d0042610ddc565b905090565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526102e5928692916000916107239185169084906107a0565b8051909150156102e557808060200190518101906107419190610e2d565b6102e55760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610509565b6060610516848460008585600080866001600160a01b031685876040516107c79190610e75565b60006040518083038185875af1925050503d8060008114610804576040519150601f19603f3d011682016040523d82523d6000602084013e610809565b606091505b509150915061081a87838387610825565b979650505050505050565b6060831561089457825160000361088d576001600160a01b0385163b61088d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610509565b5081610516565b61051683838151156108a95781518083602001fd5b8060405162461bcd60e51b81526004016105099190610e91565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b03811182821017156108fc576108fc6108c3565b60405290565b604051601f8201601f191681016001600160401b038111828210171561092a5761092a6108c3565b604052919050565b60006060828403121561094457600080fd5b604051606081016001600160401b0381118282101715610966576109666108c3565b80604052508091508235815260208301356020820152604083013560408201525092915050565b80356001600160801b03811681146109a457600080fd5b919050565b600080600060a084860312156109be57600080fd5b833592506109cf8560208601610932565b91506109dd6080850161098d565b90509250925092565b600080604083850312156109f957600080fd5b82359150610a096020840161098d565b90509250929050565b6001600160a01b0381168114610a2757600080fd5b50565b80356109a481610a12565b60008060008060c08587031215610a4b57600080fd5b84359350610a5c8660208701610932565b92506080850135610a6c81610a12565b9150610a7a60a0860161098d565b905092959194509250565b803563ffffffff811681146109a457600080fd5b60006001600160401b03821115610ab257610ab26108c3565b5060051b60200190565b600082601f830112610acd57600080fd5b81356020610ae2610add83610a99565b610902565b82815260059290921b84018101918181019086841115610b0157600080fd5b8286015b84811015610b2d57803561ffff81168114610b205760008081fd5b8352918301918301610b05565b509695505050505050565b600082601f830112610b4957600080fd5b81356020610b59610add83610a99565b82815260059290921b84018101918181019086841115610b7857600080fd5b8286015b84811015610b2d57610b8d8161098d565b8352918301918301610b7c565b8015158114610a2757600080fd5b80356109a481610b9a565b600082601f830112610bc457600080fd5b81356020610bd4610add83610a99565b82815260059290921b84018101918181019086841115610bf357600080fd5b8286015b84811015610b2d578035610c0a81610a12565b8352918301918301610bf7565b60008060008060008061010080888a031215610c3257600080fd5b87359650610c438960208a01610932565b95506080880135945060a08801356001600160401b0380821115610c6657600080fd5b818a01915082828c031215610c7a57600080fd5b610c826108d9565b9250610c8d82610a85565b8352602082013581811115610ca157600080fd5b610cad8c828501610abc565b602085015250604082013581811115610cc557600080fd5b610cd18c828501610b38565b604085015250610ce360608301610a2a565b6060840152610cf460808301610a2a565b6080840152610d0560a08301610a2a565b60a0840152610d1660c08301610a2a565b60c0840152610d2760e08301610ba8565b60e084015291945060c08901359180831115610d4257600080fd5b5050610d5089828a01610bb3565b925050610d5f60e0880161098d565b90509295509295509295565b634e487b7160e01b600052601160045260246000fd5b6001600160401b03818116838216019080821115610da157610da1610d6b565b5092915050565b6001600160801b03818116838216019080821115610da157610da1610d6b565b6001600160a01b0391909116815260200190565b600082610df957634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201610e2657610e26610d6b565b5060010190565b600060208284031215610e3f57600080fd5b8151610e4a81610b9a565b9392505050565b60005b83811015610e6c578181015183820152602001610e54565b50506000910152565b60008251610e87818460208701610e51565b9190910192915050565b6020815260008251806020840152610eb0816040850160208701610e51565b601f01601f1916919091016040019291505056fea2646970667358221220e9820bc2f66dac0a9b0507a741f4334031d5b29fbb4a82c400bb44007b63cf5664736f6c63430008130033";
46
+
47
+ type DirectPaymentsLibraryConstructorParams =
48
+ | [signer?: Signer]
49
+ | ConstructorParameters<typeof ContractFactory>;
50
+
51
+ const isSuperArgs = (
52
+ xs: DirectPaymentsLibraryConstructorParams
53
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
54
+
55
+ export class DirectPaymentsLibrary__factory extends ContractFactory {
56
+ constructor(...args: DirectPaymentsLibraryConstructorParams) {
57
+ if (isSuperArgs(args)) {
58
+ super(...args);
59
+ } else {
60
+ super(_abi, _bytecode, args[0]);
61
+ }
62
+ }
63
+
64
+ override deploy(
65
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
66
+ ): Promise<DirectPaymentsLibrary> {
67
+ return super.deploy(overrides || {}) as Promise<DirectPaymentsLibrary>;
68
+ }
69
+ override getDeployTransaction(
70
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
71
+ ): TransactionRequest {
72
+ return super.getDeployTransaction(overrides || {});
73
+ }
74
+ override attach(address: string): DirectPaymentsLibrary {
75
+ return super.attach(address) as DirectPaymentsLibrary;
76
+ }
77
+ override connect(signer: Signer): DirectPaymentsLibrary__factory {
78
+ return super.connect(signer) as DirectPaymentsLibrary__factory;
79
+ }
80
+
81
+ static readonly bytecode = _bytecode;
82
+ static readonly abi = _abi;
83
+ static createInterface(): DirectPaymentsLibraryInterface {
84
+ return new utils.Interface(_abi) as DirectPaymentsLibraryInterface;
85
+ }
86
+ static connect(
87
+ address: string,
88
+ signerOrProvider: Signer | Provider
89
+ ): DirectPaymentsLibrary {
90
+ return new Contract(
91
+ address,
92
+ _abi,
93
+ signerOrProvider
94
+ ) as DirectPaymentsLibrary;
95
+ }
96
+ }
@@ -0,0 +1,5 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export { DirectPayemntsLibrary__factory } from "./DirectPayemntsLibrary__factory";
5
+ export { DirectPaymentsLibrary__factory } from "./DirectPaymentsLibrary__factory";
@@ -0,0 +1,169 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
5
+ import type { Provider, TransactionRequest } from "@ethersproject/providers";
6
+ import type { PromiseOrValue } from "../../../common";
7
+ import type {
8
+ DirectPaymentsLibrary,
9
+ DirectPaymentsLibraryInterface,
10
+ } from "../../../contracts/DirectPayments/DirectPaymentsLibrary";
11
+
12
+ const _abi = [
13
+ {
14
+ inputs: [],
15
+ name: "NO_BALANCE",
16
+ type: "error",
17
+ },
18
+ {
19
+ inputs: [],
20
+ name: "OVER_GLOBAL_LIMITS",
21
+ type: "error",
22
+ },
23
+ {
24
+ inputs: [
25
+ {
26
+ internalType: "address",
27
+ name: "",
28
+ type: "address",
29
+ },
30
+ ],
31
+ name: "OVER_MEMBER_LIMITS",
32
+ type: "error",
33
+ },
34
+ {
35
+ anonymous: false,
36
+ inputs: [
37
+ {
38
+ indexed: true,
39
+ internalType: "uint256",
40
+ name: "tokenId",
41
+ type: "uint256",
42
+ },
43
+ {
44
+ indexed: false,
45
+ internalType: "uint16",
46
+ name: "eventType",
47
+ type: "uint16",
48
+ },
49
+ {
50
+ indexed: false,
51
+ internalType: "uint32",
52
+ name: "eventTimestamp",
53
+ type: "uint32",
54
+ },
55
+ {
56
+ indexed: false,
57
+ internalType: "uint256",
58
+ name: "eventQuantity",
59
+ type: "uint256",
60
+ },
61
+ {
62
+ indexed: false,
63
+ internalType: "string",
64
+ name: "eventUri",
65
+ type: "string",
66
+ },
67
+ {
68
+ indexed: false,
69
+ internalType: "address[]",
70
+ name: "contributers",
71
+ type: "address[]",
72
+ },
73
+ {
74
+ indexed: false,
75
+ internalType: "uint256",
76
+ name: "rewardPerContributer",
77
+ type: "uint256",
78
+ },
79
+ ],
80
+ name: "EventRewardClaimed",
81
+ type: "event",
82
+ },
83
+ {
84
+ anonymous: false,
85
+ inputs: [
86
+ {
87
+ indexed: true,
88
+ internalType: "uint256",
89
+ name: "tokenId",
90
+ type: "uint256",
91
+ },
92
+ {
93
+ indexed: false,
94
+ internalType: "uint256",
95
+ name: "totalRewards",
96
+ type: "uint256",
97
+ },
98
+ ],
99
+ name: "NFTClaimed",
100
+ type: "event",
101
+ },
102
+ {
103
+ anonymous: false,
104
+ inputs: [
105
+ {
106
+ indexed: false,
107
+ internalType: "address",
108
+ name: "contributer",
109
+ type: "address",
110
+ },
111
+ ],
112
+ name: "NOT_MEMBER_OR_WHITELISTED_OR_LIMITS",
113
+ type: "event",
114
+ },
115
+ ] as const;
116
+
117
+ const _bytecode =
118
+ "0x6117cd61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100615760003560e01c806327fdccf114610066578063ba35875114610088578063bfd8847e146100a8578063cb22f4ff146100dc578063d8e7cd72146100fc575b600080fd5b81801561007257600080fd5b50610086610081366004610ea2565b61011c565b005b81801561009457600080fd5b506100866100a3366004610edf565b610315565b8180156100b457600080fd5b506100c86100c3366004610f2e565b6104d8565b604051901515815260200160405180910390f35b8180156100e857600080fd5b506100866100f736600461125c565b61061e565b81801561010857600080fd5b506100866101173660046114bd565b61094d565b6001830154429061014090600160801b90046001600160401b03166201518061156b565b6001600160401b0316101561016d5782546001600160801b0319166001600160801b0382161783556101af565b82548190849060009061018a9084906001600160801b0316611592565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6101b7610aae565b60018401546001600160401b03918216600160c01b90910490911610156101f55782546001600160801b03808316600160801b02911617835561023e565b825481908490601090610219908490600160801b90046001600160801b0316611592565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b60018301805482919060009061025e9084906001600160801b0316611592565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550428360010160106101000a8154816001600160401b0302191690836001600160401b031602179055506102b3610aae565b6001840180546001600160401b0392909216600160c01b026001600160c01b03909216919091179055815183546001600160801b03600160801b90910416111561031057604051639803f99760e01b815260040160405180910390fd5b505050565b6001820154429061033990600160801b90046001600160401b03166201518061156b565b6001600160401b031610156103665781546001600160801b0319166001600160801b0382161782556103a8565b8154819083906000906103839084906001600160801b0316611592565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6103b0610aae565b60018301546001600160401b03918216600160c01b90910490911610156103ee5781546001600160801b03808316600160801b029116178255610437565b815481908390601090610412908490600160801b90046001600160801b0316611592565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6001820180548291906000906104579084906001600160801b0316611592565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550428260010160106101000a8154816001600160401b0302191690836001600160401b031602179055506104ac610aae565b8260010160186101000a8154816001600160401b0302191690836001600160401b031602179055505050565b6000306001600160a01b03166391d14854306001600160a01b031663a10f469e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054b91906115b2565b6040516001600160e01b031960e084901b16815260048101919091526001600160a01b0386166024820152604401602060405180830381865afa158015610596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ba91906115cb565b15156000036105cb57506000610616565b6105d58583610315565b604084015185546001600160801b03161180610605575060208401518554600160801b90046001600160801b0316115b1561061257506000610616565b5060015b949350505050565b6000808460c001516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161065191906115ef565b602060405180830381865afa15801561066e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069291906115b2565b60e086015190915060005b846060015151811015610907576000856060015182815181106106c2576106c2611603565b60200260200101516040015183801561070557506000876060015184815181106106ee576106ee611603565b602002602001015160a001516001600160801b0316115b61073957610734898860600151858151811061072357610723611603565b602002602001015160000151610ac2565b61075c565b8660600151838151811061074f5761074f611603565b602002602001015160a001515b6001600160801b031661076f9190611619565b905080156108f4576107818186611630565b9450838511156107a45760405163701b93d160e11b815260040160405180910390fd5b6107ae8585611643565b93506107df8b8b8b8b8a6060015187815181106107cd576107cd611603565b6020026020010151608001518661094d565b867f66417923523a2d06a43299cb4e498d17eef686f73ae2484f05c36479f5ae5a6d8760600151848151811061081757610817611603565b6020026020010151600001518860600151858151811061083957610839611603565b6020026020010151602001518960600151868151811061085b5761085b611603565b6020026020010151604001518a60600151878151811061087d5761087d611603565b6020026020010151606001518b60600151888151811061089f5761089f611603565b6020026020010151608001518c6060015189815181106108c1576108c1611603565b60200260200101516080015151886108d99190611656565b6040516108eb969594939291906116c8565b60405180910390a25b50806108ff8161174f565b91505061069d565b50847fdc780326abc7aa2bf7cfbd02de3cdd5c8020124228dbcbc133d6bcbd74a784cc8460405161093a91815260200190565b60405180910390a2505050505050505050565b60008251826001600160801b03166109659190611656565b90506000805b8451811015610a985760006109d788600088858151811061098e5761098e611603565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208a8885815181106109c9576109c9611603565b6020026020010151876104d8565b90508015610a3457610a238683815181106109f4576109f4611603565b6020026020010151856001600160801b03168960c001516001600160a01b0316610b439092919063ffffffff16565b610a2d8484611592565b9250610a85565b7ffd1e0ab28ffb8b7b3c8d7d35f6f35733d9c03c0f575a37403c6ec464517e9c3f868381518110610a6757610a67611603565b6020026020010151604051610a7c91906115ef565b60405180910390a15b5080610a908161174f565b91505061096b565b50610aa488888361011c565b5050505050505050565b6000610abd62278d0042611656565b905090565b6000805b836020015151811015610b375783602001518181518110610ae957610ae9611603565b602002602001015161ffff168361ffff1603610b255783604001518181518110610b1557610b15611603565b6020026020010151915050610b3d565b80610b2f8161174f565b915050610ac6565b50600090505b92915050565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65649084015261031092869291600091610bd3918516908490610c55565b8051909150156103105780806020019051810190610bf191906115cb565b6103105760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084015b60405180910390fd5b6060610616848460008585600080866001600160a01b03168587604051610c7c9190611768565b60006040518083038185875af1925050503d8060008114610cb9576040519150601f19603f3d011682016040523d82523d6000602084013e610cbe565b606091505b5091509150610ccf87838387610cda565b979650505050505050565b60608315610d49578251600003610d42576001600160a01b0385163b610d425760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610c4c565b5081610616565b6106168383815115610d5e5781518083602001fd5b8060405162461bcd60e51b8152600401610c4c9190611784565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b0381118282101715610db157610db1610d78565b60405290565b604051608081016001600160401b0381118282101715610db157610db1610d78565b60405160c081016001600160401b0381118282101715610db157610db1610d78565b604051601f8201601f191681016001600160401b0381118282101715610e2357610e23610d78565b604052919050565b600060608284031215610e3d57600080fd5b604051606081016001600160401b0381118282101715610e5f57610e5f610d78565b80604052508091508235815260208301356020820152604083013560408201525092915050565b80356001600160801b0381168114610e9d57600080fd5b919050565b600080600060a08486031215610eb757600080fd5b83359250610ec88560208601610e2b565b9150610ed660808501610e86565b90509250925092565b60008060408385031215610ef257600080fd5b82359150610f0260208401610e86565b90509250929050565b6001600160a01b0381168114610f2057600080fd5b50565b8035610e9d81610f0b565b60008060008060c08587031215610f4457600080fd5b84359350610f558660208701610e2b565b92506080850135610f6581610f0b565b9150610f7360a08601610e86565b905092959194509250565b803563ffffffff81168114610e9d57600080fd5b60006001600160401b03821115610fab57610fab610d78565b5060051b60200190565b803561ffff81168114610e9d57600080fd5b600082601f830112610fd857600080fd5b81356020610fed610fe883610f92565b610dfb565b82815260059290921b8401810191818101908684111561100c57600080fd5b8286015b8481101561102e5761102181610fb5565b8352918301918301611010565b509695505050505050565b600082601f83011261104a57600080fd5b8135602061105a610fe883610f92565b82815260059290921b8401810191818101908684111561107957600080fd5b8286015b8481101561102e5761108e81610e86565b835291830191830161107d565b8015158114610f2057600080fd5b8035610e9d8161109b565b600061010082840312156110c757600080fd5b6110cf610d8e565b90506110da82610f7e565b815260208201356001600160401b03808211156110f657600080fd5b61110285838601610fc7565b6020840152604084013591508082111561111b57600080fd5b5061112884828501611039565b60408301525061113a60608301610f23565b606082015261114b60808301610f23565b608082015261115c60a08301610f23565b60a082015261116d60c08301610f23565b60c082015261117e60e083016110a9565b60e082015292915050565b600082601f83011261119a57600080fd5b81356001600160401b038111156111b3576111b3610d78565b6111c6601f8201601f1916602001610dfb565b8181528460208386010111156111db57600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f83011261120957600080fd5b81356020611219610fe883610f92565b82815260059290921b8401810191818101908684111561123857600080fd5b8286015b8481101561102e57803561124f81610f0b565b835291830191830161123c565b600080600080600080610100878903121561127657600080fd5b863595506112878860208901610e2b565b9450608087013593506001600160401b0360a088013511156112a857600080fd5b6112b88860a089013589016110b4565b925060c087013591506001600160401b0360e088013511156112d957600080fd5b60e087013587016080818a0312156112f057600080fd5b6112f8610db7565b61130182610f7e565b815261130f60208301610fb5565b60208201526001600160401b036040830135111561132c57600080fd5b61133c8a60408401358401611189565b60408201526001600160401b036060830135111561135957600080fd5b60608201358201915089601f83011261137157600080fd5b61137e610fe88335610f92565b82358082526020808301929160051b8501018c101561139c57600080fd5b602084015b6020853560051b8601018110156114a5576001600160401b03813511156113c757600080fd5b60c0813586018e03601f190112156113de57600080fd5b6113e6610dd9565b6113f560208335880101610fb5565b815261140660408335880101610f7e565b602082015281358601606081013560408301526001600160401b03608090910135111561143257600080fd5b6114488e83358801608081013501602001611189565b60608201526001600160401b038235870160a00135111561146857600080fd5b61147e8e8335880160a0810135016020016111f8565b608082015261149260c08335880101610e86565b60a08201528352602092830192016113a1565b50806060840152505080925050509295509295509295565b60008060008060008061010087890312156114d757600080fd5b863595506114e88860208901610e2b565b94506080870135935060a08701356001600160401b038082111561150b57600080fd5b6115178a838b016110b4565b945060c089013591508082111561152d57600080fd5b5061153a89828a016111f8565b92505061154960e08801610e86565b90509295509295509295565b634e487b7160e01b600052601160045260246000fd5b6001600160401b0381811683821601908082111561158b5761158b611555565b5092915050565b6001600160801b0381811683821601908082111561158b5761158b611555565b6000602082840312156115c457600080fd5b5051919050565b6000602082840312156115dd57600080fd5b81516115e88161109b565b9392505050565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052603260045260246000fd5b8082028115828204841417610b3d57610b3d611555565b80820180821115610b3d57610b3d611555565b81810381811115610b3d57610b3d611555565b60008261167357634e487b7160e01b600052601260045260246000fd5b500490565b60005b8381101561169357818101518382015260200161167b565b50506000910152565b600081518084526116b4816020860160208601611678565b601f01601f19169290920160200192915050565b61ffff871681526000602063ffffffff88168184015286604084015260c060608401526116f860c084018761169c565b838103608085015285518082528287019183019060005b818110156117345783516001600160a01b03168352928401929184019160010161170f565b50506001600160801b03861660a08601529250610ccf915050565b60006001820161176157611761611555565b5060010190565b6000825161177a818460208701611678565b9190910192915050565b6020815260006115e8602083018461169c56fea264697066735822122089c669cb2bfc782154fe09b6afcf9e2fff5eab2b72c9dc1fb0187a8a5d6a7bb064736f6c63430008130033";
119
+
120
+ type DirectPaymentsLibraryConstructorParams =
121
+ | [signer?: Signer]
122
+ | ConstructorParameters<typeof ContractFactory>;
123
+
124
+ const isSuperArgs = (
125
+ xs: DirectPaymentsLibraryConstructorParams
126
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
127
+
128
+ export class DirectPaymentsLibrary__factory extends ContractFactory {
129
+ constructor(...args: DirectPaymentsLibraryConstructorParams) {
130
+ if (isSuperArgs(args)) {
131
+ super(...args);
132
+ } else {
133
+ super(_abi, _bytecode, args[0]);
134
+ }
135
+ }
136
+
137
+ override deploy(
138
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
139
+ ): Promise<DirectPaymentsLibrary> {
140
+ return super.deploy(overrides || {}) as Promise<DirectPaymentsLibrary>;
141
+ }
142
+ override getDeployTransaction(
143
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
144
+ ): TransactionRequest {
145
+ return super.getDeployTransaction(overrides || {});
146
+ }
147
+ override attach(address: string): DirectPaymentsLibrary {
148
+ return super.attach(address) as DirectPaymentsLibrary;
149
+ }
150
+ override connect(signer: Signer): DirectPaymentsLibrary__factory {
151
+ return super.connect(signer) as DirectPaymentsLibrary__factory;
152
+ }
153
+
154
+ static readonly bytecode = _bytecode;
155
+ static readonly abi = _abi;
156
+ static createInterface(): DirectPaymentsLibraryInterface {
157
+ return new utils.Interface(_abi) as DirectPaymentsLibraryInterface;
158
+ }
159
+ static connect(
160
+ address: string,
161
+ signerOrProvider: Signer | Provider
162
+ ): DirectPaymentsLibrary {
163
+ return new Contract(
164
+ address,
165
+ _abi,
166
+ signerOrProvider
167
+ ) as DirectPaymentsLibrary;
168
+ }
169
+ }