@superfluid-finance/ethereum-contracts 1.2.1 → 1.2.2-dev.153bcd3.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 (118) hide show
  1. package/build/contracts/AccessControl.json +1 -1
  2. package/build/contracts/AccessControlEnumerable.json +1 -1
  3. package/build/contracts/Address.json +1 -1
  4. package/build/contracts/AgreementBase.json +18 -18
  5. package/build/contracts/AgreementLibrary.json +450 -243
  6. package/build/contracts/BaseRelayRecipient.json +112 -112
  7. package/build/contracts/BatchLiquidator.json +178 -178
  8. package/build/contracts/BatchOperation.json +1138 -1138
  9. package/build/contracts/CFAv1Library.json +2531 -2531
  10. package/build/contracts/CallUtils.json +478 -478
  11. package/build/contracts/ClosingOnUpdateFlowTestApp.json +1521 -1521
  12. package/build/contracts/ConstantFlowAgreementV1.json +19315 -18335
  13. package/build/contracts/Context.json +1 -1
  14. package/build/contracts/ContextDefinitions.json +1138 -1138
  15. package/build/contracts/Create2.json +1 -1
  16. package/build/contracts/CustomSuperTokenBase.json +31 -31
  17. package/build/contracts/ERC165.json +1 -1
  18. package/build/contracts/ERC1820Implementer.json +1 -1
  19. package/build/contracts/ERC20.json +1 -1
  20. package/build/contracts/ERC20Burnable.json +1 -1
  21. package/build/contracts/ERC20Pausable.json +1 -1
  22. package/build/contracts/ERC20PresetMinterPauser.json +1 -1
  23. package/build/contracts/ERC20WithTokenInfo.json +36 -36
  24. package/build/contracts/ERC721.json +1 -1
  25. package/build/contracts/ERC777Helper.json +660 -660
  26. package/build/contracts/ERC777RecipientDrainingGas.json +855 -855
  27. package/build/contracts/ERC777RecipientReverting.json +855 -855
  28. package/build/contracts/EnumerableSet.json +1 -1
  29. package/build/contracts/ExclusiveInflowTestApp.json +1521 -1521
  30. package/build/contracts/FixedSizeData.json +405 -405
  31. package/build/contracts/FlowExchangeTestApp.json +1522 -1522
  32. package/build/contracts/FlowOperatorDefinitions.json +1138 -1138
  33. package/build/contracts/FullUpgradableSuperTokenProxy.json +113 -113
  34. package/build/contracts/IAccessControl.json +1 -1
  35. package/build/contracts/IAccessControlEnumerable.json +1 -1
  36. package/build/contracts/IConstantFlowAgreementV1.json +1036 -1036
  37. package/build/contracts/IDAv1Library.json +4183 -4183
  38. package/build/contracts/IERC165.json +1 -1
  39. package/build/contracts/IERC1820Implementer.json +1 -1
  40. package/build/contracts/IERC1820Registry.json +1 -1
  41. package/build/contracts/IERC20.json +1 -1
  42. package/build/contracts/IERC20Metadata.json +1 -1
  43. package/build/contracts/IERC721.json +1 -1
  44. package/build/contracts/IERC721Metadata.json +1 -1
  45. package/build/contracts/IERC721Receiver.json +1 -1
  46. package/build/contracts/IERC777.json +1 -1
  47. package/build/contracts/IERC777Recipient.json +1 -1
  48. package/build/contracts/IERC777Sender.json +1 -1
  49. package/build/contracts/IInstantDistributionAgreementV1.json +1182 -1182
  50. package/build/contracts/IMaticBridgedNativeSuperToken.json +110 -110
  51. package/build/contracts/IMaticBridgedNativeSuperTokenCustom.json +110 -110
  52. package/build/contracts/IMultiSigWallet.json +45 -45
  53. package/build/contracts/IPureSuperToken.json +69 -69
  54. package/build/contracts/IPureSuperTokenCustom.json +69 -69
  55. package/build/contracts/IRelayRecipient.json +49 -49
  56. package/build/contracts/IResolver.json +73 -73
  57. package/build/contracts/ISETH.json +79 -79
  58. package/build/contracts/ISETHCustom.json +79 -79
  59. package/build/contracts/ISuperAgreement.json +88 -88
  60. package/build/contracts/ISuperApp.json +351 -351
  61. package/build/contracts/ISuperToken.json +1008 -1008
  62. package/build/contracts/ISuperTokenFactory.json +280 -280
  63. package/build/contracts/ISuperfluid.json +1466 -1466
  64. package/build/contracts/ISuperfluidGovernance.json +404 -404
  65. package/build/contracts/ISuperfluidToken.json +774 -774
  66. package/build/contracts/ITOGAv1.json +1431 -1431
  67. package/build/contracts/ITOGAv2.json +1431 -1431
  68. package/build/contracts/Initializable.json +1 -1
  69. package/build/contracts/InstantDistributionAgreementV1.json +9343 -9343
  70. package/build/contracts/Int96SafeMath.json +504 -504
  71. package/build/contracts/MaticBridgedNativeSuperTokenProxy.json +228 -228
  72. package/build/contracts/NonClosableOutflowTestApp.json +1522 -1522
  73. package/build/contracts/Ownable.json +1 -1
  74. package/build/contracts/Pausable.json +1 -1
  75. package/build/contracts/Proxy.json +1 -1
  76. package/build/contracts/PureSuperToken.json +106 -106
  77. package/build/contracts/Resolver.json +98 -98
  78. package/build/contracts/SETHProxy.json +224 -224
  79. package/build/contracts/SafeCast.json +1 -1
  80. package/build/contracts/SafeERC20.json +1 -1
  81. package/build/contracts/SafeMath.json +1 -1
  82. package/build/contracts/SelfDeletingFlowTestApp.json +1521 -1521
  83. package/build/contracts/SlotsBitmapLibrary.json +794 -794
  84. package/build/contracts/Strings.json +1 -1
  85. package/build/contracts/SuperAppBase.json +394 -394
  86. package/build/contracts/SuperAppDefinitions.json +1138 -1138
  87. package/build/contracts/SuperToken.json +2351 -2351
  88. package/build/contracts/SuperTokenFactory.json +731 -731
  89. package/build/contracts/SuperTokenFactoryBase.json +721 -721
  90. package/build/contracts/SuperTokenFactoryHelper.json +724 -724
  91. package/build/contracts/SuperUpgrader.json +437 -437
  92. package/build/contracts/Superfluid.json +9812 -10169
  93. package/build/contracts/SuperfluidFrameworkDeployer.json +535 -535
  94. package/build/contracts/SuperfluidGovernanceBase.json +3471 -3789
  95. package/build/contracts/SuperfluidGovernanceConfigs.json +1138 -1138
  96. package/build/contracts/SuperfluidGovernanceII.json +2097 -2347
  97. package/build/contracts/SuperfluidGovernanceIIProxy.json +214 -214
  98. package/build/contracts/SuperfluidLoader.json +207 -207
  99. package/build/contracts/SuperfluidToken.json +1345 -1345
  100. package/build/contracts/TOGA.json +1448 -1448
  101. package/build/contracts/TestGovernance.json +2195 -2445
  102. package/build/contracts/TestToken.json +94 -94
  103. package/build/contracts/TokenCustodian.json +214 -214
  104. package/build/contracts/TokenInfo.json +58 -58
  105. package/build/contracts/UInt128SafeMath.json +97 -97
  106. package/build/contracts/UUPSProxiable.json +132 -132
  107. package/build/contracts/UUPSProxy.json +81 -81
  108. package/build/contracts/UUPSUtils.json +37 -37
  109. package/build/contracts-sizes.txt +3 -4
  110. package/contracts/agreements/AgreementLibrary.sol +1 -0
  111. package/contracts/agreements/ConstantFlowAgreementV1.sol +71 -35
  112. package/contracts/agreements/InstantDistributionAgreementV1.sol +3 -2
  113. package/contracts/gov/SuperfluidGovernanceBase.sol +9 -26
  114. package/contracts/{agreements → libs}/SlotsBitmapLibrary.sol +1 -3
  115. package/contracts/mocks/SuperfluidMock.sol +2 -2
  116. package/contracts/superfluid/Superfluid.sol +5 -10
  117. package/package.json +3 -2
  118. package/scripts/gov-create-new-app-registration-key.js +26 -3
