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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/artifacts/abis/GenericDistributionHelper.min.json +1 -0
  2. package/artifacts/abis/INonfungiblePositionManager.min.json +1 -0
  3. package/artifacts/abis/IUniswapV3Pool.min.json +1 -0
  4. package/artifacts/abis/UBISchemeV2.min.json +1 -1
  5. package/artifacts/contracts/IUniswapV3.sol/INonfungiblePositionManager.dbg.json +4 -0
  6. package/artifacts/contracts/IUniswapV3.sol/INonfungiblePositionManager.json +102 -0
  7. package/artifacts/contracts/IUniswapV3.sol/IUniswapV3Pool.dbg.json +4 -0
  8. package/artifacts/contracts/IUniswapV3.sol/IUniswapV3Pool.json +93 -0
  9. package/artifacts/contracts/reserve/GenericDistributionHelper.sol/GenericDistributionHelper.dbg.json +4 -0
  10. package/artifacts/contracts/reserve/GenericDistributionHelper.sol/GenericDistributionHelper.json +931 -0
  11. package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.dbg.json +1 -1
  12. package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.json +7 -2
  13. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  14. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.json +2 -2
  15. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  16. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.json +2 -2
  17. package/contracts/IUniswapV3.sol +51 -0
  18. package/contracts/reserve/GenericDistributionHelper.sol +319 -0
  19. package/contracts/ubi/UBISchemeV2.sol +8 -4
  20. package/contracts/utils/ProxyFactory1967.sol +16 -18
  21. package/hardhat.config.ts +14 -6
  22. package/package.json +1 -1
  23. package/releases/deploy-settings.json +15 -2
  24. package/releases/deployment.json +72 -46
  25. package/scripts/multichain-deploy/0_proxyFactory-deploy.ts +4 -3
  26. package/scripts/multichain-deploy/1_basicdao-deploy.ts +18 -9
  27. package/scripts/multichain-deploy/4_ubi-deploy.ts +1 -1
  28. package/scripts/multichain-deploy/8_disthelper-deploy.ts +152 -0
  29. package/scripts/multichain-deploy/createUniswapTestPools.ts +163 -0
  30. package/scripts/multichain-deploy/helpers.ts +76 -6
  31. package/scripts/proposals/gip-25-xdc-upgrade.ts +438 -0
  32. package/test/helpers.ts +1 -1
  33. package/test/ubi/UBISchemeV2.test.ts +35 -108
  34. package/types/@uniswap/index.ts +2 -0
  35. package/types/@uniswap/v2-periphery/contracts/index.ts +5 -0
  36. package/types/@uniswap/v2-periphery/contracts/interfaces/IWETH.ts +159 -0
  37. package/types/@uniswap/v2-periphery/contracts/interfaces/index.ts +4 -0
  38. package/types/@uniswap/v2-periphery/index.ts +5 -0
  39. package/types/contracts/IUniswapV3.sol/INonfungiblePositionManager.ts +151 -0
  40. package/types/contracts/IUniswapV3.sol/IUniswapV3Factory.ts +155 -0
  41. package/types/contracts/IUniswapV3.sol/IUniswapV3Pool.ts +179 -0
  42. package/types/contracts/IUniswapV3.sol/index.ts +5 -0
  43. package/types/contracts/index.ts +2 -0
  44. package/types/contracts/reserve/GenericDistributionHelper copy.sol/GenericDistributionHelper.ts +1247 -0
  45. package/types/contracts/reserve/GenericDistributionHelper copy.sol/index.ts +4 -0
  46. package/types/contracts/reserve/GenericDistributionHelper.ts +1304 -0
  47. package/types/contracts/reserve/index.ts +1 -0
  48. package/types/contracts/ubi/UBISchemeV2.ts +14 -3
  49. package/types/factories/@uniswap/index.ts +1 -0
  50. package/types/factories/@uniswap/v2-periphery/contracts/index.ts +4 -0
  51. package/types/factories/@uniswap/v2-periphery/contracts/interfaces/IWETH__factory.ts +67 -0
  52. package/types/factories/@uniswap/v2-periphery/contracts/interfaces/index.ts +4 -0
  53. package/types/factories/@uniswap/v2-periphery/index.ts +4 -0
  54. package/types/factories/contracts/IUniswapV3.sol/INonfungiblePositionManager__factory.ts +121 -0
  55. package/types/factories/contracts/IUniswapV3.sol/IUniswapV3Factory__factory.ts +84 -0
  56. package/types/factories/contracts/IUniswapV3.sol/IUniswapV3Pool__factory.ts +108 -0
  57. package/types/factories/contracts/IUniswapV3.sol/index.ts +5 -0
  58. package/types/factories/contracts/index.ts +1 -0
  59. package/types/factories/contracts/reserve/GenericDistributionHelper copy.sol/GenericDistributionHelper__factory.ts +935 -0
  60. package/types/factories/contracts/reserve/GenericDistributionHelper copy.sol/index.ts +4 -0
  61. package/types/factories/contracts/reserve/GenericDistributionHelper__factory.ts +987 -0
  62. package/types/factories/contracts/reserve/index.ts +1 -0
  63. package/types/factories/contracts/ubi/UBISchemeV2__factory.ts +6 -1
  64. package/types/factories/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy__factory.ts +1 -1
  65. package/types/factories/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967__factory.ts +1 -1
  66. package/types/hardhat.d.ts +36 -0
  67. package/types/index.ts +8 -0
