@gooddollar/goodcollective-contracts 1.1.0 → 1.2.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 (64) hide show
  1. package/README.md +14 -1
  2. package/contracts/DirectPayments/DirectPaymentsFactory.sol +13 -10
  3. package/contracts/DirectPayments/DirectPaymentsPool.sol +13 -4
  4. package/contracts/GoodCollective/GoodCollectiveSuperApp.sol +31 -55
  5. package/contracts/GoodCollective/IGoodCollectiveSuperApp.sol +6 -0
  6. package/contracts/UBI/UBIPool.sol +48 -36
  7. package/contracts/UBI/UBIPoolFactory.sol +10 -1
  8. package/contracts/test/HelperLibraryTest.sol +16 -0
  9. package/contracts/utils/HelperLibrary.sol +73 -5
  10. package/package.json +4 -3
  11. package/releases/deployment.json +21841 -565
  12. package/typechain-types/@uniswap/index.ts +0 -2
  13. package/typechain-types/contracts/DirectPayments/DirectPaymentsFactory.sol/DirectPaymentsFactory.ts +1327 -0
  14. package/typechain-types/contracts/{GoodCollective/GoodCollectiveSuperApp.sol → DirectPayments/DirectPaymentsFactory.sol}/index.ts +1 -1
  15. package/typechain-types/contracts/DirectPayments/DirectPaymentsFactory.ts +40 -5
  16. package/typechain-types/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool.ts +49 -0
  17. package/typechain-types/contracts/GoodCollective/GoodCollectiveSuperApp.ts +49 -0
  18. package/typechain-types/contracts/{UBI/MultiClaimModule.sol/IClaimable.ts → GoodCollective/IGoodCollectiveSuperApp.sol/IRegistry.ts} +33 -23
  19. package/typechain-types/{factories/@uniswap/v3-periphery/contracts → contracts/GoodCollective/IGoodCollectiveSuperApp.sol}/index.ts +1 -1
  20. package/typechain-types/contracts/GoodCollective/index.ts +3 -2
  21. package/typechain-types/contracts/UBI/UBIPool.sol/UBIPool.ts +104 -49
  22. package/typechain-types/contracts/UBI/UBIPoolFactory.ts +43 -5
  23. package/typechain-types/contracts/UBI/index.ts +0 -2
  24. package/typechain-types/contracts/index.ts +2 -0
  25. package/typechain-types/contracts/test/HelperLibraryTest.ts +147 -0
  26. package/typechain-types/{@uniswap/v3-periphery/contracts/interfaces → contracts/test}/index.ts +1 -1
  27. package/typechain-types/factories/@uniswap/index.ts +0 -1
  28. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsFactory.sol/DirectPaymentsFactory__factory.ts +1004 -0
  29. package/typechain-types/factories/contracts/{GoodCollective/GoodCollectiveSuperApp.sol → DirectPayments/DirectPaymentsFactory.sol}/IRegistry__factory.ts +1 -1
  30. package/typechain-types/factories/contracts/{GoodCollective/GoodCollectiveSuperApp.sol → DirectPayments/DirectPaymentsFactory.sol}/index.ts +1 -1
  31. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsFactory__factory.ts +15 -2
  32. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool__factory.ts +57 -1
  33. package/typechain-types/factories/contracts/GoodCollective/GoodCollectiveSuperApp__factory.ts +57 -1
  34. package/typechain-types/factories/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IRegistry__factory.ts +52 -0
  35. package/typechain-types/{@gooddollar/goodprotocol/contracts/token/FeesFormula.sol → factories/contracts/GoodCollective/IGoodCollectiveSuperApp.sol}/index.ts +1 -1
  36. package/typechain-types/factories/contracts/GoodCollective/index.ts +2 -1
  37. package/typechain-types/factories/contracts/UBI/UBIPool.sol/UBIPool__factory.ts +109 -28
  38. package/typechain-types/factories/contracts/UBI/UBIPoolFactory__factory.ts +32 -4
  39. package/typechain-types/factories/contracts/UBI/index.ts +0 -1
  40. package/typechain-types/factories/contracts/index.ts +1 -0
  41. package/typechain-types/factories/contracts/test/HelperLibraryTest__factory.ts +154 -0
  42. package/typechain-types/{@uniswap/v3-periphery → factories/contracts/test}/index.ts +1 -2
  43. package/typechain-types/factories/contracts/utils/HelperLibrary__factory.ts +1 -1
  44. package/typechain-types/hardhat.d.ts +4 -31
  45. package/typechain-types/index.ts +6 -12
  46. package/contracts/UBI/MultiClaimModule.sol +0 -78
  47. package/typechain-types/@gooddollar/goodprotocol/contracts/token/FeesFormula.sol/IFeesFormula.ts +0 -115
  48. package/typechain-types/@uniswap/v3-periphery/contracts/index.ts +0 -5
  49. package/typechain-types/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.ts +0 -369
  50. package/typechain-types/contracts/GoodCollective/GoodCollectiveSuperApp.sol/GoodCollectiveSuperApp.ts +0 -1000
  51. package/typechain-types/contracts/UBI/MultiClaimModule.sol/IModule.ts +0 -196
  52. package/typechain-types/contracts/UBI/MultiClaimModule.sol/MultiClaimModule.ts +0 -242
  53. package/typechain-types/contracts/UBI/MultiClaimModule.sol/index.ts +0 -6
  54. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/token/FeesFormula.sol/IFeesFormula__factory.ts +0 -60
  55. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/token/FeesFormula.sol/index.ts +0 -4
  56. package/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter__factory.ts +0 -263
  57. package/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/index.ts +0 -4
  58. package/typechain-types/factories/@uniswap/v3-periphery/index.ts +0 -4
  59. package/typechain-types/factories/contracts/GoodCollective/GoodCollectiveSuperApp.sol/GoodCollectiveSuperApp__factory.ts +0 -728
  60. package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/IClaimable__factory.ts +0 -33
  61. package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/IModule__factory.ts +0 -84
  62. package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/MultiClaimModule__factory.ts +0 -150
  63. package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/index.ts +0 -6
  64. /package/typechain-types/contracts/{GoodCollective/GoodCollectiveSuperApp.sol → DirectPayments/DirectPaymentsFactory.sol}/IRegistry.ts +0 -0