@@ -6,6 +6,8 @@ const {
6
6
  sendGovernanceAction,
7
7
  } = require("./libs/common");
8
8
 
9
+ const ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";
10
+
9
11
  /**
10
12
  * @dev Create a new super app registration key.
11
13
  * @param {Array} argv Overriding command line arguments
@@ -14,7 +16,13 @@ const {
14
16
  * @param {Address} options.from Address to deploy contracts from
15
17
  * @param {boolean} options.protocolReleaseVersion Specify the protocol release version to be used
16
18
  *
17
- * Usage: npx truffle exec scripts/create-new-app-registration-key.js : {DEPLOYER} {REGISTRATION_KEY}
19
+ * Note: the key itself doesn't have much meaning, it could be "stolen" from a broadcast tx anyway.
20
+ * But since it's bound to a deployer address, that doesn't really matter.
21
+ *
22
+ * Usage: npx truffle exec scripts/create-new-app-registration-key.js : {DEPLOYER} {REGISTRATION_KEY} [EXPIRATION_TS]
23
+ * EXPIRATION_TS is a Unix timestamp in seconds for when the key should expire.
24
+ * If not set, we default to 90 days in the future.
25
+ * Hint: you may use https://www.unixtimestamp.com/ to calculate a timestamp
18
26
  */
