@superfluid-finance/ethereum-contracts 1.2.3-dev.f94fdbb.0 → 1.3.1-dev.7df8a6a.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.
- package/build/contracts/AccessControl.json +3 -3
- package/build/contracts/AccessControlEnumerable.json +3 -3
- package/build/contracts/Address.json +5 -5
- package/build/contracts/AgreementBase.json +13 -13
- package/build/contracts/AgreementLibrary.json +7 -7
- package/build/contracts/BaseRelayRecipient.json +5 -5
- package/build/contracts/BatchLiquidator.json +179 -179
- package/build/contracts/BatchOperation.json +5 -5
- package/build/contracts/CFAv1Library.json +5 -5
- package/build/contracts/CallUtils.json +7 -7
- package/build/contracts/ClosingOnUpdateFlowTestApp.json +2107 -1917
- package/build/contracts/ConstantFlowAgreementV1.json +8 -8
- package/build/contracts/Context.json +3 -3
- package/build/contracts/ContextDefinitions.json +5 -5
- package/build/contracts/Create2.json +5 -5
- package/build/contracts/CustomSuperTokenBase.json +3 -3
- package/build/contracts/ERC165.json +3 -3
- package/build/contracts/ERC1820Implementer.json +5 -5
- package/build/contracts/ERC1820RegistryCompiled.json +7 -7
- package/build/contracts/ERC20.json +5 -5
- package/build/contracts/ERC20Burnable.json +3 -3
- package/build/contracts/ERC20Pausable.json +3 -3
- package/build/contracts/ERC20PresetMinterPauser.json +5 -5
- package/build/contracts/ERC20WithTokenInfo.json +3 -3
- package/build/contracts/ERC777Helper.json +7 -7
- package/build/contracts/ERC777RecipientDrainingGas.json +839 -839
- package/build/contracts/ERC777RecipientReverting.json +839 -839
- package/build/contracts/EnumerableSet.json +5 -5
- package/build/contracts/EventsEmitter.json +47 -47
- package/build/contracts/ExclusiveInflowTestApp.json +2107 -1917
- package/build/contracts/FixedSizeData.json +213 -213
- package/build/contracts/FlowExchangeTestApp.json +2107 -1917
- package/build/contracts/FlowOperatorDefinitions.json +5 -5
- package/build/contracts/FullUpgradableSuperTokenProxy.json +226 -312
- package/build/contracts/IAccessControl.json +3 -3
- package/build/contracts/IAccessControlEnumerable.json +3 -3
- package/build/contracts/IConstantFlowAgreementV1.json +451 -444
- package/build/contracts/IDAv1Library.json +5 -5
- package/build/contracts/IERC165.json +3 -3
- package/build/contracts/IERC1820Implementer.json +3 -3
- package/build/contracts/IERC1820Registry.json +3 -3
- package/build/contracts/IERC20.json +3 -3
- package/build/contracts/IERC20Metadata.json +3 -3
- package/build/contracts/IERC777.json +3 -3
- package/build/contracts/IERC777Recipient.json +3 -3
- package/build/contracts/IERC777Sender.json +3 -3
- package/build/contracts/IInstantDistributionAgreementV1.json +570 -559
- package/build/contracts/IMaticBridgedNativeSuperToken.json +71 -32
- package/build/contracts/IMaticBridgedNativeSuperTokenCustom.json +3 -3
- package/build/contracts/IMultiSigWallet.json +3 -3
- package/build/contracts/IPureSuperToken.json +71 -32
- package/build/contracts/IPureSuperTokenCustom.json +3 -3
- package/build/contracts/IRelayRecipient.json +3 -3
- package/build/contracts/IResolver.json +3 -3
- package/build/contracts/ISETH.json +71 -32
- package/build/contracts/ISETHCustom.json +3 -3
- package/build/contracts/ISuperAgreement.json +3 -3
- package/build/contracts/ISuperApp.json +179 -173
- package/build/contracts/ISuperToken.json +522 -483
- package/build/contracts/ISuperTokenFactory.json +3 -3
- package/build/contracts/ISuperfluid.json +633 -628
- package/build/contracts/ISuperfluidGovernance.json +134 -133
- package/build/contracts/ISuperfluidToken.json +403 -394
- package/build/contracts/ITOGAv1.json +1211 -1211
- package/build/contracts/ITOGAv2.json +1211 -1211
- package/build/contracts/Initializable.json +3 -3
- package/build/contracts/InstantDistributionAgreementV1.json +10 -10
- package/build/contracts/MaticBridgedNativeSuperTokenProxy.json +194 -194
- package/build/contracts/NonClosableOutflowTestApp.json +2107 -1917
- package/build/contracts/Ownable.json +3 -3
- package/build/contracts/Pausable.json +3 -3
- package/build/contracts/Proxy.json +3 -3
- package/build/contracts/PureSuperToken.json +91 -91
- package/build/contracts/Resolver.json +96 -96
- package/build/contracts/SETHProxy.json +199 -199
- package/build/contracts/SafeCast.json +5 -5
- package/build/contracts/SafeERC20.json +5 -5
- package/build/contracts/SafeMath.json +5 -5
- package/build/contracts/SelfDeletingFlowTestApp.json +2107 -1917
- package/build/contracts/SlotsBitmapLibrary.json +7 -7
- package/build/contracts/Strings.json +5 -5
- package/build/contracts/SuperAppBase.json +3 -3
- package/build/contracts/SuperAppDefinitions.json +5 -5
- package/build/contracts/SuperToken.json +2262 -2262
- package/build/contracts/SuperTokenFactory.json +582 -582
- package/build/contracts/SuperTokenFactoryBase.json +576 -576
- package/build/contracts/SuperTokenFactoryHelper.json +578 -578
- package/build/contracts/SuperUpgrader.json +687 -687
- package/build/contracts/Superfluid.json +6648 -6678
- package/build/contracts/SuperfluidFrameworkDeployer.json +526 -526
- package/build/contracts/SuperfluidGovernanceBase.json +13 -13
- package/build/contracts/SuperfluidGovernanceConfigs.json +5 -5
- package/build/contracts/SuperfluidGovernanceII.json +21 -21
- package/build/contracts/SuperfluidGovernanceIIProxy.json +20 -20
- package/build/contracts/SuperfluidLoader.json +147 -147
- package/build/contracts/SuperfluidToken.json +1269 -1269
- package/build/contracts/TOGA.json +1221 -1221
- package/build/contracts/TestGovernance.json +315 -315
- package/build/contracts/TestToken.json +475 -561
- package/build/contracts/TokenCustodian.json +220 -220
- package/build/contracts/TokenInfo.json +3 -3
- package/build/contracts/UUPSProxiable.json +136 -136
- package/build/contracts/UUPSProxy.json +87 -87
- package/build/contracts/UUPSUtils.json +43 -43
- package/build/contracts-sizes.txt +6 -6
- package/contracts/agreements/AgreementBase.sol +1 -1
- package/contracts/agreements/AgreementLibrary.sol +1 -1
- package/contracts/agreements/ConstantFlowAgreementV1.sol +1 -1
- package/contracts/agreements/InstantDistributionAgreementV1.sol +1 -1
- package/contracts/gov/SuperfluidGovernanceBase.sol +1 -1
- package/contracts/gov/SuperfluidGovernanceII.sol +1 -1
- package/contracts/interfaces/agreements/IConstantFlowAgreementV1.sol +7 -10
- package/contracts/interfaces/agreements/IInstantDistributionAgreementV1.sol +11 -18
- package/contracts/interfaces/superfluid/ISuperApp.sol +7 -9
- package/contracts/interfaces/superfluid/ISuperToken.sol +36 -44
- package/contracts/interfaces/superfluid/ISuperfluid.sol +17 -21
- package/contracts/interfaces/superfluid/ISuperfluidGovernance.sol +1 -1
- package/contracts/interfaces/superfluid/ISuperfluidToken.sol +13 -14
- package/contracts/libs/BaseRelayRecipient.sol +1 -1
- package/contracts/libs/CallUtils.sol +1 -1
- package/contracts/libs/ERC1820RegistryCompiled.sol +1 -1
- package/contracts/libs/ERC777Helper.sol +1 -1
- package/contracts/libs/EventsEmitter.sol +2 -2
- package/contracts/libs/FixedSizeData.sol +2 -2
- package/contracts/libs/SlotsBitmapLibrary.sol +1 -1
- package/contracts/mocks/AgreementMock.sol +1 -1
- package/contracts/mocks/CFAAppMocks.sol +6 -6
- package/contracts/mocks/CFALibraryMock.sol +2 -2
- package/contracts/mocks/CallUtilsMock.sol +1 -1
- package/contracts/mocks/CallUtilsTester.sol +1 -1
- package/contracts/mocks/CustomSuperTokenMock.sol +1 -1
- package/contracts/mocks/ERC777SenderRecipientMock.sol +1 -1
- package/contracts/mocks/FakeSuperfluidMock.sol +1 -1
- package/contracts/mocks/ForwarderMock.sol +1 -1
- package/contracts/mocks/IDASuperAppTester.sol +2 -2
- package/contracts/mocks/IDAv1LibraryMock.sol +3 -3
- package/contracts/mocks/MockSmartWallet.sol +1 -1
- package/contracts/mocks/MultiFlowTesterApp.sol +2 -2
- package/contracts/mocks/SuperAppMocks.sol +15 -12
- package/contracts/mocks/SuperTokenFactoryMock.sol +1 -1
- package/contracts/mocks/SuperTokenMock.sol +1 -1
- package/contracts/mocks/SuperfluidDestructorMock.sol +1 -1
- package/contracts/mocks/SuperfluidGovernanceIIMock.sol +1 -1
- package/contracts/mocks/SuperfluidMock.sol +2 -2
- package/contracts/mocks/UUPSProxiableMock.sol +1 -1
- package/contracts/superfluid/FullUpgradableSuperTokenProxy.sol +2 -2
- package/contracts/superfluid/SuperToken.sol +1 -1
- package/contracts/superfluid/SuperTokenFactory.sol +1 -1
- package/contracts/superfluid/Superfluid.sol +4 -4
- package/contracts/superfluid/SuperfluidToken.sol +1 -1
- package/contracts/tokens/MaticBridgedNativeSuperToken.sol +1 -1
- package/contracts/tokens/PureSuperToken.sol +1 -1
- package/contracts/tokens/SETH.sol +1 -1
- package/contracts/upgradability/UUPSProxiable.sol +1 -1
- package/contracts/upgradability/UUPSProxy.sol +1 -1
- package/contracts/upgradability/UUPSUtils.sol +1 -1
- package/contracts/utils/BatchLiquidator.sol +1 -1
- package/contracts/utils/Resolver.sol +1 -1
- package/contracts/utils/SuperUpgrader.sol +6 -6
- package/contracts/utils/SuperfluidLoader.sol +1 -1
- package/contracts/utils/TOGA.sol +1 -1
- package/contracts/utils/TestGovernance.sol +2 -2
- package/contracts/utils/TestToken.sol +2 -2
- package/contracts/utils/TokenCustodian.sol +1 -1
- package/package.json +5 -3
- package/scripts/deploy-framework.js +5 -5
- package/scripts/deploy-super-token.js +13 -4
- package/scripts/gov-create-new-app-registration-key.js +2 -1
- package/scripts/gov-create-new-factory-registration.js +1 -1
- package/scripts/libs/getConfig.js +21 -3
- package/scripts/resolver-list-super-token.js +1 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: AGPLv3
|
|
2
|
-
pragma solidity 0.8.
|
|
2
|
+
pragma solidity 0.8.14;
|
|
3
3
|
|
|
4
4
|
import {
|
|
5
5
|
ISuperfluid,
|
|
@@ -26,7 +26,7 @@ contract IDASuperAppTester is ISuperApp {
|
|
|
26
26
|
uint32 indexId)
|
|
27
27
|
{
|
|
28
28
|
_host = host;
|
|
29
|
-
_host.
|
|
29
|
+
_host.registerAppWithKey(configWord, "");
|
|
30
30
|
_ida = ida;
|
|
31
31
|
_token = token;
|
|
32
32
|
_indexId = indexId;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: AGPLv3
|
|
2
|
-
pragma solidity 0.8.
|
|
2
|
+
pragma solidity 0.8.14;
|
|
3
3
|
pragma experimental ABIEncoderV2;
|
|
4
4
|
|
|
5
5
|
import {ISuperfluid, ISuperfluidToken, ISuperToken} from "../interfaces/superfluid/ISuperfluid.sol";
|
|
@@ -157,7 +157,7 @@ contract IDAv1LibraryMock {
|
|
|
157
157
|
/**************************************************************************
|
|
158
158
|
* Subscription Operations
|
|
159
159
|
*************************************************************************/
|
|
160
|
-
|
|
160
|
+
|
|
161
161
|
function approveSubscriptionTest(
|
|
162
162
|
ISuperfluidToken token,
|
|
163
163
|
address publisher,
|
|
@@ -265,7 +265,7 @@ contract IDAv1LibrarySuperAppMock is IDAv1LibraryMock, SuperAppBase {
|
|
|
265
265
|
SuperAppDefinitions.BEFORE_AGREEMENT_TERMINATED_NOOP |
|
|
266
266
|
SuperAppDefinitions.AFTER_AGREEMENT_TERMINATED_NOOP;
|
|
267
267
|
|
|
268
|
-
host.
|
|
268
|
+
host.registerAppWithKey(configWord, "");
|
|
269
269
|
}
|
|
270
270
|
|
|
271
271
|
function afterAgreementCreated(
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: AGPLv3
|
|
2
|
-
pragma solidity 0.8.
|
|
2
|
+
pragma solidity 0.8.14;
|
|
3
3
|
|
|
4
4
|
import {
|
|
5
5
|
ISuperfluid,
|
|
@@ -41,7 +41,7 @@ contract MultiFlowTesterApp is SuperAppBase {
|
|
|
41
41
|
SuperAppDefinitions.BEFORE_AGREEMENT_CREATED_NOOP |
|
|
42
42
|
SuperAppDefinitions.BEFORE_AGREEMENT_TERMINATED_NOOP;
|
|
43
43
|
|
|
44
|
-
_host.
|
|
44
|
+
_host.registerAppWithKey(configWord, "");
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
function _parseUserData(
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: AGPLv3
|
|
2
|
-
pragma solidity 0.8.
|
|
2
|
+
pragma solidity 0.8.14;
|
|
3
3
|
|
|
4
4
|
import {
|
|
5
5
|
ISuperfluid,
|
|
@@ -51,9 +51,9 @@ contract SuperAppMock is ISuperApp {
|
|
|
51
51
|
|
|
52
52
|
constructor(ISuperfluid host, uint256 configWord, bool doubleRegistration) {
|
|
53
53
|
_host = host;
|
|
54
|
-
_host.
|
|
54
|
+
_host.registerAppWithKey(configWord, "");
|
|
55
55
|
if (doubleRegistration) {
|
|
56
|
-
_host.
|
|
56
|
+
_host.registerAppWithKey(configWord, "");
|
|
57
57
|
}
|
|
58
58
|
_aux = new SuperAppMockAux();
|
|
59
59
|
}
|
|
@@ -461,7 +461,7 @@ contract SuperAppMockReturningEmptyCtx {
|
|
|
461
461
|
|
|
462
462
|
constructor(ISuperfluid host) {
|
|
463
463
|
_host = host;
|
|
464
|
-
_host.
|
|
464
|
+
_host.registerAppWithKey(SuperAppDefinitions.APP_LEVEL_FINAL, "");
|
|
465
465
|
}
|
|
466
466
|
|
|
467
467
|
function beforeAgreementCreated(
|
|
@@ -522,7 +522,7 @@ contract SuperAppMockReturningInvalidCtx {
|
|
|
522
522
|
|
|
523
523
|
constructor(ISuperfluid host) {
|
|
524
524
|
_host = host;
|
|
525
|
-
_host.
|
|
525
|
+
_host.registerAppWithKey(SuperAppDefinitions.APP_LEVEL_FINAL, "");
|
|
526
526
|
}
|
|
527
527
|
|
|
528
528
|
function afterAgreementCreated(
|
|
@@ -563,7 +563,7 @@ contract SuperAppMock2ndLevel {
|
|
|
563
563
|
|
|
564
564
|
constructor(ISuperfluid host, SuperAppMock app, AgreementMock agreement) {
|
|
565
565
|
_host = host;
|
|
566
|
-
_host.
|
|
566
|
+
_host.registerAppWithKey(SuperAppDefinitions.APP_LEVEL_SECOND, "");
|
|
567
567
|
_app = app;
|
|
568
568
|
_agreement = agreement;
|
|
569
569
|
}
|
|
@@ -597,14 +597,17 @@ contract SuperAppMock2ndLevel {
|
|
|
597
597
|
}
|
|
598
598
|
}
|
|
599
599
|
|
|
600
|
-
//
|
|
600
|
+
// An Super App that uses registerAppWithKey
|
|
601
601
|
contract SuperAppMockWithRegistrationkey {
|
|
602
|
-
|
|
603
|
-
ISuperfluid private _host;
|
|
604
|
-
|
|
605
602
|
constructor(ISuperfluid host, uint256 configWord, string memory registrationKey) {
|
|
606
|
-
|
|
607
|
-
|
|
603
|
+
host.registerAppWithKey(configWord, registrationKey);
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
// An Super App that uses registerAppWithKey
|
|
608
|
+
contract SuperAppMockUsingDeprecatedRegisterApp {
|
|
609
|
+
constructor(ISuperfluid host, uint256 configWord) {
|
|
610
|
+
host.registerApp(configWord);
|
|
608
611
|
}
|
|
609
612
|
}
|
|
610
613
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: AGPLv3
|
|
2
|
-
pragma solidity 0.8.
|
|
2
|
+
pragma solidity 0.8.14;
|
|
3
3
|
|
|
4
4
|
import {
|
|
5
5
|
Superfluid,
|
|
@@ -171,7 +171,7 @@ contract SuperfluidMock is Superfluid {
|
|
|
171
171
|
function jailApp(ISuperApp app)
|
|
172
172
|
external
|
|
173
173
|
{
|
|
174
|
-
_jailApp(app,
|
|
174
|
+
_jailApp(app, 6942);
|
|
175
175
|
}
|
|
176
176
|
|
|
177
177
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: AGPLv3
|
|
2
|
-
pragma solidity 0.8.
|
|
2
|
+
pragma solidity 0.8.14;
|
|
3
3
|
|
|
4
4
|
import { ISuperTokenFactory } from "../interfaces/superfluid/ISuperTokenFactory.sol";
|
|
5
5
|
import { Proxy } from "@openzeppelin/contracts/proxy/Proxy.sol";
|
|
@@ -32,7 +32,7 @@ contract FullUpgradableSuperTokenProxy is Proxy {
|
|
|
32
32
|
assembly { // solium-disable-line
|
|
33
33
|
factory := sload(_FACTORY_SLOT)
|
|
34
34
|
}
|
|
35
|
-
|
|
35
|
+
assert(address(factory) != address(0));
|
|
36
36
|
return address(factory.getSuperTokenLogic());
|
|
37
37
|
}
|
|
38
38
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: AGPLv3
|
|
2
|
-
pragma solidity 0.8.
|
|
2
|
+
pragma solidity 0.8.14;
|
|
3
3
|
|
|
4
4
|
import { SafeCast } from "@openzeppelin/contracts/utils/math/SafeCast.sol";
|
|
5
5
|
|
|
@@ -255,7 +255,7 @@ contract Superfluid is
|
|
|
255
255
|
external view override
|
|
256
256
|
returns (address logic)
|
|
257
257
|
{
|
|
258
|
-
|
|
258
|
+
assert(address(_superTokenFactory) != address(0));
|
|
259
259
|
if (NON_UPGRADABLE_DEPLOYMENT) return address(_superTokenFactory);
|
|
260
260
|
else return UUPSProxiable(address(_superTokenFactory)).getCodeAddress();
|
|
261
261
|
}
|
|
@@ -1076,9 +1076,9 @@ contract Superfluid is
|
|
|
1076
1076
|
if (actionSelector == ISuperApp.beforeAgreementCreated.selector ||
|
|
1077
1077
|
actionSelector == ISuperApp.afterAgreementCreated.selector ||
|
|
1078
1078
|
actionSelector == ISuperApp.beforeAgreementUpdated.selector ||
|
|
1079
|
-
actionSelector == ISuperApp.
|
|
1079
|
+
actionSelector == ISuperApp.afterAgreementUpdated.selector ||
|
|
1080
1080
|
actionSelector == ISuperApp.beforeAgreementTerminated.selector ||
|
|
1081
|
-
actionSelector == ISuperApp.
|
|
1081
|
+
actionSelector == ISuperApp.afterAgreementTerminated.selector) {
|
|
1082
1082
|
revert("SF: agreement callback is not action");
|
|
1083
1083
|
}
|
|
1084
1084
|
_;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: AGPLv3
|
|
2
|
-
pragma solidity 0.8.
|
|
2
|
+
pragma solidity 0.8.14;
|
|
3
3
|
|
|
4
4
|
import { ISuperfluid, ISuperAgreement, ISuperToken } from "../interfaces/superfluid/ISuperfluid.sol";
|
|
5
5
|
import { IConstantFlowAgreementV1 } from "../interfaces/agreements/IConstantFlowAgreementV1.sol";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: AGPLv3
|
|
2
|
-
pragma solidity 0.8.
|
|
2
|
+
pragma solidity 0.8.14;
|
|
3
3
|
|
|
4
4
|
import "@openzeppelin/contracts/access/AccessControlEnumerable.sol";
|
|
5
5
|
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
@@ -39,7 +39,7 @@ contract SuperUpgrader is AccessControlEnumerable {
|
|
|
39
39
|
/**
|
|
40
40
|
* @notice The user should ERC20.approve this contract.
|
|
41
41
|
* @dev Execute upgrade function in the name of the user
|
|
42
|
-
* @param superTokenAddr Super Token Address to upgrade
|
|
42
|
+
* @param superTokenAddr Super Token Address to upgrade
|
|
43
43
|
* @param account User address that previous approved this contract.
|
|
44
44
|
* @param amount Amount value to be upgraded.
|
|
45
45
|
*/
|
|
@@ -50,7 +50,7 @@ contract SuperUpgrader is AccessControlEnumerable {
|
|
|
50
50
|
)
|
|
51
51
|
external
|
|
52
52
|
{
|
|
53
|
-
require(msg.sender == account ||
|
|
53
|
+
require(msg.sender == account ||
|
|
54
54
|
(hasRole(BACKEND_ROLE, msg.sender) &&
|
|
55
55
|
!_optout[account])
|
|
56
56
|
, "operation not allowed");
|
|
@@ -69,14 +69,14 @@ contract SuperUpgrader is AccessControlEnumerable {
|
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
/**
|
|
72
|
-
* @dev Test if account is member BACKEND_ROLE
|
|
72
|
+
* @dev Test if account is member BACKEND_ROLE
|
|
73
73
|
*/
|
|
74
74
|
function isBackendAgent(address account) external view returns(bool yes) {
|
|
75
75
|
return hasRole(BACKEND_ROLE, account);
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
/**
|
|
79
|
-
* @dev Add account to BACKEND_ROLE
|
|
79
|
+
* @dev Add account to BACKEND_ROLE
|
|
80
80
|
*/
|
|
81
81
|
function grantBackendAgent(address account) external {
|
|
82
82
|
require(account != address(0), "operation not allowed");
|
|
@@ -85,7 +85,7 @@ contract SuperUpgrader is AccessControlEnumerable {
|
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
/**
|
|
88
|
-
* @dev Remove account to BACKEND_ROLE
|
|
88
|
+
* @dev Remove account to BACKEND_ROLE
|
|
89
89
|
*/
|
|
90
90
|
function revokeBackendAgent(address account) external {
|
|
91
91
|
// grantRole will check if sender is adminRole member
|
package/contracts/utils/TOGA.sol
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: AGPLv3
|
|
2
|
-
pragma solidity 0.8.
|
|
2
|
+
pragma solidity 0.8.14;
|
|
3
3
|
|
|
4
4
|
import {
|
|
5
5
|
ISuperfluid,
|
|
@@ -12,7 +12,7 @@ import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";
|
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* @title Test governance contract
|
|
15
|
-
* @author Superfluid
|
|
15
|
+
* @author Superfluid
|
|
16
16
|
* @dev A initializable version of the governance for testing purpose
|
|
17
17
|
*/
|
|
18
18
|
contract TestGovernance is
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: AGPLv3
|
|
2
|
-
pragma solidity 0.8.
|
|
2
|
+
pragma solidity 0.8.14;
|
|
3
3
|
|
|
4
4
|
import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
|
|
5
5
|
|
|
@@ -23,7 +23,7 @@ contract TestToken is ERC20 {
|
|
|
23
23
|
* @dev See {ERC20-_mint}.
|
|
24
24
|
*/
|
|
25
25
|
function mint(address account, uint256 amount) public returns (bool) {
|
|
26
|
-
|
|
26
|
+
assert(amount <= MINT_LIMIT); // no revert msg for you, bad boy
|
|
27
27
|
ERC20._mint(account, amount);
|
|
28
28
|
return true;
|
|
29
29
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@superfluid-finance/ethereum-contracts",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.1-dev.7df8a6a.0",
|
|
4
4
|
"description": " Ethereum contracts implementation for the Superfluid Protocol",
|
|
5
5
|
"homepage": "https://github.com/superfluid-finance/protocol-monorepo/tree/dev/packages/ethereum-contracts#readme",
|
|
6
6
|
"repository": {
|
|
@@ -51,12 +51,13 @@
|
|
|
51
51
|
"pre-commit": "if [ ! -z \"$(git status -s .)\" ];then run-s pre-commit:*;else true;fi",
|
|
52
52
|
"pre-commit:lint": "yarn lint",
|
|
53
53
|
"check-updates": "ncu --target minor --dep prod,dev",
|
|
54
|
-
"cloc": "bash tasks/cloc.sh"
|
|
54
|
+
"cloc": "bash tasks/cloc.sh",
|
|
55
|
+
"docgen": "rm -rf docs/api; hardhat docgen"
|
|
55
56
|
},
|
|
56
57
|
"dependencies": {
|
|
57
58
|
"@decentral.ee/web3-helpers": "0.5.3",
|
|
58
59
|
"@openzeppelin/contracts": "4.5.0",
|
|
59
|
-
"@superfluid-finance/js-sdk": "^0.6.2-dev.
|
|
60
|
+
"@superfluid-finance/js-sdk": "^0.6.2-dev.7df8a6a.0",
|
|
60
61
|
"@truffle/contract": "4.5.5",
|
|
61
62
|
"ethereumjs-tx": "2.1.2",
|
|
62
63
|
"ethereumjs-util": "7.1.4",
|
|
@@ -72,6 +73,7 @@
|
|
|
72
73
|
"readline": "1.3.0",
|
|
73
74
|
"solhint": "3.3.7",
|
|
74
75
|
"solidity-coverage": "0.7.20",
|
|
76
|
+
"solidity-docgen": "^0.6.0-beta.10",
|
|
75
77
|
"truffle-flattener": "^1.6.0",
|
|
76
78
|
"truffle-plugin-verify": "^0.5.25"
|
|
77
79
|
}
|
|
@@ -78,14 +78,14 @@ async function deployContractIfCodeChanged(
|
|
|
78
78
|
* @param {boolean} options.isTruffle Whether the script is used within native truffle framework
|
|
79
79
|
* @param {Web3} options.web3 Injected web3 instance
|
|
80
80
|
* @param {Address} options.from Address to deploy contracts from
|
|
81
|
-
* @param {boolean} options.newTestResolver Force to create a new resolver (
|
|
82
|
-
* @param {boolean} options.useMocks Use mock contracts instead (
|
|
81
|
+
* @param {boolean} options.newTestResolver Force to create a new resolver (overriding env: CREATE_NEW_RESOLVER)
|
|
82
|
+
* @param {boolean} options.useMocks Use mock contracts instead (overriding env: USE_MOCKS)
|
|
83
83
|
* @param {boolean} options.nonUpgradable Deploy contracts configured to be non-upgradable
|
|
84
|
-
* (
|
|
84
|
+
* (overriding env: NON_UPGRADABLE)
|
|
85
85
|
* @param {boolean} options.appWhiteListing Deploy contracts configured to require app white listing
|
|
86
|
-
* (
|
|
86
|
+
* (overriding env: ENABLE_APP_WHITELISTING)
|
|
87
87
|
* @param {boolean} options.resetSuperfluidFramework Reset the superfluid framework deployment
|
|
88
|
-
* (
|
|
88
|
+
* (overriding env: RESET_SUPERFLUID_FRAMEWORK)
|
|
89
89
|
* @param {boolean} options.protocolReleaseVersion Specify the protocol release version to be used
|
|
90
90
|
* (overriding env: RELEASE_VERSION)
|
|
91
91
|
*
|
|
@@ -19,8 +19,10 @@ const {
|
|
|
19
19
|
* Usage: npx truffle exec scripts/deploy-super-token.js : {UNDERLYING_TOKEN_SYMBOL_OR_ADDRESS}
|
|
20
20
|
*
|
|
21
21
|
* NOTE:
|
|
22
|
-
* - If the `UNDERLYING_TOKEN_SYMBOL_OR_ADDRESS` is the ZERO_ADDRESS or the native token symbol
|
|
22
|
+
* - If the `UNDERLYING_TOKEN_SYMBOL_OR_ADDRESS` is the ZERO_ADDRESS or the (known) native token symbol
|
|
23
23
|
* of the network, then the SETH contract will be deployed.
|
|
24
|
+
* If the name of the network's native token isn't known by the framework, it can be provided
|
|
25
|
+
* via ENV var NATIVE_TOKEN_SYMBOL.
|
|
24
26
|
* - Otherwise an ERC20 super token wrapper will be created for the underlying ERC20 token specified in
|
|
25
27
|
* UNDERLYING_TOKEN_SYMBOL_OR_ADDRESS. This underlying token needs to already be registered in the resolver.
|
|
26
28
|
* - A resolver entry `supertokens.${protocolReleaseVersion}.${UNDERLYING_TOKEN_SYMBOL}x` will be created
|
|
@@ -80,7 +82,14 @@ module.exports = eval(`(${S.toString()})()`)(async function (
|
|
|
80
82
|
tokenSymbolOrAddress === sf.config.nativeTokenSymbol
|
|
81
83
|
) {
|
|
82
84
|
// deploy wrapper for the native token
|
|
83
|
-
tokenSymbol =
|
|
85
|
+
tokenSymbol =
|
|
86
|
+
sf.config.nativeTokenSymbol || process.env.NATIVE_TOKEN_SYMBOL;
|
|
87
|
+
if (tokenSymbol === undefined) {
|
|
88
|
+
throw new Error(
|
|
89
|
+
"Native token symbol unknown. You can set it with ENV var NATIVE_TOKEN_SYMBOL"
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
|
|
84
93
|
superTokenKey = `supertokens.${protocolReleaseVersion}.${tokenSymbol}x`;
|
|
85
94
|
deploymentFn = async () => {
|
|
86
95
|
console.log("Creating SETH Proxy...");
|
|
@@ -92,8 +101,8 @@ module.exports = eval(`(${S.toString()})()`)(async function (
|
|
|
92
101
|
await seth.initialize(
|
|
93
102
|
ZERO_ADDRESS,
|
|
94
103
|
18,
|
|
95
|
-
`Super ${
|
|
96
|
-
`${
|
|
104
|
+
`Super ${tokenSymbol}`,
|
|
105
|
+
`${tokenSymbol}x`
|
|
97
106
|
);
|
|
98
107
|
return seth;
|
|
99
108
|
};
|
|
@@ -19,7 +19,8 @@ const ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
|
19
19
|
* Note: the key itself doesn't have much meaning, it could be "stolen" from a broadcast tx anyway.
|
|
20
20
|
* But since it's bound to a deployer address, that doesn't really matter.
|
|
21
21
|
*
|
|
22
|
-
* Usage:
|
|
22
|
+
* Usage:
|
|
23
|
+
* npx truffle exec scripts/gov-create-new-app-registration-key.js : {DEPLOYER} {REGISTRATION_KEY} [EXPIRATION_TS]
|
|
23
24
|
* EXPIRATION_TS is a Unix timestamp in seconds for when the key should expire.
|
|
24
25
|
* If not set, we default to 90 days in the future.
|
|
25
26
|
* Hint: you may use https://www.unixtimestamp.com/ to calculate a timestamp
|
|
@@ -14,7 +14,7 @@ const {
|
|
|
14
14
|
* @param {Address} options.from Address to deploy contracts from
|
|
15
15
|
* @param {boolean} options.protocolReleaseVersion Specify the protocol release version to be used
|
|
16
16
|
*
|
|
17
|
-
* Usage: npx truffle exec scripts/create-new-factory-registration.js : {FACTORY_ADDRESS}
|
|
17
|
+
* Usage: npx truffle exec scripts/gov-create-new-factory-registration.js : {FACTORY_ADDRESS}
|
|
18
18
|
*/
|
|
19
19
|
module.exports = eval(`(${S.toString()})({
|
|
20
20
|
doNotPrintColonArgs: true
|
|
@@ -102,12 +102,19 @@ module.exports = function getConfig(chainId) {
|
|
|
102
102
|
// governance default configs
|
|
103
103
|
gov_enableAppWhiteListing: true,
|
|
104
104
|
// misc
|
|
105
|
-
disableTestGovernance: true,
|
|
105
|
+
// disableTestGovernance: true,
|
|
106
106
|
data: {
|
|
107
107
|
initialBlockNumber: 5000000,
|
|
108
108
|
getLogsRange: 5000,
|
|
109
109
|
},
|
|
110
110
|
},
|
|
111
|
+
97: {
|
|
112
|
+
// BSC chapel testnet
|
|
113
|
+
data: {
|
|
114
|
+
initialBlockNumber: 19437500,
|
|
115
|
+
getLogsRange: 10000,
|
|
116
|
+
},
|
|
117
|
+
},
|
|
111
118
|
|
|
112
119
|
//
|
|
113
120
|
// Optimistic Ethereum: https://community.optimism.io/docs/
|
|
@@ -177,7 +184,7 @@ module.exports = function getConfig(chainId) {
|
|
|
177
184
|
// governance default configs
|
|
178
185
|
gov_enableAppWhiteListing: true,
|
|
179
186
|
// misc
|
|
180
|
-
disableTestGovernance: true,
|
|
187
|
+
// disableTestGovernance: true,
|
|
181
188
|
data: {
|
|
182
189
|
initialBlockNumber: 14700000,
|
|
183
190
|
getLogsRange: 50000,
|
|
@@ -202,7 +209,18 @@ module.exports = function getConfig(chainId) {
|
|
|
202
209
|
// governance default configs
|
|
203
210
|
gov_enableAppWhiteListing: true,
|
|
204
211
|
// misc
|
|
205
|
-
disableTestGovernance: true,
|
|
212
|
+
// disableTestGovernance: true,
|
|
213
|
+
data: {
|
|
214
|
+
initialBlockNumber: 13075000,
|
|
215
|
+
getLogsRange: 50000,
|
|
216
|
+
},
|
|
217
|
+
},
|
|
218
|
+
44787: {
|
|
219
|
+
// Celo alfajores testnet
|
|
220
|
+
data: {
|
|
221
|
+
initialBlockNumber: 11519000,
|
|
222
|
+
getLogsRange: 50000,
|
|
223
|
+
},
|
|
206
224
|
},
|
|
207
225
|
};
|
|
208
226
|
|