@superfluid-finance/ethereum-contracts 1.2.3-dev.c35a287.0 → 1.2.3-dev.cd892eb.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 (115) 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 +9 -9
  5. package/build/contracts/AgreementLibrary.json +4 -4
  6. package/build/contracts/BaseRelayRecipient.json +1 -1
  7. package/build/contracts/BatchLiquidator.json +165 -165
  8. package/build/contracts/BatchOperation.json +1 -1
  9. package/build/contracts/CFAv1Library.json +4 -4
  10. package/build/contracts/CallUtils.json +1 -1
  11. package/build/contracts/ClosingOnUpdateFlowTestApp.json +4 -4
  12. package/build/contracts/ConstantFlowAgreementV1.json +5 -5
  13. package/build/contracts/Context.json +1 -1
  14. package/build/contracts/ContextDefinitions.json +1 -1
  15. package/build/contracts/Create2.json +1 -1
  16. package/build/contracts/CustomSuperTokenBase.json +2 -2
  17. package/build/contracts/ERC165.json +1 -1
  18. package/build/contracts/ERC1820Implementer.json +1 -1
  19. package/build/contracts/ERC1820RegistryCompiled.json +1 -1
  20. package/build/contracts/ERC20.json +1 -1
  21. package/build/contracts/ERC20Burnable.json +1 -1
  22. package/build/contracts/ERC20Pausable.json +1 -1
  23. package/build/contracts/ERC20PresetMinterPauser.json +1 -1
  24. package/build/contracts/ERC20WithTokenInfo.json +1 -1
  25. package/build/contracts/ERC777Helper.json +1 -1
  26. package/build/contracts/ERC777RecipientDrainingGas.json +4 -4
  27. package/build/contracts/ERC777RecipientReverting.json +4 -4
  28. package/build/contracts/EnumerableSet.json +1 -1
  29. package/build/contracts/ExclusiveInflowTestApp.json +4 -4
  30. package/build/contracts/FixedSizeData.json +1 -1
  31. package/build/contracts/FlowExchangeTestApp.json +4 -4
  32. package/build/contracts/FlowOperatorDefinitions.json +1 -1
  33. package/build/contracts/FullUpgradableSuperTokenProxy.json +4 -4
  34. package/build/contracts/IAccessControl.json +1 -1
  35. package/build/contracts/IAccessControlEnumerable.json +1 -1
  36. package/build/contracts/IConstantFlowAgreementV1.json +1 -1
  37. package/build/contracts/IDAv1Library.json +4 -4
  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/IERC777.json +1 -1
  44. package/build/contracts/IERC777Recipient.json +1 -1
  45. package/build/contracts/IERC777Sender.json +1 -1
  46. package/build/contracts/IInstantDistributionAgreementV1.json +1 -1
  47. package/build/contracts/IMaticBridgedNativeSuperToken.json +2 -2
  48. package/build/contracts/IMaticBridgedNativeSuperTokenCustom.json +2 -2
  49. package/build/contracts/IMultiSigWallet.json +1 -1
  50. package/build/contracts/IPureSuperToken.json +2 -2
  51. package/build/contracts/IPureSuperTokenCustom.json +2 -2
  52. package/build/contracts/IRelayRecipient.json +1 -1
  53. package/build/contracts/IResolver.json +1 -1
  54. package/build/contracts/ISETH.json +2 -2
  55. package/build/contracts/ISETHCustom.json +2 -2
  56. package/build/contracts/ISuperAgreement.json +1 -1
  57. package/build/contracts/ISuperApp.json +2 -2
  58. package/build/contracts/ISuperToken.json +2 -2
  59. package/build/contracts/ISuperTokenFactory.json +2 -2
  60. package/build/contracts/ISuperfluid.json +425 -418
  61. package/build/contracts/ISuperfluidGovernance.json +2 -2
  62. package/build/contracts/ISuperfluidToken.json +1 -1
  63. package/build/contracts/ITOGAv1.json +1208 -1208
  64. package/build/contracts/ITOGAv2.json +1208 -1208
  65. package/build/contracts/Initializable.json +1 -1
  66. package/build/contracts/InstantDistributionAgreementV1.json +5 -5
  67. package/build/contracts/Int96SafeMath.json +1 -1
  68. package/build/contracts/MaticBridgedNativeSuperTokenProxy.json +191 -191
  69. package/build/contracts/NonClosableOutflowTestApp.json +4 -4
  70. package/build/contracts/Ownable.json +1 -1
  71. package/build/contracts/Pausable.json +1 -1
  72. package/build/contracts/Proxy.json +1 -1
  73. package/build/contracts/PureSuperToken.json +88 -88
  74. package/build/contracts/Resolver.json +90 -90
  75. package/build/contracts/SETHProxy.json +196 -196
  76. package/build/contracts/SafeCast.json +1 -1
  77. package/build/contracts/SafeERC20.json +1 -1
  78. package/build/contracts/SafeMath.json +1 -1
  79. package/build/contracts/SelfDeletingFlowTestApp.json +4 -4
  80. package/build/contracts/SlotsBitmapLibrary.json +1 -1
  81. package/build/contracts/Strings.json +1 -1
  82. package/build/contracts/SuperAppBase.json +2 -2
  83. package/build/contracts/SuperAppDefinitions.json +1 -1
  84. package/build/contracts/SuperToken.json +46 -46
  85. package/build/contracts/SuperTokenFactory.json +35 -35
  86. package/build/contracts/SuperTokenFactoryBase.json +33 -33
  87. package/build/contracts/SuperTokenFactoryHelper.json +35 -35
  88. package/build/contracts/SuperUpgrader.json +422 -422
  89. package/build/contracts/Superfluid.json +5488 -5454
  90. package/build/contracts/SuperfluidFrameworkDeployer.json +472 -472
  91. package/build/contracts/SuperfluidGovernanceBase.json +9 -9
  92. package/build/contracts/SuperfluidGovernanceConfigs.json +1 -1
  93. package/build/contracts/SuperfluidGovernanceII.json +17 -17
  94. package/build/contracts/SuperfluidGovernanceIIProxy.json +17 -17
  95. package/build/contracts/SuperfluidLoader.json +144 -144
  96. package/build/contracts/SuperfluidToken.json +1217 -1217
  97. package/build/contracts/TOGA.json +1218 -1218
  98. package/build/contracts/TestGovernance.json +171 -171
  99. package/build/contracts/TestToken.json +94 -94
  100. package/build/contracts/TokenCustodian.json +214 -214
  101. package/build/contracts/TokenInfo.json +1 -1
  102. package/build/contracts/UInt128SafeMath.json +1 -1
  103. package/build/contracts/UUPSProxiable.json +132 -132
  104. package/build/contracts/UUPSProxy.json +81 -81
  105. package/build/contracts/UUPSUtils.json +37 -37
  106. package/build/contracts-sizes.txt +7 -7
  107. package/contracts/interfaces/superfluid/ISuperfluid.sol +14 -6
  108. package/contracts/superfluid/Superfluid.sol +12 -10
  109. package/package.json +2 -2
  110. package/scripts/{deploy-unlisted-native-super-token.js → deploy-unlisted-pure-super-token.js} +4 -4
  111. package/scripts/gov-transfer-framework-ownership.js +3 -3
  112. package/scripts/libs/getConfig.js +3 -3
  113. package/utils/README.md +19 -1
  114. package/utils/stream-closer.html +212 -0
  115. package/utils/supertoken-deployer.html +1 -1
@@ -399,9 +399,9 @@
399
399
  "type": "function"
400
400
  }
401
401
  ],