19
27
  module.exports = eval(`(${S.toString()})({
20
28
  doNotPrintColonArgs: true
@@ -22,9 +30,20 @@ module.exports = eval(`(${S.toString()})({
22
30
  console.log("======== Creating new app registration key ========");
23
31
  let {protocolReleaseVersion} = options;
24
32
 
25
- if (args.length !== 2) {
33
+ if (args.length > 3 || args.length < 2) {
26
34
  throw new Error("Wrong number of arguments");
27
35
  }
36
+
37
+ let expirationTs = Math.floor(Date.now() / 1000) + 3600 * 24 * 90; // 90 days from now
38
+ if (args.length === 3) {
39
+ const expTsStr = args.pop();
40
+ const parsedExpTs = parseInt(expTsStr);
41
+ if (parsedExpTs.toString() !== expTsStr) {
42
+ throw new Error("EXPIRATON_TS not an integer");
43
+ }
44
+ expirationTs = parsedExpTs;
45
+ console.log("Expiration timestamp", expirationTs);
46
+ }
28
47
  const registrationkey = args.pop();
29
48
  const deployer = args.pop();
30
49
  console.log("Deployer", deployer);
@@ -54,8 +73,12 @@ module.exports = eval(`(${S.toString()})({
54
73
  )
55
74
  );
56
75
  console.log("App key", appKey);
76
+ console.log("Expiration date", new Date(expirationTs * 1000)); // print human readable
57
77
 
78
+ // Note that we are NOT using gov.whiteListNewApp here, because it doesn't support setting
79
+ // an expiration date and will eventually be deprecated.
80
+ // Instead we use the lower level setConfig directly.
58
81
  await sendGovernanceAction(sf, (gov) =>
59
- gov.whiteListNewApp(sf.host.address, appKey)
82
+ gov.setConfig(sf.host.address, ZERO_ADDRESS, appKey, expirationTs)
60
83
  );
61
84
  });