@@ -1,6 +1,5 @@
1
1
  /* Autogenerated file. Do not edit manually. */
2
2
  /* tslint:disable */
3
3
  /* eslint-disable */
4
- export * as multiClaimModuleSol from "./MultiClaimModule.sol";
5
4
  export * as ubiPoolSol from "./UBIPool.sol";
6
5
  export { UBIPoolFactory__factory } from "./UBIPoolFactory__factory";
@@ -4,4 +4,5 @@
4
4
  export * as directPayments from "./DirectPayments";
5
5
  export * as goodCollective from "./GoodCollective";
6
6
  export * as ubi from "./UBI";
7
+ export * as test from "./test";
7
8
  export * as utils from "./utils";
@@ -0,0 +1,154 @@
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
+ HelperLibraryTest,
9
+ HelperLibraryTestInterface,
10
+ } from "../../../contracts/test/HelperLibraryTest";
11
+
12
+ const _abi = [
13
+ {
14
+ inputs: [
15
+ {
16
+ internalType: "contract IV3SwapRouter",
17
+ name: "swapRouter",
18
+ type: "address",
19
+ },
20
+ {
21
+ components: [
22
+ {
23
+ internalType: "address",
24
+ name: "swapFrom",
25
+ type: "address",
26
+ },
27
+ {
28
+ internalType: "uint256",
29
+ name: "amount",
30
+ type: "uint256",
31
+ },
32
+ {
33
+ internalType: "uint256",
34
+ name: "minReturn",
35
+ type: "uint256",
36
+ },
37
+ {
38
+ internalType: "uint256",
39
+ name: "deadline",
40
+ type: "uint256",
41
+ },
42
+ {
43
+ internalType: "bytes",
44
+ name: "path",
45
+ type: "bytes",
46
+ },
47
+ ],
48
+ internalType: "struct HelperLibrary.SwapData",
49
+ name: "_customData",
50
+ type: "tuple",
51
+ },
52
+ {
53
+ internalType: "address",
54
+ name: "outTokenIfNoPath",
55
+ type: "address",
56
+ },
57
+ {
58
+ internalType: "address",
59
+ name: "_sender",
60
+ type: "address",
61
+ },
62
+ ],
63
+ name: "handleSwap",
64
+ outputs: [
65
+ {
66
+ internalType: "uint256",
67
+ name: "amountOut",
68
+ type: "uint256",
69
+ },
70
+ ],
71
+ stateMutability: "nonpayable",
72
+ type: "function",
73
+ },
74
+ ] as const;
75
+
76
+ const _bytecode =
77
+ "0x608060405234801561001057600080fd5b506103bf806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80630f39b88814610030575b600080fd5b61004361003e366004610177565b610055565b60405190815260200160405180910390f35b6040516321437a5360e01b815260009073__$0d78a42341742155da77b97d7f993534c7$__906321437a539061009790889088908890889081906004016102ab565b602060405180830381865af41580156100b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d89190610370565b95945050505050565b6001600160a01b03811681146100f657600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715610131576101316100f9565b60405290565b604051601f8201601f191681016001600160401b038111828210171561015f5761015f6100f9565b604052919050565b8035610172816100e1565b919050565b6000806000806080858703121561018d57600080fd5b8435610198816100e1565b93506020858101356001600160401b03808211156101b557600080fd5b9087019060a0828a0312156101c957600080fd5b6101d161010f565b82356101dc816100e1565b808252508383013584820152604083013560408201526060830135606082015260808301358281111561020e57600080fd5b80840193505089601f84011261022357600080fd5b823582811115610235576102356100f9565b610247601f8201601f19168601610137565b92508083528a8582860101111561025d57600080fd5b8085850186850137600090830190940193909352608083015250925061028560408601610167565b915061029360608601610167565b905092959194509250565b6001600160a01b03169052565b600060018060a01b038088168352602060a0818501528188511660a08501528088015160c0850152604088015160e085015260608801516101008501526080880151915060a061012085015281518061014086015260005b818110156103205783810183015186820161016001528201610303565b506101609250600083828701015282601f19601f830116860101935050505061034c604083018661029e565b610359606083018561029e565b610366608083018461029e565b9695505050505050565b60006020828403121561038257600080fd5b505191905056fea26469706673582212204640ad1c0f1f491dceb4b047f978b1aef31bb4ea20523b5db75a97440308f57164736f6c63430008130033";
78
+
79
+ type HelperLibraryTestConstructorParams =
80
+ | [linkLibraryAddresses: HelperLibraryTestLibraryAddresses, signer?: Signer]
81
+ | ConstructorParameters<typeof ContractFactory>;
82
+
83
+ const isSuperArgs = (
84
+ xs: HelperLibraryTestConstructorParams
85
+ ): xs is ConstructorParameters<typeof ContractFactory> => {
86
+ return (
87
+ typeof xs[0] === "string" ||
88
+ (Array.isArray as (arg: any) => arg is readonly any[])(xs[0]) ||
89
+ "_isInterface" in xs[0]
90
+ );
91
+ };
92
+
93
+ export class HelperLibraryTest__factory extends ContractFactory {
94
+ constructor(...args: HelperLibraryTestConstructorParams) {
95
+ if (isSuperArgs(args)) {
96
+ super(...args);
97
+ } else {
98
+ const [linkLibraryAddresses, signer] = args;
99
+ super(
100
+ _abi,
101
+ HelperLibraryTest__factory.linkBytecode(linkLibraryAddresses),
102
+ signer
103
+ );
104
+ }
105
+ }
106
+
107
+ static linkBytecode(
108
+ linkLibraryAddresses: HelperLibraryTestLibraryAddresses
109
+ ): string {
110
+ let linkedBytecode = _bytecode;
111
+
112
+ linkedBytecode = linkedBytecode.replace(
113
+ new RegExp("__\\$0d78a42341742155da77b97d7f993534c7\\$__", "g"),
114
+ linkLibraryAddresses["contracts/utils/HelperLibrary.sol:HelperLibrary"]
115
+ .replace(/^0x/, "")
116
+ .toLowerCase()
117
+ );
118
+
119
+ return linkedBytecode;
120
+ }
121
+
122
+ override deploy(
123
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
124
+ ): Promise<HelperLibraryTest> {
125
+ return super.deploy(overrides || {}) as Promise<HelperLibraryTest>;
126
+ }
127
+ override getDeployTransaction(
128
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
129
+ ): TransactionRequest {
130
+ return super.getDeployTransaction(overrides || {});
131
+ }
132
+ override attach(address: string): HelperLibraryTest {
133
+ return super.attach(address) as HelperLibraryTest;
134
+ }
135
+ override connect(signer: Signer): HelperLibraryTest__factory {
136
+ return super.connect(signer) as HelperLibraryTest__factory;
137
+ }
138
+
139
+ static readonly bytecode = _bytecode;
140
+ static readonly abi = _abi;
141
+ static createInterface(): HelperLibraryTestInterface {
142
+ return new utils.Interface(_abi) as HelperLibraryTestInterface;
143
+ }
144
+ static connect(
145
+ address: string,
146
+ signerOrProvider: Signer | Provider
147
+ ): HelperLibraryTest {
148
+ return new Contract(address, _abi, signerOrProvider) as HelperLibraryTest;
149
+ }
150
+ }
151
+
152
+ export interface HelperLibraryTestLibraryAddresses {
153
+ ["contracts/utils/HelperLibrary.sol:HelperLibrary"]: string;
154
+ }
@@ -1,5 +1,4 @@
1
1
  /* Autogenerated file. Do not edit manually. */