402
- "metadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"adminRole\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"backendAddr\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OptinAutoUpgrade\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OptoutAutoUpgrade\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BACKEND_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBackendAgents\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantBackendAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isBackendAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"yes\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"optinAutoUpgrades\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"optoutAutoUpgrades\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeBackendAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"superTokenAddr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Superfluid NOTE: - User would need to first SuperToken.approve the `SuperUpgrader` for the job. - Using access control to allow multiple backend agent to upgrade tokens for the users - Risk taken by the user is that the underlying tokens are converted to the Super Tokens by the upgrader agents.\",\"kind\":\"dev\",\"methods\":{\"getBackendAgents()\":{\"details\":\"Get list of all members of BACKEND_ROLE\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantBackendAgent(address)\":{\"details\":\"Add account to BACKEND_ROLE \"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isBackendAgent(address)\":{\"details\":\"Test if account is member BACKEND_ROLE \"},\"optinAutoUpgrades()\":{\"details\":\"User signal that revoke opt-out from backend upgrades\"},\"optoutAutoUpgrades()\":{\"details\":\"User signal that opt-out from backend upgrades\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeBackendAgent(address)\":{\"details\":\"Remove account to BACKEND_ROLE \"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"upgrade(address,address,uint256)\":{\"details\":\"Execute upgrade function in the name of the user\",\"params\":{\"account\":\"User address that previous approved this contract.\",\"amount\":\"Amount value to be upgraded.\",\"superTokenAddr\":\"Super Token Address to upgrade \"}}},\"title\":\"Super upgrader contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"upgrade(address,address,uint256)\":{\"notice\":\"The user should ERC20.approve this contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/utils/SuperUpgrader.sol\":\"SuperUpgrader\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x4a1a0ba12bf1a33f10d9fe226278cf59675c0b929d29e4da99658a079b27fb84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bda1319db846d6d6f92d8a57a9bdee8bde1dc39aa7546165791692c24dd6f30a\",\"dweb:/ipfs/Qma5oZ7DmbdAjd8mpiW7mx896PDtwsQtCQ2hj9Upf7b7JK\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xbbc8ac883ac3c0078ce5ad3e288fbb3ffcc8a30c3a98c0fda0114d64fc44fca2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87a7a5d2f6f63f84598af02b8c50ca2df2631cb8ba2453e8d95fcb17e4be9824\",\"dweb:/ipfs/QmR76hqtAcRqoFj33tmNjcWTLrgNsAaakYwnKZ8zoJtKei\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xc3d946432c0ddbb1f846a0d3985be71299df331b91d06732152117f62f0be2b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4632c341a06ba5c079b51ca5a915efab4e6ab57735b37839b3e8365ff806a43e\",\"dweb:/ipfs/QmTHT3xHYed2wajEoA5qu7ii2BxLpPhQZHwAhtLK5Z7ANK\"]},\"@openzeppelin/contracts/token/ERC777/IERC777.sol\":{\"keccak256\":\"0xe4e0b7e3f0265ffaa565d26acd2d45f2633f19127ed625e5a05a9f201a87a667\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1762b5bc15a009b5f092ccf547b81e0827c8705884f18e0623e497658514a7ed\",\"dweb:/ipfs/QmTtmVQYuynan3j2uVjdjjRJS1mr7LPRgxSZNnfqC7oxkz\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9772845c886f87a3aab315f8d6b68aa599027c20f441b131cd4afaf65b588900\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad2f29a9c17a4f746416c9e254e17671f43c409dbfa6e4d7d76c3e4a83212d31\",\"dweb:/ipfs/QmTqU65L6iu6yqmXKzcNLPioR8etzKPWycpDJCm17ifVdS\"]},\"project:/contracts/interfaces/superfluid/Definitions.sol\":{\"keccak256\":\"0x199095781e4221b6015d859558da09977f79199f38d342ab4899c2cecdf8cec1\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://9fd3a5a8b16d8517e2af10e20390a9af5adbfa4e783e3a7dd89eb4588db98385\",\"dweb:/ipfs/QmPDtGR43DeMMVsHjUh7FYzMGsFKPpGriRkaahFpN5T5d3\"]},\"project:/contracts/interfaces/superfluid/ISuperAgreement.sol\":{\"keccak256\":\"0xc3a6a907245116bcecc70fe4b207454012e8ce4fa190228fb8bbe39e0b1bc5cf\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://83c116bdae48685d20e5a27c942111e685ec1ef6334e7ff6f6d9af66edbd8025\",\"dweb:/ipfs/QmTnVuNTaRFiDmkAmDk7NFYdfQTW1kqgBZiY2exC6k8jDx\"]},\"project:/contracts/interfaces/superfluid/ISuperApp.sol\":{\"keccak256\":\"0x57f4203168992c940eb6b8c7cc75f854cb36a1f9323b3f39ddc5e4fbe819c043\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://888941dfa3e5004f678f215b98a85d1bf54e412317928a78e0a1cff090773d4c\",\"dweb:/ipfs/QmVe838upcAyqpy1d3oQNHJrbRyWCKHL51zWrMKruvLxFG\"]},\"project:/contracts/interfaces/superfluid/ISuperToken.sol\":{\"keccak256\":\"0x3cb0b7216007b942f7611d7b3d983c0df9408fdd4fd6b799c33fc9033e0abf8b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://17901a1fd3635f441671e14ece8ecc6806af20c5eb80cca3b7c6e53a51fef7b6\",\"dweb:/ipfs/QmUXXMfU6nmsyEnufyGEwyZ5M7pzpXNTr6vw32e3JjjoZp\"]},\"project:/contracts/interfaces/superfluid/ISuperTokenFactory.sol\":{\"keccak256\":\"0x68a466c978557e47bd7385b1d7d78f1c8fb07462a870efc5a791008e33a4f535\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://d109879bdb7f022560a792af2ff481df729bf1b4b8e1831b8022f4d12892d41d\",\"dweb:/ipfs/QmRSWqHq8CP5XWgyV4mJpPxMg33s312s2K5ndHRHVqqZ8n\"]},\"project:/contracts/interfaces/superfluid/ISuperfluid.sol\":{\"keccak256\":\"0xc1007d1082050b532947d27973bf996da2b0df9bdf6ed4d4fcaaa3ff2354262c\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://2d22da1d2140b1ed3964ddc62d3a38e9a24a8814c18ffe496f0fbce5afef5ea0\",\"dweb:/ipfs/QmYxVnaU87HSaQktkqCZZBFj3MgphgFsZMrMLXLeZLzrvR\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidGovernance.sol\":{\"keccak256\":\"0x2166f766b7f61f9bb1376b0948efa0d0c0046b93dc301e51ce495203b145189b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://929630e6a15f523b142b2897783b2f7a54532ac5ae578bd17a0b7f25a6ca2bd8\",\"dweb:/ipfs/QmTu9ffH9qbQncJGEc24bmnoCGjifQ7BG47AYR8AzMLfXR\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidToken.sol\":{\"keccak256\":\"0x9189eaba9e856cc4932ea29eeaf4e89a09448dde13860591691ec122856fdc75\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://7d5991b906bba706373f5bfe3c2c8789a7a45360a41eee50574272b393c4ab70\",\"dweb:/ipfs/QmVCXVnYA13vMNxa7rGzNB129sUXiGE1asuHdnEMEPVZsp\"]},\"project:/contracts/interfaces/tokens/ERC20WithTokenInfo.sol\":{\"keccak256\":\"0x66708dae3fcd06e6fc0a46f2959fc2d1e6b9361f28598337339d26af8eb8c0f9\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://77b80718cec21b81ef190c19fb9fbe73913a95c71f7e6715f671bbe8a224dafc\",\"dweb:/ipfs/QmUdsc6DF2Bgih5VZm7sfaECjhGmwE7tAx8pMkzGQgVKQw\"]},\"project:/contracts/interfaces/tokens/TokenInfo.sol\":{\"keccak256\":\"0x70e573644a0ff271c0ccef526809e9d9ab4950ec58755ca84e833cde3b8f3df0\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://aea3709687cc37ba625f4cc882fbdb149a7bf5be5afe2b030203c8719641a77b\",\"dweb:/ipfs/QmVpvfR6ZheE5wNUK9CobaVBgVvEnEPkvjWF9cfwyZr7eQ\"]},\"project:/contracts/utils/SuperUpgrader.sol\":{\"keccak256\":\"0x59d07db3a6a72fbd7ea2cd599f5f14b5692a4e1fbafbd1be8aa018d9f94ea159\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://4286bcd8f6d063a2f3e1a36e0cf3f320722255dd58d7b870ab7693d441c89a01\",\"dweb:/ipfs/QmWxdTspM5ARfz7CQ2AXrNgk6NScu7ePD4sF3u7WDFUc33\"]}},\"version\":1}",
403
- "bytecode": "0x60806040523480156200001157600080fd5b50604051620019a0380380620019a0833981016040819052620000349162000321565b6001600160a01b038216620000855760405162461bcd60e51b815260206004820152601260248201527161646d696e526f6c6520697320656d70747960701b60448201526064015b60405180910390fd5b6200009260008362000189565b60005b8151811015620001805760006001600160a01b0316828281518110620000bf57620000bf6200040a565b60200260200101516001600160a01b0316036200011f5760405162461bcd60e51b815260206004820152601560248201527f6261636b656e642063616e2774206265207a65726f000000000000000000000060448201526064016200007c565b6200016d7f25cf2b509f2a7f322675b2a5322b182f44ad2c03ac941a0af17c9b178f5d5d5f8383815181106200015957620001596200040a565b60200260200101516200018960201b60201c565b620001788162000420565b905062000095565b50505062000448565b62000195828262000199565b5050565b620001b08282620001dc60201b6200085c1760201c565b6000828152600160209081526040909120620001d7918390620008e06200027c821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000195576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002383390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600062000293836001600160a01b0384166200029c565b90505b92915050565b6000818152600183016020526040812054620002e55750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000296565b50600062000296565b80516001600160a01b03811681146200030657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156200033557600080fd5b6200034083620002ee565b602084810151919350906001600160401b03808211156200036057600080fd5b818601915086601f8301126200037557600080fd5b8151818111156200038a576200038a6200030b565b8060051b604051601f19603f83011681018181108582111715620003b257620003b26200030b565b604052918252848201925083810185019189831115620003d157600080fd5b938501935b82851015620003fa57620003ea85620002ee565b84529385019392850192620003d6565b8096505050505050509250929050565b634e487b7160e01b600052603260045260246000fd5b6000600182016200044157634e487b7160e01b600052601160045260246000fd5b5060010190565b61154880620004586000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806361985da7116100a2578063a217fddf11610071578063a217fddf1461023a578063abcac5eb14610242578063ca15c87314610255578063d547741f14610268578063ec3282531461027b57600080fd5b806361985da7146101d45780639010d07c146101e757806391d148541461021257806392c2becc1461022557600080fd5b80632f2ff15d116100de5780632f2ff15d1461019357806336568abe146101a657806344e9d2fb146101b95780635d730c58146101cc57600080fd5b806301ffc9a7146101105780630f01a4a214610138578063248a9ca31461014d5780632a1972981461017e575b600080fd5b61012361011e366004611143565b610283565b60405190151581526020015b60405180910390f35b6101406102ae565b60405161012f919061116d565b61017061015b3660046111ba565b60009081526020819052604090206001015490565b60405190815260200161012f565b61019161018c3660046111e8565b610378565b005b6101916101a1366004611229565b610612565b6101916101b4366004611229565b61063d565b6101236101c7366004611259565b6106bb565b6101916106d5565b6101916101e2366004611259565b610714565b6101fa6101f5366004611276565b61077d565b6040516001600160a01b03909116815260200161012f565b610123610220366004611229565b61079c565b6101706000805160206114f383398151915281565b610170600081565b610191610250366004611259565b6107c5565b6101706102633660046111ba565b6107dd565b610191610276366004611229565b6107f4565b61019161081a565b60006001600160e01b03198216635a05180f60e01b14806102a857506102a8826108f5565b92915050565b606060006102c96000805160206114f38339815191526107dd565b905060008167ffffffffffffffff8111156102e6576102e6611298565b60405190808252806020026020018201604052801561030f578160200160208202803683370190505b50905060005b82811015610371576103356000805160206114f38339815191528261077d565b828281518110610347576103476112ae565b6001600160a01b039092166020928302919091019091015280610369816112da565b915050610315565b5092915050565b336001600160a01b03831614806103c757506103a26000805160206114f38339815191523361079c565b80156103c757506001600160a01b03821660009081526002602052604090205460ff16155b6104105760405162461bcd60e51b81526020600482015260156024820152741bdc195c985d1a5bdb881b9bdd08185b1b1bddd959605a1b60448201526064015b60405180910390fd5b60008390506000816001600160a01b031663ee719bc86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610455573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047991906112f3565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156104c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e79190611310565b90506104fe6001600160a01b03831686308761092a565b6105136001600160a01b03831684600061099b565b6105276001600160a01b038316848661099b565b6040516370a0823160e01b81523060048201526001600160a01b0380851691635b9d09cc91889185918716906370a0823190602401602060405180830381865afa158015610579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059d9190611310565b6105a79190611329565b604080516000815260208101918290526001600160e01b031960e086901b169091526105d892919060248101611398565b600060405180830381600087803b1580156105f257600080fd5b505af1158015610606573d6000803e3d6000fd5b50505050505050505050565b60008281526020819052604090206001015461062e8133610ab0565b6106388383610b14565b505050565b6001600160a01b03811633146106ad5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610407565b6106b78282610b36565b5050565b60006102a86000805160206114f38339815191528361079c565b33600081815260026020526040808220805460ff19169055517fde802370a7a9557e8d50bffe30a1bbd3d327beb1964088485a5465325bc5fb7a9190a2565b6001600160a01b0381166107625760405162461bcd60e51b81526020600482015260156024820152741bdc195c985d1a5bdb881b9bdd08185b1b1bddd959605a1b6044820152606401610407565b61077a6000805160206114f383398151915282610612565b50565b60008281526001602052604081206107959083610b58565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61077a6000805160206114f3833981519152826107f4565b60008181526001602052604081206102a890610b64565b6000828152602081905260409020600101546108108133610ab0565b6106388383610b36565b33600081815260026020526040808220805460ff19166001179055517fd07f586f18c37aa8ec13ebc5523e50304e2aa7711505bfa7242fcb7152eaee259190a2565b610866828261079c565b6106b7576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561089c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610795836001600160a01b038416610b6e565b60006001600160e01b03198216637965db0b60e01b14806102a857506301ffc9a760e01b6001600160e01b03198316146102a8565b6040516001600160a01b03808516602483015283166044820152606481018290526109959085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610bbd565b50505050565b801580610a155750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156109ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a139190611310565b155b610a805760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610407565b6040516001600160a01b03831660248201526044810182905261063890849063095ea7b360e01b9060640161095e565b610aba828261079c565b6106b757610ad2816001600160a01b03166014610c8f565b610add836020610c8f565b604051602001610aee9291906113c8565b60408051601f198184030181529082905262461bcd60e51b82526104079160040161143d565b610b1e828261085c565b600082815260016020526040902061063890826108e0565b610b408282610e2b565b60008281526001602052604090206106389082610e90565b60006107958383610ea5565b60006102a8825490565b6000818152600183016020526040812054610bb5575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556102a8565b5060006102a8565b6000610c12826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610ecf9092919063ffffffff16565b8051909150156106385780806020019051810190610c309190611450565b6106385760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610407565b60606000610c9e836002611472565b610ca9906002611491565b67ffffffffffffffff811115610cc157610cc1611298565b6040519080825280601f01601f191660200182016040528015610ceb576020820181803683370190505b509050600360fc1b81600081518110610d0657610d066112ae565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610d3557610d356112ae565b60200101906001600160f81b031916908160001a9053506000610d59846002611472565b610d64906001611491565b90505b6001811115610ddc576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110610d9857610d986112ae565b1a60f81b828281518110610dae57610dae6112ae565b60200101906001600160f81b031916908160001a90535060049490941c93610dd5816114a9565b9050610d67565b5083156107955760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610407565b610e35828261079c565b156106b7576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610795836001600160a01b038416610ee6565b6000826000018281548110610ebc57610ebc6112ae565b9060005260206000200154905092915050565b6060610ede8484600085610fd9565b949350505050565b60008181526001830160205260408120548015610fcf576000610f0a600183611329565b8554909150600090610f1e90600190611329565b9050818114610f83576000866000018281548110610f3e57610f3e6112ae565b9060005260206000200154905080876000018481548110610f6157610f616112ae565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080610f9457610f946114c0565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506102a8565b60009150506102a8565b60608247101561103a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610407565b6001600160a01b0385163b6110915760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610407565b600080866001600160a01b031685876040516110ad91906114d6565b60006040518083038185875af1925050503d80600081146110ea576040519150601f19603f3d011682016040523d82523d6000602084013e6110ef565b606091505b50915091506110ff82828661110a565b979650505050505050565b60608315611119575081610795565b8251156111295782518084602001fd5b8160405162461bcd60e51b8152600401610407919061143d565b60006020828403121561115557600080fd5b81356001600160e01b03198116811461079557600080fd5b6020808252825182820181905260009190848201906040850190845b818110156111ae5783516001600160a01b031683529284019291840191600101611189565b50909695505050505050565b6000602082840312156111cc57600080fd5b5035919050565b6001600160a01b038116811461077a57600080fd5b6000806000606084860312156111fd57600080fd5b8335611208816111d3565b92506020840135611218816111d3565b929592945050506040919091013590565b6000806040838503121561123c57600080fd5b82359150602083013561124e816111d3565b809150509250929050565b60006020828403121561126b57600080fd5b8135610795816111d3565b6000806040838503121561128957600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016112ec576112ec6112c4565b5060010190565b60006020828403121561130557600080fd5b8151610795816111d3565b60006020828403121561132257600080fd5b5051919050565b60008282101561133b5761133b6112c4565b500390565b60005b8381101561135b578181015183820152602001611343565b838111156109955750506000910152565b60008151808452611384816020860160208601611340565b601f01601f19169290920160200192915050565b60018060a01b03841681528260208201526060604082015260006113bf606083018461136c565b95945050505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611400816017850160208801611340565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611431816028840160208801611340565b01602801949350505050565b602081526000610795602083018461136c565b60006020828403121561146257600080fd5b8151801515811461079557600080fd5b600081600019048311821515161561148c5761148c6112c4565b500290565b600082198211156114a4576114a46112c4565b500190565b6000816114b8576114b86112c4565b506000190190565b634e487b7160e01b600052603160045260246000fd5b600082516114e8818460208701611340565b919091019291505056fe25cf2b509f2a7f322675b2a5322b182f44ad2c03ac941a0af17c9b178f5d5d5fa2646970667358221220b0c6e4eb3278d1163fdca4d6f05a6415e295834badcc02b453553614f598416764736f6c634300080d0033",
404
- "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806361985da7116100a2578063a217fddf11610071578063a217fddf1461023a578063abcac5eb14610242578063ca15c87314610255578063d547741f14610268578063ec3282531461027b57600080fd5b806361985da7146101d45780639010d07c146101e757806391d148541461021257806392c2becc1461022557600080fd5b80632f2ff15d116100de5780632f2ff15d1461019357806336568abe146101a657806344e9d2fb146101b95780635d730c58146101cc57600080fd5b806301ffc9a7146101105780630f01a4a214610138578063248a9ca31461014d5780632a1972981461017e575b600080fd5b61012361011e366004611143565b610283565b60405190151581526020015b60405180910390f35b6101406102ae565b60405161012f919061116d565b61017061015b3660046111ba565b60009081526020819052604090206001015490565b60405190815260200161012f565b61019161018c3660046111e8565b610378565b005b6101916101a1366004611229565b610612565b6101916101b4366004611229565b61063d565b6101236101c7366004611259565b6106bb565b6101916106d5565b6101916101e2366004611259565b610714565b6101fa6101f5366004611276565b61077d565b6040516001600160a01b03909116815260200161012f565b610123610220366004611229565b61079c565b6101706000805160206114f383398151915281565b610170600081565b610191610250366004611259565b6107c5565b6101706102633660046111ba565b6107dd565b610191610276366004611229565b6107f4565b61019161081a565b60006001600160e01b03198216635a05180f60e01b14806102a857506102a8826108f5565b92915050565b606060006102c96000805160206114f38339815191526107dd565b905060008167ffffffffffffffff8111156102e6576102e6611298565b60405190808252806020026020018201604052801561030f578160200160208202803683370190505b50905060005b82811015610371576103356000805160206114f38339815191528261077d565b828281518110610347576103476112ae565b6001600160a01b039092166020928302919091019091015280610369816112da565b915050610315565b5092915050565b336001600160a01b03831614806103c757506103a26000805160206114f38339815191523361079c565b80156103c757506001600160a01b03821660009081526002602052604090205460ff16155b6104105760405162461bcd60e51b81526020600482015260156024820152741bdc195c985d1a5bdb881b9bdd08185b1b1bddd959605a1b60448201526064015b60405180910390fd5b60008390506000816001600160a01b031663ee719bc86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610455573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047991906112f3565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156104c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e79190611310565b90506104fe6001600160a01b03831686308761092a565b6105136001600160a01b03831684600061099b565b6105276001600160a01b038316848661099b565b6040516370a0823160e01b81523060048201526001600160a01b0380851691635b9d09cc91889185918716906370a0823190602401602060405180830381865afa158015610579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059d9190611310565b6105a79190611329565b604080516000815260208101918290526001600160e01b031960e086901b169091526105d892919060248101611398565b600060405180830381600087803b1580156105f257600080fd5b505af1158015610606573d6000803e3d6000fd5b50505050505050505050565b60008281526020819052604090206001015461062e8133610ab0565b6106388383610b14565b505050565b6001600160a01b03811633146106ad5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610407565b6106b78282610b36565b5050565b60006102a86000805160206114f38339815191528361079c565b33600081815260026020526040808220805460ff19169055517fde802370a7a9557e8d50bffe30a1bbd3d327beb1964088485a5465325bc5fb7a9190a2565b6001600160a01b0381166107625760405162461bcd60e51b81526020600482015260156024820152741bdc195c985d1a5bdb881b9bdd08185b1b1bddd959605a1b6044820152606401610407565b61077a6000805160206114f383398151915282610612565b50565b60008281526001602052604081206107959083610b58565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61077a6000805160206114f3833981519152826107f4565b60008181526001602052604081206102a890610b64565b6000828152602081905260409020600101546108108133610ab0565b6106388383610b36565b33600081815260026020526040808220805460ff19166001179055517fd07f586f18c37aa8ec13ebc5523e50304e2aa7711505bfa7242fcb7152eaee259190a2565b610866828261079c565b6106b7576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561089c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610795836001600160a01b038416610b6e565b60006001600160e01b03198216637965db0b60e01b14806102a857506301ffc9a760e01b6001600160e01b03198316146102a8565b6040516001600160a01b03808516602483015283166044820152606481018290526109959085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610bbd565b50505050565b801580610a155750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156109ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a139190611310565b155b610a805760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610407565b6040516001600160a01b03831660248201526044810182905261063890849063095ea7b360e01b9060640161095e565b610aba828261079c565b6106b757610ad2816001600160a01b03166014610c8f565b610add836020610c8f565b604051602001610aee9291906113c8565b60408051601f198184030181529082905262461bcd60e51b82526104079160040161143d565b610b1e828261085c565b600082815260016020526040902061063890826108e0565b610b408282610e2b565b60008281526001602052604090206106389082610e90565b60006107958383610ea5565b60006102a8825490565b6000818152600183016020526040812054610bb5575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556102a8565b5060006102a8565b6000610c12826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610ecf9092919063ffffffff16565b8051909150156106385780806020019051810190610c309190611450565b6106385760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610407565b60606000610c9e836002611472565b610ca9906002611491565b67ffffffffffffffff811115610cc157610cc1611298565b6040519080825280601f01601f191660200182016040528015610ceb576020820181803683370190505b509050600360fc1b81600081518110610d0657610d066112ae565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610d3557610d356112ae565b60200101906001600160f81b031916908160001a9053506000610d59846002611472565b610d64906001611491565b90505b6001811115610ddc576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110610d9857610d986112ae565b1a60f81b828281518110610dae57610dae6112ae565b60200101906001600160f81b031916908160001a90535060049490941c93610dd5816114a9565b9050610d67565b5083156107955760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610407565b610e35828261079c565b156106b7576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610795836001600160a01b038416610ee6565b6000826000018281548110610ebc57610ebc6112ae565b9060005260206000200154905092915050565b6060610ede8484600085610fd9565b949350505050565b60008181526001830160205260408120548015610fcf576000610f0a600183611329565b8554909150600090610f1e90600190611329565b9050818114610f83576000866000018281548110610f3e57610f3e6112ae565b9060005260206000200154905080876000018481548110610f6157610f616112ae565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080610f9457610f946114c0565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506102a8565b60009150506102a8565b60608247101561103a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610407565b6001600160a01b0385163b6110915760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610407565b600080866001600160a01b031685876040516110ad91906114d6565b60006040518083038185875af1925050503d80600081146110ea576040519150601f19603f3d011682016040523d82523d6000602084013e6110ef565b606091505b50915091506110ff82828661110a565b979650505050505050565b60608315611119575081610795565b8251156111295782518084602001fd5b8160405162461bcd60e51b8152600401610407919061143d565b60006020828403121561115557600080fd5b81356001600160e01b03198116811461079557600080fd5b6020808252825182820181905260009190848201906040850190845b818110156111ae5783516001600160a01b031683529284019291840191600101611189565b50909695505050505050565b6000602082840312156111cc57600080fd5b5035919050565b6001600160a01b038116811461077a57600080fd5b6000806000606084860312156111fd57600080fd5b8335611208816111d3565b92506020840135611218816111d3565b929592945050506040919091013590565b6000806040838503121561123c57600080fd5b82359150602083013561124e816111d3565b809150509250929050565b60006020828403121561126b57600080fd5b8135610795816111d3565b6000806040838503121561128957600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016112ec576112ec6112c4565b5060010190565b60006020828403121561130557600080fd5b8151610795816111d3565b60006020828403121561132257600080fd5b5051919050565b60008282101561133b5761133b6112c4565b500390565b60005b8381101561135b578181015183820152602001611343565b838111156109955750506000910152565b60008151808452611384816020860160208601611340565b601f01601f19169290920160200192915050565b60018060a01b03841681528260208201526060604082015260006113bf606083018461136c565b95945050505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611400816017850160208801611340565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611431816028840160208801611340565b01602801949350505050565b602081526000610795602083018461136c565b60006020828403121561146257600080fd5b8151801515811461079557600080fd5b600081600019048311821515161561148c5761148c6112c4565b500290565b600082198211156114a4576114a46112c4565b500190565b6000816114b8576114b86112c4565b506000190190565b634e487b7160e01b600052603160045260246000fd5b600082516114e8818460208701611340565b919091019291505056fe25cf2b509f2a7f322675b2a5322b182f44ad2c03ac941a0af17c9b178f5d5d5fa2646970667358221220b0c6e4eb3278d1163fdca4d6f05a6415e295834badcc02b453553614f598416764736f6c634300080d0033",
402
+ "metadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"adminRole\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"backendAddr\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OptinAutoUpgrade\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OptoutAutoUpgrade\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BACKEND_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBackendAgents\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantBackendAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isBackendAgent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"yes\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"optinAutoUpgrades\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"optoutAutoUpgrades\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeBackendAgent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"superTokenAddr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Superfluid NOTE: - User would need to first SuperToken.approve the `SuperUpgrader` for the job. - Using access control to allow multiple backend agent to upgrade tokens for the users - Risk taken by the user is that the underlying tokens are converted to the Super Tokens by the upgrader agents.\",\"kind\":\"dev\",\"methods\":{\"getBackendAgents()\":{\"details\":\"Get list of all members of BACKEND_ROLE\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantBackendAgent(address)\":{\"details\":\"Add account to BACKEND_ROLE \"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isBackendAgent(address)\":{\"details\":\"Test if account is member BACKEND_ROLE \"},\"optinAutoUpgrades()\":{\"details\":\"User signal that revoke opt-out from backend upgrades\"},\"optoutAutoUpgrades()\":{\"details\":\"User signal that opt-out from backend upgrades\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeBackendAgent(address)\":{\"details\":\"Remove account to BACKEND_ROLE \"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"upgrade(address,address,uint256)\":{\"details\":\"Execute upgrade function in the name of the user\",\"params\":{\"account\":\"User address that previous approved this contract.\",\"amount\":\"Amount value to be upgraded.\",\"superTokenAddr\":\"Super Token Address to upgrade \"}}},\"title\":\"Super upgrader contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"upgrade(address,address,uint256)\":{\"notice\":\"The user should ERC20.approve this contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/utils/SuperUpgrader.sol\":\"SuperUpgrader\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x4a1a0ba12bf1a33f10d9fe226278cf59675c0b929d29e4da99658a079b27fb84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bda1319db846d6d6f92d8a57a9bdee8bde1dc39aa7546165791692c24dd6f30a\",\"dweb:/ipfs/Qma5oZ7DmbdAjd8mpiW7mx896PDtwsQtCQ2hj9Upf7b7JK\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xbbc8ac883ac3c0078ce5ad3e288fbb3ffcc8a30c3a98c0fda0114d64fc44fca2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87a7a5d2f6f63f84598af02b8c50ca2df2631cb8ba2453e8d95fcb17e4be9824\",\"dweb:/ipfs/QmR76hqtAcRqoFj33tmNjcWTLrgNsAaakYwnKZ8zoJtKei\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xc3d946432c0ddbb1f846a0d3985be71299df331b91d06732152117f62f0be2b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4632c341a06ba5c079b51ca5a915efab4e6ab57735b37839b3e8365ff806a43e\",\"dweb:/ipfs/QmTHT3xHYed2wajEoA5qu7ii2BxLpPhQZHwAhtLK5Z7ANK\"]},\"@openzeppelin/contracts/token/ERC777/IERC777.sol\":{\"keccak256\":\"0xe4e0b7e3f0265ffaa565d26acd2d45f2633f19127ed625e5a05a9f201a87a667\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1762b5bc15a009b5f092ccf547b81e0827c8705884f18e0623e497658514a7ed\",\"dweb:/ipfs/QmTtmVQYuynan3j2uVjdjjRJS1mr7LPRgxSZNnfqC7oxkz\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9772845c886f87a3aab315f8d6b68aa599027c20f441b131cd4afaf65b588900\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad2f29a9c17a4f746416c9e254e17671f43c409dbfa6e4d7d76c3e4a83212d31\",\"dweb:/ipfs/QmTqU65L6iu6yqmXKzcNLPioR8etzKPWycpDJCm17ifVdS\"]},\"project:/contracts/interfaces/superfluid/Definitions.sol\":{\"keccak256\":\"0x199095781e4221b6015d859558da09977f79199f38d342ab4899c2cecdf8cec1\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://9fd3a5a8b16d8517e2af10e20390a9af5adbfa4e783e3a7dd89eb4588db98385\",\"dweb:/ipfs/QmPDtGR43DeMMVsHjUh7FYzMGsFKPpGriRkaahFpN5T5d3\"]},\"project:/contracts/interfaces/superfluid/ISuperAgreement.sol\":{\"keccak256\":\"0xc3a6a907245116bcecc70fe4b207454012e8ce4fa190228fb8bbe39e0b1bc5cf\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://83c116bdae48685d20e5a27c942111e685ec1ef6334e7ff6f6d9af66edbd8025\",\"dweb:/ipfs/QmTnVuNTaRFiDmkAmDk7NFYdfQTW1kqgBZiY2exC6k8jDx\"]},\"project:/contracts/interfaces/superfluid/ISuperApp.sol\":{\"keccak256\":\"0x57f4203168992c940eb6b8c7cc75f854cb36a1f9323b3f39ddc5e4fbe819c043\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://888941dfa3e5004f678f215b98a85d1bf54e412317928a78e0a1cff090773d4c\",\"dweb:/ipfs/QmVe838upcAyqpy1d3oQNHJrbRyWCKHL51zWrMKruvLxFG\"]},\"project:/contracts/interfaces/superfluid/ISuperToken.sol\":{\"keccak256\":\"0x3cb0b7216007b942f7611d7b3d983c0df9408fdd4fd6b799c33fc9033e0abf8b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://17901a1fd3635f441671e14ece8ecc6806af20c5eb80cca3b7c6e53a51fef7b6\",\"dweb:/ipfs/QmUXXMfU6nmsyEnufyGEwyZ5M7pzpXNTr6vw32e3JjjoZp\"]},\"project:/contracts/interfaces/superfluid/ISuperTokenFactory.sol\":{\"keccak256\":\"0x68a466c978557e47bd7385b1d7d78f1c8fb07462a870efc5a791008e33a4f535\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://d109879bdb7f022560a792af2ff481df729bf1b4b8e1831b8022f4d12892d41d\",\"dweb:/ipfs/QmRSWqHq8CP5XWgyV4mJpPxMg33s312s2K5ndHRHVqqZ8n\"]},\"project:/contracts/interfaces/superfluid/ISuperfluid.sol\":{\"keccak256\":\"0x2d9b845469a35b66f1166406149ac85e933dbe9156f57e4a4078948e6a6e71a4\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://48e5cb11d4b90e42af521e23b33d57e12187c989d8d56be332b1649308168d45\",\"dweb:/ipfs/QmdaTW4HfpFfHjkHiJ3CmZUmCfLJyFCPTnCygwhiNhx3Tu\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidGovernance.sol\":{\"keccak256\":\"0x2166f766b7f61f9bb1376b0948efa0d0c0046b93dc301e51ce495203b145189b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://929630e6a15f523b142b2897783b2f7a54532ac5ae578bd17a0b7f25a6ca2bd8\",\"dweb:/ipfs/QmTu9ffH9qbQncJGEc24bmnoCGjifQ7BG47AYR8AzMLfXR\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidToken.sol\":{\"keccak256\":\"0x9189eaba9e856cc4932ea29eeaf4e89a09448dde13860591691ec122856fdc75\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://7d5991b906bba706373f5bfe3c2c8789a7a45360a41eee50574272b393c4ab70\",\"dweb:/ipfs/QmVCXVnYA13vMNxa7rGzNB129sUXiGE1asuHdnEMEPVZsp\"]},\"project:/contracts/interfaces/tokens/ERC20WithTokenInfo.sol\":{\"keccak256\":\"0x66708dae3fcd06e6fc0a46f2959fc2d1e6b9361f28598337339d26af8eb8c0f9\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://77b80718cec21b81ef190c19fb9fbe73913a95c71f7e6715f671bbe8a224dafc\",\"dweb:/ipfs/QmUdsc6DF2Bgih5VZm7sfaECjhGmwE7tAx8pMkzGQgVKQw\"]},\"project:/contracts/interfaces/tokens/TokenInfo.sol\":{\"keccak256\":\"0x70e573644a0ff271c0ccef526809e9d9ab4950ec58755ca84e833cde3b8f3df0\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://aea3709687cc37ba625f4cc882fbdb149a7bf5be5afe2b030203c8719641a77b\",\"dweb:/ipfs/QmVpvfR6ZheE5wNUK9CobaVBgVvEnEPkvjWF9cfwyZr7eQ\"]},\"project:/contracts/utils/SuperUpgrader.sol\":{\"keccak256\":\"0x59d07db3a6a72fbd7ea2cd599f5f14b5692a4e1fbafbd1be8aa018d9f94ea159\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://4286bcd8f6d063a2f3e1a36e0cf3f320722255dd58d7b870ab7693d441c89a01\",\"dweb:/ipfs/QmWxdTspM5ARfz7CQ2AXrNgk6NScu7ePD4sF3u7WDFUc33\"]}},\"version\":1}",
403
+ "bytecode": "0x60806040523480156200001157600080fd5b50604051620019a0380380620019a0833981016040819052620000349162000321565b6001600160a01b038216620000855760405162461bcd60e51b815260206004820152601260248201527161646d696e526f6c6520697320656d70747960701b60448201526064015b60405180910390fd5b6200009260008362000189565b60005b8151811015620001805760006001600160a01b0316828281518110620000bf57620000bf6200040a565b60200260200101516001600160a01b0316036200011f5760405162461bcd60e51b815260206004820152601560248201527f6261636b656e642063616e2774206265207a65726f000000000000000000000060448201526064016200007c565b6200016d7f25cf2b509f2a7f322675b2a5322b182f44ad2c03ac941a0af17c9b178f5d5d5f8383815181106200015957620001596200040a565b60200260200101516200018960201b60201c565b620001788162000420565b905062000095565b50505062000448565b62000195828262000199565b5050565b620001b08282620001dc60201b6200085c1760201c565b6000828152600160209081526040909120620001d7918390620008e06200027c821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000195576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002383390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600062000293836001600160a01b0384166200029c565b90505b92915050565b6000818152600183016020526040812054620002e55750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000296565b50600062000296565b80516001600160a01b03811681146200030657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156200033557600080fd5b6200034083620002ee565b602084810151919350906001600160401b03808211156200036057600080fd5b818601915086601f8301126200037557600080fd5b8151818111156200038a576200038a6200030b565b8060051b604051601f19603f83011681018181108582111715620003b257620003b26200030b565b604052918252848201925083810185019189831115620003d157600080fd5b938501935b82851015620003fa57620003ea85620002ee565b84529385019392850192620003d6565b8096505050505050509250929050565b634e487b7160e01b600052603260045260246000fd5b6000600182016200044157634e487b7160e01b600052601160045260246000fd5b5060010190565b61154880620004586000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806361985da7116100a2578063a217fddf11610071578063a217fddf1461023a578063abcac5eb14610242578063ca15c87314610255578063d547741f14610268578063ec3282531461027b57600080fd5b806361985da7146101d45780639010d07c146101e757806391d148541461021257806392c2becc1461022557600080fd5b80632f2ff15d116100de5780632f2ff15d1461019357806336568abe146101a657806344e9d2fb146101b95780635d730c58146101cc57600080fd5b806301ffc9a7146101105780630f01a4a214610138578063248a9ca31461014d5780632a1972981461017e575b600080fd5b61012361011e366004611143565b610283565b60405190151581526020015b60405180910390f35b6101406102ae565b60405161012f919061116d565b61017061015b3660046111ba565b60009081526020819052604090206001015490565b60405190815260200161012f565b61019161018c3660046111e8565b610378565b005b6101916101a1366004611229565b610612565b6101916101b4366004611229565b61063d565b6101236101c7366004611259565b6106bb565b6101916106d5565b6101916101e2366004611259565b610714565b6101fa6101f5366004611276565b61077d565b6040516001600160a01b03909116815260200161012f565b610123610220366004611229565b61079c565b6101706000805160206114f383398151915281565b610170600081565b610191610250366004611259565b6107c5565b6101706102633660046111ba565b6107dd565b610191610276366004611229565b6107f4565b61019161081a565b60006001600160e01b03198216635a05180f60e01b14806102a857506102a8826108f5565b92915050565b606060006102c96000805160206114f38339815191526107dd565b905060008167ffffffffffffffff8111156102e6576102e6611298565b60405190808252806020026020018201604052801561030f578160200160208202803683370190505b50905060005b82811015610371576103356000805160206114f38339815191528261077d565b828281518110610347576103476112ae565b6001600160a01b039092166020928302919091019091015280610369816112da565b915050610315565b5092915050565b336001600160a01b03831614806103c757506103a26000805160206114f38339815191523361079c565b80156103c757506001600160a01b03821660009081526002602052604090205460ff16155b6104105760405162461bcd60e51b81526020600482015260156024820152741bdc195c985d1a5bdb881b9bdd08185b1b1bddd959605a1b60448201526064015b60405180910390fd5b60008390506000816001600160a01b031663ee719bc86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610455573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047991906112f3565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156104c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e79190611310565b90506104fe6001600160a01b03831686308761092a565b6105136001600160a01b03831684600061099b565b6105276001600160a01b038316848661099b565b6040516370a0823160e01b81523060048201526001600160a01b0380851691635b9d09cc91889185918716906370a0823190602401602060405180830381865afa158015610579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059d9190611310565b6105a79190611329565b604080516000815260208101918290526001600160e01b031960e086901b169091526105d892919060248101611398565b600060405180830381600087803b1580156105f257600080fd5b505af1158015610606573d6000803e3d6000fd5b50505050505050505050565b60008281526020819052604090206001015461062e8133610ab0565b6106388383610b14565b505050565b6001600160a01b03811633146106ad5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610407565b6106b78282610b36565b5050565b60006102a86000805160206114f38339815191528361079c565b33600081815260026020526040808220805460ff19169055517fde802370a7a9557e8d50bffe30a1bbd3d327beb1964088485a5465325bc5fb7a9190a2565b6001600160a01b0381166107625760405162461bcd60e51b81526020600482015260156024820152741bdc195c985d1a5bdb881b9bdd08185b1b1bddd959605a1b6044820152606401610407565b61077a6000805160206114f383398151915282610612565b50565b60008281526001602052604081206107959083610b58565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61077a6000805160206114f3833981519152826107f4565b60008181526001602052604081206102a890610b64565b6000828152602081905260409020600101546108108133610ab0565b6106388383610b36565b33600081815260026020526040808220805460ff19166001179055517fd07f586f18c37aa8ec13ebc5523e50304e2aa7711505bfa7242fcb7152eaee259190a2565b610866828261079c565b6106b7576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561089c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610795836001600160a01b038416610b6e565b60006001600160e01b03198216637965db0b60e01b14806102a857506301ffc9a760e01b6001600160e01b03198316146102a8565b6040516001600160a01b03808516602483015283166044820152606481018290526109959085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610bbd565b50505050565b801580610a155750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156109ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a139190611310565b155b610a805760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610407565b6040516001600160a01b03831660248201526044810182905261063890849063095ea7b360e01b9060640161095e565b610aba828261079c565b6106b757610ad2816001600160a01b03166014610c8f565b610add836020610c8f565b604051602001610aee9291906113c8565b60408051601f198184030181529082905262461bcd60e51b82526104079160040161143d565b610b1e828261085c565b600082815260016020526040902061063890826108e0565b610b408282610e2b565b60008281526001602052604090206106389082610e90565b60006107958383610ea5565b60006102a8825490565b6000818152600183016020526040812054610bb5575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556102a8565b5060006102a8565b6000610c12826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610ecf9092919063ffffffff16565b8051909150156106385780806020019051810190610c309190611450565b6106385760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610407565b60606000610c9e836002611472565b610ca9906002611491565b67ffffffffffffffff811115610cc157610cc1611298565b6040519080825280601f01601f191660200182016040528015610ceb576020820181803683370190505b509050600360fc1b81600081518110610d0657610d066112ae565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610d3557610d356112ae565b60200101906001600160f81b031916908160001a9053506000610d59846002611472565b610d64906001611491565b90505b6001811115610ddc576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110610d9857610d986112ae565b1a60f81b828281518110610dae57610dae6112ae565b60200101906001600160f81b031916908160001a90535060049490941c93610dd5816114a9565b9050610d67565b5083156107955760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610407565b610e35828261079c565b156106b7576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610795836001600160a01b038416610ee6565b6000826000018281548110610ebc57610ebc6112ae565b9060005260206000200154905092915050565b6060610ede8484600085610fd9565b949350505050565b60008181526001830160205260408120548015610fcf576000610f0a600183611329565b8554909150600090610f1e90600190611329565b9050818114610f83576000866000018281548110610f3e57610f3e6112ae565b9060005260206000200154905080876000018481548110610f6157610f616112ae565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080610f9457610f946114c0565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506102a8565b60009150506102a8565b60608247101561103a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610407565b6001600160a01b0385163b6110915760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610407565b600080866001600160a01b031685876040516110ad91906114d6565b60006040518083038185875af1925050503d80600081146110ea576040519150601f19603f3d011682016040523d82523d6000602084013e6110ef565b606091505b50915091506110ff82828661110a565b979650505050505050565b60608315611119575081610795565b8251156111295782518084602001fd5b8160405162461bcd60e51b8152600401610407919061143d565b60006020828403121561115557600080fd5b81356001600160e01b03198116811461079557600080fd5b6020808252825182820181905260009190848201906040850190845b818110156111ae5783516001600160a01b031683529284019291840191600101611189565b50909695505050505050565b6000602082840312156111cc57600080fd5b5035919050565b6001600160a01b038116811461077a57600080fd5b6000806000606084860312156111fd57600080fd5b8335611208816111d3565b92506020840135611218816111d3565b929592945050506040919091013590565b6000806040838503121561123c57600080fd5b82359150602083013561124e816111d3565b809150509250929050565b60006020828403121561126b57600080fd5b8135610795816111d3565b6000806040838503121561128957600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016112ec576112ec6112c4565b5060010190565b60006020828403121561130557600080fd5b8151610795816111d3565b60006020828403121561132257600080fd5b5051919050565b60008282101561133b5761133b6112c4565b500390565b60005b8381101561135b578181015183820152602001611343565b838111156109955750506000910152565b60008151808452611384816020860160208601611340565b601f01601f19169290920160200192915050565b60018060a01b03841681528260208201526060604082015260006113bf606083018461136c565b95945050505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611400816017850160208801611340565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611431816028840160208801611340565b01602801949350505050565b602081526000610795602083018461136c565b60006020828403121561146257600080fd5b8151801515811461079557600080fd5b600081600019048311821515161561148c5761148c6112c4565b500290565b600082198211156114a4576114a46112c4565b500190565b6000816114b8576114b86112c4565b506000190190565b634e487b7160e01b600052603160045260246000fd5b600082516114e8818460208701611340565b919091019291505056fe25cf2b509f2a7f322675b2a5322b182f44ad2c03ac941a0af17c9b178f5d5d5fa26469706673582212207aeb822439b2e4e2740912278545a1f6ca861b1392cc013cceca84944249090164736f6c634300080d0033",
404
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806361985da7116100a2578063a217fddf11610071578063a217fddf1461023a578063abcac5eb14610242578063ca15c87314610255578063d547741f14610268578063ec3282531461027b57600080fd5b806361985da7146101d45780639010d07c146101e757806391d148541461021257806392c2becc1461022557600080fd5b80632f2ff15d116100de5780632f2ff15d1461019357806336568abe146101a657806344e9d2fb146101b95780635d730c58146101cc57600080fd5b806301ffc9a7146101105780630f01a4a214610138578063248a9ca31461014d5780632a1972981461017e575b600080fd5b61012361011e366004611143565b610283565b60405190151581526020015b60405180910390f35b6101406102ae565b60405161012f919061116d565b61017061015b3660046111ba565b60009081526020819052604090206001015490565b60405190815260200161012f565b61019161018c3660046111e8565b610378565b005b6101916101a1366004611229565b610612565b6101916101b4366004611229565b61063d565b6101236101c7366004611259565b6106bb565b6101916106d5565b6101916101e2366004611259565b610714565b6101fa6101f5366004611276565b61077d565b6040516001600160a01b03909116815260200161012f565b610123610220366004611229565b61079c565b6101706000805160206114f383398151915281565b610170600081565b610191610250366004611259565b6107c5565b6101706102633660046111ba565b6107dd565b610191610276366004611229565b6107f4565b61019161081a565b60006001600160e01b03198216635a05180f60e01b14806102a857506102a8826108f5565b92915050565b606060006102c96000805160206114f38339815191526107dd565b905060008167ffffffffffffffff8111156102e6576102e6611298565b60405190808252806020026020018201604052801561030f578160200160208202803683370190505b50905060005b82811015610371576103356000805160206114f38339815191528261077d565b828281518110610347576103476112ae565b6001600160a01b039092166020928302919091019091015280610369816112da565b915050610315565b5092915050565b336001600160a01b03831614806103c757506103a26000805160206114f38339815191523361079c565b80156103c757506001600160a01b03821660009081526002602052604090205460ff16155b6104105760405162461bcd60e51b81526020600482015260156024820152741bdc195c985d1a5bdb881b9bdd08185b1b1bddd959605a1b60448201526064015b60405180910390fd5b60008390506000816001600160a01b031663ee719bc86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610455573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047991906112f3565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156104c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e79190611310565b90506104fe6001600160a01b03831686308761092a565b6105136001600160a01b03831684600061099b565b6105276001600160a01b038316848661099b565b6040516370a0823160e01b81523060048201526001600160a01b0380851691635b9d09cc91889185918716906370a0823190602401602060405180830381865afa158015610579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059d9190611310565b6105a79190611329565b604080516000815260208101918290526001600160e01b031960e086901b169091526105d892919060248101611398565b600060405180830381600087803b1580156105f257600080fd5b505af1158015610606573d6000803e3d6000fd5b50505050505050505050565b60008281526020819052604090206001015461062e8133610ab0565b6106388383610b14565b505050565b6001600160a01b03811633146106ad5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610407565b6106b78282610b36565b5050565b60006102a86000805160206114f38339815191528361079c565b33600081815260026020526040808220805460ff19169055517fde802370a7a9557e8d50bffe30a1bbd3d327beb1964088485a5465325bc5fb7a9190a2565b6001600160a01b0381166107625760405162461bcd60e51b81526020600482015260156024820152741bdc195c985d1a5bdb881b9bdd08185b1b1bddd959605a1b6044820152606401610407565b61077a6000805160206114f383398151915282610612565b50565b60008281526001602052604081206107959083610b58565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61077a6000805160206114f3833981519152826107f4565b60008181526001602052604081206102a890610b64565b6000828152602081905260409020600101546108108133610ab0565b6106388383610b36565b33600081815260026020526040808220805460ff19166001179055517fd07f586f18c37aa8ec13ebc5523e50304e2aa7711505bfa7242fcb7152eaee259190a2565b610866828261079c565b6106b7576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561089c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610795836001600160a01b038416610b6e565b60006001600160e01b03198216637965db0b60e01b14806102a857506301ffc9a760e01b6001600160e01b03198316146102a8565b6040516001600160a01b03808516602483015283166044820152606481018290526109959085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610bbd565b50505050565b801580610a155750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156109ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a139190611310565b155b610a805760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610407565b6040516001600160a01b03831660248201526044810182905261063890849063095ea7b360e01b9060640161095e565b610aba828261079c565b6106b757610ad2816001600160a01b03166014610c8f565b610add836020610c8f565b604051602001610aee9291906113c8565b60408051601f198184030181529082905262461bcd60e51b82526104079160040161143d565b610b1e828261085c565b600082815260016020526040902061063890826108e0565b610b408282610e2b565b60008281526001602052604090206106389082610e90565b60006107958383610ea5565b60006102a8825490565b6000818152600183016020526040812054610bb5575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556102a8565b5060006102a8565b6000610c12826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610ecf9092919063ffffffff16565b8051909150156106385780806020019051810190610c309190611450565b6106385760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610407565b60606000610c9e836002611472565b610ca9906002611491565b67ffffffffffffffff811115610cc157610cc1611298565b6040519080825280601f01601f191660200182016040528015610ceb576020820181803683370190505b509050600360fc1b81600081518110610d0657610d066112ae565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610d3557610d356112ae565b60200101906001600160f81b031916908160001a9053506000610d59846002611472565b610d64906001611491565b90505b6001811115610ddc576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110610d9857610d986112ae565b1a60f81b828281518110610dae57610dae6112ae565b60200101906001600160f81b031916908160001a90535060049490941c93610dd5816114a9565b9050610d67565b5083156107955760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610407565b610e35828261079c565b156106b7576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610795836001600160a01b038416610ee6565b6000826000018281548110610ebc57610ebc6112ae565b9060005260206000200154905092915050565b6060610ede8484600085610fd9565b949350505050565b60008181526001830160205260408120548015610fcf576000610f0a600183611329565b8554909150600090610f1e90600190611329565b9050818114610f83576000866000018281548110610f3e57610f3e6112ae565b9060005260206000200154905080876000018481548110610f6157610f616112ae565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080610f9457610f946114c0565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506102a8565b60009150506102a8565b60608247101561103a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610407565b6001600160a01b0385163b6110915760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610407565b600080866001600160a01b031685876040516110ad91906114d6565b60006040518083038185875af1925050503d80600081146110ea576040519150601f19603f3d011682016040523d82523d6000602084013e6110ef565b606091505b50915091506110ff82828661110a565b979650505050505050565b60608315611119575081610795565b8251156111295782518084602001fd5b8160405162461bcd60e51b8152600401610407919061143d565b60006020828403121561115557600080fd5b81356001600160e01b03198116811461079557600080fd5b6020808252825182820181905260009190848201906040850190845b818110156111ae5783516001600160a01b031683529284019291840191600101611189565b50909695505050505050565b6000602082840312156111cc57600080fd5b5035919050565b6001600160a01b038116811461077a57600080fd5b6000806000606084860312156111fd57600080fd5b8335611208816111d3565b92506020840135611218816111d3565b929592945050506040919091013590565b6000806040838503121561123c57600080fd5b82359150602083013561124e816111d3565b809150509250929050565b60006020828403121561126b57600080fd5b8135610795816111d3565b6000806040838503121561128957600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016112ec576112ec6112c4565b5060010190565b60006020828403121561130557600080fd5b8151610795816111d3565b60006020828403121561132257600080fd5b5051919050565b60008282101561133b5761133b6112c4565b500390565b60005b8381101561135b578181015183820152602001611343565b838111156109955750506000910152565b60008151808452611384816020860160208601611340565b601f01601f19169290920160200192915050565b60018060a01b03841681528260208201526060604082015260006113bf606083018461136c565b95945050505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611400816017850160208801611340565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611431816028840160208801611340565b01602801949350505050565b602081526000610795602083018461136c565b60006020828403121561146257600080fd5b8151801515811461079557600080fd5b600081600019048311821515161561148c5761148c6112c4565b500290565b600082198211156114a4576114a46112c4565b500190565b6000816114b8576114b86112c4565b506000190190565b634e487b7160e01b600052603160045260246000fd5b600082516114e8818460208701611340565b919091019291505056fe25cf2b509f2a7f322675b2a5322b182f44ad2c03ac941a0af17c9b178f5d5d5fa26469706673582212207aeb822439b2e4e2740912278545a1f6ca861b1392cc013cceca84944249090164736f6c634300080d0033",
405
405
  "immutableReferences": {},