@@ -6,4 +6,5 @@ export type { goodReserveCDaiSol };
6
6
  export type { CeloDistributionHelper } from "./CeloDistributionHelper";
7
7
  export type { DistributionHelper } from "./DistributionHelper";
8
8
  export type { ExchangeHelper } from "./ExchangeHelper";
9
+ export type { GenericDistributionHelper } from "./GenericDistributionHelper";
9
10
  export type { GoodMarketMaker } from "./GoodMarketMaker";
@@ -47,7 +47,7 @@ export interface UBISchemeV2Interface extends utils.Interface {
47
47
  "getClaimerCount(uint256)": FunctionFragment;
48
48
  "getDailyStats()": FunctionFragment;
49
49
  "hasClaimed(address)": FunctionFragment;
50
- "initialize(address)": FunctionFragment;
50
+ "initialize(address,uint256)": FunctionFragment;
51
51
  "isNotNewUser(address)": FunctionFragment;
52
52
  "lastClaimed(address)": FunctionFragment;
53
53
  "lastWithdrawDay()": FunctionFragment;
@@ -174,7 +174,10 @@ export interface UBISchemeV2Interface extends utils.Interface {
174
174
  values?: undefined
175
175
  ): string;
176
176
  encodeFunctionData(functionFragment: "hasClaimed", values: [string]): string;
177
- encodeFunctionData(functionFragment: "initialize", values: [string]): string;
177
+ encodeFunctionData(
178
+ functionFragment: "initialize",
179
+ values: [string, BigNumberish]
180
+ ): string;
178
181
  encodeFunctionData(
179
182
  functionFragment: "isNotNewUser",
180
183
  values: [string]
@@ -602,6 +605,7 @@ export interface UBISchemeV2 extends BaseContract {
602
605
 
603
606
  initialize(
604
607
  _ns: string,
608
+ _minActiveUsers: BigNumberish,
605
609
  overrides?: Overrides & { from?: string }
606
610
  ): Promise<ContractTransaction>;
607
611
 
@@ -745,6 +749,7 @@ export interface UBISchemeV2 extends BaseContract {
745
749
 
746
750
  initialize(
747
751
  _ns: string,
752
+ _minActiveUsers: BigNumberish,
748
753
  overrides?: Overrides & { from?: string }
749
754
  ): Promise<ContractTransaction>;
750
755
 
@@ -881,7 +886,11 @@ export interface UBISchemeV2 extends BaseContract {
881
886
 
882
887
  hasClaimed(account: string, overrides?: CallOverrides): Promise<boolean>;
883
888
 
884
- initialize(_ns: string, overrides?: CallOverrides): Promise<void>;
889
+ initialize(
890
+ _ns: string,
891
+ _minActiveUsers: BigNumberish,
892
+ overrides?: CallOverrides
893
+ ): Promise<void>;
885
894
 
886
895
  isNotNewUser(_account: string, overrides?: CallOverrides): Promise<boolean>;
887
896
 
@@ -1076,6 +1085,7 @@ export interface UBISchemeV2 extends BaseContract {
1076
1085
 
1077
1086
  initialize(
1078
1087
  _ns: string,
1088
+ _minActiveUsers: BigNumberish,
1079
1089
  overrides?: Overrides & { from?: string }
1080
1090
  ): Promise<BigNumber>;
1081
1091
 
@@ -1218,6 +1228,7 @@ export interface UBISchemeV2 extends BaseContract {
1218
1228
 
1219
1229
  initialize(
1220
1230
  _ns: string,
1231
+ _minActiveUsers: BigNumberish,
1221
1232
  overrides?: Overrides & { from?: string }
1222
1233
  ): Promise<PopulatedTransaction>;
1223
1234
 
@@ -1,4 +1,5 @@
1
1
  /* Autogenerated file. Do not edit manually. */
2
2
  /* tslint:disable */
3
3
  /* eslint-disable */
4
+ export * as v2Periphery from "./v2-periphery";
4
5
  export * as v3Core from "./v3-core";
@@ -0,0 +1,4 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export * as interfaces from "./interfaces";
@@ -0,0 +1,67 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+
5
+ import { Contract, Signer, utils } from "ethers";
6
+ import type { Provider } from "@ethersproject/providers";
7
+ import type {
8
+ IWETH,
9
+ IWETHInterface,
10
+ } from "../../../../../@uniswap/v2-periphery/contracts/interfaces/IWETH";
11
+
12
+ const _abi = [
13
+ {
14
+ inputs: [],
15
+ name: "deposit",
16
+ outputs: [],
17
+ stateMutability: "payable",
18
+ type: "function",
19
+ },
20
+ {
21
+ inputs: [
22
+ {
23
+ internalType: "address",
24
+ name: "to",
25
+ type: "address",
26
+ },
27
+ {
28
+ internalType: "uint256",
29
+ name: "value",
30
+ type: "uint256",
31
+ },
32
+ ],
33
+ name: "transfer",
34
+ outputs: [
35
+ {
36
+ internalType: "bool",
37
+ name: "",
38
+ type: "bool",
39
+ },
40
+ ],
41
+ stateMutability: "nonpayable",
42
+ type: "function",
43
+ },
44
+ {
45
+ inputs: [
46
+ {
47
+ internalType: "uint256",
48
+ name: "",
49
+ type: "uint256",
50
+ },
51
+ ],
52
+ name: "withdraw",
53
+ outputs: [],
54
+ stateMutability: "nonpayable",
55
+ type: "function",
56
+ },
57
+ ] as const;
58
+
59
+ export class IWETH__factory {
60
+ static readonly abi = _abi;
61
+ static createInterface(): IWETHInterface {
62
+ return new utils.Interface(_abi) as IWETHInterface;
63
+ }
64
+ static connect(address: string, signerOrProvider: Signer | Provider): IWETH {
65
+ return new Contract(address, _abi, signerOrProvider) as IWETH;
66
+ }
67
+ }
@@ -0,0 +1,4 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export { IWETH__factory } from "./IWETH__factory";
@@ -0,0 +1,4 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export * as contracts from "./contracts";
@@ -0,0 +1,121 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+
5
+ import { Contract, Signer, utils } from "ethers";
6
+ import type { Provider } from "@ethersproject/providers";
7
+ import type {
8
+ INonfungiblePositionManager,
9
+ INonfungiblePositionManagerInterface,
10
+ } from "../../../contracts/IUniswapV3.sol/INonfungiblePositionManager";
11
+
12
+ const _abi = [
13
+ {
14
+ inputs: [
15
+ {
16
+ components: [
17
+ {
18
+ internalType: "address",
19
+ name: "token0",
20
+ type: "address",
21
+ },
22
+ {
23
+ internalType: "address",
24
+ name: "token1",
25
+ type: "address",
26
+ },
27
+ {
28
+ internalType: "uint24",
29
+ name: "fee",
30
+ type: "uint24",
31
+ },
32
+ {
33
+ internalType: "int24",
34
+ name: "tickLower",
35
+ type: "int24",
36
+ },
37
+ {
38
+ internalType: "int24",
39
+ name: "tickUpper",
40
+ type: "int24",
41
+ },
42
+ {
43
+ internalType: "uint256",
44
+ name: "amount0Desired",
45
+ type: "uint256",
46
+ },
47
+ {
48
+ internalType: "uint256",
49
+ name: "amount1Desired",
50
+ type: "uint256",
51
+ },
52
+ {
53
+ internalType: "uint256",
54
+ name: "amount0Min",
55
+ type: "uint256",
56
+ },
57
+ {
58
+ internalType: "uint256",
59
+ name: "amount1Min",
60
+ type: "uint256",
61
+ },
62
+ {
63
+ internalType: "address",
64
+ name: "recipient",
65
+ type: "address",
66
+ },
67
+ {
68
+ internalType: "uint256",
69
+ name: "deadline",
70
+ type: "uint256",
71
+ },
72
+ ],
73
+ internalType: "struct INonfungiblePositionManager.MintParams",
74
+ name: "params",
75
+ type: "tuple",
76
+ },
77
+ ],
78
+ name: "mint",
79
+ outputs: [
80
+ {
81
+ internalType: "uint256",
82
+ name: "tokenId",
83
+ type: "uint256",
84
+ },
85
+ {
86
+ internalType: "uint128",
87
+ name: "liquidity",
88
+ type: "uint128",
89
+ },
90
+ {
91
+ internalType: "uint256",
92
+ name: "amount0",
93
+ type: "uint256",
94
+ },
95
+ {
96
+ internalType: "uint256",
97
+ name: "amount1",
98
+ type: "uint256",
99
+ },
100
+ ],
101
+ stateMutability: "payable",
102
+ type: "function",
103
+ },
104
+ ] as const;
105
+
106
+ export class INonfungiblePositionManager__factory {
107
+ static readonly abi = _abi;
108
+ static createInterface(): INonfungiblePositionManagerInterface {
109
+ return new utils.Interface(_abi) as INonfungiblePositionManagerInterface;
110
+ }
111
+ static connect(
112
+ address: string,
113
+ signerOrProvider: Signer | Provider
114
+ ): INonfungiblePositionManager {
115
+ return new Contract(
116
+ address,
117
+ _abi,
118
+ signerOrProvider
119
+ ) as INonfungiblePositionManager;
120
+ }
121
+ }
@@ -0,0 +1,84 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+
5
+ import { Contract, Signer, utils } from "ethers";
6
+ import type { Provider } from "@ethersproject/providers";
7
+ import type {
8
+ IUniswapV3Factory,
9
+ IUniswapV3FactoryInterface,
10
+ } from "../../../contracts/IUniswapV3.sol/IUniswapV3Factory";
11
+
12
+ const _abi = [
13
+ {
14
+ inputs: [
15
+ {
16
+ internalType: "address",
17
+ name: "tokenA",
18
+ type: "address",
19
+ },
20
+ {
21
+ internalType: "address",
22
+ name: "tokenB",
23
+ type: "address",
24
+ },
25
+ {
26
+ internalType: "uint24",
27
+ name: "fee",
28
+ type: "uint24",
29
+ },
30
+ ],
31
+ name: "createPool",
32
+ outputs: [
33
+ {
34
+ internalType: "address",
35
+ name: "pool",
36
+ type: "address",
37
+ },
38
+ ],
39
+ stateMutability: "nonpayable",
40
+ type: "function",
41
+ },
42
+ {
43
+ inputs: [
44
+ {
45
+ internalType: "address",
46
+ name: "tokenA",
47
+ type: "address",
48
+ },
49
+ {
50
+ internalType: "address",
51
+ name: "tokenB",
52
+ type: "address",
53
+ },
54
+ {
55
+ internalType: "uint24",
56
+ name: "fee",
57
+ type: "uint24",
58
+ },
59
+ ],
60
+ name: "getPool",
61
+ outputs: [
62
+ {
63
+ internalType: "address",
64
+ name: "pool",
65
+ type: "address",
66
+ },
67
+ ],
68
+ stateMutability: "view",
69
+ type: "function",
70
+ },
71
+ ] as const;
72
+
73
+ export class IUniswapV3Factory__factory {
74
+ static readonly abi = _abi;
75
+ static createInterface(): IUniswapV3FactoryInterface {
76
+ return new utils.Interface(_abi) as IUniswapV3FactoryInterface;
77
+ }
78
+ static connect(
79
+ address: string,
80
+ signerOrProvider: Signer | Provider
81
+ ): IUniswapV3Factory {
82
+ return new Contract(address, _abi, signerOrProvider) as IUniswapV3Factory;
83
+ }
84
+ }
@@ -0,0 +1,108 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+
5
+ import { Contract, Signer, utils } from "ethers";
6
+ import type { Provider } from "@ethersproject/providers";
7
+ import type {
8
+ IUniswapV3Pool,
9
+ IUniswapV3PoolInterface,
10
+ } from "../../../contracts/IUniswapV3.sol/IUniswapV3Pool";
11
+
12
+ const _abi = [
13
+ {
14
+ inputs: [
15
+ {
16
+ internalType: "uint160",
17
+ name: "sqrtPriceX96",
18
+ type: "uint160",
19
+ },
20
+ ],
21
+ name: "initialize",
22
+ outputs: [],
23
+ stateMutability: "nonpayable",
24
+ type: "function",
25
+ },
26
+ {
27
+ inputs: [],
28
+ name: "slot0",
29
+ outputs: [
30
+ {
31
+ internalType: "uint160",
32
+ name: "sqrtPriceX96",
33
+ type: "uint160",
34
+ },
35
+ {
36
+ internalType: "int24",
37
+ name: "tick",
38
+ type: "int24",
39
+ },
40
+ {
41
+ internalType: "uint16",
42
+ name: "observationIndex",
43
+ type: "uint16",
44
+ },
45
+ {
46
+ internalType: "uint16",
47
+ name: "observationCardinality",
48
+ type: "uint16",
49
+ },
50
+ {
51
+ internalType: "uint16",
52
+ name: "observationCardinalityNext",
53
+ type: "uint16",
54
+ },
55
+ {
56
+ internalType: "uint8",
57
+ name: "feeProtocol",
58
+ type: "uint8",
59
+ },
60
+ {
61
+ internalType: "bool",
62
+ name: "unlocked",
63
+ type: "bool",
64
+ },
65
+ ],
66
+ stateMutability: "view",
67
+ type: "function",
68
+ },
69
+ {
70
+ inputs: [],
71
+ name: "token0",
72
+ outputs: [
73
+ {
74
+ internalType: "address",
75
+ name: "",
76
+ type: "address",
77
+ },
78
+ ],
79
+ stateMutability: "view",
80
+ type: "function",
81
+ },
82
+ {
83
+ inputs: [],
84
+ name: "token1",
85
+ outputs: [
86
+ {
87
+ internalType: "address",
88
+ name: "",
89
+ type: "address",
90
+ },
91
+ ],
92
+ stateMutability: "view",
93
+ type: "function",
94
+ },
95
+ ] as const;
96
+
97
+ export class IUniswapV3Pool__factory {
98
+ static readonly abi = _abi;
99
+ static createInterface(): IUniswapV3PoolInterface {
100
+ return new utils.Interface(_abi) as IUniswapV3PoolInterface;
101
+ }
102
+ static connect(
103
+ address: string,
104
+ signerOrProvider: Signer | Provider
105
+ ): IUniswapV3Pool {
106
+ return new Contract(address, _abi, signerOrProvider) as IUniswapV3Pool;
107
+ }
108
+ }
@@ -0,0 +1,5 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export { INonfungiblePositionManager__factory } from "./INonfungiblePositionManager__factory";
5
+ export { IUniswapV3Pool__factory } from "./IUniswapV3Pool__factory";
@@ -3,6 +3,7 @@
3
3
  /* eslint-disable */
4
4
  export * as daoStackInterfacesSol from "./DAOStackInterfaces.sol";
5
5
  export * as iQuoterSol from "./IQuoter.sol";
6
+ export * as iUniswapV3Sol from "./IUniswapV3.sol";
6
7
  export * as interfacesSol from "./Interfaces.sol";
7
8
  export * as mentoInterfacesSol from "./MentoInterfaces.sol";
8
9
  export * as fuseFaucet from "./fuseFaucet";