2
2
  /* tslint:disable */
3
3
  /* eslint-disable */
4
- import type * as contracts from "./contracts";
5
- export type { contracts };
4
+ export { HelperLibraryTest__factory } from "./HelperLibraryTest__factory";
@@ -79,7 +79,7 @@ const _abi = [
79
79
  ] as const;
80
80
 
81
81
  const _bytecode =
82
- "0x610b8861003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c806358c0dacb14610045578063b2f918a114610067575b600080fd5b81801561005157600080fd5b506100656100603660046107e6565b6100a4565b005b61007a61007536600461091c565b610273565b604080519485526020850193909352600b91820b84840152900b6060830152519081900360800190f35b6100b8836000015182308660200151610330565b6100cb8360000151858560200151610437565b6080830151511561017957604080516080808201835285015181526001600160a01b0380841660208084019190915286015182840152858301516060830152915163b858183f60e01b8152909186169063b858183f9061012f9084906004016109c4565b6020604051808303816000875af115801561014e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101729190610a2a565b505061026d565b6040805160e08101825284516001600160a01b03908116825284811660208084019182526127108486019081528684166060860190815291890151608086019081528987015160a08701908152600060c0880190815297516304e45aaf60e01b8152875187166004820152945186166024860152915162ffffff166044850152915184166064840152905160848301525160a48201529251811660c48401529091908616906304e45aaf9060e4016020604051808303816000875af1158015610246573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061026a9190610a2a565b50505b50505050565b608082015160408301516000918291829061028e9042610a59565b86608001516001600160601b03166102a69190610a72565b86516102b29190610a89565b93506102d6308760600151876001600160a01b03166105379092919063ffffffff16565b90508560400151426102e89190610a59565b6060870151610303906001600160a01b038816903090610537565b6001600160601b03166103169190610a72565b86602001516103259190610a89565b925092959194509250565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908816916103949190610a9c565b6000604051808303816000865af19150503d80600081146103d1576040519150601f19603f3d011682016040523d82523d6000602084013e6103d6565b606091505b50915091508180156104005750805115806104005750808060200190518101906104009190610ab8565b61026a5760405162461bcd60e51b815260206004820152600360248201526229aa2360e91b60448201526064015b60405180910390fd5b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916104939190610a9c565b6000604051808303816000865af19150503d80600081146104d0576040519150601f19603f3d011682016040523d82523d6000602084013e6104d5565b606091505b50915091508180156104ff5750805115806104ff5750808060200190518101906104ff9190610ab8565b6105305760405162461bcd60e51b8152602060048201526002602482015261534160f01b604482015260640161042e565b5050505050565b600080610543856105cf565b604051631cd43d1160e31b81526001600160a01b03888116600483015287811660248301528681166044830152919350908316915063e6a1e88890606401608060405180830381865afa15801561059e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c29190610ae1565b5090979650505050505050565b7f65599bf746e17a00ea62e3610586992d88101b78eec3cf380706621fb97ea837547fb969d79d88acd02d04ed7ee7d43b949e7daf093d363abcfbbc43dfdfd1ce969a546001600160a01b03811661071f576001600160a01b03821661069457826001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561066d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106919190610b1f565b91505b604051635b69006f60e11b81527fa9214cc96615e0085d3bb077758db69497dc2dce3b2b1e97bc93c3d18d83efd360048201526001600160a01b0383169063b6d200de90602401602060405180830381865afa1580156106f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071c9190610b1f565b90505b6001600160a01b03821661073557610735610b3c565b6001600160a01b03811661074b5761074b610b3c565b915091565b6001600160a01b038116811461076557600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b03811182821017156107a0576107a0610768565b60405290565b604051601f8201601f191681016001600160401b03811182821017156107ce576107ce610768565b604052919050565b80356107e181610750565b919050565b600080600080608085870312156107fc57600080fd5b843561080781610750565b93506020858101356001600160401b038082111561082457600080fd5b9087019060a0828a03121561083857600080fd5b61084061077e565b823561084b81610750565b808252508383013584820152604083013560408201526060830135606082015260808301358281111561087d57600080fd5b80840193505089601f84011261089257600080fd5b8235828111156108a4576108a4610768565b6108b6601f8201601f191686016107a6565b92508083528a858286010111156108cc57600080fd5b808585018685013760009083019094019390935260808301525092506108f4604086016107d6565b9150610902606086016107d6565b905092959194509250565b80600b0b811461076557600080fd5b60008082840360c081121561093057600080fd5b60a081121561093e57600080fd5b5061094761077e565b833581526020840135602082015260408401356040820152606084013561096d81610750565b606082015260808401356109808161090d565b6080820152915060a083013561099581610750565b809150509250929050565b60005b838110156109bb5781810151838201526020016109a3565b50506000910152565b60208152600082516080602084015280518060a08501526109ec8160c08601602085016109a0565b60208501516001600160a01b0316604085810191909152850151606080860191909152909401516080840152505060c0601f909201601f1916010190565b600060208284031215610a3c57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610a6c57610a6c610a43565b92915050565b8082028115828204841417610a6c57610a6c610a43565b80820180821115610a6c57610a6c610a43565b60008251610aae8184602087016109a0565b9190910192915050565b600060208284031215610aca57600080fd5b81518015158114610ada57600080fd5b9392505050565b60008060008060808587031215610af757600080fd5b845193506020850151610b098161090d565b6040860151606090960151949790965092505050565b600060208284031215610b3157600080fd5b8151610ada81610750565b634e487b7160e01b600052600160045260246000fdfea264697066735822122040f20e3f8d7e7114d62db380863d5f46e7cfdd7b624bdffc9517370abac1d02a64736f6c63430008130033";
82
+ "0x6115bf61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100615760003560e01c80631f8f04bf1461006657806321437a531461009c57806358c0dacb146100ca578063891d61cc146100ea578063b2f918a11461010c575b600080fd5b81801561007257600080fd5b50610086610081366004610e98565b610148565b6040516100939190610f6e565b60405180910390f35b8180156100a857600080fd5b506100bc6100b7366004611000565b610377565b604051908152602001610093565b8180156100d657600080fd5b506100bc6100e5366004611089565b61050b565b8180156100f657600080fd5b5061010a6101053660046110fd565b61051a565b005b61011f61011a366004611145565b6106b5565b604080519485526020850193909352600b91820b928401929092520b6060820152608001610093565b806001600160a01b0384161561036d576000846001600160a01b031663469048406040518163ffffffff1660e01b8152600401602060405180830381865afa158015610198573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101bc91906111c9565b60038801549091506000906101df906001600160a01b0389811691309116610772565b60038901549091506000906001600160a01b0384811691161461025e575060038801546001906001600160a01b03161561024057600082600b0b131561024057600389015461023d908b90869030906001600160a01b03168c61080a565b93505b6003890180546001600160a01b0319166001600160a01b0385161790555b6001600160a01b0383166102745750505061036d565b6000612710886001600160a01b03166324a9d8536040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102db91906111e6565b6102e89060030b89611222565b6102f2919061125f565b6102fc908461129d565b9050600081600b0b13158015610310575081155b15610329576103228b8630878d61080a565b9450610368565b600083600b0b13801561033a575081155b1561034c576103228b86868c8561082f565b600081600b0b1315610368576103658b86868c85610854565b94505b505050505b9695505050505050565b600061038d856000015184308860200151610879565b6103a08560000151878760200151610988565b6080850151511561044f57604080516080808201835287015181526001600160a01b0380851660208084019190915288015182840152878301516060830152915163b858183f60e01b8152909188169063b858183f906104049084906004016112d0565b6020604051808303816000875af1158015610423573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610447919061131e565b915050610502565b6040805160e08101825286516001600160a01b039081168252868116602080840191825261271084860190815287841660608601908152918b0151608086019081528b87015160a08701908152600060c0880190815297516304e45aaf60e01b8152875187166004820152945186166024860152915162ffffff166044850152915184166064840152905160848301525160a48201529251811660c48401529091908816906304e45aaf9060e401610404565b95945050505050565b60006105028585858586610377565b60028401546105299042611337565b60038501546105489190600160a01b90046001600160601b031661134a565b84600001600082825461055b9190611361565b90915550600090506001600160a01b0383161561063557826001600160a01b03166324a9d8536040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d491906111e6565b63ffffffff1690508460020154426105ec9190611337565b6003860154610609906001600160a01b0387811691309116610772565b6001600160601b031661061c919061134a565b85600101600082825461062f9190611361565b90915550505b81156106a5576127106106488282611337565b610652908461134a565b61065c9190611374565b85600001600082825461066f9190611361565b909155506127109050610682828461134a565b61068c9190611374565b85600101600082825461069f9190611361565b90915550505b4285600201819055505050505050565b60808201516040830151600091829182906106d09042611337565b86608001516001600160601b03166106e8919061134a565b86516106f49190611361565b9350610718308760600151876001600160a01b03166107729092919063ffffffff16565b905085604001514261072a9190611337565b6060870151610745906001600160a01b038816903090610772565b6001600160601b0316610758919061134a565b86602001516107679190611361565b925092959194509250565b60008061077e85610a88565b604051631cd43d1160e31b81526001600160a01b03888116600483015287811660248301528681166044830152919350908316915063e6a1e88890606401608060405180830381865afa1580156107d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fd9190611388565b5090979650505050505050565b60408051600081526020810190915260609061036d9087908790879087908790610c09565b60408051600081526020810190915260609061036d9087908790879087908790610cf2565b60408051600081526020810190915260609061036d9087908790879087908790610d59565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908816916108dd91906113c6565b6000604051808303816000865af19150503d806000811461091a576040519150601f19603f3d011682016040523d82523d6000602084013e61091f565b606091505b509150915081801561094957508051158061094957508080602001905181019061094991906113e2565b6109805760405162461bcd60e51b815260206004820152600360248201526229aa2360e91b60448201526064015b60405180910390fd5b505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916109e491906113c6565b6000604051808303816000865af19150503d8060008114610a21576040519150601f19603f3d011682016040523d82523d6000602084013e610a26565b606091505b5091509150818015610a50575080511580610a50575080806020019051810190610a5091906113e2565b610a815760405162461bcd60e51b8152602060048201526002602482015261534160f01b6044820152606401610977565b5050505050565b7f65599bf746e17a00ea62e3610586992d88101b78eec3cf380706621fb97ea837547fb969d79d88acd02d04ed7ee7d43b949e7daf093d363abcfbbc43dfdfd1ce969a546001600160a01b038116610bd8576001600160a01b038216610b4d57826001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4a91906111c9565b91505b604051635b69006f60e11b81527fa9214cc96615e0085d3bb077758db69497dc2dce3b2b1e97bc93c3d18d83efd360048201526001600160a01b0383169063b6d200de90602401602060405180830381865afa158015610bb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd591906111c9565b90505b6001600160a01b038216610bee57610bee611404565b6001600160a01b038116610c0457610c04611404565b915091565b855460018701546040805160008152602081019091526060926001600160a01b0390811692634329d29392911690819063b4b333c690610c529089908c908c906044810161141a565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252610c9f9392509087908c9060040161144e565b6000604051808303816000875af1158015610cbe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ce691908101906114f0565b50979650505050505050565b855460018701546060916001600160a01b0390811691634329d2939116806350209a62888a8960005b6040519080825280601f01601f191660200182016040528015610d45576020820181803683370190505b50604051602401610c529493929190611553565b855460018701546060916001600160a01b0390811691634329d2939116806362fc305e888a896000610d1b565b6001600160a01b0381168114610d9b57600080fd5b50565b80600b0b8114610d9b57600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715610de557610de5610dad565b60405290565b604051601f8201601f191681016001600160401b0381118282101715610e1357610e13610dad565b604052919050565b60006001600160401b03821115610e3457610e34610dad565b50601f01601f191660200190565b600082601f830112610e5357600080fd5b8135610e66610e6182610e1b565b610deb565b818152846020838601011115610e7b57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c08789031215610eb157600080fd5b86359550602087013594506040870135610eca81610d86565b93506060870135610eda81610d86565b92506080870135610eea81610d9e565b915060a08701356001600160401b03811115610f0557600080fd5b610f1189828a01610e42565b9150509295509295509295565b60005b83811015610f39578181015183820152602001610f21565b50506000910152565b60008151808452610f5a816020860160208601610f1e565b601f01601f19169290920160200192915050565b602081526000610f816020830184610f42565b9392505050565b600060a08284031215610f9a57600080fd5b610fa2610dc3565b90508135610faf81610d86565b815260208281013590820152604080830135908201526060808301359082015260808201356001600160401b03811115610fe857600080fd5b610ff484828501610e42565b60808301525092915050565b600080600080600060a0868803121561101857600080fd5b853561102381610d86565b945060208601356001600160401b0381111561103e57600080fd5b61104a88828901610f88565b945050604086013561105b81610d86565b9250606086013561106b81610d86565b9150608086013561107b81610d86565b809150509295509295909350565b6000806000806080858703121561109f57600080fd5b84356110aa81610d86565b935060208501356001600160401b038111156110c557600080fd5b6110d187828801610f88565b93505060408501356110e281610d86565b915060608501356110f281610d86565b939692955090935050565b6000806000806080858703121561111357600080fd5b84359350602085013561112581610d86565b9250604085013561113581610d86565b9396929550929360600135925050565b60008082840360c081121561115957600080fd5b60a081121561116757600080fd5b50611170610dc3565b833581526020840135602082015260408401356040820152606084013561119681610d86565b606082015260808401356111a981610d9e565b6080820152915060a08301356111be81610d86565b809150509250929050565b6000602082840312156111db57600080fd5b8151610f8181610d86565b6000602082840312156111f857600080fd5b815163ffffffff81168114610f8157600080fd5b634e487b7160e01b600052601160045260246000fd5b600082600b0b82600b0b0280600b0b91508082146112425761124261120c565b5092915050565b634e487b7160e01b600052601260045260246000fd5b600081600b0b83600b0b8061127657611276611249565b60016001605f1b03198214600019821416156112945761129461120c565b90059392505050565b600b81810b9083900b0160016001605f1b03811360016001605f1b0319821217156112ca576112ca61120c565b92915050565b6020815260008251608060208401526112ec60a0840182610f42565b905060018060a01b03602085015116604084015260408401516060840152606084015160808401528091505092915050565b60006020828403121561133057600080fd5b5051919050565b818103818111156112ca576112ca61120c565b80820281158282048414176112ca576112ca61120c565b808201808211156112ca576112ca61120c565b60008261138357611383611249565b500490565b6000806000806080858703121561139e57600080fd5b8451935060208501516113b081610d9e565b6040860151606090960151949790965092505050565b600082516113d8818460208701610f1e565b9190910192915050565b6000602082840312156113f457600080fd5b81518015158114610f8157600080fd5b634e487b7160e01b600052600160045260246000fd5b6001600160a01b03858116825284811660208301528316604082015260806060820181905260009061036d90830184610f42565b6001600160a01b038516815260806020820181905260009061147290830186610f42565b82810360408401526114848186610f42565b905082810360608401526114988185610f42565b979650505050505050565b600082601f8301126114b457600080fd5b81516114c2610e6182610e1b565b8181528460208386010111156114d757600080fd5b6114e8826020830160208701610f1e565b949350505050565b6000806040838503121561150357600080fd5b82516001600160401b038082111561151a57600080fd5b611526868387016114a3565b9350602085015191508082111561153c57600080fd5b50611549858286016114a3565b9150509250929050565b6001600160a01b03858116825284166020820152600b83900b604082015260806060820181905260009061036d90830184610f4256fea26469706673582212201f85328ba56491d96c15832707e50b6536e3254e9b231b2c3aa1eb53b4c0825664736f6c63430008130033";
83
83
 