406
406
  "generatedSources": [
407
407
  {
@@ -10226,15 +10226,15 @@
10226
10226
  2816
10227
10227
  ],
10228
10228
  "SuperUpgrader": [
10229
- 35792
10229
+ 35795
10230
10230
  ]
10231
10231
  },
10232
- "id": 35793,
10232
+ "id": 35796,
10233
10233
  "license": "AGPLv3",
10234
10234
  "nodeType": "SourceUnit",
10235
10235
  "nodes": [
10236
10236
  {
10237
- "id": 35470,
10237
+ "id": 35473,
10238
10238
  "literals": [
10239
10239
  "solidity",
10240
10240
  "0.8",
@@ -10246,10 +10246,10 @@
10246
10246
  {
10247
10247
  "absolutePath": "@openzeppelin/contracts/access/AccessControlEnumerable.sol",
10248
10248
  "file": "@openzeppelin/contracts/access/AccessControlEnumerable.sol",
10249
- "id": 35471,
10249
+ "id": 35474,
10250
10250
  "nameLocation": "-1:-1:-1",
10251
10251
  "nodeType": "ImportDirective",
10252
- "scope": 35793,
10252
+ "scope": 35796,
10253
10253
  "sourceUnit": 434,
10254
10254
  "src": "60:68:100",
10255
10255
  "symbolAliases": [],
@@ -10258,10 +10258,10 @@
10258
10258
  {
10259
10259
  "absolutePath": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
10260
10260
  "file": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
10261
- "id": 35472,
10261
+ "id": 35475,
10262
10262
  "nameLocation": "-1:-1:-1",
10263
10263
  "nodeType": "ImportDirective",
10264
- "scope": 35793,
10264
+ "scope": 35796,
10265
10265
  "sourceUnit": 1987,
10266
10266
  "src": "129:65:100",
10267
10267
  "symbolAliases": [],
@@ -10270,16 +10270,16 @@
10270
10270
  {
10271
10271
  "absolutePath": "project:/contracts/interfaces/superfluid/ISuperfluid.sol",
10272
10272
  "file": "../interfaces/superfluid/ISuperfluid.sol",
10273
- "id": 35475,
10273
+ "id": 35478,
10274
10274
  "nameLocation": "-1:-1:-1",
10275
10275
  "nodeType": "ImportDirective",
10276
- "scope": 35793,
10276
+ "scope": 35796,
10277
10277
  "sourceUnit": 18320,
10278
10278
  "src": "195:87:100",
10279
10279
  "symbolAliases": [
10280
10280
  {
10281
10281
  "foreign": {
10282
- "id": 35473,
10282
+ "id": 35476,
10283
10283
  "name": "ISuperToken",
10284
10284
  "nodeType": "Identifier",
10285
10285
  "overloadedDeclarations": [],
@@ -10291,7 +10291,7 @@
10291
10291
  },
10292
10292
  {
10293
10293
  "foreign": {
10294
- "id": 35474,
10294
+ "id": 35477,
10295
10295
  "name": "IERC20",
10296
10296
  "nodeType": "Identifier",
10297
10297
  "overloadedDeclarations": [],
@@ -10309,13 +10309,13 @@
10309
10309
  "baseContracts": [
10310
10310
  {
10311
10311
  "baseName": {
10312
- "id": 35477,
10312
+ "id": 35480,
10313
10313
  "name": "AccessControlEnumerable",
10314
10314
  "nodeType": "IdentifierPath",
10315
10315
  "referencedDeclaration": 433,
10316
10316
  "src": "671:23:100"
10317
10317
  },
10318
- "id": 35478,
10318
+ "id": 35481,
10319
10319
  "nodeType": "InheritanceSpecifier",
10320
10320
  "src": "671:23:100"
10321
10321
  }
@@ -10324,15 +10324,15 @@
10324
10324
  "contractDependencies": [],
10325
10325
  "contractKind": "contract",
10326
10326
  "documentation": {
10327
- "id": 35476,
10327
+ "id": 35479,
10328
10328
  "nodeType": "StructuredDocumentation",
10329
10329
  "src": "284:360:100",
10330
10330
  "text": " @title Super upgrader contract\n @author Superfluid\n NOTE:\n - User would need to first SuperToken.approve the `SuperUpgrader` for the job.\n - Using access control to allow multiple backend agent to upgrade tokens for the users\n - Risk taken by the user is that the underlying tokens are converted to the Super Tokens by the upgrader agents."
10331
10331
  },
10332
10332
  "fullyImplemented": true,
10333
- "id": 35792,
10333
+ "id": 35795,
10334
10334
  "linearizedBaseContracts": [
10335
- 35792,
10335
+ 35795,
10336
10336
  433,
10337
10337
  308,
10338
10338
  2840,
@@ -10347,9 +10347,9 @@
10347
10347
  "nodes": [
10348
10348
  {
10349
10349
  "global": false,
10350
- "id": 35482,
10350
+ "id": 35485,
10351
10351
  "libraryName": {
10352
- "id": 35479,
10352
+ "id": 35482,
10353
10353
  "name": "SafeERC20",
10354
10354
  "nodeType": "IdentifierPath",
10355
10355
  "referencedDeclaration": 1986,
@@ -10358,10 +10358,10 @@
10358
10358
  "nodeType": "UsingForDirective",
10359
10359
  "src": "702:27:100",
10360
10360
  "typeName": {
10361
- "id": 35481,
10361
+ "id": 35484,
10362
10362
  "nodeType": "UserDefinedTypeName",
10363
10363
  "pathNode": {
10364
- "id": 35480,
10364
+ "id": 35483,
10365
10365
  "name": "IERC20",
10366
10366
  "nodeType": "IdentifierPath",
10367
10367
  "referencedDeclaration": 1520,
@@ -10378,12 +10378,12 @@
10378
10378
  {
10379
10379
  "constant": true,
10380
10380
  "functionSelector": "92c2becc",
10381
- "id": 35487,
10381
+ "id": 35490,
10382
10382
  "mutability": "constant",
10383
10383
  "name": "BACKEND_ROLE",
10384
10384
  "nameLocation": "815:12:100",
10385
10385
  "nodeType": "VariableDeclaration",
10386
- "scope": 35792,
10386
+ "scope": 35795,
10387
10387
  "src": "791:64:100",
10388
10388
  "stateVariable": true,
10389
10389
  "storageLocation": "default",
@@ -10392,7 +10392,7 @@
10392
10392
  "typeString": "bytes32"
10393
10393
  },
10394
10394
  "typeName": {
10395
- "id": 35483,
10395
+ "id": 35486,
10396
10396
  "name": "bytes32",
10397
10397
  "nodeType": "ElementaryTypeName",
10398
10398
  "src": "791:7:100",
@@ -10405,7 +10405,7 @@
10405
10405
  "arguments": [
10406
10406
  {
10407
10407
  "hexValue": "4241434b454e445f524f4c45",
10408
- "id": 35485,
10408
+ "id": 35488,
10409
10409
  "isConstant": false,
10410
10410
  "isLValue": false,
10411
10411
  "isPure": true,
@@ -10427,7 +10427,7 @@
10427
10427
  "typeString": "literal_string \"BACKEND_ROLE\""
10428
10428
  }
10429
10429
  ],
10430
- "id": 35484,
10430
+ "id": 35487,
10431
10431
  "name": "keccak256",
10432
10432
  "nodeType": "Identifier",
10433
10433
  "overloadedDeclarations": [],
@@ -10438,7 +10438,7 @@
10438
10438
  "typeString": "function (bytes memory) pure returns (bytes32)"
10439
10439
  }
10440
10440
  },
10441
- "id": 35486,
10441
+ "id": 35489,
10442
10442
  "isConstant": false,
10443
10443
  "isLValue": false,
10444
10444
  "isPure": true,
@@ -10458,23 +10458,23 @@
10458
10458
  {
10459
10459
  "anonymous": false,
10460
10460
  "eventSelector": "d07f586f18c37aa8ec13ebc5523e50304e2aa7711505bfa7242fcb7152eaee25",
10461
- "id": 35491,
10461
+ "id": 35494,
10462
10462
  "name": "OptoutAutoUpgrade",
10463
10463
  "nameLocation": "868:17:100",
10464
10464
  "nodeType": "EventDefinition",
10465
10465
  "parameters": {
10466
- "id": 35490,
10466
+ "id": 35493,
10467
10467
  "nodeType": "ParameterList",
10468
10468
  "parameters": [
10469
10469
  {
10470
10470
  "constant": false,
10471
- "id": 35489,
10471
+ "id": 35492,
10472
10472
  "indexed": true,
10473
10473
  "mutability": "mutable",
10474
10474
  "name": "account",
10475
10475
  "nameLocation": "902:7:100",
10476
10476
  "nodeType": "VariableDeclaration",
10477
- "scope": 35491,
10477
+ "scope": 35494,
10478
10478
  "src": "886:23:100",
10479
10479
  "stateVariable": false,
10480
10480
  "storageLocation": "default",
@@ -10483,7 +10483,7 @@
10483
10483
  "typeString": "address"
10484
10484
  },
10485
10485
  "typeName": {
10486
- "id": 35488,
10486
+ "id": 35491,
10487
10487
  "name": "address",
10488
10488
  "nodeType": "ElementaryTypeName",
10489
10489
  "src": "886:7:100",
@@ -10503,23 +10503,23 @@
10503
10503
  {
10504
10504
  "anonymous": false,
10505
10505
  "eventSelector": "de802370a7a9557e8d50bffe30a1bbd3d327beb1964088485a5465325bc5fb7a",
10506
- "id": 35495,
10506
+ "id": 35498,
10507
10507
  "name": "OptinAutoUpgrade",
10508
10508
  "nameLocation": "922:16:100",
10509
10509
  "nodeType": "EventDefinition",
10510
10510
  "parameters": {
10511
- "id": 35494,
10511
+ "id": 35497,
10512
10512
  "nodeType": "ParameterList",
10513
10513
  "parameters": [
10514
10514
  {
10515
10515
  "constant": false,
10516
- "id": 35493,
10516
+ "id": 35496,
10517
10517
  "indexed": true,
10518
10518
  "mutability": "mutable",
10519
10519
  "name": "account",
10520
10520
  "nameLocation": "955:7:100",
10521
10521
  "nodeType": "VariableDeclaration",
10522
- "scope": 35495,
10522
+ "scope": 35498,
10523
10523
  "src": "939:23:100",
10524
10524
  "stateVariable": false,
10525
10525
  "storageLocation": "default",
@@ -10528,7 +10528,7 @@
10528
10528
  "typeString": "address"
10529
10529
  },
10530
10530
  "typeName": {
10531
- "id": 35492,
10531
+ "id": 35495,
10532
10532
  "name": "address",
10533
10533
  "nodeType": "ElementaryTypeName",
10534
10534
  "src": "939:7:100",
@@ -10547,12 +10547,12 @@
10547
10547
  },
10548
10548
  {
10549
10549
  "constant": false,
10550
- "id": 35499,
10550
+ "id": 35502,
10551
10551
  "mutability": "mutable",
10552
10552
  "name": "_optout",
10553
10553
  "nameLocation": "1004:7:100",
10554
10554
  "nodeType": "VariableDeclaration",
10555
- "scope": 35792,
10555
+ "scope": 35795,
10556
10556
  "src": "970:41:100",
10557
10557
  "stateVariable": true,
10558
10558
  "storageLocation": "default",
@@ -10561,9 +10561,9 @@
10561
10561
  "typeString": "mapping(address => bool)"
10562
10562
  },
10563
10563
  "typeName": {
10564
- "id": 35498,
10564
+ "id": 35501,
10565
10565
  "keyType": {
10566
- "id": 35496,
10566
+ "id": 35499,
10567
10567
  "name": "address",
10568
10568
  "nodeType": "ElementaryTypeName",
10569
10569
  "src": "978:7:100",
@@ -10579,7 +10579,7 @@
10579
10579
  "typeString": "mapping(address => bool)"
10580
10580
  },
10581
10581
  "valueType": {
10582
- "id": 35497,
10582
+ "id": 35500,
10583
10583
  "name": "bool",
10584
10584
  "nodeType": "ElementaryTypeName",
10585
10585
  "src": "989:4:100",
@@ -10593,7 +10593,7 @@
10593
10593
  },
10594
10594
  {
10595
10595
  "body": {
10596
- "id": 35554,
10596
+ "id": 35557,
10597
10597
  "nodeType": "Block",
10598
10598
  "src": "1079:321:100",
10599
10599
  "statements": [
@@ -10605,17 +10605,17 @@
10605
10605
  "typeIdentifier": "t_address",
10606
10606
  "typeString": "address"
10607
10607
  },
10608
- "id": 35513,
10608
+ "id": 35516,
10609
10609
  "isConstant": false,
10610
10610
  "isLValue": false,
10611
10611
  "isPure": false,
10612
10612
  "lValueRequested": false,
10613
10613
  "leftExpression": {
10614
- "id": 35508,
10614
+ "id": 35511,
10615
10615
  "name": "adminRole",
10616
10616
  "nodeType": "Identifier",
10617
10617
  "overloadedDeclarations": [],
10618
- "referencedDeclaration": 35501,
10618
+ "referencedDeclaration": 35504,
10619
10619
  "src": "1097:9:100",
10620
10620
  "typeDescriptions": {
10621
10621
  "typeIdentifier": "t_address",
@@ -10628,7 +10628,7 @@
10628
10628
  "arguments": [
10629
10629
  {
10630
10630
  "hexValue": "30",
10631
- "id": 35511,
10631
+ "id": 35514,
10632
10632
  "isConstant": false,
10633
10633
  "isLValue": false,
10634
10634
  "isPure": true,
@@ -10650,7 +10650,7 @@
10650
10650
  "typeString": "int_const 0"
10651
10651
  }
10652
10652
  ],
10653
- "id": 35510,
10653
+ "id": 35513,
10654
10654
  "isConstant": false,
10655
10655
  "isLValue": false,
10656
10656
  "isPure": true,
@@ -10662,14 +10662,14 @@
10662
10662
  "typeString": "type(address)"
10663
10663
  },
10664
10664
  "typeName": {
10665
- "id": 35509,
10665
+ "id": 35512,
10666
10666
  "name": "address",
10667
10667
  "nodeType": "ElementaryTypeName",
10668
10668
  "src": "1110:7:100",
10669
10669
  "typeDescriptions": {}
10670
10670
  }
10671
10671
  },
10672
- "id": 35512,
10672
+ "id": 35515,
10673
10673
  "isConstant": false,
10674
10674
  "isLValue": false,
10675
10675
  "isPure": true,
@@ -10692,7 +10692,7 @@
10692
10692
  },
10693
10693
  {
10694
10694
  "hexValue": "61646d696e526f6c6520697320656d707479",
10695
- "id": 35514,
10695
+ "id": 35517,
10696
10696
  "isConstant": false,
10697
10697
  "isLValue": false,
10698
10698
  "isPure": true,
@@ -10718,7 +10718,7 @@
10718
10718
  "typeString": "literal_string \"adminRole is empty\""
10719
10719
  }
10720
10720
  ],
10721
- "id": 35507,
10721
+ "id": 35510,
10722
10722
  "name": "require",
10723
10723
  "nodeType": "Identifier",
10724
10724
  "overloadedDeclarations": [
@@ -10732,7 +10732,7 @@
10732
10732
  "typeString": "function (bool,string memory) pure"
10733
10733
  }
10734
10734
  },
10735
- "id": 35515,
10735
+ "id": 35518,
10736
10736
  "isConstant": false,
10737
10737
  "isLValue": false,
10738
10738
  "isPure": false,
@@ -10747,7 +10747,7 @@
10747
10747
  "typeString": "tuple()"
10748
10748
  }
10749
10749
  },
10750
- "id": 35516,
10750
+ "id": 35519,
10751
10751
  "nodeType": "ExpressionStatement",
10752
10752
  "src": "1089:54:100"
10753
10753
  },
@@ -10755,7 +10755,7 @@
10755
10755
  "expression": {
10756
10756
  "arguments": [
10757
10757
  {
10758
- "id": 35518,
10758
+ "id": 35521,
10759
10759
  "name": "DEFAULT_ADMIN_ROLE",
10760
10760
  "nodeType": "Identifier",
10761
10761
  "overloadedDeclarations": [],
@@ -10767,11 +10767,11 @@
10767
10767
  }
10768
10768
  },
10769
10769
  {
10770
- "id": 35519,
10770
+ "id": 35522,
10771
10771
  "name": "adminRole",
10772
10772
  "nodeType": "Identifier",
10773
10773
  "overloadedDeclarations": [],
10774
- "referencedDeclaration": 35501,
10774
+ "referencedDeclaration": 35504,
10775
10775
  "src": "1184:9:100",
10776
10776
  "typeDescriptions": {
10777
10777
  "typeIdentifier": "t_address",
@@ -10790,7 +10790,7 @@
10790
10790
  "typeString": "address"
10791
10791
  }
10792
10792
  ],
10793
- "id": 35517,
10793
+ "id": 35520,
10794
10794
  "name": "_setupRole",
10795
10795
  "nodeType": "Identifier",
10796
10796
  "overloadedDeclarations": [],
@@ -10801,7 +10801,7 @@
10801
10801
  "typeString": "function (bytes32,address)"
10802
10802
  }
10803
10803
  },
10804
- "id": 35520,
10804
+ "id": 35523,
10805
10805
  "isConstant": false,
10806
10806
  "isLValue": false,
10807
10807
  "isPure": false,
@@ -10816,13 +10816,13 @@
10816
10816
  "typeString": "tuple()"
10817
10817
  }
10818
10818
  },
10819
- "id": 35521,
10819
+ "id": 35524,
10820
10820
  "nodeType": "ExpressionStatement",
10821
10821
  "src": "1153:41:100"
10822
10822
  },
10823
10823
  {
10824
10824
  "body": {
10825
- "id": 35552,
10825
+ "id": 35555,
10826
10826
  "nodeType": "Block",
10827
10827
  "src": "1253:141:100",
10828
10828
  "statements": [
@@ -10834,31 +10834,31 @@
10834
10834
  "typeIdentifier": "t_address",
10835
10835
  "typeString": "address"
10836
10836
  },
10837
- "id": 35541,
10837
+ "id": 35544,
10838
10838
  "isConstant": false,
10839
10839
  "isLValue": false,
10840
10840
  "isPure": false,
10841
10841
  "lValueRequested": false,
10842
10842
  "leftExpression": {
10843
10843
  "baseExpression": {
10844
- "id": 35534,
10844
+ "id": 35537,
10845
10845
  "name": "backendAddr",
10846
10846
  "nodeType": "Identifier",
10847
10847
  "overloadedDeclarations": [],
10848
- "referencedDeclaration": 35504,
10848
+ "referencedDeclaration": 35507,
10849
10849
  "src": "1275:11:100",
10850
10850
  "typeDescriptions": {
10851
10851
  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
10852
10852
  "typeString": "address[] memory"
10853
10853
  }
10854
10854
  },
10855
- "id": 35536,
10855
+ "id": 35539,
10856
10856
  "indexExpression": {
10857
- "id": 35535,
10857
+ "id": 35538,
10858
10858
  "name": "i",
10859
10859
  "nodeType": "Identifier",
10860
10860
  "overloadedDeclarations": [],
10861
- "referencedDeclaration": 35523,
10861
+ "referencedDeclaration": 35526,
10862
10862
  "src": "1287:1:100",
10863
10863
  "typeDescriptions": {
10864
10864
  "typeIdentifier": "t_uint256",
@@ -10882,7 +10882,7 @@
10882
10882
  "arguments": [
10883
10883
  {
10884
10884
  "hexValue": "30",
10885
- "id": 35539,
10885
+ "id": 35542,
10886
10886
  "isConstant": false,
10887
10887
  "isLValue": false,
10888
10888
  "isPure": true,
@@ -10904,7 +10904,7 @@
10904
10904
  "typeString": "int_const 0"
10905
10905
  }
10906
10906
  ],
10907
- "id": 35538,
10907
+ "id": 35541,
10908
10908
  "isConstant": false,
10909
10909
  "isLValue": false,
10910
10910
  "isPure": true,
@@ -10916,14 +10916,14 @@
10916
10916
  "typeString": "type(address)"
10917
10917
  },
10918
10918
  "typeName": {
10919
- "id": 35537,
10919
+ "id": 35540,
10920
10920
  "name": "address",
10921
10921
  "nodeType": "ElementaryTypeName",
10922
10922
  "src": "1293:7:100",
10923
10923
  "typeDescriptions": {}
10924
10924
  }
10925
10925
  },
10926
- "id": 35540,
10926
+ "id": 35543,
10927
10927
  "isConstant": false,
10928
10928
  "isLValue": false,
10929
10929
  "isPure": true,
@@ -10946,7 +10946,7 @@
10946
10946
  },
10947
10947
  {
10948
10948
  "hexValue": "6261636b656e642063616e2774206265207a65726f",
10949
- "id": 35542,
10949
+ "id": 35545,
10950
10950
  "isConstant": false,
10951
10951
  "isLValue": false,
10952
10952
  "isPure": true,
@@ -10972,7 +10972,7 @@
10972
10972
  "typeString": "literal_string \"backend can't be zero\""
10973
10973
  }
10974
10974
  ],
10975
- "id": 35533,
10975
+ "id": 35536,
10976
10976
  "name": "require",
10977
10977
  "nodeType": "Identifier",
10978
10978
  "overloadedDeclarations": [
@@ -10986,7 +10986,7 @@
10986
10986
  "typeString": "function (bool,string memory) pure"
10987
10987
  }
10988
10988
  },
10989
- "id": 35543,
10989
+ "id": 35546,
10990
10990
  "isConstant": false,
10991
10991
  "isLValue": false,
10992
10992
  "isPure": false,
@@ -11001,7 +11001,7 @@
11001
11001
  "typeString": "tuple()"
11002
11002
  }
11003
11003
  },
11004
- "id": 35544,
11004
+ "id": 35547,
11005
11005
  "nodeType": "ExpressionStatement",
11006
11006
  "src": "1267:62:100"
11007
11007
  },
@@ -11009,11 +11009,11 @@
11009
11009
  "expression": {
11010
11010
  "arguments": [
11011
11011
  {
11012
- "id": 35546,
11012
+ "id": 35549,
11013
11013
  "name": "BACKEND_ROLE",
11014
11014
  "nodeType": "Identifier",
11015
11015
  "overloadedDeclarations": [],
11016
- "referencedDeclaration": 35487,
11016
+ "referencedDeclaration": 35490,
11017
11017
  "src": "1354:12:100",
11018
11018
  "typeDescriptions": {
11019
11019
  "typeIdentifier": "t_bytes32",
@@ -11022,24 +11022,24 @@
11022
11022
  },
11023
11023
  {
11024
11024
  "baseExpression": {
11025
- "id": 35547,
11025
+ "id": 35550,
11026
11026
  "name": "backendAddr",
11027
11027
  "nodeType": "Identifier",
11028
11028
  "overloadedDeclarations": [],
11029
- "referencedDeclaration": 35504,
11029
+ "referencedDeclaration": 35507,
11030
11030
  "src": "1368:11:100",
11031
11031
  "typeDescriptions": {
11032
11032
  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
11033
11033
  "typeString": "address[] memory"
11034
11034
  }
11035
11035
  },
11036
- "id": 35549,
11036
+ "id": 35552,
11037
11037
  "indexExpression": {
11038
- "id": 35548,
11038
+ "id": 35551,
11039
11039
  "name": "i",
11040
11040
  "nodeType": "Identifier",
11041
11041
  "overloadedDeclarations": [],
11042
- "referencedDeclaration": 35523,
11042
+ "referencedDeclaration": 35526,
11043
11043
  "src": "1380:1:100",
11044
11044
  "typeDescriptions": {
11045
11045
  "typeIdentifier": "t_uint256",
@@ -11069,7 +11069,7 @@
11069
11069
  "typeString": "address"
11070
11070
  }
11071
11071
  ],
11072
- "id": 35545,
11072
+ "id": 35548,
11073
11073
  "name": "_setupRole",
11074
11074
  "nodeType": "Identifier",
11075
11075
  "overloadedDeclarations": [],
@@ -11080,7 +11080,7 @@
11080
11080
  "typeString": "function (bytes32,address)"
11081
11081
  }
11082
11082
  },
11083
- "id": 35550,
11083
+ "id": 35553,
11084
11084
  "isConstant": false,
11085
11085
  "isLValue": false,
11086
11086
  "isPure": false,
@@ -11095,7 +11095,7 @@
11095
11095
  "typeString": "tuple()"
11096
11096
  }
11097
11097
  },
11098
- "id": 35551,
11098
+ "id": 35554,
11099
11099
  "nodeType": "ExpressionStatement",
11100
11100
  "src": "1343:40:100"
11101
11101
  }
@@ -11106,17 +11106,17 @@
11106
11106
  "typeIdentifier": "t_uint256",
11107
11107
  "typeString": "uint256"
11108
11108
  },
11109
- "id": 35529,
11109
+ "id": 35532,
11110
11110
  "isConstant": false,
11111
11111
  "isLValue": false,
11112
11112
  "isPure": false,
11113
11113
  "lValueRequested": false,
11114
11114
  "leftExpression": {
11115
- "id": 35526,
11115
+ "id": 35529,
11116
11116
  "name": "i",
11117
11117
  "nodeType": "Identifier",
11118
11118
  "overloadedDeclarations": [],
11119
- "referencedDeclaration": 35523,
11119
+ "referencedDeclaration": 35526,
11120
11120
  "src": "1224:1:100",
11121
11121
  "typeDescriptions": {
11122
11122
  "typeIdentifier": "t_uint256",
@@ -11127,18 +11127,18 @@
11127
11127
  "operator": "<",
11128
11128
  "rightExpression": {
11129
11129
  "expression": {
11130
- "id": 35527,
11130
+ "id": 35530,
11131
11131
  "name": "backendAddr",
11132
11132
  "nodeType": "Identifier",
11133
11133
  "overloadedDeclarations": [],
11134
- "referencedDeclaration": 35504,
11134
+ "referencedDeclaration": 35507,
11135
11135
  "src": "1228:11:100",
11136
11136
  "typeDescriptions": {
11137
11137
  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
11138
11138
  "typeString": "address[] memory"
11139
11139
  }
11140
11140
  },
11141
- "id": 35528,
11141
+ "id": 35531,
11142
11142
  "isConstant": false,
11143
11143
  "isLValue": false,
11144
11144
  "isPure": false,
@@ -11157,20 +11157,20 @@
11157
11157
  "typeString": "bool"
11158
11158
  }
11159
11159
  },
11160
- "id": 35553,
11160
+ "id": 35556,
11161
11161
  "initializationExpression": {
11162
11162
  "assignments": [
11163
- 35523
11163
+ 35526
11164
11164
  ],
11165
11165
  "declarations": [
11166
11166
  {
11167
11167
  "constant": false,
11168
- "id": 35523,
11168
+ "id": 35526,
11169
11169
  "mutability": "mutable",
11170
11170
  "name": "i",
11171
11171
  "nameLocation": "1217:1:100",
11172
11172
  "nodeType": "VariableDeclaration",
11173
- "scope": 35553,
11173
+ "scope": 35556,
11174
11174
  "src": "1209:9:100",
11175
11175
  "stateVariable": false,
11176
11176
  "storageLocation": "default",
@@ -11179,7 +11179,7 @@
11179
11179
  "typeString": "uint256"
11180
11180
  },
11181
11181
  "typeName": {
11182
- "id": 35522,
11182
+ "id": 35525,
11183
11183
  "name": "uint256",
11184
11184
  "nodeType": "ElementaryTypeName",
11185
11185
  "src": "1209:7:100",
@@ -11191,10 +11191,10 @@
11191
11191
  "visibility": "internal"
11192
11192
  }
11193
11193
  ],
11194
- "id": 35525,
11194
+ "id": 35528,
11195
11195
  "initialValue": {
11196
11196
  "hexValue": "30",
11197
- "id": 35524,
11197
+ "id": 35527,
11198
11198
  "isConstant": false,
11199
11199
  "isLValue": false,
11200
11200
  "isPure": true,
@@ -11213,7 +11213,7 @@
11213
11213
  },
11214
11214
  "loopExpression": {
11215
11215
  "expression": {
11216
- "id": 35531,
11216
+ "id": 35534,
11217
11217
  "isConstant": false,
11218
11218
  "isLValue": false,
11219
11219
  "isPure": false,
@@ -11223,11 +11223,11 @@
11223
11223
  "prefix": true,
11224
11224
  "src": "1248:3:100",
11225
11225
  "subExpression": {
11226
- "id": 35530,
11226
+ "id": 35533,
11227
11227
  "name": "i",
11228
11228
  "nodeType": "Identifier",
11229
11229
  "overloadedDeclarations": [],
11230
- "referencedDeclaration": 35523,
11230
+ "referencedDeclaration": 35526,
11231
11231
  "src": "1250:1:100",
11232
11232
  "typeDescriptions": {
11233
11233
  "typeIdentifier": "t_uint256",
@@ -11239,7 +11239,7 @@
11239
11239
  "typeString": "uint256"
11240
11240
  }
11241
11241
  },
11242
- "id": 35532,
11242
+ "id": 35535,
11243
11243
  "nodeType": "ExpressionStatement",
11244
11244
  "src": "1248:3:100"
11245
11245
  },
@@ -11248,7 +11248,7 @@
11248
11248
  }
11249
11249
  ]
11250
11250
  },
11251
- "id": 35555,
11251
+ "id": 35558,
11252
11252
  "implemented": true,
11253
11253
  "kind": "constructor",
11254
11254
  "modifiers": [],
@@ -11256,17 +11256,17 @@
11256
11256
  "nameLocation": "-1:-1:-1",
11257
11257
  "nodeType": "FunctionDefinition",
11258
11258
  "parameters": {
11259
- "id": 35505,
11259
+ "id": 35508,
11260
11260
  "nodeType": "ParameterList",
11261
11261
  "parameters": [
11262
11262
  {
11263
11263
  "constant": false,
11264
- "id": 35501,
11264
+ "id": 35504,
11265
11265
  "mutability": "mutable",
11266
11266
  "name": "adminRole",
11267
11267
  "nameLocation": "1038:9:100",
11268
11268
  "nodeType": "VariableDeclaration",
11269
- "scope": 35555,
11269
+ "scope": 35558,
11270
11270
  "src": "1030:17:100",
11271
11271
  "stateVariable": false,
11272
11272
  "storageLocation": "default",
@@ -11275,7 +11275,7 @@
11275
11275
  "typeString": "address"
11276
11276
  },
11277
11277
  "typeName": {
11278
- "id": 35500,
11278
+ "id": 35503,
11279
11279
  "name": "address",
11280
11280
  "nodeType": "ElementaryTypeName",
11281
11281
  "src": "1030:7:100",
@@ -11289,12 +11289,12 @@
11289
11289
  },
11290
11290
  {
11291
11291
  "constant": false,
11292
- "id": 35504,
11292
+ "id": 35507,
11293
11293
  "mutability": "mutable",
11294
11294
  "name": "backendAddr",
11295
11295
  "nameLocation": "1066:11:100",
11296
11296
  "nodeType": "VariableDeclaration",
11297
- "scope": 35555,
11297
+ "scope": 35558,
11298
11298
  "src": "1049:28:100",
11299
11299
  "stateVariable": false,
11300
11300
  "storageLocation": "memory",
@@ -11304,7 +11304,7 @@
11304
11304
  },
11305
11305
  "typeName": {
11306
11306
  "baseType": {
11307
- "id": 35502,
11307
+ "id": 35505,
11308
11308
  "name": "address",
11309
11309
  "nodeType": "ElementaryTypeName",
11310
11310
  "src": "1049:7:100",
@@ -11314,7 +11314,7 @@
11314
11314
  "typeString": "address"
11315
11315
  }
11316
11316
  },
11317
- "id": 35503,
11317
+ "id": 35506,
11318
11318
  "nodeType": "ArrayTypeName",
11319
11319
  "src": "1049:9:100",
11320
11320
  "typeDescriptions": {
@@ -11328,12 +11328,12 @@
11328
11328
  "src": "1029:49:100"
11329
11329
  },
11330
11330
  "returnParameters": {
11331
- "id": 35506,
11331
+ "id": 35509,
11332
11332
  "nodeType": "ParameterList",
11333
11333
  "parameters": [],
11334
11334
  "src": "1079:0:100"
11335
11335
  },
11336
- "scope": 35792,
11336
+ "scope": 35795,
11337
11337
  "src": "1018:382:100",
11338
11338
  "stateMutability": "nonpayable",
11339
11339
  "virtual": false,
@@ -11341,7 +11341,7 @@
11341
11341
  },
11342
11342
  {
11343
11343
  "body": {
11344
- "id": 35661,
11344
+ "id": 35664,
11345
11345
  "nodeType": "Block",
11346
11346
  "src": "1848:765:100",
11347
11347
  "statements": [
@@ -11353,7 +11353,7 @@
11353
11353
  "typeIdentifier": "t_bool",
11354
11354
  "typeString": "bool"
11355
11355
  },
11356
- "id": 35581,
11356
+ "id": 35584,
11357
11357
  "isConstant": false,
11358
11358
  "isLValue": false,
11359
11359
  "isPure": false,
@@ -11363,14 +11363,14 @@
11363
11363
  "typeIdentifier": "t_address",
11364
11364
  "typeString": "address"
11365
11365
  },
11366
- "id": 35569,
11366
+ "id": 35572,
11367
11367
  "isConstant": false,
11368
11368
  "isLValue": false,
11369
11369
  "isPure": false,
11370
11370
  "lValueRequested": false,
11371
11371
  "leftExpression": {
11372
11372
  "expression": {
11373
- "id": 35566,
11373
+ "id": 35569,
11374
11374
  "name": "msg",
11375
11375
  "nodeType": "Identifier",
11376
11376
  "overloadedDeclarations": [],
@@ -11381,7 +11381,7 @@
11381
11381
  "typeString": "msg"
11382
11382
  }
11383
11383
  },
11384
- "id": 35567,
11384
+ "id": 35570,
11385
11385
  "isConstant": false,
11386
11386
  "isLValue": false,
11387
11387
  "isPure": false,
@@ -11397,11 +11397,11 @@
11397
11397
  "nodeType": "BinaryOperation",
11398
11398
  "operator": "==",
11399
11399
  "rightExpression": {
11400
- "id": 35568,
11400
+ "id": 35571,
11401
11401
  "name": "account",
11402
11402
  "nodeType": "Identifier",
11403
11403
  "overloadedDeclarations": [],
11404
- "referencedDeclaration": 35560,
11404
+ "referencedDeclaration": 35563,
11405
11405
  "src": "1880:7:100",
11406
11406
  "typeDescriptions": {
11407
11407
  "typeIdentifier": "t_address",
@@ -11423,7 +11423,7 @@
11423
11423
  "typeIdentifier": "t_bool",
11424
11424
  "typeString": "bool"
11425
11425
  },
11426
- "id": 35579,
11426
+ "id": 35582,
11427
11427
  "isConstant": false,
11428
11428
  "isLValue": false,
11429
11429
  "isPure": false,
@@ -11431,11 +11431,11 @@
11431
11431
  "leftExpression": {
11432
11432
  "arguments": [
11433
11433
  {
11434
- "id": 35571,
11434
+ "id": 35574,
11435
11435
  "name": "BACKEND_ROLE",
11436
11436
  "nodeType": "Identifier",
11437
11437
  "overloadedDeclarations": [],
11438
- "referencedDeclaration": 35487,
11438
+ "referencedDeclaration": 35490,
11439
11439
  "src": "1913:12:100",
11440
11440
  "typeDescriptions": {
11441
11441
  "typeIdentifier": "t_bytes32",
@@ -11444,7 +11444,7 @@
11444
11444
  },
11445
11445
  {
11446
11446
  "expression": {
11447
- "id": 35572,
11447
+ "id": 35575,
11448
11448
  "name": "msg",
11449
11449
  "nodeType": "Identifier",
11450
11450
  "overloadedDeclarations": [],
@@ -11455,7 +11455,7 @@
11455
11455
  "typeString": "msg"
11456
11456
  }
11457
11457
  },
11458
- "id": 35573,
11458
+ "id": 35576,
11459
11459
  "isConstant": false,
11460
11460
  "isLValue": false,
11461
11461
  "isPure": false,
@@ -11480,7 +11480,7 @@
11480
11480
  "typeString": "address"
11481
11481
  }
11482
11482
  ],
11483
- "id": 35570,
11483
+ "id": 35573,
11484
11484
  "name": "hasRole",
11485
11485
  "nodeType": "Identifier",
11486
11486
  "overloadedDeclarations": [],
@@ -11491,7 +11491,7 @@
11491
11491
  "typeString": "function (bytes32,address) view returns (bool)"
11492
11492
  }
11493
11493
  },
11494
- "id": 35574,
11494
+ "id": 35577,
11495
11495
  "isConstant": false,
11496
11496
  "isLValue": false,
11497
11497
  "isPure": false,
@@ -11509,7 +11509,7 @@
11509
11509
  "nodeType": "BinaryOperation",
11510
11510
  "operator": "&&",
11511
11511
  "rightExpression": {
11512
- "id": 35578,
11512
+ "id": 35581,
11513
11513
  "isConstant": false,
11514
11514
  "isLValue": false,
11515
11515
  "isPure": false,
@@ -11520,24 +11520,24 @@
11520
11520
  "src": "1954:17:100",
11521
11521
  "subExpression": {
11522
11522
  "baseExpression": {
11523
- "id": 35575,
11523
+ "id": 35578,
11524
11524
  "name": "_optout",
11525
11525
  "nodeType": "Identifier",
11526
11526
  "overloadedDeclarations": [],
11527
- "referencedDeclaration": 35499,
11527
+ "referencedDeclaration": 35502,
11528
11528
  "src": "1955:7:100",
11529
11529
  "typeDescriptions": {
11530
11530
  "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
11531
11531
  "typeString": "mapping(address => bool)"
11532
11532
  }
11533
11533
  },
11534
- "id": 35577,
11534
+ "id": 35580,
11535
11535
  "indexExpression": {
11536
- "id": 35576,
11536
+ "id": 35579,
11537
11537
  "name": "account",
11538
11538
  "nodeType": "Identifier",
11539
11539
  "overloadedDeclarations": [],
11540
- "referencedDeclaration": 35560,
11540
+ "referencedDeclaration": 35563,
11541
11541
  "src": "1963:7:100",
11542
11542
  "typeDescriptions": {
11543
11543
  "typeIdentifier": "t_address",
@@ -11567,7 +11567,7 @@
11567
11567
  }
11568
11568
  }
11569
11569
  ],
11570
- "id": 35580,
11570
+ "id": 35583,
11571
11571
  "isConstant": false,
11572
11572
  "isInlineArray": false,
11573
11573
  "isLValue": false,
@@ -11588,7 +11588,7 @@
11588
11588
  },
11589
11589
  {
11590
11590
  "hexValue": "6f7065726174696f6e206e6f7420616c6c6f776564",
11591
- "id": 35582,
11591
+ "id": 35585,
11592
11592
  "isConstant": false,
11593
11593
  "isLValue": false,
11594
11594
  "isPure": true,
@@ -11614,7 +11614,7 @@
11614
11614
  "typeString": "literal_string \"operation not allowed\""
11615
11615
  }
11616
11616
  ],
11617
- "id": 35565,
11617
+ "id": 35568,
11618
11618
  "name": "require",
11619
11619
  "nodeType": "Identifier",
11620
11620
  "overloadedDeclarations": [
@@ -11628,7 +11628,7 @@
11628
11628
  "typeString": "function (bool,string memory) pure"
11629
11629
  }
11630
11630
  },
11631
- "id": 35583,
11631
+ "id": 35586,
11632
11632
  "isConstant": false,
11633
11633
  "isLValue": false,
11634
11634
  "isPure": false,
@@ -11643,23 +11643,23 @@
11643
11643
  "typeString": "tuple()"
11644
11644
  }
11645
11645
  },
11646
- "id": 35584,
11646
+ "id": 35587,
11647
11647
  "nodeType": "ExpressionStatement",
11648
11648
  "src": "1858:149:100"
11649
11649
  },
11650
11650
  {
11651
11651
  "assignments": [
11652
- 35587
11652
+ 35590
11653
11653
  ],
11654
11654
  "declarations": [
11655
11655
  {
11656
11656
  "constant": false,
11657
- "id": 35587,
11657
+ "id": 35590,
11658
11658
  "mutability": "mutable",
11659
11659
  "name": "superToken",
11660
11660
  "nameLocation": "2061:10:100",
11661
11661
  "nodeType": "VariableDeclaration",
11662
- "scope": 35661,
11662
+ "scope": 35664,
11663
11663
  "src": "2049:22:100",
11664
11664
  "stateVariable": false,
11665
11665
  "storageLocation": "default",
@@ -11668,10 +11668,10 @@
11668
11668
  "typeString": "contract ISuperToken"
11669
11669
  },
11670
11670
  "typeName": {
11671
- "id": 35586,
11671
+ "id": 35589,
11672
11672
  "nodeType": "UserDefinedTypeName",
11673
11673
  "pathNode": {
11674
- "id": 35585,
11674
+ "id": 35588,
11675
11675
  "name": "ISuperToken",
11676
11676
  "nodeType": "IdentifierPath",
11677
11677
  "referencedDeclaration": 17756,
@@ -11687,15 +11687,15 @@
11687
11687
  "visibility": "internal"
11688
11688
  }
11689
11689
  ],
11690
- "id": 35591,
11690
+ "id": 35594,
11691
11691
  "initialValue": {
11692
11692
  "arguments": [
11693
11693
  {
11694
- "id": 35589,
11694
+ "id": 35592,
11695
11695
  "name": "superTokenAddr",
11696
11696
  "nodeType": "Identifier",
11697
11697
  "overloadedDeclarations": [],
11698
- "referencedDeclaration": 35558,
11698
+ "referencedDeclaration": 35561,
11699
11699
  "src": "2086:14:100",
11700
11700
  "typeDescriptions": {
11701
11701
  "typeIdentifier": "t_address",
@@ -11710,7 +11710,7 @@
11710
11710
  "typeString": "address"
11711
11711
  }
11712
11712
  ],
11713
- "id": 35588,
11713
+ "id": 35591,
11714
11714
  "name": "ISuperToken",
11715
11715
  "nodeType": "Identifier",
11716
11716
  "overloadedDeclarations": [],
@@ -11721,7 +11721,7 @@
11721
11721
  "typeString": "type(contract ISuperToken)"
11722
11722
  }
11723
11723
  },
11724
- "id": 35590,
11724
+ "id": 35593,
11725
11725
  "isConstant": false,
11726
11726
  "isLValue": false,
11727
11727
  "isPure": false,
@@ -11741,17 +11741,17 @@
11741
11741
  },
11742
11742
  {
11743
11743
  "assignments": [
11744
- 35594
11744
+ 35597
11745
11745
  ],
11746
11746
  "declarations": [
11747
11747
  {
11748
11748
  "constant": false,
11749
- "id": 35594,
11749
+ "id": 35597,
11750
11750
  "mutability": "mutable",
11751
11751
  "name": "token",
11752
11752
  "nameLocation": "2150:5:100",
11753
11753
  "nodeType": "VariableDeclaration",
11754
- "scope": 35661,
11754
+ "scope": 35664,
11755
11755
  "src": "2143:12:100",
11756
11756
  "stateVariable": false,
11757
11757
  "storageLocation": "default",
@@ -11760,10 +11760,10 @@
11760
11760
  "typeString": "contract IERC20"
11761
11761
  },
11762
11762
  "typeName": {
11763
- "id": 35593,
11763
+ "id": 35596,
11764
11764
  "nodeType": "UserDefinedTypeName",
11765
11765
  "pathNode": {
11766
- "id": 35592,
11766
+ "id": 35595,
11767
11767
  "name": "IERC20",
11768
11768
  "nodeType": "IdentifierPath",
11769
11769
  "referencedDeclaration": 1520,
@@ -11779,7 +11779,7 @@
11779
11779
  "visibility": "internal"
11780
11780
  }
11781
11781
  ],
11782
- "id": 35600,
11782
+ "id": 35603,
11783
11783
  "initialValue": {
11784
11784
  "arguments": [
11785
11785
  {
@@ -11787,18 +11787,18 @@
11787
11787
  "expression": {
11788
11788
  "argumentTypes": [],
11789
11789
  "expression": {
11790
- "id": 35596,
11790
+ "id": 35599,
11791
11791
  "name": "superToken",
11792
11792
  "nodeType": "Identifier",
11793
11793
  "overloadedDeclarations": [],
11794
- "referencedDeclaration": 35587,
11794
+ "referencedDeclaration": 35590,
11795
11795
  "src": "2165:10:100",
11796
11796
  "typeDescriptions": {
11797
11797
  "typeIdentifier": "t_contract$_ISuperToken_$17756",
11798
11798
  "typeString": "contract ISuperToken"
11799
11799
  }
11800
11800
  },
11801
- "id": 35597,
11801
+ "id": 35600,
11802
11802
  "isConstant": false,
11803
11803
  "isLValue": false,
11804
11804
  "isPure": false,
@@ -11812,7 +11812,7 @@
11812
11812
  "typeString": "function () view external returns (address)"
11813
11813
  }
11814
11814
  },
11815
- "id": 35598,
11815
+ "id": 35601,
11816
11816
  "isConstant": false,
11817
11817
  "isLValue": false,
11818
11818
  "isPure": false,
@@ -11835,7 +11835,7 @@
11835
11835
  "typeString": "address"
11836
11836
  }
11837
11837
  ],
11838
- "id": 35595,
11838
+ "id": 35598,
11839
11839
  "name": "IERC20",
11840
11840
  "nodeType": "Identifier",
11841
11841
  "overloadedDeclarations": [],
@@ -11846,7 +11846,7 @@
11846
11846
  "typeString": "type(contract IERC20)"
11847
11847
  }
11848
11848
  },
11849
- "id": 35599,
11849
+ "id": 35602,
11850
11850
  "isConstant": false,
11851
11851
  "isLValue": false,
11852
11852
  "isPure": false,
@@ -11866,17 +11866,17 @@
11866
11866
  },
11867
11867
  {
11868
11868
  "assignments": [
11869
- 35602
11869
+ 35605
11870
11870
  ],
11871
11871
  "declarations": [
11872
11872
  {
11873
11873
  "constant": false,
11874
- "id": 35602,
11874
+ "id": 35605,
11875
11875
  "mutability": "mutable",
11876
11876
  "name": "beforeBalance",
11877
11877
  "nameLocation": "2215:13:100",
11878
11878
  "nodeType": "VariableDeclaration",
11879
- "scope": 35661,
11879
+ "scope": 35664,
11880
11880
  "src": "2207:21:100",
11881
11881
  "stateVariable": false,
11882
11882
  "storageLocation": "default",
@@ -11885,7 +11885,7 @@
11885
11885
  "typeString": "uint256"
11886
11886
  },
11887
11887
  "typeName": {
11888
- "id": 35601,
11888
+ "id": 35604,
11889
11889
  "name": "uint256",
11890
11890
  "nodeType": "ElementaryTypeName",
11891
11891
  "src": "2207:7:100",
@@ -11897,20 +11897,20 @@
11897
11897
  "visibility": "internal"
11898
11898
  }
11899
11899
  ],
11900
- "id": 35610,
11900
+ "id": 35613,
11901
11901
  "initialValue": {
11902
11902
  "arguments": [
11903
11903
  {
11904
11904
  "arguments": [
11905
11905
  {
11906
- "id": 35607,
11906
+ "id": 35610,
11907
11907
  "name": "this",
11908
11908
  "nodeType": "Identifier",
11909
11909
  "overloadedDeclarations": [],
11910
11910
  "referencedDeclaration": 4294967268,
11911
11911
  "src": "2255:4:100",
11912
11912
  "typeDescriptions": {
11913
- "typeIdentifier": "t_contract$_SuperUpgrader_$35792",
11913
+ "typeIdentifier": "t_contract$_SuperUpgrader_$35795",
11914
11914
  "typeString": "contract SuperUpgrader"
11915
11915
  }
11916
11916
  }
@@ -11918,11 +11918,11 @@
11918
11918
  "expression": {
11919
11919
  "argumentTypes": [
11920
11920
  {
11921
- "typeIdentifier": "t_contract$_SuperUpgrader_$35792",
11921
+ "typeIdentifier": "t_contract$_SuperUpgrader_$35795",
11922
11922
  "typeString": "contract SuperUpgrader"
11923
11923
  }
11924
11924
  ],
11925
- "id": 35606,
11925
+ "id": 35609,
11926
11926
  "isConstant": false,
11927
11927
  "isLValue": false,
11928
11928
  "isPure": true,
@@ -11934,14 +11934,14 @@
11934
11934
  "typeString": "type(address)"
11935
11935
  },
11936
11936
  "typeName": {
11937
- "id": 35605,
11937
+ "id": 35608,
11938
11938
  "name": "address",
11939
11939
  "nodeType": "ElementaryTypeName",
11940
11940
  "src": "2247:7:100",
11941
11941
  "typeDescriptions": {}
11942
11942
  }
11943
11943
  },
11944
- "id": 35608,
11944
+ "id": 35611,
11945
11945
  "isConstant": false,
11946
11946
  "isLValue": false,
11947
11947
  "isPure": false,
@@ -11965,18 +11965,18 @@
11965
11965
  }
11966
11966
  ],
11967
11967
  "expression": {
11968
- "id": 35603,
11968
+ "id": 35606,
11969
11969
  "name": "token",
11970
11970
  "nodeType": "Identifier",
11971
11971
  "overloadedDeclarations": [],
11972
- "referencedDeclaration": 35594,
11972
+ "referencedDeclaration": 35597,
11973
11973
  "src": "2231:5:100",
11974
11974
  "typeDescriptions": {
11975
11975
  "typeIdentifier": "t_contract$_IERC20_$1520",
11976
11976
  "typeString": "contract IERC20"
11977
11977
  }
11978
11978
  },
11979
- "id": 35604,
11979
+ "id": 35607,
11980
11980
  "isConstant": false,
11981
11981
  "isLValue": false,
11982
11982
  "isPure": false,
@@ -11990,7 +11990,7 @@
11990
11990
  "typeString": "function (address) view external returns (uint256)"
11991
11991
  }
11992
11992
  },
11993
- "id": 35609,
11993
+ "id": 35612,
11994
11994
  "isConstant": false,
11995
11995
  "isLValue": false,
11996
11996
  "isPure": false,
@@ -12012,11 +12012,11 @@
12012
12012
  "expression": {
12013
12013
  "arguments": [
12014
12014
  {
12015
- "id": 35614,
12015
+ "id": 35617,
12016
12016
  "name": "account",
12017
12017
  "nodeType": "Identifier",
12018
12018
  "overloadedDeclarations": [],
12019
- "referencedDeclaration": 35560,
12019
+ "referencedDeclaration": 35563,
12020
12020
  "src": "2294:7:100",
12021
12021
  "typeDescriptions": {
12022
12022
  "typeIdentifier": "t_address",
@@ -12026,14 +12026,14 @@
12026
12026
  {
12027
12027
  "arguments": [
12028
12028
  {
12029
- "id": 35617,
12029
+ "id": 35620,
12030
12030
  "name": "this",
12031
12031
  "nodeType": "Identifier",
12032
12032
  "overloadedDeclarations": [],
12033
12033
  "referencedDeclaration": 4294967268,
12034
12034
  "src": "2311:4:100",
12035
12035
  "typeDescriptions": {
12036
- "typeIdentifier": "t_contract$_SuperUpgrader_$35792",
12036
+ "typeIdentifier": "t_contract$_SuperUpgrader_$35795",
12037
12037
  "typeString": "contract SuperUpgrader"
12038
12038
  }
12039
12039
  }
@@ -12041,11 +12041,11 @@
12041
12041
  "expression": {
12042
12042
  "argumentTypes": [
12043
12043
  {
12044
- "typeIdentifier": "t_contract$_SuperUpgrader_$35792",
12044
+ "typeIdentifier": "t_contract$_SuperUpgrader_$35795",
12045
12045
  "typeString": "contract SuperUpgrader"
12046
12046
  }
12047
12047
  ],
12048
- "id": 35616,
12048
+ "id": 35619,
12049
12049
  "isConstant": false,
12050
12050
  "isLValue": false,
12051
12051
  "isPure": true,
@@ -12057,14 +12057,14 @@
12057
12057
  "typeString": "type(address)"
12058
12058
  },
12059
12059
  "typeName": {
12060
- "id": 35615,
12060
+ "id": 35618,
12061
12061
  "name": "address",
12062
12062
  "nodeType": "ElementaryTypeName",
12063
12063
  "src": "2303:7:100",
12064
12064
  "typeDescriptions": {}
12065
12065
  }
12066
12066
  },
12067
- "id": 35618,
12067
+ "id": 35621,
12068
12068
  "isConstant": false,
12069
12069
  "isLValue": false,
12070
12070
  "isPure": false,
@@ -12080,11 +12080,11 @@
12080
12080
  }
12081
12081
  },
12082
12082
  {
12083
- "id": 35619,
12083
+ "id": 35622,
12084
12084
  "name": "amount",
12085
12085
  "nodeType": "Identifier",
12086
12086
  "overloadedDeclarations": [],
12087
- "referencedDeclaration": 35562,
12087
+ "referencedDeclaration": 35565,
12088
12088
  "src": "2318:6:100",
12089
12089
  "typeDescriptions": {
12090
12090
  "typeIdentifier": "t_uint256",
@@ -12108,18 +12108,18 @@
12108
12108
  }
12109
12109
  ],
12110
12110
  "expression": {
12111
- "id": 35611,
12111
+ "id": 35614,
12112
12112
  "name": "token",
12113
12113
  "nodeType": "Identifier",
12114
12114
  "overloadedDeclarations": [],
12115
- "referencedDeclaration": 35594,
12115
+ "referencedDeclaration": 35597,
12116
12116
  "src": "2271:5:100",
12117
12117
  "typeDescriptions": {
12118
12118
  "typeIdentifier": "t_contract$_IERC20_$1520",
12119
12119
  "typeString": "contract IERC20"
12120
12120
  }
12121
12121
  },
12122
- "id": 35613,
12122
+ "id": 35616,
12123
12123
  "isConstant": false,
12124
12124
  "isLValue": false,
12125
12125
  "isPure": false,
@@ -12133,7 +12133,7 @@
12133
12133
  "typeString": "function (contract IERC20,address,address,uint256)"
12134
12134
  }
12135
12135
  },
12136
- "id": 35620,
12136
+ "id": 35623,
12137
12137
  "isConstant": false,
12138
12138
  "isLValue": false,
12139
12139
  "isPure": false,
@@ -12148,7 +12148,7 @@
12148
12148
  "typeString": "tuple()"
12149
12149
  }
12150
12150
  },
12151
- "id": 35621,
12151
+ "id": 35624,
12152
12152
  "nodeType": "ExpressionStatement",
12153
12153
  "src": "2271:54:100"
12154
12154
  },
@@ -12158,11 +12158,11 @@
12158
12158
  {
12159
12159
  "arguments": [
12160
12160
  {
12161
- "id": 35627,
12161
+ "id": 35630,
12162
12162
  "name": "superToken",
12163
12163
  "nodeType": "Identifier",
12164
12164
  "overloadedDeclarations": [],
12165
- "referencedDeclaration": 35587,
12165
+ "referencedDeclaration": 35590,
12166
12166
  "src": "2361:10:100",
12167
12167
  "typeDescriptions": {
12168
12168
  "typeIdentifier": "t_contract$_ISuperToken_$17756",
@@ -12177,7 +12177,7 @@
12177
12177
  "typeString": "contract ISuperToken"
12178
12178
  }
12179
12179
  ],
12180
- "id": 35626,
12180
+ "id": 35629,
12181
12181
  "isConstant": false,
12182
12182
  "isLValue": false,
12183
12183
  "isPure": true,
@@ -12189,14 +12189,14 @@
12189
12189
  "typeString": "type(address)"
12190
12190
  },
12191
12191
  "typeName": {
12192
- "id": 35625,
12192
+ "id": 35628,
12193
12193
  "name": "address",
12194
12194
  "nodeType": "ElementaryTypeName",
12195
12195
  "src": "2353:7:100",
12196
12196
  "typeDescriptions": {}
12197
12197
  }
12198
12198
  },
12199
- "id": 35628,
12199
+ "id": 35631,
12200
12200
  "isConstant": false,
12201
12201
  "isLValue": false,
12202
12202
  "isPure": false,
@@ -12213,7 +12213,7 @@
12213
12213
  },
12214
12214
  {
12215
12215
  "hexValue": "30",
12216
- "id": 35629,
12216
+ "id": 35632,
12217
12217
  "isConstant": false,
12218
12218
  "isLValue": false,
12219
12219
  "isPure": true,
@@ -12240,18 +12240,18 @@
12240
12240
  }
12241
12241
  ],
12242
12242
  "expression": {
12243
- "id": 35622,
12243
+ "id": 35625,
12244
12244
  "name": "token",
12245
12245
  "nodeType": "Identifier",
12246
12246
  "overloadedDeclarations": [],
12247
- "referencedDeclaration": 35594,
12247
+ "referencedDeclaration": 35597,
12248
12248
  "src": "2335:5:100",
12249
12249
  "typeDescriptions": {
12250
12250
  "typeIdentifier": "t_contract$_IERC20_$1520",
12251
12251
  "typeString": "contract IERC20"
12252
12252
  }
12253
12253
  },
12254
- "id": 35624,
12254
+ "id": 35627,
12255
12255
  "isConstant": false,
12256
12256
  "isLValue": false,
12257
12257
  "isPure": false,
@@ -12265,7 +12265,7 @@
12265
12265
  "typeString": "function (contract IERC20,address,uint256)"
12266
12266
  }
12267
12267
  },
12268
- "id": 35630,
12268
+ "id": 35633,
12269
12269
  "isConstant": false,
12270
12270
  "isLValue": false,
12271
12271
  "isPure": false,
@@ -12280,7 +12280,7 @@
12280
12280
  "typeString": "tuple()"
12281
12281
  }
12282
12282
  },
12283
- "id": 35631,
12283
+ "id": 35634,
12284
12284
  "nodeType": "ExpressionStatement",
12285
12285
  "src": "2335:41:100"
12286
12286
  },
@@ -12290,11 +12290,11 @@
12290
12290
  {
12291
12291
  "arguments": [
12292
12292
  {
12293
- "id": 35637,
12293
+ "id": 35640,
12294
12294
  "name": "superToken",
12295
12295
  "nodeType": "Identifier",
12296
12296
  "overloadedDeclarations": [],
12297
- "referencedDeclaration": 35587,
12297
+ "referencedDeclaration": 35590,
12298
12298
  "src": "2412:10:100",
12299
12299
  "typeDescriptions": {
12300
12300
  "typeIdentifier": "t_contract$_ISuperToken_$17756",
@@ -12309,7 +12309,7 @@
12309
12309
  "typeString": "contract ISuperToken"
12310
12310
  }
12311
12311
  ],
12312
- "id": 35636,
12312
+ "id": 35639,
12313
12313
  "isConstant": false,
12314
12314
  "isLValue": false,
12315
12315
  "isPure": true,
@@ -12321,14 +12321,14 @@
12321
12321
  "typeString": "type(address)"
12322
12322
  },
12323
12323
  "typeName": {
12324
- "id": 35635,
12324
+ "id": 35638,
12325
12325
  "name": "address",
12326
12326
  "nodeType": "ElementaryTypeName",
12327
12327
  "src": "2404:7:100",
12328
12328
  "typeDescriptions": {}
12329
12329
  }
12330
12330
  },