84
84
  type HelperLibraryConstructorParams =
85
85
  | [signer?: Signer]
@@ -312,10 +312,6 @@ declare module "hardhat/types/runtime" {
312
312
  name: "IUniswapV3SwapCallback",
313
313
  signerOrOptions?: ethers.Signer | FactoryOptions
314
314
  ): Promise<Contracts.IUniswapV3SwapCallback__factory>;
315
- getContractFactory(
316
- name: "ISwapRouter",
317
- signerOrOptions?: ethers.Signer | FactoryOptions
318
- ): Promise<Contracts.ISwapRouter__factory>;
319
315
  getContractFactory(
320
316
  name: "DirectPaymentsFactory",
321
317
  signerOrOptions?: ethers.Signer | FactoryOptions
@@ -349,17 +345,9 @@ declare module "hardhat/types/runtime" {
349
345
  signerOrOptions?: ethers.Signer | FactoryOptions
350
346
  ): Promise<Contracts.SuperAppBaseFlow__factory>;
351
347
  getContractFactory(
352
- name: "IClaimable",
353
- signerOrOptions?: ethers.Signer | FactoryOptions
354
- ): Promise<Contracts.IClaimable__factory>;
355
- getContractFactory(
356
- name: "IModule",
348
+ name: "HelperLibraryTest",
357
349
  signerOrOptions?: ethers.Signer | FactoryOptions
358
- ): Promise<Contracts.IModule__factory>;
359
- getContractFactory(
360
- name: "MultiClaimModule",
361
- signerOrOptions?: ethers.Signer | FactoryOptions
362
- ): Promise<Contracts.MultiClaimModule__factory>;
350
+ ): Promise<Contracts.HelperLibraryTest__factory>;
363
351
  getContractFactory(
364
352
  name: "IIdentityV2",
365
353
  signerOrOptions?: ethers.Signer | FactoryOptions
@@ -760,11 +748,6 @@ declare module "hardhat/types/runtime" {
760
748
  address: string,
761
749
  signer?: ethers.Signer
762
750
  ): Promise<Contracts.IUniswapV3SwapCallback>;
763
- getContractAt(
764
- name: "ISwapRouter",
765
- address: string,
766
- signer?: ethers.Signer
767
- ): Promise<Contracts.ISwapRouter>;
768
751
  getContractAt(
769
752
  name: "DirectPaymentsFactory",
770
753
  address: string,
@@ -806,20 +789,10 @@ declare module "hardhat/types/runtime" {
806
789
  signer?: ethers.Signer
807
790
  ): Promise<Contracts.SuperAppBaseFlow>;
808
791
  getContractAt(
809
- name: "IClaimable",
810
- address: string,
811
- signer?: ethers.Signer
812
- ): Promise<Contracts.IClaimable>;
813
- getContractAt(
814
- name: "IModule",
815
- address: string,
816
- signer?: ethers.Signer
817
- ): Promise<Contracts.IModule>;
818
- getContractAt(
819
- name: "MultiClaimModule",
792
+ name: "HelperLibraryTest",
820
793
  address: string,
821
794
  signer?: ethers.Signer
822
- ): Promise<Contracts.MultiClaimModule>;
795
+ ): Promise<Contracts.HelperLibraryTest>;
823
796
  getContractAt(
824
797
  name: "IIdentityV2",
825
798
  address: string,
@@ -162,8 +162,6 @@ export type { IV3SwapRouter } from "./@uniswap/swap-router-contracts/contracts/i
162
162
  export { IV3SwapRouter__factory } from "./factories/@uniswap/swap-router-contracts/contracts/interfaces/IV3SwapRouter__factory";
163
163
  export type { IUniswapV3SwapCallback } from "./@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback";
164
164
  export { IUniswapV3SwapCallback__factory } from "./factories/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback__factory";
165
- export type { ISwapRouter } from "./@uniswap/v3-periphery/contracts/interfaces/ISwapRouter";
166
- export { ISwapRouter__factory } from "./factories/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter__factory";
167
165
  export type { DirectPaymentsFactory } from "./contracts/DirectPayments/DirectPaymentsFactory";
168
166
  export { DirectPaymentsFactory__factory } from "./factories/contracts/DirectPayments/DirectPaymentsFactory__factory";
169
167
  export type { DirectPaymentsPool } from "./contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool";
@@ -172,18 +170,14 @@ export type { IMembersValidator } from "./contracts/DirectPayments/DirectPayment
172
170
  export { IMembersValidator__factory } from "./factories/contracts/DirectPayments/DirectPaymentsPool.sol/IMembersValidator__factory";
173
171
  export type { ProvableNFT } from "./contracts/DirectPayments/ProvableNFT";
174
172
  export { ProvableNFT__factory } from "./factories/contracts/DirectPayments/ProvableNFT__factory";
175
- export type { GoodCollectiveSuperApp } from "./contracts/GoodCollective/GoodCollectiveSuperApp.sol/GoodCollectiveSuperApp";
176
- export { GoodCollectiveSuperApp__factory } from "./factories/contracts/GoodCollective/GoodCollectiveSuperApp.sol/GoodCollectiveSuperApp__factory";
177
- export type { IRegistry } from "./contracts/GoodCollective/GoodCollectiveSuperApp.sol/IRegistry";
178
- export { IRegistry__factory } from "./factories/contracts/GoodCollective/GoodCollectiveSuperApp.sol/IRegistry__factory";
173
+ export type { GoodCollectiveSuperApp } from "./contracts/GoodCollective/GoodCollectiveSuperApp";
174
+ export { GoodCollectiveSuperApp__factory } from "./factories/contracts/GoodCollective/GoodCollectiveSuperApp__factory";
175
+ export type { IRegistry } from "./contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IRegistry";
176
+ export { IRegistry__factory } from "./factories/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IRegistry__factory";
179
177
  export type { SuperAppBaseFlow } from "./contracts/GoodCollective/SuperAppBaseFlow";
180
178
  export { SuperAppBaseFlow__factory } from "./factories/contracts/GoodCollective/SuperAppBaseFlow__factory";
181
- export type { IClaimable } from "./contracts/UBI/MultiClaimModule.sol/IClaimable";
182
- export { IClaimable__factory } from "./factories/contracts/UBI/MultiClaimModule.sol/IClaimable__factory";
183
- export type { IModule } from "./contracts/UBI/MultiClaimModule.sol/IModule";
184
- export { IModule__factory } from "./factories/contracts/UBI/MultiClaimModule.sol/IModule__factory";
185
- export type { MultiClaimModule } from "./contracts/UBI/MultiClaimModule.sol/MultiClaimModule";
186
- export { MultiClaimModule__factory } from "./factories/contracts/UBI/MultiClaimModule.sol/MultiClaimModule__factory";
179
+ export type { HelperLibraryTest } from "./contracts/test/HelperLibraryTest";
180
+ export { HelperLibraryTest__factory } from "./factories/contracts/test/HelperLibraryTest__factory";
187
181
  export type { UBIPool } from "./contracts/UBI/UBIPool.sol/UBIPool";
188
182
  export { UBIPool__factory } from "./factories/contracts/UBI/UBIPool.sol/UBIPool__factory";
189
183
  export type { UBIPoolFactory } from "./contracts/UBI/UBIPoolFactory";
@@ -1,78 +0,0 @@
1
- // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.0;
3
-
4
- import { IERC20Upgradeable } from "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol";
5
-
6
- // Interface for ERC-7579 IModule (minimal implementation)
7
- interface IModule {
8
- /**
9
- * @dev This function is called by the smart account during installation of the module
10
- * @param data arbitrary data that may be required on the module during `onInstall` initialization
11
- *
12
- * MUST revert on error (i.e. if module is already enabled)
13
- */
14
- function onInstall(bytes calldata data) external;
15
-
16
- /**
17
- * @dev This function is called by the smart account during uninstallation of the module
18
- * @param data arbitrary data that may be required on the module during `onUninstall` de-initialization
19
- *
20
- * MUST revert on error
21
- */
22
- function onUninstall(bytes calldata data) external;
23
-
24
- /**
25
- * @dev Returns boolean value if module is a certain type
26
- * @param typeID the module type ID according the ERC-7579 spec
27
- *
28
- * MUST return true if the module is of the given type and false otherwise
29
- */
30
- function isModuleType(uint256 typeID) external view returns (bool);
31
-
32
- /**
33
- * @dev Returns bit-encoded integer of the different typeIds of the module
34
- *
35
- * MUST return all the bit-encoded typeIds of the module
36
- */
37
- function getModuleTypes() external view returns (uint256);
38
- }
39
-
40
- interface IClaimable {
41
- function claim() external;
42
- }
43
-
44
- contract MultiClaimModule is IModule {
45
- // Function to claim tokens from multiple contracts
46
- function multiClaim(
47
- address[] calldata contracts,
48
- IERC20Upgradeable token,
49
- address recipient
50
- ) external returns (bool[] memory success) {
51
- // Loop through each contract address
52
- uint256 tokenBalance = token.balanceOf(address(this));
53
- success = new bool[](contracts.length);
54
- for (uint i = 0; i < contracts.length; i++) {
55
- try IClaimable(contracts[i]).claim() {
56
- success[i] = true;
57
- } catch {}
58
- }
59
-
60
- // Transfer any token balance after claims to recipient
61
- uint256 tokenBalanceDiff = token.balanceOf(address(this)) - tokenBalance;
62
- if (tokenBalanceDiff > 0) {
63
- token.transfer(recipient, tokenBalanceDiff);
64
- }
65
- }
66
-
67
- function onInstall(bytes calldata data) external override {}
68
-
69
- function onUninstall(bytes calldata data) external override {}
70
-
71
- function isModuleType(uint256 typeID) external view override returns (bool) {
72
- return true;
73
- }
74
-
75
- function getModuleTypes() public view override returns (uint256) {
76
- return 2;
77
- }
78
- }
@@ -1,115 +0,0 @@
1
- /* Autogenerated file. Do not edit manually. */
2
- /* tslint:disable */
3
- /* eslint-disable */
4
- import type {
5
- BaseContract,
6
- BigNumber,
7
- BigNumberish,
8
- BytesLike,
9
- CallOverrides,
10
- PopulatedTransaction,
11
- Signer,
12
- utils,
13
- } from "ethers";
14
- import type { FunctionFragment, Result } from "@ethersproject/abi";
15
- import type { Listener, Provider } from "@ethersproject/providers";
16
- import type {
17
- TypedEventFilter,
18
- TypedEvent,
19
- TypedListener,
20
- OnEvent,
21
- PromiseOrValue,
22
- } from "../../../../../common";
23
-
24
- export interface IFeesFormulaInterface extends utils.Interface {
25
- functions: {
26
- "getTxFees(uint256,address,address)": FunctionFragment;
27
- };
28
-
29
- getFunction(nameOrSignatureOrTopic: "getTxFees"): FunctionFragment;
30
-
31
- encodeFunctionData(
32
- functionFragment: "getTxFees",
33
- values: [
34
- PromiseOrValue<BigNumberish>,
35
- PromiseOrValue<string>,
36
- PromiseOrValue<string>
37
- ]
38
- ): string;
39
-
40
- decodeFunctionResult(functionFragment: "getTxFees", data: BytesLike): Result;
41
-
42
- events: {};
43
- }
44
-
45
- export interface IFeesFormula extends BaseContract {
46
- connect(signerOrProvider: Signer | Provider | string): this;
47
- attach(addressOrName: string): this;
48
- deployed(): Promise<this>;
49
-
50
- interface: IFeesFormulaInterface;
51
-
52
- queryFilter<TEvent extends TypedEvent>(
53
- event: TypedEventFilter<TEvent>,
54
- fromBlockOrBlockhash?: string | number | undefined,
55
- toBlock?: string | number | undefined
56
- ): Promise<Array<TEvent>>;
57
-
58
- listeners<TEvent extends TypedEvent>(
59
- eventFilter?: TypedEventFilter<TEvent>
60
- ): Array<TypedListener<TEvent>>;
61
- listeners(eventName?: string): Array<Listener>;
62
- removeAllListeners<TEvent extends TypedEvent>(
63
- eventFilter: TypedEventFilter<TEvent>
64
- ): this;
65
- removeAllListeners(eventName?: string): this;
66
- off: OnEvent<this>;
67
- on: OnEvent<this>;
68
- once: OnEvent<this>;
69
- removeListener: OnEvent<this>;
70
-
71
- functions: {
72
- getTxFees(
73
- value: PromiseOrValue<BigNumberish>,
74
- sender: PromiseOrValue<string>,
75
- recipient: PromiseOrValue<string>,
76
- overrides?: CallOverrides
77
- ): Promise<[BigNumber, boolean] & { fee: BigNumber; senderPays: boolean }>;
78
- };
79
-
80
- getTxFees(
81
- value: PromiseOrValue<BigNumberish>,
82
- sender: PromiseOrValue<string>,
83
- recipient: PromiseOrValue<string>,
84
- overrides?: CallOverrides
85
- ): Promise<[BigNumber, boolean] & { fee: BigNumber; senderPays: boolean }>;
86
-
87
- callStatic: {
88
- getTxFees(
89
- value: PromiseOrValue<BigNumberish>,
90
- sender: PromiseOrValue<string>,
91
- recipient: PromiseOrValue<string>,
92
- overrides?: CallOverrides
93
- ): Promise<[BigNumber, boolean] & { fee: BigNumber; senderPays: boolean }>;
94
- };
95
-
96
- filters: {};
97
-
98
- estimateGas: {
99
- getTxFees(
100
- value: PromiseOrValue<BigNumberish>,
101
- sender: PromiseOrValue<string>,
102
- recipient: PromiseOrValue<string>,
103
- overrides?: CallOverrides
104
- ): Promise<BigNumber>;
105
- };
106
-
107
- populateTransaction: {
108
- getTxFees(
109
- value: PromiseOrValue<BigNumberish>,
110
- sender: PromiseOrValue<string>,
111
- recipient: PromiseOrValue<string>,
112
- overrides?: CallOverrides
113
- ): Promise<PopulatedTransaction>;
114
- };
115
- }
@@ -1,5 +0,0 @@
1
- /* Autogenerated file. Do not edit manually. */
2
- /* tslint:disable */
3
- /* eslint-disable */
4
- import type * as interfaces from "./interfaces";
5
- export type { interfaces };