12331
- "id": 35638,
12331
+ "id": 35641,
12332
12332
  "isConstant": false,
12333
12333
  "isLValue": false,
12334
12334
  "isPure": false,
@@ -12344,11 +12344,11 @@
12344
12344
  }
12345
12345
  },
12346
12346
  {
12347
- "id": 35639,
12347
+ "id": 35642,
12348
12348
  "name": "amount",
12349
12349
  "nodeType": "Identifier",
12350
12350
  "overloadedDeclarations": [],
12351
- "referencedDeclaration": 35562,
12351
+ "referencedDeclaration": 35565,
12352
12352
  "src": "2425:6:100",
12353
12353
  "typeDescriptions": {
12354
12354
  "typeIdentifier": "t_uint256",
@@ -12368,18 +12368,18 @@
12368
12368
  }
12369
12369
  ],
12370
12370
  "expression": {
12371
- "id": 35632,
12371
+ "id": 35635,
12372
12372
  "name": "token",
12373
12373
  "nodeType": "Identifier",
12374
12374
  "overloadedDeclarations": [],
12375
- "referencedDeclaration": 35594,
12375
+ "referencedDeclaration": 35597,
12376
12376
  "src": "2386:5:100",
12377
12377
  "typeDescriptions": {
12378
12378
  "typeIdentifier": "t_contract$_IERC20_$1520",
12379
12379
  "typeString": "contract IERC20"
12380
12380
  }
12381
12381
  },
12382
- "id": 35634,
12382
+ "id": 35637,
12383
12383
  "isConstant": false,
12384
12384
  "isLValue": false,
12385
12385
  "isPure": false,
@@ -12393,7 +12393,7 @@
12393
12393
  "typeString": "function (contract IERC20,address,uint256)"
12394
12394
  }
12395
12395
  },
12396
- "id": 35640,
12396
+ "id": 35643,
12397
12397
  "isConstant": false,
12398
12398
  "isLValue": false,
12399
12399
  "isPure": false,
@@ -12408,7 +12408,7 @@
12408
12408
  "typeString": "tuple()"
12409
12409
  }
12410
12410
  },
12411
- "id": 35641,
12411
+ "id": 35644,
12412
12412
  "nodeType": "ExpressionStatement",
12413
12413
  "src": "2386:46:100"
12414
12414
  },
@@ -12416,11 +12416,11 @@
12416
12416
  "expression": {
12417
12417
  "arguments": [
12418
12418
  {
12419
- "id": 35645,
12419
+ "id": 35648,
12420
12420
  "name": "account",
12421
12421
  "nodeType": "Identifier",
12422
12422
  "overloadedDeclarations": [],
12423
- "referencedDeclaration": 35560,
12423
+ "referencedDeclaration": 35563,
12424
12424
  "src": "2524:7:100",
12425
12425
  "typeDescriptions": {
12426
12426
  "typeIdentifier": "t_address",
@@ -12432,7 +12432,7 @@
12432
12432
  "typeIdentifier": "t_uint256",
12433
12433
  "typeString": "uint256"
12434
12434
  },
12435
- "id": 35654,
12435
+ "id": 35657,
12436
12436
  "isConstant": false,
12437
12437
  "isLValue": false,
12438
12438
  "isPure": false,
@@ -12442,14 +12442,14 @@
12442
12442
  {
12443
12443
  "arguments": [
12444
12444
  {
12445
- "id": 35650,
12445
+ "id": 35653,
12446
12446
  "name": "this",
12447
12447
  "nodeType": "Identifier",
12448
12448
  "overloadedDeclarations": [],
12449
12449
  "referencedDeclaration": 4294967268,
12450
12450
  "src": "2569:4:100",
12451
12451
  "typeDescriptions": {
12452
- "typeIdentifier": "t_contract$_SuperUpgrader_$35792",
12452
+ "typeIdentifier": "t_contract$_SuperUpgrader_$35795",
12453
12453
  "typeString": "contract SuperUpgrader"
12454
12454
  }
12455
12455
  }
@@ -12457,11 +12457,11 @@
12457
12457
  "expression": {
12458
12458
  "argumentTypes": [
12459
12459
  {
12460
- "typeIdentifier": "t_contract$_SuperUpgrader_$35792",
12460
+ "typeIdentifier": "t_contract$_SuperUpgrader_$35795",
12461
12461
  "typeString": "contract SuperUpgrader"
12462
12462
  }
12463
12463
  ],
12464
- "id": 35649,
12464
+ "id": 35652,
12465
12465
  "isConstant": false,
12466
12466
  "isLValue": false,
12467
12467
  "isPure": true,
@@ -12473,14 +12473,14 @@
12473
12473
  "typeString": "type(address)"
12474
12474
  },
12475
12475
  "typeName": {
12476
- "id": 35648,
12476
+ "id": 35651,
12477
12477
  "name": "address",
12478
12478
  "nodeType": "ElementaryTypeName",
12479
12479
  "src": "2561:7:100",
12480
12480
  "typeDescriptions": {}
12481
12481
  }
12482
12482
  },
12483
- "id": 35651,
12483
+ "id": 35654,
12484
12484
  "isConstant": false,
12485
12485
  "isLValue": false,
12486
12486
  "isPure": false,
@@ -12504,18 +12504,18 @@
12504
12504
  }
12505
12505
  ],
12506
12506
  "expression": {
12507
- "id": 35646,
12507
+ "id": 35649,
12508
12508
  "name": "token",
12509
12509
  "nodeType": "Identifier",
12510
12510
  "overloadedDeclarations": [],
12511
- "referencedDeclaration": 35594,
12511
+ "referencedDeclaration": 35597,
12512
12512
  "src": "2545:5:100",
12513
12513
  "typeDescriptions": {
12514
12514
  "typeIdentifier": "t_contract$_IERC20_$1520",
12515
12515
  "typeString": "contract IERC20"
12516
12516
  }
12517
12517
  },
12518
- "id": 35647,
12518
+ "id": 35650,
12519
12519
  "isConstant": false,
12520
12520
  "isLValue": false,
12521
12521
  "isPure": false,
@@ -12529,7 +12529,7 @@
12529
12529
  "typeString": "function (address) view external returns (uint256)"
12530
12530
  }
12531
12531
  },
12532
- "id": 35652,
12532
+ "id": 35655,
12533
12533
  "isConstant": false,
12534
12534
  "isLValue": false,
12535
12535
  "isPure": false,
@@ -12547,11 +12547,11 @@
12547
12547
  "nodeType": "BinaryOperation",
12548
12548
  "operator": "-",
12549
12549
  "rightExpression": {
12550
- "id": 35653,
12550
+ "id": 35656,
12551
12551
  "name": "beforeBalance",
12552
12552
  "nodeType": "Identifier",
12553
12553
  "overloadedDeclarations": [],
12554
- "referencedDeclaration": 35602,
12554
+ "referencedDeclaration": 35605,
12555
12555
  "src": "2578:13:100",
12556
12556
  "typeDescriptions": {
12557
12557
  "typeIdentifier": "t_uint256",
@@ -12568,7 +12568,7 @@
12568
12568
  "arguments": [
12569
12569
  {
12570
12570
  "hexValue": "30",
12571
- "id": 35657,
12571
+ "id": 35660,
12572
12572
  "isConstant": false,
12573
12573
  "isLValue": false,
12574
12574
  "isPure": true,
@@ -12590,7 +12590,7 @@
12590
12590
  "typeString": "int_const 0"
12591
12591
  }
12592
12592
  ],
12593
- "id": 35656,
12593
+ "id": 35659,
12594
12594
  "isConstant": false,
12595
12595
  "isLValue": false,
12596
12596
  "isPure": true,
@@ -12602,7 +12602,7 @@
12602
12602
  "typeString": "function (uint256) pure returns (bytes memory)"
12603
12603
  },
12604
12604
  "typeName": {
12605
- "id": 35655,
12605
+ "id": 35658,
12606
12606
  "name": "bytes",
12607
12607
  "nodeType": "ElementaryTypeName",
12608
12608
  "src": "2597:5:100",
@@ -12612,7 +12612,7 @@
12612
12612
  }
12613
12613
  }
12614
12614
  },
12615
- "id": 35658,
12615
+ "id": 35661,
12616
12616
  "isConstant": false,
12617
12617
  "isLValue": false,
12618
12618
  "isPure": true,
@@ -12644,18 +12644,18 @@
12644
12644
  }
12645
12645
  ],
12646
12646
  "expression": {
12647
- "id": 35642,
12647
+ "id": 35645,
12648
12648
  "name": "superToken",
12649
12649
  "nodeType": "Identifier",
12650
12650
  "overloadedDeclarations": [],
12651
- "referencedDeclaration": 35587,
12651
+ "referencedDeclaration": 35590,
12652
12652
  "src": "2490:10:100",
12653
12653
  "typeDescriptions": {
12654
12654
  "typeIdentifier": "t_contract$_ISuperToken_$17756",
12655
12655
  "typeString": "contract ISuperToken"
12656
12656
  }
12657
12657
  },
12658
- "id": 35644,
12658
+ "id": 35647,
12659
12659
  "isConstant": false,
12660
12660
  "isLValue": false,
12661
12661
  "isPure": false,
@@ -12669,7 +12669,7 @@
12669
12669
  "typeString": "function (address,uint256,bytes memory) external"
12670
12670
  }
12671
12671
  },
12672
- "id": 35659,
12672
+ "id": 35662,
12673
12673
  "isConstant": false,
12674
12674
  "isLValue": false,
12675
12675
  "isPure": false,
@@ -12684,20 +12684,20 @@
12684
12684
  "typeString": "tuple()"
12685
12685
  }
12686
12686
  },
12687
- "id": 35660,
12687
+ "id": 35663,
12688
12688
  "nodeType": "ExpressionStatement",
12689
12689
  "src": "2490:116:100"
12690
12690
  }
12691
12691
  ]
12692
12692
  },
12693
12693
  "documentation": {
12694
- "id": 35556,
12694
+ "id": 35559,
12695
12695
  "nodeType": "StructuredDocumentation",
12696
12696
  "src": "1406:316:100",
12697
12697
  "text": " @notice The user should ERC20.approve this contract.\n @dev Execute upgrade function in the name of the user\n @param superTokenAddr Super Token Address to upgrade \n @param account User address that previous approved this contract.\n @param amount Amount value to be upgraded."
12698
12698
  },
12699
12699
  "functionSelector": "2a197298",
12700
- "id": 35662,
12700
+ "id": 35665,
12701
12701
  "implemented": true,
12702
12702
  "kind": "function",
12703
12703
  "modifiers": [],
@@ -12705,17 +12705,17 @@
12705
12705
  "nameLocation": "1736:7:100",
12706
12706
  "nodeType": "FunctionDefinition",
12707
12707
  "parameters": {
12708
- "id": 35563,
12708
+ "id": 35566,
12709
12709
  "nodeType": "ParameterList",
12710
12710
  "parameters": [
12711
12711
  {
12712
12712
  "constant": false,
12713
- "id": 35558,
12713
+ "id": 35561,
12714
12714
  "mutability": "mutable",
12715
12715
  "name": "superTokenAddr",
12716
12716
  "nameLocation": "1761:14:100",
12717
12717
  "nodeType": "VariableDeclaration",
12718
- "scope": 35662,
12718
+ "scope": 35665,
12719
12719
  "src": "1753:22:100",
12720
12720
  "stateVariable": false,
12721
12721
  "storageLocation": "default",
@@ -12724,7 +12724,7 @@
12724
12724
  "typeString": "address"
12725
12725
  },
12726
12726
  "typeName": {
12727
- "id": 35557,
12727
+ "id": 35560,
12728
12728
  "name": "address",
12729
12729
  "nodeType": "ElementaryTypeName",
12730
12730
  "src": "1753:7:100",
@@ -12738,12 +12738,12 @@
12738
12738
  },
12739
12739
  {
12740
12740
  "constant": false,
12741
- "id": 35560,
12741
+ "id": 35563,
12742
12742
  "mutability": "mutable",
12743
12743
  "name": "account",
12744
12744
  "nameLocation": "1793:7:100",
12745
12745
  "nodeType": "VariableDeclaration",
12746
- "scope": 35662,
12746
+ "scope": 35665,
12747
12747
  "src": "1785:15:100",
12748
12748
  "stateVariable": false,
12749
12749
  "storageLocation": "default",
@@ -12752,7 +12752,7 @@
12752
12752
  "typeString": "address"
12753
12753
  },
12754
12754
  "typeName": {
12755
- "id": 35559,
12755
+ "id": 35562,
12756
12756
  "name": "address",
12757
12757
  "nodeType": "ElementaryTypeName",
12758
12758
  "src": "1785:7:100",
@@ -12766,12 +12766,12 @@
12766
12766
  },
12767
12767
  {
12768
12768
  "constant": false,
12769
- "id": 35562,
12769
+ "id": 35565,
12770
12770
  "mutability": "mutable",
12771
12771
  "name": "amount",
12772
12772
  "nameLocation": "1818:6:100",
12773
12773
  "nodeType": "VariableDeclaration",
12774
- "scope": 35662,
12774
+ "scope": 35665,
12775
12775
  "src": "1810:14:100",
12776
12776
  "stateVariable": false,
12777
12777
  "storageLocation": "default",
@@ -12780,7 +12780,7 @@
12780
12780
  "typeString": "uint256"
12781
12781
  },
12782
12782
  "typeName": {
12783
- "id": 35561,
12783
+ "id": 35564,
12784
12784
  "name": "uint256",
12785
12785
  "nodeType": "ElementaryTypeName",
12786
12786
  "src": "1810:7:100",
@@ -12795,12 +12795,12 @@
12795
12795
  "src": "1743:87:100"
12796
12796
  },
12797
12797
  "returnParameters": {
12798
- "id": 35564,
12798
+ "id": 35567,
12799
12799
  "nodeType": "ParameterList",
12800
12800
  "parameters": [],
12801
12801
  "src": "1848:0:100"
12802
12802
  },
12803
- "scope": 35792,
12803
+ "scope": 35795,
12804
12804
  "src": "1727:886:100",
12805
12805
  "stateMutability": "nonpayable",
12806
12806
  "virtual": false,
@@ -12808,7 +12808,7 @@
12808
12808
  },
12809
12809
  {
12810
12810
  "body": {
12811
- "id": 35675,
12811
+ "id": 35678,
12812
12812
  "nodeType": "Block",
12813
12813
  "src": "2760:54:100",
12814
12814
  "statements": [
@@ -12816,11 +12816,11 @@
12816
12816
  "expression": {
12817
12817
  "arguments": [
12818
12818
  {
12819
- "id": 35671,
12819
+ "id": 35674,
12820
12820
  "name": "BACKEND_ROLE",
12821
12821
  "nodeType": "Identifier",
12822
12822
  "overloadedDeclarations": [],
12823
- "referencedDeclaration": 35487,
12823
+ "referencedDeclaration": 35490,
12824
12824
  "src": "2785:12:100",
12825
12825
  "typeDescriptions": {
12826
12826
  "typeIdentifier": "t_bytes32",
@@ -12828,11 +12828,11 @@
12828
12828
  }
12829
12829
  },
12830
12830
  {
12831
- "id": 35672,
12831
+ "id": 35675,
12832
12832
  "name": "account",
12833
12833
  "nodeType": "Identifier",
12834
12834
  "overloadedDeclarations": [],
12835
- "referencedDeclaration": 35665,
12835
+ "referencedDeclaration": 35668,
12836
12836
  "src": "2799:7:100",
12837
12837
  "typeDescriptions": {
12838
12838
  "typeIdentifier": "t_address",
@@ -12851,7 +12851,7 @@
12851
12851
  "typeString": "address"
12852
12852
  }
12853
12853
  ],
12854
- "id": 35670,
12854
+ "id": 35673,
12855
12855
  "name": "hasRole",
12856
12856
  "nodeType": "Identifier",
12857
12857
  "overloadedDeclarations": [],
@@ -12862,7 +12862,7 @@
12862
12862
  "typeString": "function (bytes32,address) view returns (bool)"
12863
12863
  }
12864
12864
  },
12865
- "id": 35673,
12865
+ "id": 35676,
12866
12866
  "isConstant": false,
12867
12867
  "isLValue": false,
12868
12868
  "isPure": false,
@@ -12877,21 +12877,21 @@
12877
12877
  "typeString": "bool"
12878
12878
  }
12879
12879
  },
12880
- "functionReturnParameters": 35669,
12881
- "id": 35674,
12880
+ "functionReturnParameters": 35672,
12881
+ "id": 35677,
12882
12882
  "nodeType": "Return",
12883
12883
  "src": "2770:37:100"
12884
12884
  }
12885
12885
  ]
12886
12886
  },
12887
12887
  "documentation": {
12888
- "id": 35663,
12888
+ "id": 35666,
12889
12889
  "nodeType": "StructuredDocumentation",
12890
12890
  "src": "2619:63:100",
12891
12891
  "text": " @dev Test if account is member BACKEND_ROLE "
12892
12892
  },
12893
12893
  "functionSelector": "44e9d2fb",
12894
- "id": 35676,
12894
+ "id": 35679,
12895
12895
  "implemented": true,
12896
12896
  "kind": "function",
12897
12897
  "modifiers": [],
@@ -12899,17 +12899,17 @@
12899
12899
  "nameLocation": "2696:14:100",
12900
12900
  "nodeType": "FunctionDefinition",
12901
12901
  "parameters": {
12902
- "id": 35666,
12902
+ "id": 35669,
12903
12903
  "nodeType": "ParameterList",
12904
12904
  "parameters": [
12905
12905
  {
12906
12906
  "constant": false,
12907
- "id": 35665,
12907
+ "id": 35668,
12908
12908
  "mutability": "mutable",
12909
12909
  "name": "account",
12910
12910
  "nameLocation": "2719:7:100",
12911
12911
  "nodeType": "VariableDeclaration",
12912
- "scope": 35676,
12912
+ "scope": 35679,
12913
12913
  "src": "2711:15:100",
12914
12914
  "stateVariable": false,
12915
12915
  "storageLocation": "default",
@@ -12918,7 +12918,7 @@
12918
12918
  "typeString": "address"
12919
12919
  },
12920
12920
  "typeName": {
12921
- "id": 35664,
12921
+ "id": 35667,
12922
12922
  "name": "address",
12923
12923
  "nodeType": "ElementaryTypeName",
12924
12924
  "src": "2711:7:100",
@@ -12934,17 +12934,17 @@
12934
12934
  "src": "2710:17:100"
12935
12935
  },
12936
12936
  "returnParameters": {
12937
- "id": 35669,
12937
+ "id": 35672,
12938
12938
  "nodeType": "ParameterList",
12939
12939
  "parameters": [
12940
12940
  {
12941
12941
  "constant": false,
12942
- "id": 35668,
12942
+ "id": 35671,
12943
12943
  "mutability": "mutable",
12944
12944
  "name": "yes",
12945
12945
  "nameLocation": "2755:3:100",
12946
12946
  "nodeType": "VariableDeclaration",
12947
- "scope": 35676,
12947
+ "scope": 35679,
12948
12948
  "src": "2750:8:100",
12949
12949
  "stateVariable": false,
12950
12950
  "storageLocation": "default",
@@ -12953,7 +12953,7 @@
12953
12953
  "typeString": "bool"
12954
12954
  },
12955
12955
  "typeName": {
12956
- "id": 35667,
12956
+ "id": 35670,
12957
12957
  "name": "bool",
12958
12958
  "nodeType": "ElementaryTypeName",
12959
12959
  "src": "2750:4:100",
@@ -12967,7 +12967,7 @@
12967
12967
  ],
12968
12968
  "src": "2749:10:100"
12969
12969
  },
12970
- "scope": 35792,
12970
+ "scope": 35795,
12971
12971
  "src": "2687:127:100",
12972
12972
  "stateMutability": "view",
12973
12973
  "virtual": false,
@@ -12975,7 +12975,7 @@
12975
12975
  },
12976
12976
  {
12977
12977
  "body": {
12978
- "id": 35697,
12978
+ "id": 35700,
12979
12979
  "nodeType": "Block",
12980
12980
  "src": "2930:176:100",
12981
12981
  "statements": [
@@ -12987,17 +12987,17 @@
12987
12987
  "typeIdentifier": "t_address",
12988
12988
  "typeString": "address"
12989
12989
  },
12990
- "id": 35688,
12990
+ "id": 35691,
12991
12991
  "isConstant": false,
12992
12992
  "isLValue": false,
12993
12993
  "isPure": false,
12994
12994
  "lValueRequested": false,
12995
12995
  "leftExpression": {
12996
- "id": 35683,
12996
+ "id": 35686,
12997
12997
  "name": "account",
12998
12998
  "nodeType": "Identifier",
12999
12999
  "overloadedDeclarations": [],
13000
- "referencedDeclaration": 35679,
13000
+ "referencedDeclaration": 35682,
13001
13001
  "src": "2948:7:100",
13002
13002
  "typeDescriptions": {
13003
13003
  "typeIdentifier": "t_address",
@@ -13010,7 +13010,7 @@
13010
13010
  "arguments": [
13011
13011
  {
13012
13012
  "hexValue": "30",
13013
- "id": 35686,
13013
+ "id": 35689,
13014
13014
  "isConstant": false,
13015
13015
  "isLValue": false,
13016
13016
  "isPure": true,
@@ -13032,7 +13032,7 @@
13032
13032
  "typeString": "int_const 0"
13033
13033
  }
13034
13034
  ],
13035
- "id": 35685,
13035
+ "id": 35688,
13036
13036
  "isConstant": false,
13037
13037
  "isLValue": false,
13038
13038
  "isPure": true,
@@ -13044,14 +13044,14 @@
13044
13044
  "typeString": "type(address)"
13045
13045
  },
13046
13046
  "typeName": {
13047
- "id": 35684,
13047
+ "id": 35687,
13048
13048
  "name": "address",
13049
13049
  "nodeType": "ElementaryTypeName",
13050
13050
  "src": "2959:7:100",
13051
13051
  "typeDescriptions": {}
13052
13052
  }
13053
13053
  },
13054
- "id": 35687,
13054
+ "id": 35690,
13055
13055
  "isConstant": false,
13056
13056
  "isLValue": false,
13057
13057
  "isPure": true,
@@ -13074,7 +13074,7 @@
13074
13074
  },
13075
13075
  {
13076
13076
  "hexValue": "6f7065726174696f6e206e6f7420616c6c6f776564",
13077
- "id": 35689,
13077
+ "id": 35692,
13078
13078
  "isConstant": false,
13079
13079
  "isLValue": false,
13080
13080
  "isPure": true,
@@ -13100,7 +13100,7 @@
13100
13100
  "typeString": "literal_string \"operation not allowed\""
13101
13101
  }
13102
13102
  ],
13103
- "id": 35682,
13103
+ "id": 35685,
13104
13104
  "name": "require",
13105
13105
  "nodeType": "Identifier",
13106
13106
  "overloadedDeclarations": [
@@ -13114,7 +13114,7 @@
13114
13114
  "typeString": "function (bool,string memory) pure"
13115
13115
  }
13116
13116
  },
13117
- "id": 35690,
13117
+ "id": 35693,
13118
13118
  "isConstant": false,
13119
13119
  "isLValue": false,
13120
13120
  "isPure": false,
@@ -13129,7 +13129,7 @@
13129
13129
  "typeString": "tuple()"
13130
13130
  }
13131
13131
  },
13132
- "id": 35691,
13132
+ "id": 35694,
13133
13133
  "nodeType": "ExpressionStatement",
13134
13134
  "src": "2940:55:100"
13135
13135
  },
@@ -13137,11 +13137,11 @@
13137
13137
  "expression": {
13138
13138
  "arguments": [
13139
13139
  {
13140
- "id": 35693,
13140
+ "id": 35696,
13141
13141
  "name": "BACKEND_ROLE",
13142
13142
  "nodeType": "Identifier",
13143
13143
  "overloadedDeclarations": [],
13144
- "referencedDeclaration": 35487,
13144
+ "referencedDeclaration": 35490,
13145
13145
  "src": "3077:12:100",
13146
13146
  "typeDescriptions": {
13147
13147
  "typeIdentifier": "t_bytes32",
@@ -13149,11 +13149,11 @@
13149
13149
  }
13150
13150
  },
13151
13151
  {
13152
- "id": 35694,
13152
+ "id": 35697,
13153
13153
  "name": "account",
13154
13154
  "nodeType": "Identifier",
13155
13155
  "overloadedDeclarations": [],
13156
- "referencedDeclaration": 35679,
13156
+ "referencedDeclaration": 35682,
13157
13157
  "src": "3091:7:100",
13158
13158
  "typeDescriptions": {
13159
13159
  "typeIdentifier": "t_address",
@@ -13172,7 +13172,7 @@
13172
13172
  "typeString": "address"
13173
13173
  }
13174
13174
  ],
13175
- "id": 35692,
13175
+ "id": 35695,
13176
13176
  "name": "grantRole",
13177
13177
  "nodeType": "Identifier",
13178
13178
  "overloadedDeclarations": [],
@@ -13183,7 +13183,7 @@
13183
13183
  "typeString": "function (bytes32,address)"
13184
13184
  }
13185
13185
  },
13186
- "id": 35695,
13186
+ "id": 35698,
13187
13187
  "isConstant": false,
13188
13188
  "isLValue": false,
13189
13189
  "isPure": false,
@@ -13198,20 +13198,20 @@
13198
13198
  "typeString": "tuple()"
13199
13199
  }
13200
13200
  },
13201
- "id": 35696,
13201
+ "id": 35699,
13202
13202
  "nodeType": "ExpressionStatement",
13203
13203
  "src": "3067:32:100"
13204
13204
  }
13205
13205
  ]
13206
13206
  },
13207
13207
  "documentation": {
13208
- "id": 35677,
13208
+ "id": 35680,
13209
13209
  "nodeType": "StructuredDocumentation",
13210
13210
  "src": "2820:52:100",
13211
13211
  "text": " @dev Add account to BACKEND_ROLE "
13212
13212
  },
13213
13213
  "functionSelector": "61985da7",
13214
- "id": 35698,
13214
+ "id": 35701,
13215
13215
  "implemented": true,
13216
13216
  "kind": "function",
13217
13217
  "modifiers": [],
@@ -13219,17 +13219,17 @@
13219
13219
  "nameLocation": "2886:17:100",
13220
13220
  "nodeType": "FunctionDefinition",
13221
13221
  "parameters": {
13222
- "id": 35680,
13222
+ "id": 35683,
13223
13223
  "nodeType": "ParameterList",
13224
13224
  "parameters": [
13225
13225
  {
13226
13226
  "constant": false,
13227
- "id": 35679,
13227
+ "id": 35682,
13228
13228
  "mutability": "mutable",
13229
13229
  "name": "account",
13230
13230
  "nameLocation": "2912:7:100",
13231
13231
  "nodeType": "VariableDeclaration",
13232
- "scope": 35698,
13232
+ "scope": 35701,
13233
13233
  "src": "2904:15:100",
13234
13234
  "stateVariable": false,
13235
13235
  "storageLocation": "default",
@@ -13238,7 +13238,7 @@
13238
13238
  "typeString": "address"
13239
13239
  },
13240
13240
  "typeName": {
13241
- "id": 35678,
13241
+ "id": 35681,
13242
13242
  "name": "address",
13243
13243
  "nodeType": "ElementaryTypeName",
13244
13244
  "src": "2904:7:100",
@@ -13254,12 +13254,12 @@
13254
13254
  "src": "2903:17:100"
13255
13255
  },
13256
13256
  "returnParameters": {
13257
- "id": 35681,
13257
+ "id": 35684,
13258
13258
  "nodeType": "ParameterList",
13259
13259
  "parameters": [],
13260
13260
  "src": "2930:0:100"
13261
13261
  },
13262
- "scope": 35792,
13262
+ "scope": 35795,
13263
13263
  "src": "2877:229:100",
13264
13264
  "stateMutability": "nonpayable",
13265
13265
  "virtual": false,
@@ -13267,7 +13267,7 @@
13267
13267
  },
13268
13268
  {
13269
13269
  "body": {
13270
- "id": 35709,
13270
+ "id": 35712,
13271
13271
  "nodeType": "Block",
13272
13272
  "src": "3226:112:100",
13273
13273
  "statements": [
@@ -13275,11 +13275,11 @@
13275
13275
  "expression": {
13276
13276
  "arguments": [
13277
13277
  {
13278
- "id": 35705,
13278
+ "id": 35708,
13279
13279
  "name": "BACKEND_ROLE",
13280
13280
  "nodeType": "Identifier",
13281
13281
  "overloadedDeclarations": [],
13282
- "referencedDeclaration": 35487,
13282
+ "referencedDeclaration": 35490,
13283
13283
  "src": "3309:12:100",
13284
13284
  "typeDescriptions": {
13285
13285
  "typeIdentifier": "t_bytes32",
@@ -13287,11 +13287,11 @@
13287
13287
  }
13288
13288
  },
13289
13289
  {
13290
- "id": 35706,
13290
+ "id": 35709,
13291
13291
  "name": "account",
13292
13292
  "nodeType": "Identifier",
13293
13293
  "overloadedDeclarations": [],
13294
- "referencedDeclaration": 35701,
13294
+ "referencedDeclaration": 35704,
13295
13295
  "src": "3323:7:100",
13296
13296
  "typeDescriptions": {
13297
13297
  "typeIdentifier": "t_address",
@@ -13310,7 +13310,7 @@
13310
13310
  "typeString": "address"
13311
13311
  }
13312
13312
  ],
13313
- "id": 35704,
13313
+ "id": 35707,
13314
13314
  "name": "revokeRole",
13315
13315
  "nodeType": "Identifier",
13316
13316
  "overloadedDeclarations": [],
@@ -13321,7 +13321,7 @@
13321
13321
  "typeString": "function (bytes32,address)"
13322
13322
  }
13323
13323
  },
13324
- "id": 35707,
13324
+ "id": 35710,
13325
13325
  "isConstant": false,
13326
13326
  "isLValue": false,
13327
13327
  "isPure": false,
@@ -13336,20 +13336,20 @@
13336
13336
  "typeString": "tuple()"
13337
13337
  }
13338
13338
  },
13339
- "id": 35708,
13339
+ "id": 35711,
13340
13340
  "nodeType": "ExpressionStatement",
13341
13341
  "src": "3298:33:100"
13342
13342
  }
13343
13343
  ]
13344
13344
  },
13345
13345
  "documentation": {
13346
- "id": 35699,
13346
+ "id": 35702,
13347
13347
  "nodeType": "StructuredDocumentation",
13348
13348
  "src": "3112:55:100",
13349
13349
  "text": " @dev Remove account to BACKEND_ROLE "
13350
13350
  },
13351
13351
  "functionSelector": "abcac5eb",
13352
- "id": 35710,
13352
+ "id": 35713,
13353
13353
  "implemented": true,
13354
13354
  "kind": "function",
13355
13355
  "modifiers": [],
@@ -13357,17 +13357,17 @@
13357
13357
  "nameLocation": "3181:18:100",
13358
13358
  "nodeType": "FunctionDefinition",
13359
13359
  "parameters": {
13360
- "id": 35702,
13360
+ "id": 35705,
13361
13361
  "nodeType": "ParameterList",
13362
13362
  "parameters": [
13363
13363
  {
13364
13364
  "constant": false,
13365
- "id": 35701,
13365
+ "id": 35704,
13366
13366
  "mutability": "mutable",
13367
13367
  "name": "account",
13368
13368
  "nameLocation": "3208:7:100",
13369
13369
  "nodeType": "VariableDeclaration",
13370
- "scope": 35710,
13370
+ "scope": 35713,
13371
13371
  "src": "3200:15:100",
13372
13372
  "stateVariable": false,
13373
13373
  "storageLocation": "default",
@@ -13376,7 +13376,7 @@
13376
13376
  "typeString": "address"
13377
13377
  },
13378
13378
  "typeName": {
13379
- "id": 35700,
13379
+ "id": 35703,
13380
13380
  "name": "address",
13381
13381
  "nodeType": "ElementaryTypeName",
13382
13382
  "src": "3200:7:100",
@@ -13392,12 +13392,12 @@
13392
13392
  "src": "3199:17:100"
13393
13393
  },
13394
13394
  "returnParameters": {
13395
- "id": 35703,
13395
+ "id": 35706,
13396
13396
  "nodeType": "ParameterList",
13397
13397
  "parameters": [],
13398
13398
  "src": "3226:0:100"
13399
13399
  },
13400
- "scope": 35792,
13400
+ "scope": 35795,
13401
13401
  "src": "3172:166:100",
13402
13402
  "stateMutability": "nonpayable",
13403
13403
  "virtual": false,
@@ -13405,23 +13405,23 @@
13405
13405
  },
13406
13406
  {
13407
13407
  "body": {
13408
- "id": 35757,
13408
+ "id": 35760,
13409
13409
  "nodeType": "Block",
13410
13410
  "src": "3480:288:100",
13411
13411
  "statements": [
13412
13412
  {
13413
13413
  "assignments": [
13414
- 35718
13414
+ 35721
13415
13415
  ],
13416
13416
  "declarations": [
13417
13417
  {
13418
13418
  "constant": false,
13419
- "id": 35718,
13419
+ "id": 35721,
13420
13420
  "mutability": "mutable",
13421
13421
  "name": "numberOfMembers",
13422
13422
  "nameLocation": "3498:15:100",
13423
13423
  "nodeType": "VariableDeclaration",
13424
- "scope": 35757,
13424
+ "scope": 35760,
13425
13425
  "src": "3490:23:100",
13426
13426
  "stateVariable": false,
13427
13427
  "storageLocation": "default",
@@ -13430,7 +13430,7 @@
13430
13430
  "typeString": "uint256"
13431
13431
  },
13432
13432
  "typeName": {
13433
- "id": 35717,
13433
+ "id": 35720,
13434
13434
  "name": "uint256",
13435
13435
  "nodeType": "ElementaryTypeName",
13436
13436
  "src": "3490:7:100",
@@ -13442,15 +13442,15 @@
13442
13442
  "visibility": "internal"
13443
13443
  }
13444
13444
  ],
13445
- "id": 35722,
13445
+ "id": 35725,
13446
13446
  "initialValue": {
13447
13447
  "arguments": [
13448
13448
  {
13449
- "id": 35720,
13449
+ "id": 35723,
13450
13450
  "name": "BACKEND_ROLE",
13451
13451
  "nodeType": "Identifier",
13452
13452
  "overloadedDeclarations": [],
13453
- "referencedDeclaration": 35487,
13453
+ "referencedDeclaration": 35490,
13454
13454
  "src": "3535:12:100",
13455
13455
  "typeDescriptions": {
13456
13456
  "typeIdentifier": "t_bytes32",
@@ -13465,7 +13465,7 @@
13465
13465
  "typeString": "bytes32"
13466
13466
  }
13467
13467
  ],
13468
- "id": 35719,
13468
+ "id": 35722,
13469
13469
  "name": "getRoleMemberCount",
13470
13470
  "nodeType": "Identifier",
13471
13471
  "overloadedDeclarations": [],
@@ -13476,7 +13476,7 @@
13476
13476
  "typeString": "function (bytes32) view returns (uint256)"
13477
13477
  }
13478
13478
  },
13479
- "id": 35721,
13479
+ "id": 35724,
13480
13480
  "isConstant": false,
13481
13481
  "isLValue": false,
13482
13482
  "isPure": false,
@@ -13496,17 +13496,17 @@
13496
13496
  },
13497
13497
  {
13498
13498
  "assignments": [
13499
- 35727
13499
+ 35730
13500
13500
  ],
13501
13501
  "declarations": [
13502
13502
  {
13503
13503
  "constant": false,
13504
- "id": 35727,
13504
+ "id": 35730,
13505
13505
  "mutability": "mutable",
13506
13506
  "name": "members",
13507
13507
  "nameLocation": "3575:7:100",
13508
13508
  "nodeType": "VariableDeclaration",
13509
- "scope": 35757,
13509
+ "scope": 35760,
13510
13510
  "src": "3558:24:100",
13511
13511
  "stateVariable": false,
13512
13512
  "storageLocation": "memory",
@@ -13516,7 +13516,7 @@
13516
13516
  },
13517
13517
  "typeName": {
13518
13518
  "baseType": {
13519
- "id": 35725,
13519
+ "id": 35728,
13520
13520
  "name": "address",
13521
13521
  "nodeType": "ElementaryTypeName",
13522
13522
  "src": "3558:7:100",
@@ -13525,7 +13525,7 @@
13525
13525
  "typeString": "address"
13526
13526
  }
13527
13527
  },
13528
- "id": 35726,
13528
+ "id": 35729,
13529
13529
  "nodeType": "ArrayTypeName",
13530
13530
  "src": "3558:9:100",
13531
13531
  "typeDescriptions": {
@@ -13536,15 +13536,15 @@
13536
13536
  "visibility": "internal"
13537
13537
  }
13538
13538
  ],
13539
- "id": 35733,
13539
+ "id": 35736,
13540
13540
  "initialValue": {
13541
13541
  "arguments": [
13542
13542
  {
13543
- "id": 35731,
13543
+ "id": 35734,
13544
13544
  "name": "numberOfMembers",
13545
13545
  "nodeType": "Identifier",
13546
13546
  "overloadedDeclarations": [],
13547
- "referencedDeclaration": 35718,
13547
+ "referencedDeclaration": 35721,
13548
13548
  "src": "3599:15:100",
13549
13549
  "typeDescriptions": {
13550
13550
  "typeIdentifier": "t_uint256",
@@ -13559,7 +13559,7 @@
13559
13559
  "typeString": "uint256"
13560
13560
  }
13561
13561
  ],
13562
- "id": 35730,
13562
+ "id": 35733,
13563
13563
  "isConstant": false,
13564
13564
  "isLValue": false,
13565
13565
  "isPure": true,
@@ -13572,7 +13572,7 @@
13572
13572
  },
13573
13573
  "typeName": {
13574
13574
  "baseType": {
13575
- "id": 35728,
13575
+ "id": 35731,
13576
13576
  "name": "address",
13577
13577
  "nodeType": "ElementaryTypeName",
13578
13578
  "src": "3589:7:100",
@@ -13582,7 +13582,7 @@
13582
13582
  "typeString": "address"
13583
13583
  }
13584
13584
  },
13585
- "id": 35729,
13585
+ "id": 35732,
13586
13586
  "nodeType": "ArrayTypeName",
13587
13587
  "src": "3589:9:100",
13588
13588
  "typeDescriptions": {
@@ -13591,7 +13591,7 @@
13591
13591
  }
13592
13592
  }
13593
13593
  },
13594
- "id": 35732,
13594
+ "id": 35735,
13595
13595
  "isConstant": false,
13596
13596
  "isLValue": false,
13597
13597
  "isPure": false,
@@ -13611,37 +13611,37 @@
13611
13611
  },
13612
13612
  {
13613
13613
  "body": {
13614
- "id": 35753,
13614
+ "id": 35756,
13615
13615
  "nodeType": "Block",
13616
13616
  "src": "3670:68:100",
13617
13617
  "statements": [
13618
13618
  {
13619
13619
  "expression": {
13620
- "id": 35751,
13620
+ "id": 35754,
13621
13621
  "isConstant": false,
13622
13622
  "isLValue": false,
13623
13623
  "isPure": false,
13624
13624
  "lValueRequested": false,
13625
13625
  "leftHandSide": {
13626
13626
  "baseExpression": {
13627
- "id": 35744,
13627
+ "id": 35747,
13628
13628
  "name": "members",
13629
13629
  "nodeType": "Identifier",
13630
13630
  "overloadedDeclarations": [],
13631
- "referencedDeclaration": 35727,
13631
+ "referencedDeclaration": 35730,
13632
13632
  "src": "3684:7:100",
13633
13633
  "typeDescriptions": {
13634
13634
  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
13635
13635
  "typeString": "address[] memory"
13636
13636
  }
13637
13637
  },
13638
- "id": 35746,
13638
+ "id": 35749,
13639
13639
  "indexExpression": {
13640
- "id": 35745,
13640
+ "id": 35748,
13641
13641
  "name": "i",
13642
13642
  "nodeType": "Identifier",
13643
13643
  "overloadedDeclarations": [],
13644
- "referencedDeclaration": 35735,
13644
+ "referencedDeclaration": 35738,
13645
13645
  "src": "3692:1:100",
13646
13646
  "typeDescriptions": {
13647
13647
  "typeIdentifier": "t_uint256",
@@ -13664,11 +13664,11 @@
13664
13664
  "rightHandSide": {
13665
13665
  "arguments": [
13666
13666
  {
13667
- "id": 35748,
13667
+ "id": 35751,
13668
13668
  "name": "BACKEND_ROLE",
13669
13669
  "nodeType": "Identifier",
13670
13670
  "overloadedDeclarations": [],
13671
- "referencedDeclaration": 35487,
13671
+ "referencedDeclaration": 35490,
13672
13672
  "src": "3711:12:100",
13673
13673
  "typeDescriptions": {
13674
13674
  "typeIdentifier": "t_bytes32",
@@ -13676,11 +13676,11 @@
13676
13676
  }
13677
13677
  },
13678
13678
  {
13679
- "id": 35749,
13679
+ "id": 35752,
13680
13680
  "name": "i",
13681
13681
  "nodeType": "Identifier",
13682
13682
  "overloadedDeclarations": [],
13683
- "referencedDeclaration": 35735,
13683
+ "referencedDeclaration": 35738,
13684
13684
  "src": "3725:1:100",
13685
13685
  "typeDescriptions": {
13686
13686
  "typeIdentifier": "t_uint256",
@@ -13699,7 +13699,7 @@
13699
13699
  "typeString": "uint256"
13700
13700
  }
13701
13701
  ],
13702
- "id": 35747,
13702
+ "id": 35750,
13703
13703
  "name": "getRoleMember",
13704
13704
  "nodeType": "Identifier",
13705
13705
  "overloadedDeclarations": [],
@@ -13710,7 +13710,7 @@
13710
13710
  "typeString": "function (bytes32,uint256) view returns (address)"
13711
13711
  }
13712
13712
  },
13713
- "id": 35750,
13713
+ "id": 35753,
13714
13714
  "isConstant": false,
13715
13715
  "isLValue": false,
13716
13716
  "isPure": false,
@@ -13731,7 +13731,7 @@
13731
13731
  "typeString": "address"
13732
13732
  }
13733
13733
  },
13734
- "id": 35752,
13734
+ "id": 35755,
13735
13735
  "nodeType": "ExpressionStatement",
13736
13736
  "src": "3684:43:100"
13737
13737
  }
@@ -13742,17 +13742,17 @@
13742
13742
  "typeIdentifier": "t_uint256",
13743
13743
  "typeString": "uint256"
13744
13744
  },
13745
- "id": 35740,
13745
+ "id": 35743,
13746
13746
  "isConstant": false,
13747
13747
  "isLValue": false,
13748
13748
  "isPure": false,
13749
13749
  "lValueRequested": false,
13750
13750
  "leftExpression": {
13751
- "id": 35738,
13751
+ "id": 35741,
13752
13752
  "name": "i",
13753
13753
  "nodeType": "Identifier",
13754
13754
  "overloadedDeclarations": [],
13755
- "referencedDeclaration": 35735,
13755
+ "referencedDeclaration": 35738,
13756
13756
  "src": "3644:1:100",
13757
13757
  "typeDescriptions": {
13758
13758
  "typeIdentifier": "t_uint256",
@@ -13762,11 +13762,11 @@
13762
13762
  "nodeType": "BinaryOperation",
13763
13763
  "operator": "<",
13764
13764
  "rightExpression": {
13765
- "id": 35739,
13765
+ "id": 35742,
13766
13766
  "name": "numberOfMembers",
13767
13767
  "nodeType": "Identifier",
13768
13768
  "overloadedDeclarations": [],
13769
- "referencedDeclaration": 35718,
13769
+ "referencedDeclaration": 35721,
13770
13770
  "src": "3648:15:100",
13771
13771
  "typeDescriptions": {
13772
13772
  "typeIdentifier": "t_uint256",
@@ -13779,20 +13779,20 @@
13779
13779
  "typeString": "bool"
13780
13780
  }
13781
13781
  },
13782
- "id": 35754,
13782
+ "id": 35757,
13783
13783
  "initializationExpression": {
13784
13784
  "assignments": [
13785
- 35735
13785
+ 35738
13786
13786
  ],
13787
13787
  "declarations": [
13788
13788
  {
13789
13789
  "constant": false,
13790
- "id": 35735,
13790
+ "id": 35738,
13791
13791
  "mutability": "mutable",
13792
13792
  "name": "i",
13793
13793
  "nameLocation": "3637:1:100",
13794
13794
  "nodeType": "VariableDeclaration",
13795
- "scope": 35754,
13795
+ "scope": 35757,
13796
13796
  "src": "3629:9:100",
13797
13797
  "stateVariable": false,
13798
13798
  "storageLocation": "default",
@@ -13801,7 +13801,7 @@
13801
13801
  "typeString": "uint256"
13802
13802
  },
13803
13803
  "typeName": {
13804
- "id": 35734,
13804
+ "id": 35737,
13805
13805
  "name": "uint256",
13806
13806
  "nodeType": "ElementaryTypeName",
13807
13807
  "src": "3629:7:100",
@@ -13813,10 +13813,10 @@
13813
13813
  "visibility": "internal"
13814
13814
  }
13815
13815
  ],
13816
- "id": 35737,
13816
+ "id": 35740,
13817
13817
  "initialValue": {
13818
13818
  "hexValue": "30",
13819
- "id": 35736,
13819
+ "id": 35739,
13820
13820
  "isConstant": false,
13821
13821
  "isLValue": false,
13822
13822
  "isPure": true,
@@ -13835,7 +13835,7 @@
13835
13835
  },
13836
13836
  "loopExpression": {
13837
13837
  "expression": {
13838
- "id": 35742,
13838
+ "id": 35745,
13839
13839
  "isConstant": false,
13840
13840
  "isLValue": false,
13841
13841
  "isPure": false,
@@ -13845,11 +13845,11 @@
13845
13845
  "prefix": false,
13846
13846
  "src": "3665:3:100",
13847
13847
  "subExpression": {
13848
- "id": 35741,
13848
+ "id": 35744,
13849
13849
  "name": "i",
13850
13850
  "nodeType": "Identifier",
13851
13851
  "overloadedDeclarations": [],
13852
- "referencedDeclaration": 35735,
13852
+ "referencedDeclaration": 35738,
13853
13853
  "src": "3665:1:100",
13854
13854
  "typeDescriptions": {
13855
13855
  "typeIdentifier": "t_uint256",
@@ -13861,7 +13861,7 @@
13861
13861
  "typeString": "uint256"
13862
13862
  }
13863
13863
  },
13864
- "id": 35743,
13864
+ "id": 35746,
13865
13865
  "nodeType": "ExpressionStatement",
13866
13866
  "src": "3665:3:100"
13867
13867
  },
@@ -13870,32 +13870,32 @@
13870
13870
  },
13871
13871
  {
13872
13872
  "expression": {
13873
- "id": 35755,
13873
+ "id": 35758,
13874
13874
  "name": "members",
13875
13875
  "nodeType": "Identifier",
13876
13876
  "overloadedDeclarations": [],
13877
- "referencedDeclaration": 35727,
13877
+ "referencedDeclaration": 35730,
13878
13878
  "src": "3754:7:100",
13879
13879
  "typeDescriptions": {
13880
13880
  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
13881
13881
  "typeString": "address[] memory"
13882
13882
  }
13883
13883
  },
13884
- "functionReturnParameters": 35716,
13885
- "id": 35756,
13884
+ "functionReturnParameters": 35719,
13885
+ "id": 35759,
13886
13886
  "nodeType": "Return",
13887
13887
  "src": "3747:14:100"
13888
13888
  }
13889
13889
  ]
13890
13890
  },
13891
13891
  "documentation": {
13892
- "id": 35711,
13892
+ "id": 35714,
13893
13893
  "nodeType": "StructuredDocumentation",
13894
13894
  "src": "3344:63:100",
13895
13895
  "text": " @dev Get list of all members of BACKEND_ROLE"
13896
13896
  },
13897
13897
  "functionSelector": "0f01a4a2",
13898
- "id": 35758,
13898
+ "id": 35761,
13899
13899
  "implemented": true,
13900
13900
  "kind": "function",
13901
13901
  "modifiers": [],
@@ -13903,23 +13903,23 @@
13903
13903
  "nameLocation": "3421:16:100",
13904
13904
  "nodeType": "FunctionDefinition",
13905
13905
  "parameters": {
13906
- "id": 35712,
13906
+ "id": 35715,
13907
13907
  "nodeType": "ParameterList",
13908
13908
  "parameters": [],
13909
13909
  "src": "3437:2:100"
13910
13910
  },
13911
13911
  "returnParameters": {
13912
- "id": 35716,
13912
+ "id": 35719,
13913
13913
  "nodeType": "ParameterList",
13914
13914
  "parameters": [
13915
13915
  {
13916
13916
  "constant": false,
13917
- "id": 35715,
13917
+ "id": 35718,
13918
13918
  "mutability": "mutable",
13919
13919
  "name": "",
13920
13920
  "nameLocation": "-1:-1:-1",
13921
13921
  "nodeType": "VariableDeclaration",
13922
- "scope": 35758,
13922
+ "scope": 35761,
13923
13923
  "src": "3462:16:100",
13924
13924
  "stateVariable": false,
13925
13925
  "storageLocation": "memory",
@@ -13929,7 +13929,7 @@
13929
13929
  },
13930
13930
  "typeName": {
13931
13931
  "baseType": {
13932
- "id": 35713,
13932
+ "id": 35716,
13933
13933
  "name": "address",
13934
13934
  "nodeType": "ElementaryTypeName",
13935
13935
  "src": "3462:7:100",
@@ -13939,7 +13939,7 @@
13939
13939
  "typeString": "address"
13940
13940
  }
13941
13941
  },
13942
- "id": 35714,
13942
+ "id": 35717,
13943
13943
  "nodeType": "ArrayTypeName",
13944
13944
  "src": "3462:9:100",
13945
13945
  "typeDescriptions": {
@@ -13952,7 +13952,7 @@
13952
13952
  ],
13953
13953
  "src": "3461:18:100"
13954
13954
  },
13955
- "scope": 35792,
13955
+ "scope": 35795,
13956
13956
  "src": "3412:356:100",
13957
13957
  "stateMutability": "view",
13958
13958
  "virtual": false,
@@ -13960,34 +13960,34 @@
13960
13960
  },
13961
13961
  {
13962
13962
  "body": {
13963
- "id": 35774,
13963
+ "id": 35777,
13964
13964
  "nodeType": "Block",
13965
13965
  "src": "3888:87:100",
13966
13966
  "statements": [
13967
13967
  {
13968
13968
  "expression": {
13969
- "id": 35767,
13969
+ "id": 35770,
13970
13970
  "isConstant": false,
13971
13971
  "isLValue": false,
13972
13972
  "isPure": false,
13973
13973
  "lValueRequested": false,
13974
13974
  "leftHandSide": {
13975
13975
  "baseExpression": {
13976
- "id": 35762,
13976
+ "id": 35765,
13977
13977
  "name": "_optout",
13978
13978
  "nodeType": "Identifier",
13979
13979
  "overloadedDeclarations": [],
13980
- "referencedDeclaration": 35499,
13980
+ "referencedDeclaration": 35502,
13981
13981
  "src": "3898:7:100",
13982
13982
  "typeDescriptions": {
13983
13983
  "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
13984
13984
  "typeString": "mapping(address => bool)"
13985
13985
  }
13986
13986
  },
13987
- "id": 35765,
13987
+ "id": 35768,
13988
13988
  "indexExpression": {
13989
13989
  "expression": {
13990
- "id": 35763,
13990
+ "id": 35766,
13991
13991
  "name": "msg",
13992
13992
  "nodeType": "Identifier",
13993
13993
  "overloadedDeclarations": [],
@@ -13998,7 +13998,7 @@
13998
13998
  "typeString": "msg"
13999
13999
  }
14000
14000
  },
14001
- "id": 35764,
14001
+ "id": 35767,
14002
14002
  "isConstant": false,
14003
14003
  "isLValue": false,
14004
14004
  "isPure": false,
@@ -14026,7 +14026,7 @@
14026
14026
  "operator": "=",
14027
14027
  "rightHandSide": {
14028
14028
  "hexValue": "74727565",
14029
- "id": 35766,
14029
+ "id": 35769,
14030
14030
  "isConstant": false,
14031
14031
  "isLValue": false,
14032
14032
  "isPure": true,
@@ -14046,7 +14046,7 @@
14046
14046
  "typeString": "bool"
14047
14047
  }
14048
14048
  },
14049
- "id": 35768,
14049
+ "id": 35771,
14050
14050
  "nodeType": "ExpressionStatement",
14051
14051
  "src": "3898:26:100"
14052
14052
  },
@@ -14055,7 +14055,7 @@
14055
14055
  "arguments": [
14056
14056
  {
14057
14057
  "expression": {
14058
- "id": 35770,
14058
+ "id": 35773,
14059
14059
  "name": "msg",
14060
14060
  "nodeType": "Identifier",
14061
14061
  "overloadedDeclarations": [],
@@ -14066,7 +14066,7 @@
14066
14066
  "typeString": "msg"
14067
14067
  }
14068
14068
  },
14069
- "id": 35771,
14069
+ "id": 35774,
14070
14070
  "isConstant": false,
14071
14071
  "isLValue": false,
14072
14072
  "isPure": false,
@@ -14087,18 +14087,18 @@
14087
14087
  "typeString": "address"
14088
14088
  }
14089
14089
  ],
14090
- "id": 35769,
14090
+ "id": 35772,
14091
14091
  "name": "OptoutAutoUpgrade",
14092
14092
  "nodeType": "Identifier",
14093
14093
  "overloadedDeclarations": [],
14094
- "referencedDeclaration": 35491,
14094
+ "referencedDeclaration": 35494,
14095
14095
  "src": "3939:17:100",
14096
14096
  "typeDescriptions": {
14097
14097
  "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
14098
14098
  "typeString": "function (address)"
14099
14099
  }
14100
14100
  },
14101
- "id": 35772,
14101
+ "id": 35775,
14102
14102
  "isConstant": false,
14103
14103
  "isLValue": false,
14104
14104
  "isPure": false,
@@ -14113,20 +14113,20 @@
14113
14113
  "typeString": "tuple()"
14114
14114
  }
14115
14115
  },
14116
- "id": 35773,
14116
+ "id": 35776,
14117
14117
  "nodeType": "EmitStatement",
14118
14118
  "src": "3934:34:100"
14119
14119
  }
14120
14120
  ]
14121
14121
  },
14122
14122
  "documentation": {
14123
- "id": 35759,
14123
+ "id": 35762,
14124
14124
  "nodeType": "StructuredDocumentation",
14125
14125
  "src": "3774:70:100",
14126
14126
  "text": " @dev User signal that opt-out from backend upgrades"
14127
14127
  },
14128
14128
  "functionSelector": "ec328253",
14129
- "id": 35775,
14129
+ "id": 35778,
14130
14130
  "implemented": true,
14131
14131
  "kind": "function",
14132
14132
  "modifiers": [],
@@ -14134,18 +14134,18 @@
14134
14134
  "nameLocation": "3858:18:100",
14135
14135
  "nodeType": "FunctionDefinition",
14136
14136
  "parameters": {
14137
- "id": 35760,
14137
+ "id": 35763,
14138
14138
  "nodeType": "ParameterList",
14139
14139
  "parameters": [],
14140
14140
  "src": "3876:2:100"
14141
14141
  },
14142
14142
  "returnParameters": {
14143
- "id": 35761,
14143
+ "id": 35764,
14144
14144
  "nodeType": "ParameterList",
14145
14145
  "parameters": [],
14146
14146
  "src": "3888:0:100"
14147
14147
  },
14148
- "scope": 35792,
14148
+ "scope": 35795,
14149
14149
  "src": "3849:126:100",
14150
14150
  "stateMutability": "nonpayable",
14151
14151
  "virtual": false,
@@ -14153,13 +14153,13 @@
14153
14153
  },
14154
14154
  {
14155
14155
  "body": {
14156
- "id": 35790,
14156
+ "id": 35793,
14157
14157
  "nodeType": "Block",
14158
14158
  "src": "4101:86:100",
14159
14159
  "statements": [
14160
14160
  {
14161
14161
  "expression": {
14162
- "id": 35783,
14162
+ "id": 35786,
14163
14163
  "isConstant": false,
14164
14164
  "isLValue": false,
14165
14165
  "isPure": false,
@@ -14170,21 +14170,21 @@
14170
14170
  "src": "4111:26:100",
14171
14171
  "subExpression": {
14172
14172
  "baseExpression": {
14173
- "id": 35779,
14173
+ "id": 35782,
14174
14174
  "name": "_optout",
14175
14175
  "nodeType": "Identifier",
14176
14176
  "overloadedDeclarations": [],
14177
- "referencedDeclaration": 35499,
14177
+ "referencedDeclaration": 35502,
14178
14178
  "src": "4118:7:100",
14179
14179
  "typeDescriptions": {
14180
14180
  "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
14181
14181
  "typeString": "mapping(address => bool)"
14182
14182
  }
14183
14183
  },
14184
- "id": 35782,
14184
+ "id": 35785,
14185
14185
  "indexExpression": {
14186
14186
  "expression": {
14187
- "id": 35780,
14187
+ "id": 35783,
14188
14188
  "name": "msg",
14189
14189
  "nodeType": "Identifier",
14190
14190
  "overloadedDeclarations": [],
@@ -14195,7 +14195,7 @@
14195
14195
  "typeString": "msg"
14196
14196
  }
14197
14197
  },
14198
- "id": 35781,
14198
+ "id": 35784,
14199
14199
  "isConstant": false,
14200
14200
  "isLValue": false,
14201
14201
  "isPure": false,
@@ -14224,7 +14224,7 @@
14224
14224
  "typeString": "tuple()"
14225
14225
  }
14226
14226
  },
14227
- "id": 35784,
14227
+ "id": 35787,
14228
14228
  "nodeType": "ExpressionStatement",
14229
14229
  "src": "4111:26:100"
14230
14230
  },
@@ -14233,7 +14233,7 @@
14233
14233
  "arguments": [
14234
14234
  {
14235
14235
  "expression": {
14236
- "id": 35786,
14236
+ "id": 35789,
14237
14237
  "name": "msg",
14238
14238
  "nodeType": "Identifier",
14239
14239
  "overloadedDeclarations": [],
@@ -14244,7 +14244,7 @@
14244
14244
  "typeString": "msg"
14245
14245
  }
14246
14246
  },
14247
- "id": 35787,
14247
+ "id": 35790,
14248
14248
  "isConstant": false,
14249
14249
  "isLValue": false,
14250
14250
  "isPure": false,
@@ -14265,18 +14265,18 @@
14265
14265
  "typeString": "address"
14266
14266
  }
14267
14267
  ],
14268
- "id": 35785,
14268
+ "id": 35788,
14269
14269
  "name": "OptinAutoUpgrade",
14270
14270
  "nodeType": "Identifier",
14271
14271
  "overloadedDeclarations": [],
14272
- "referencedDeclaration": 35495,
14272
+ "referencedDeclaration": 35498,
14273
14273
  "src": "4152:16:100",
14274
14274
  "typeDescriptions": {
14275
14275
  "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
14276
14276
  "typeString": "function (address)"
14277
14277
  }
14278
14278
  },
14279
- "id": 35788,
14279
+ "id": 35791,
14280
14280
  "isConstant": false,
14281
14281
  "isLValue": false,
14282
14282
  "isPure": false,
@@ -14291,20 +14291,20 @@
14291
14291
  "typeString": "tuple()"
14292
14292
  }
14293
14293
  },
14294
- "id": 35789,
14294
+ "id": 35792,
14295
14295
  "nodeType": "EmitStatement",
14296
14296
  "src": "4147:33:100"
14297
14297
  }
14298
14298
  ]
14299
14299
  },
14300
14300
  "documentation": {
14301
- "id": 35776,
14301
+ "id": 35779,
14302
14302
  "nodeType": "StructuredDocumentation",
14303
14303
  "src": "3981:77:100",
14304
14304
  "text": " @dev User signal that revoke opt-out from backend upgrades"
14305
14305
  },
14306
14306
  "functionSelector": "5d730c58",
14307
- "id": 35791,
14307
+ "id": 35794,
14308
14308
  "implemented": true,
14309
14309
  "kind": "function",
14310
14310
  "modifiers": [],
@@ -14312,25 +14312,25 @@
14312
14312
  "nameLocation": "4072:17:100",
14313
14313
  "nodeType": "FunctionDefinition",
14314
14314
  "parameters": {
14315
- "id": 35777,
14315
+ "id": 35780,
14316
14316
  "nodeType": "ParameterList",
14317
14317
  "parameters": [],
14318
14318
  "src": "4089:2:100"
14319
14319
  },
14320
14320
  "returnParameters": {
14321
- "id": 35778,
14321
+ "id": 35781,
14322
14322
  "nodeType": "ParameterList",
14323
14323
  "parameters": [],
14324
14324
  "src": "4101:0:100"
14325
14325
  },
14326
- "scope": 35792,
14326
+ "scope": 35795,
14327
14327
  "src": "4063:124:100",
14328
14328
  "stateMutability": "nonpayable",
14329
14329
  "virtual": false,
14330
14330
  "visibility": "external"
14331
14331
  }
14332
14332
  ],
14333
- "scope": 35793,
14333
+ "scope": 35796,
14334
14334
  "src": "645:3544:100",
14335
14335
  "usedErrors": []
14336
14336
  }
@@ -14343,7 +14343,7 @@
14343
14343
  },
14344
14344
  "networks": {},
14345
14345
  "schemaVersion": "3.4.7",
14346
- "updatedAt": "2022-05-16T08:18:25.158Z",
14346
+ "updatedAt": "2022-05-19T14:37:34.384Z",
14347
14347
  "devdoc": {
14348
14348
  "author": "Superfluid NOTE: - User would need to first SuperToken.approve the `SuperUpgrader` for the job. - Using access control to allow multiple backend agent to upgrade tokens for the users - Risk taken by the user is that the underlying tokens are converted to the Super Tokens by the upgrader agents.",
14349
14349
  "kind": "dev",