@superfluid-finance/ethereum-contracts 1.3.2-dev.bf84335.0 → 1.3.2-dev.e55bf9f.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 (122) hide show
  1. package/build/contracts/AccessControl.json +1 -1
  2. package/build/contracts/AccessControlEnumerable.json +1 -1
  3. package/build/contracts/Address.json +1 -1
  4. package/build/contracts/AgreementBase.json +18 -18
  5. package/build/contracts/AgreementLibrary.json +1272 -1183
  6. package/build/contracts/BaseRelayRecipient.json +55 -55
  7. package/build/contracts/BatchLiquidator.json +211 -211
  8. package/build/contracts/BatchOperation.json +599 -599
  9. package/build/contracts/CFAv1Library.json +2282 -2282
  10. package/build/contracts/CallUtils.json +198 -198
  11. package/build/contracts/ClosingOnUpdateFlowTestApp.json +2472 -2472
  12. package/build/contracts/ConstantFlowAgreementV1.json +12931 -13308
  13. package/build/contracts/Context.json +1 -1
  14. package/build/contracts/ContextDefinitions.json +599 -599
  15. package/build/contracts/Create2.json +1 -1
  16. package/build/contracts/CustomSuperTokenBase.json +20 -20
  17. package/build/contracts/ERC165.json +1 -1
  18. package/build/contracts/ERC1820Implementer.json +1 -1
  19. package/build/contracts/ERC1820RegistryCompiled.json +22 -22
  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 +23 -23
  25. package/build/contracts/ERC777Helper.json +380 -380
  26. package/build/contracts/ERC777RecipientDrainingGas.json +858 -858
  27. package/build/contracts/ERC777RecipientReverting.json +858 -858
  28. package/build/contracts/EnumerableSet.json +1 -1
  29. package/build/contracts/EventsEmitter.json +43 -43
  30. package/build/contracts/ExclusiveInflowTestApp.json +2473 -2473
  31. package/build/contracts/FixedSizeData.json +200 -200
  32. package/build/contracts/FlowExchangeTestApp.json +2473 -2473
  33. package/build/contracts/FlowOperatorDefinitions.json +599 -599
  34. package/build/contracts/FullUpgradableSuperTokenProxy.json +115 -115
  35. package/build/contracts/IAccessControl.json +1 -1
  36. package/build/contracts/IAccessControlEnumerable.json +1 -1
  37. package/build/contracts/IConstantFlowAgreementV1.json +567 -567
  38. package/build/contracts/IDAv1Library.json +2614 -2614
  39. package/build/contracts/IERC165.json +1 -1
  40. package/build/contracts/IERC1820Implementer.json +1 -1
  41. package/build/contracts/IERC1820Registry.json +1 -1
  42. package/build/contracts/IERC20.json +1 -1
  43. package/build/contracts/IERC20Metadata.json +1 -1
  44. package/build/contracts/IERC20Permit.json +1 -1
  45. package/build/contracts/IERC777.json +1 -1
  46. package/build/contracts/IERC777Recipient.json +1 -1
  47. package/build/contracts/IERC777Sender.json +1 -1
  48. package/build/contracts/IInstantDistributionAgreementV1.json +640 -640
  49. package/build/contracts/IMaticBridgedNativeSuperToken.json +63 -63
  50. package/build/contracts/IMaticBridgedNativeSuperTokenCustom.json +63 -63
  51. package/build/contracts/IMultiSigWallet.json +24 -24
  52. package/build/contracts/IPureSuperToken.json +43 -43
  53. package/build/contracts/IPureSuperTokenCustom.json +43 -43
  54. package/build/contracts/IRelayRecipient.json +27 -27
  55. package/build/contracts/IResolver.json +38 -38
  56. package/build/contracts/ISETH.json +48 -48
  57. package/build/contracts/ISETHCustom.json +48 -48
  58. package/build/contracts/ISuperAgreement.json +50 -50
  59. package/build/contracts/ISuperApp.json +192 -192
  60. package/build/contracts/ISuperToken.json +524 -524
  61. package/build/contracts/ISuperTokenFactory.json +161 -161
  62. package/build/contracts/ISuperfluid.json +1145 -1178
  63. package/build/contracts/ISuperfluidGovernance.json +243 -243
  64. package/build/contracts/ISuperfluidToken.json +389 -389
  65. package/build/contracts/ITOGAv1.json +1442 -1442
  66. package/build/contracts/ITOGAv2.json +1442 -1442
  67. package/build/contracts/Initializable.json +1 -1
  68. package/build/contracts/InstantDistributionAgreementV1.json +5820 -5820
  69. package/build/contracts/MaticBridgedNativeSuperTokenProxy.json +231 -231
  70. package/build/contracts/NonClosableOutflowTestApp.json +2473 -2473
  71. package/build/contracts/Ownable.json +1 -1
  72. package/build/contracts/Pausable.json +1 -1
  73. package/build/contracts/Proxy.json +1 -1
  74. package/build/contracts/PureSuperToken.json +109 -109
  75. package/build/contracts/Resolver.json +98 -98
  76. package/build/contracts/SETHProxy.json +227 -227
  77. package/build/contracts/SafeCast.json +1 -1
  78. package/build/contracts/SafeERC20.json +1 -1
  79. package/build/contracts/SafeMath.json +1 -1
  80. package/build/contracts/SelfDeletingFlowTestApp.json +2472 -2472
  81. package/build/contracts/SlotsBitmapLibrary.json +457 -457
  82. package/build/contracts/StreamRedirector.json +748 -748
  83. package/build/contracts/Strings.json +1 -1
  84. package/build/contracts/SuperAppBase.json +240 -240
  85. package/build/contracts/SuperAppDefinitions.json +599 -599
  86. package/build/contracts/SuperToken.json +4732 -4732
  87. package/build/contracts/SuperTokenFactory.json +750 -750
  88. package/build/contracts/SuperTokenFactoryBase.json +738 -738
  89. package/build/contracts/SuperTokenFactoryHelper.json +743 -743
  90. package/build/contracts/SuperUpgrader.json +440 -440
  91. package/build/contracts/Superfluid.json +15366 -16050
  92. package/build/contracts/SuperfluidFrameworkDeployer.json +765 -765
  93. package/build/contracts/SuperfluidGovernanceBase.json +2233 -2233
  94. package/build/contracts/SuperfluidGovernanceConfigs.json +599 -599
  95. package/build/contracts/SuperfluidGovernanceII.json +149 -149
  96. package/build/contracts/SuperfluidGovernanceIIProxy.json +131 -131
  97. package/build/contracts/SuperfluidLoader.json +210 -210
  98. package/build/contracts/SuperfluidToken.json +2420 -2420
  99. package/build/contracts/TOGA.json +1461 -1461
  100. package/build/contracts/TestGovernance.json +248 -248
  101. package/build/contracts/TestToken.json +93 -93
  102. package/build/contracts/TokenCustodian.json +214 -214
  103. package/build/contracts/TokenInfo.json +32 -32
  104. package/build/contracts/UUPSProxiable.json +139 -139
  105. package/build/contracts/UUPSProxy.json +81 -81
  106. package/build/contracts/UUPSUtils.json +37 -37
  107. package/build/contracts-sizes.txt +6 -6
  108. package/contracts/agreements/AgreementLibrary.sol +39 -15
  109. package/contracts/agreements/ConstantFlowAgreementV1.sol +65 -53
  110. package/contracts/interfaces/superfluid/ISuperfluid.sol +29 -23
  111. package/contracts/mocks/AgreementMock.sol +2 -2
  112. package/contracts/mocks/CFAAppMocks.sol +1 -1
  113. package/contracts/mocks/MultiFlowTesterApp.sol +13 -12
  114. package/contracts/mocks/SuperTokenMock.sol +2 -2
  115. package/contracts/mocks/SuperfluidMock.sol +9 -9
  116. package/contracts/superfluid/Superfluid.sol +34 -38
  117. package/contracts/superfluid/SuperfluidToken.sol +14 -14
  118. package/package.json +2 -2
  119. package/scripts/deploy-mfa.ts +27 -0
  120. package/scripts/libs/getConfig.js +14 -0
  121. package/utils/README.md +18 -0
  122. package/utils/mfa-tester.html +687 -0
@@ -399,9 +399,9 @@
399
399
  "type": "function"
400
400
  }
401
401
  ],
402
- "metadata": "{\"compiler\":{\"version\":\"0.8.14+commit.80d49f37\"},\"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. May emit a {RoleGranted} event.\"},\"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`. May emit a {RoleRevoked} event.\"},\"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. May emit a {RoleRevoked} event.\"},\"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\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@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\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"@openzeppelin/contracts/token/ERC777/IERC777.sol\":{\"keccak256\":\"0x093eaf9a4b05adf2bd3730b753f9e1725ed34b80ea4b5f08477ff2f46a188586\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46e9a9b37e8cb6332ed21a8d3f8a6723d897e4a97db63095424522a80b3cfc15\",\"dweb:/ipfs/QmdHcBPPGKQBnmeaAN3Y6YKUPqwR73RrHTiX5uTr6eVx1M\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@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\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"project:/contracts/interfaces/superfluid/Definitions.sol\":{\"keccak256\":\"0x667e6d0d18967ade01cde8b1dc887b07ff3eed63ac7796710c24160145ae09df\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://c654d8e2f0f28b07ef5a404251e79e8900a1fabb18e2f8a5c7a11dbaad2cb332\",\"dweb:/ipfs/QmRRC8BhTxcHn7PEsLqnX1CRQnidi1yuAJ91CfwgTSdCrY\"]},\"project:/contracts/interfaces/superfluid/ISuperAgreement.sol\":{\"keccak256\":\"0xc3a6a907245116bcecc70fe4b207454012e8ce4fa190228fb8bbe39e0b1bc5cf\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://83c116bdae48685d20e5a27c942111e685ec1ef6334e7ff6f6d9af66edbd8025\",\"dweb:/ipfs/QmTnVuNTaRFiDmkAmDk7NFYdfQTW1kqgBZiY2exC6k8jDx\"]},\"project:/contracts/interfaces/superfluid/ISuperApp.sol\":{\"keccak256\":\"0x42b604992cf67321cc12e8bed16543df0db4eaf125b8c1c82c330ebbeb20c014\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://7c18b00caf7b8be7e11f75284fb96263ce48a3984d56f2a91ec44cae4413d2fc\",\"dweb:/ipfs/QmWVzdW9KnkwAVe9g5zRuMoqCf7N89AoBfzzRr8puw5d8a\"]},\"project:/contracts/interfaces/superfluid/ISuperToken.sol\":{\"keccak256\":\"0xcff22ed43df0f34a645e6cbe0d7c5fd08f204d769e9095bc59d7c2fe6d11b7d6\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://944b8c5a37839b40ec8ee1ccfecbaf007808a61ea16c7b1351a7184606772032\",\"dweb:/ipfs/QmbUKZqZtVfqZMKYnQUygE4svatKuN9kT2ibrnxMuWXR7n\"]},\"project:/contracts/interfaces/superfluid/ISuperTokenFactory.sol\":{\"keccak256\":\"0x68a466c978557e47bd7385b1d7d78f1c8fb07462a870efc5a791008e33a4f535\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://d109879bdb7f022560a792af2ff481df729bf1b4b8e1831b8022f4d12892d41d\",\"dweb:/ipfs/QmRSWqHq8CP5XWgyV4mJpPxMg33s312s2K5ndHRHVqqZ8n\"]},\"project:/contracts/interfaces/superfluid/ISuperfluid.sol\":{\"keccak256\":\"0xa90ceaf9d6170243a081524df94319655aea98ff1411d696610f9533cc043019\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://5919f3d615310c66d2f9acac1f5945c26b73e9dc5513f398eb71cf3a711e4d7f\",\"dweb:/ipfs/QmQYf1rDHRbPjRBRLEXyVDjingcELLbEKTT5szXk6kc8zk\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidGovernance.sol\":{\"keccak256\":\"0xea33d20751ffea4f4446bc04f6c10194fb4da0803a988586d41d49cf4859731c\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://7716b1f5eec0a7ac8780d82de4f0274ecd7059be4eec46c82b0b7adce110f10b\",\"dweb:/ipfs/QmWRQafvdCBsyfDYnevXSav1AAz8uZRRBwh2be5Z3vSfVN\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidToken.sol\":{\"keccak256\":\"0x3eec5a3bf337cd319c1918fd1b16f350cf5f6850ac71f6859066fbf86e734ff4\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://cda19a2f5ca18e79c1e2300c8efac84c718df76c4fb313f59f84264a4c6b398a\",\"dweb:/ipfs/QmfQiwgDH5Q64w5ufBnDzVaeWv6WCZ6fLTrYu1FSYfBGhq\"]},\"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\":\"0xe0b11180fac43c46f078644650795d8f7d95ce48e9793084471f36ce433b7c8e\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://1c404c8a77bdd242573bbdfe75e9438e732053ec3d2bd3bdad0a47a793677030\",\"dweb:/ipfs/QmXRxU3qBZbUm1rdUAUtgcVFi7iJj9eZ7hijxfNGuu4uU1\"]}},\"version\":1}",
403
- "bytecode": "0x60806040523480156200001157600080fd5b50604051620019a8380380620019a8833981016040819052620000349162000321565b6001600160a01b038216620000855760405162461bcd60e51b815260206004820152601260248201527161646d696e526f6c6520697320656d70747960701b60448201526064015b60405180910390fd5b6200009260008362000189565b60005b8151811015620001805760006001600160a01b0316828281518110620000bf57620000bf6200040a565b60200260200101516001600160a01b0316036200011f5760405162461bcd60e51b815260206004820152601560248201527f6261636b656e642063616e2774206265207a65726f000000000000000000000060448201526064016200007c565b6200016d7f25cf2b509f2a7f322675b2a5322b182f44ad2c03ac941a0af17c9b178f5d5d5f8383815181106200015957620001596200040a565b60200260200101516200018960201b60201c565b620001788162000420565b905062000095565b50505062000448565b62000195828262000199565b5050565b620001b08282620001dc60201b6200085a1760201c565b6000828152600160209081526040909120620001d7918390620008de6200027c821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000195576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002383390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600062000293836001600160a01b0384166200029c565b90505b92915050565b6000818152600183016020526040812054620002e55750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000296565b50600062000296565b80516001600160a01b03811681146200030657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156200033557600080fd5b6200034083620002ee565b602084810151919350906001600160401b03808211156200036057600080fd5b818601915086601f8301126200037557600080fd5b8151818111156200038a576200038a6200030b565b8060051b604051601f19603f83011681018181108582111715620003b257620003b26200030b565b604052918252848201925083810185019189831115620003d157600080fd5b938501935b82851015620003fa57620003ea85620002ee565b84529385019392850192620003d6565b8096505050505050509250929050565b634e487b7160e01b600052603260045260246000fd5b6000600182016200044157634e487b7160e01b600052601160045260246000fd5b5060010190565b61155080620004586000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806361985da7116100a2578063a217fddf11610071578063a217fddf1461023a578063abcac5eb14610242578063ca15c87314610255578063d547741f14610268578063ec3282531461027b57600080fd5b806361985da7146101d45780639010d07c146101e757806391d148541461021257806392c2becc1461022557600080fd5b80632f2ff15d116100de5780632f2ff15d1461019357806336568abe146101a657806344e9d2fb146101b95780635d730c58146101cc57600080fd5b806301ffc9a7146101105780630f01a4a214610138578063248a9ca31461014d5780632a1972981461017e575b600080fd5b61012361011e36600461114b565b610283565b60405190151581526020015b60405180910390f35b6101406102ae565b60405161012f9190611175565b61017061015b3660046111c2565b60009081526020819052604090206001015490565b60405190815260200161012f565b61019161018c3660046111f0565b610378565b005b6101916101a1366004611231565b610612565b6101916101b4366004611231565b61063c565b6101236101c7366004611261565b6106ba565b6101916106d4565b6101916101e2366004611261565b610713565b6101fa6101f536600461127e565b61077c565b6040516001600160a01b03909116815260200161012f565b610123610220366004611231565b61079b565b6101706000805160206114fb83398151915281565b610170600081565b610191610250366004611261565b6107c4565b6101706102633660046111c2565b6107dc565b610191610276366004611231565b6107f3565b610191610818565b60006001600160e01b03198216635a05180f60e01b14806102a857506102a8826108f3565b92915050565b606060006102c96000805160206114fb8339815191526107dc565b905060008167ffffffffffffffff8111156102e6576102e66112a0565b60405190808252806020026020018201604052801561030f578160200160208202803683370190505b50905060005b82811015610371576103356000805160206114fb8339815191528261077c565b828281518110610347576103476112b6565b6001600160a01b039092166020928302919091019091015280610369816112e2565b915050610315565b5092915050565b336001600160a01b03831614806103c757506103a26000805160206114fb8339815191523361079b565b80156103c757506001600160a01b03821660009081526002602052604090205460ff16155b6104105760405162461bcd60e51b81526020600482015260156024820152741bdc195c985d1a5bdb881b9bdd08185b1b1bddd959605a1b60448201526064015b60405180910390fd5b60008390506000816001600160a01b031663ee719bc86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610455573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047991906112fb565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156104c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e79190611318565b90506104fe6001600160a01b038316863087610928565b6105136001600160a01b038316846000610999565b6105276001600160a01b0383168486610999565b6040516370a0823160e01b81523060048201526001600160a01b0380851691635b9d09cc91889185918716906370a0823190602401602060405180830381865afa158015610579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059d9190611318565b6105a79190611331565b604080516000815260208101918290526001600160e01b031960e086901b169091526105d8929190602481016113a0565b600060405180830381600087803b1580156105f257600080fd5b505af1158015610606573d6000803e3d6000fd5b50505050505050505050565b60008281526020819052604090206001015461062d81610aae565b6106378383610ab8565b505050565b6001600160a01b03811633146106ac5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610407565b6106b68282610ada565b5050565b60006102a86000805160206114fb8339815191528361079b565b33600081815260026020526040808220805460ff19169055517fde802370a7a9557e8d50bffe30a1bbd3d327beb1964088485a5465325bc5fb7a9190a2565b6001600160a01b0381166107615760405162461bcd60e51b81526020600482015260156024820152741bdc195c985d1a5bdb881b9bdd08185b1b1bddd959605a1b6044820152606401610407565b6107796000805160206114fb83398151915282610612565b50565b60008281526001602052604081206107949083610afc565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6107796000805160206114fb833981519152826107f3565b60008181526001602052604081206102a890610b08565b60008281526020819052604090206001015461080e81610aae565b6106378383610ada565b33600081815260026020526040808220805460ff19166001179055517fd07f586f18c37aa8ec13ebc5523e50304e2aa7711505bfa7242fcb7152eaee259190a2565b610864828261079b565b6106b6576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561089a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610794836001600160a01b038416610b12565b60006001600160e01b03198216637965db0b60e01b14806102a857506301ffc9a760e01b6001600160e01b03198316146102a8565b6040516001600160a01b03808516602483015283166044820152606481018290526109939085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610b61565b50505050565b801580610a135750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156109ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a119190611318565b155b610a7e5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610407565b6040516001600160a01b03831660248201526044810182905261063790849063095ea7b360e01b9060640161095c565b6107798133610c33565b610ac2828261085a565b600082815260016020526040902061063790826108de565b610ae48282610c97565b60008281526001602052604090206106379082610cfc565b60006107948383610d11565b60006102a8825490565b6000818152600183016020526040812054610b59575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556102a8565b5060006102a8565b6000610bb6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610d3b9092919063ffffffff16565b8051909150156106375780806020019051810190610bd491906113d0565b6106375760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610407565b610c3d828261079b565b6106b657610c55816001600160a01b03166014610d52565b610c60836020610d52565b604051602001610c719291906113f2565b60408051601f198184030181529082905262461bcd60e51b825261040791600401611467565b610ca1828261079b565b156106b6576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610794836001600160a01b038416610eee565b6000826000018281548110610d2857610d286112b6565b9060005260206000200154905092915050565b6060610d4a8484600085610fe1565b949350505050565b60606000610d6183600261147a565b610d6c906002611499565b67ffffffffffffffff811115610d8457610d846112a0565b6040519080825280601f01601f191660200182016040528015610dae576020820181803683370190505b509050600360fc1b81600081518110610dc957610dc96112b6565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610df857610df86112b6565b60200101906001600160f81b031916908160001a9053506000610e1c84600261147a565b610e27906001611499565b90505b6001811115610e9f576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110610e5b57610e5b6112b6565b1a60f81b828281518110610e7157610e716112b6565b60200101906001600160f81b031916908160001a90535060049490941c93610e98816114b1565b9050610e2a565b5083156107945760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610407565b60008181526001830160205260408120548015610fd7576000610f12600183611331565b8554909150600090610f2690600190611331565b9050818114610f8b576000866000018281548110610f4657610f466112b6565b9060005260206000200154905080876000018481548110610f6957610f696112b6565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080610f9c57610f9c6114c8565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506102a8565b60009150506102a8565b6060824710156110425760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610407565b6001600160a01b0385163b6110995760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610407565b600080866001600160a01b031685876040516110b591906114de565b60006040518083038185875af1925050503d80600081146110f2576040519150601f19603f3d011682016040523d82523d6000602084013e6110f7565b606091505b5091509150611107828286611112565b979650505050505050565b60608315611121575081610794565b8251156111315782518084602001fd5b8160405162461bcd60e51b81526004016104079190611467565b60006020828403121561115d57600080fd5b81356001600160e01b03198116811461079457600080fd5b6020808252825182820181905260009190848201906040850190845b818110156111b65783516001600160a01b031683529284019291840191600101611191565b50909695505050505050565b6000602082840312156111d457600080fd5b5035919050565b6001600160a01b038116811461077957600080fd5b60008060006060848603121561120557600080fd5b8335611210816111db565b92506020840135611220816111db565b929592945050506040919091013590565b6000806040838503121561124457600080fd5b823591506020830135611256816111db565b809150509250929050565b60006020828403121561127357600080fd5b8135610794816111db565b6000806040838503121561129157600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016112f4576112f46112cc565b5060010190565b60006020828403121561130d57600080fd5b8151610794816111db565b60006020828403121561132a57600080fd5b5051919050565b600082821015611343576113436112cc565b500390565b60005b8381101561136357818101518382015260200161134b565b838111156109935750506000910152565b6000815180845261138c816020860160208601611348565b601f01601f19169290920160200192915050565b60018060a01b03841681528260208201526060604082015260006113c76060830184611374565b95945050505050565b6000602082840312156113e257600080fd5b8151801515811461079457600080fd5b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161142a816017850160208801611348565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161145b816028840160208801611348565b01602801949350505050565b6020815260006107946020830184611374565b6000816000190483118215151615611494576114946112cc565b500290565b600082198211156114ac576114ac6112cc565b500190565b6000816114c0576114c06112cc565b506000190190565b634e487b7160e01b600052603160045260246000fd5b600082516114f0818460208701611348565b919091019291505056fe25cf2b509f2a7f322675b2a5322b182f44ad2c03ac941a0af17c9b178f5d5d5fa26469706673582212204ad34497cf5344793a347c05164c3402b01acf5b62af074d0dac85fb5ad4cfa864736f6c634300080e0033",
404
- "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806361985da7116100a2578063a217fddf11610071578063a217fddf1461023a578063abcac5eb14610242578063ca15c87314610255578063d547741f14610268578063ec3282531461027b57600080fd5b806361985da7146101d45780639010d07c146101e757806391d148541461021257806392c2becc1461022557600080fd5b80632f2ff15d116100de5780632f2ff15d1461019357806336568abe146101a657806344e9d2fb146101b95780635d730c58146101cc57600080fd5b806301ffc9a7146101105780630f01a4a214610138578063248a9ca31461014d5780632a1972981461017e575b600080fd5b61012361011e36600461114b565b610283565b60405190151581526020015b60405180910390f35b6101406102ae565b60405161012f9190611175565b61017061015b3660046111c2565b60009081526020819052604090206001015490565b60405190815260200161012f565b61019161018c3660046111f0565b610378565b005b6101916101a1366004611231565b610612565b6101916101b4366004611231565b61063c565b6101236101c7366004611261565b6106ba565b6101916106d4565b6101916101e2366004611261565b610713565b6101fa6101f536600461127e565b61077c565b6040516001600160a01b03909116815260200161012f565b610123610220366004611231565b61079b565b6101706000805160206114fb83398151915281565b610170600081565b610191610250366004611261565b6107c4565b6101706102633660046111c2565b6107dc565b610191610276366004611231565b6107f3565b610191610818565b60006001600160e01b03198216635a05180f60e01b14806102a857506102a8826108f3565b92915050565b606060006102c96000805160206114fb8339815191526107dc565b905060008167ffffffffffffffff8111156102e6576102e66112a0565b60405190808252806020026020018201604052801561030f578160200160208202803683370190505b50905060005b82811015610371576103356000805160206114fb8339815191528261077c565b828281518110610347576103476112b6565b6001600160a01b039092166020928302919091019091015280610369816112e2565b915050610315565b5092915050565b336001600160a01b03831614806103c757506103a26000805160206114fb8339815191523361079b565b80156103c757506001600160a01b03821660009081526002602052604090205460ff16155b6104105760405162461bcd60e51b81526020600482015260156024820152741bdc195c985d1a5bdb881b9bdd08185b1b1bddd959605a1b60448201526064015b60405180910390fd5b60008390506000816001600160a01b031663ee719bc86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610455573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047991906112fb565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156104c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e79190611318565b90506104fe6001600160a01b038316863087610928565b6105136001600160a01b038316846000610999565b6105276001600160a01b0383168486610999565b6040516370a0823160e01b81523060048201526001600160a01b0380851691635b9d09cc91889185918716906370a0823190602401602060405180830381865afa158015610579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059d9190611318565b6105a79190611331565b604080516000815260208101918290526001600160e01b031960e086901b169091526105d8929190602481016113a0565b600060405180830381600087803b1580156105f257600080fd5b505af1158015610606573d6000803e3d6000fd5b50505050505050505050565b60008281526020819052604090206001015461062d81610aae565b6106378383610ab8565b505050565b6001600160a01b03811633146106ac5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610407565b6106b68282610ada565b5050565b60006102a86000805160206114fb8339815191528361079b565b33600081815260026020526040808220805460ff19169055517fde802370a7a9557e8d50bffe30a1bbd3d327beb1964088485a5465325bc5fb7a9190a2565b6001600160a01b0381166107615760405162461bcd60e51b81526020600482015260156024820152741bdc195c985d1a5bdb881b9bdd08185b1b1bddd959605a1b6044820152606401610407565b6107796000805160206114fb83398151915282610612565b50565b60008281526001602052604081206107949083610afc565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6107796000805160206114fb833981519152826107f3565b60008181526001602052604081206102a890610b08565b60008281526020819052604090206001015461080e81610aae565b6106378383610ada565b33600081815260026020526040808220805460ff19166001179055517fd07f586f18c37aa8ec13ebc5523e50304e2aa7711505bfa7242fcb7152eaee259190a2565b610864828261079b565b6106b6576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561089a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610794836001600160a01b038416610b12565b60006001600160e01b03198216637965db0b60e01b14806102a857506301ffc9a760e01b6001600160e01b03198316146102a8565b6040516001600160a01b03808516602483015283166044820152606481018290526109939085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610b61565b50505050565b801580610a135750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156109ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a119190611318565b155b610a7e5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610407565b6040516001600160a01b03831660248201526044810182905261063790849063095ea7b360e01b9060640161095c565b6107798133610c33565b610ac2828261085a565b600082815260016020526040902061063790826108de565b610ae48282610c97565b60008281526001602052604090206106379082610cfc565b60006107948383610d11565b60006102a8825490565b6000818152600183016020526040812054610b59575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556102a8565b5060006102a8565b6000610bb6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610d3b9092919063ffffffff16565b8051909150156106375780806020019051810190610bd491906113d0565b6106375760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610407565b610c3d828261079b565b6106b657610c55816001600160a01b03166014610d52565b610c60836020610d52565b604051602001610c719291906113f2565b60408051601f198184030181529082905262461bcd60e51b825261040791600401611467565b610ca1828261079b565b156106b6576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610794836001600160a01b038416610eee565b6000826000018281548110610d2857610d286112b6565b9060005260206000200154905092915050565b6060610d4a8484600085610fe1565b949350505050565b60606000610d6183600261147a565b610d6c906002611499565b67ffffffffffffffff811115610d8457610d846112a0565b6040519080825280601f01601f191660200182016040528015610dae576020820181803683370190505b509050600360fc1b81600081518110610dc957610dc96112b6565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610df857610df86112b6565b60200101906001600160f81b031916908160001a9053506000610e1c84600261147a565b610e27906001611499565b90505b6001811115610e9f576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110610e5b57610e5b6112b6565b1a60f81b828281518110610e7157610e716112b6565b60200101906001600160f81b031916908160001a90535060049490941c93610e98816114b1565b9050610e2a565b5083156107945760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610407565b60008181526001830160205260408120548015610fd7576000610f12600183611331565b8554909150600090610f2690600190611331565b9050818114610f8b576000866000018281548110610f4657610f466112b6565b9060005260206000200154905080876000018481548110610f6957610f696112b6565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080610f9c57610f9c6114c8565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506102a8565b60009150506102a8565b6060824710156110425760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610407565b6001600160a01b0385163b6110995760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610407565b600080866001600160a01b031685876040516110b591906114de565b60006040518083038185875af1925050503d80600081146110f2576040519150601f19603f3d011682016040523d82523d6000602084013e6110f7565b606091505b5091509150611107828286611112565b979650505050505050565b60608315611121575081610794565b8251156111315782518084602001fd5b8160405162461bcd60e51b81526004016104079190611467565b60006020828403121561115d57600080fd5b81356001600160e01b03198116811461079457600080fd5b6020808252825182820181905260009190848201906040850190845b818110156111b65783516001600160a01b031683529284019291840191600101611191565b50909695505050505050565b6000602082840312156111d457600080fd5b5035919050565b6001600160a01b038116811461077957600080fd5b60008060006060848603121561120557600080fd5b8335611210816111db565b92506020840135611220816111db565b929592945050506040919091013590565b6000806040838503121561124457600080fd5b823591506020830135611256816111db565b809150509250929050565b60006020828403121561127357600080fd5b8135610794816111db565b6000806040838503121561129157600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016112f4576112f46112cc565b5060010190565b60006020828403121561130d57600080fd5b8151610794816111db565b60006020828403121561132a57600080fd5b5051919050565b600082821015611343576113436112cc565b500390565b60005b8381101561136357818101518382015260200161134b565b838111156109935750506000910152565b6000815180845261138c816020860160208601611348565b601f01601f19169290920160200192915050565b60018060a01b03841681528260208201526060604082015260006113c76060830184611374565b95945050505050565b6000602082840312156113e257600080fd5b8151801515811461079457600080fd5b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161142a816017850160208801611348565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161145b816028840160208801611348565b01602801949350505050565b6020815260006107946020830184611374565b6000816000190483118215151615611494576114946112cc565b500290565b600082198211156114ac576114ac6112cc565b500190565b6000816114c0576114c06112cc565b506000190190565b634e487b7160e01b600052603160045260246000fd5b600082516114f0818460208701611348565b919091019291505056fe25cf2b509f2a7f322675b2a5322b182f44ad2c03ac941a0af17c9b178f5d5d5fa26469706673582212204ad34497cf5344793a347c05164c3402b01acf5b62af074d0dac85fb5ad4cfa864736f6c634300080e0033",
402
+ "metadata": "{\"compiler\":{\"version\":\"0.8.14+commit.80d49f37\"},\"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. May emit a {RoleGranted} event.\"},\"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`. May emit a {RoleRevoked} event.\"},\"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. May emit a {RoleRevoked} event.\"},\"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\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@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\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"@openzeppelin/contracts/token/ERC777/IERC777.sol\":{\"keccak256\":\"0x093eaf9a4b05adf2bd3730b753f9e1725ed34b80ea4b5f08477ff2f46a188586\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46e9a9b37e8cb6332ed21a8d3f8a6723d897e4a97db63095424522a80b3cfc15\",\"dweb:/ipfs/QmdHcBPPGKQBnmeaAN3Y6YKUPqwR73RrHTiX5uTr6eVx1M\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@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\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"project:/contracts/interfaces/superfluid/Definitions.sol\":{\"keccak256\":\"0x667e6d0d18967ade01cde8b1dc887b07ff3eed63ac7796710c24160145ae09df\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://c654d8e2f0f28b07ef5a404251e79e8900a1fabb18e2f8a5c7a11dbaad2cb332\",\"dweb:/ipfs/QmRRC8BhTxcHn7PEsLqnX1CRQnidi1yuAJ91CfwgTSdCrY\"]},\"project:/contracts/interfaces/superfluid/ISuperAgreement.sol\":{\"keccak256\":\"0xc3a6a907245116bcecc70fe4b207454012e8ce4fa190228fb8bbe39e0b1bc5cf\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://83c116bdae48685d20e5a27c942111e685ec1ef6334e7ff6f6d9af66edbd8025\",\"dweb:/ipfs/QmTnVuNTaRFiDmkAmDk7NFYdfQTW1kqgBZiY2exC6k8jDx\"]},\"project:/contracts/interfaces/superfluid/ISuperApp.sol\":{\"keccak256\":\"0x42b604992cf67321cc12e8bed16543df0db4eaf125b8c1c82c330ebbeb20c014\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://7c18b00caf7b8be7e11f75284fb96263ce48a3984d56f2a91ec44cae4413d2fc\",\"dweb:/ipfs/QmWVzdW9KnkwAVe9g5zRuMoqCf7N89AoBfzzRr8puw5d8a\"]},\"project:/contracts/interfaces/superfluid/ISuperToken.sol\":{\"keccak256\":\"0xcff22ed43df0f34a645e6cbe0d7c5fd08f204d769e9095bc59d7c2fe6d11b7d6\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://944b8c5a37839b40ec8ee1ccfecbaf007808a61ea16c7b1351a7184606772032\",\"dweb:/ipfs/QmbUKZqZtVfqZMKYnQUygE4svatKuN9kT2ibrnxMuWXR7n\"]},\"project:/contracts/interfaces/superfluid/ISuperTokenFactory.sol\":{\"keccak256\":\"0x68a466c978557e47bd7385b1d7d78f1c8fb07462a870efc5a791008e33a4f535\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://d109879bdb7f022560a792af2ff481df729bf1b4b8e1831b8022f4d12892d41d\",\"dweb:/ipfs/QmRSWqHq8CP5XWgyV4mJpPxMg33s312s2K5ndHRHVqqZ8n\"]},\"project:/contracts/interfaces/superfluid/ISuperfluid.sol\":{\"keccak256\":\"0x59cba11dfc9510e06db5fd57e9229fcfa0860e99e76626ad0291e7e50a3a62de\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://a64102f968e7f2eaa335e8d7ce47b339c958b0d6f8f4b3379547e9b7faa78cf9\",\"dweb:/ipfs/QmbFSeM6diijjogiTvgbpphLmjxG3u1ifygFkLhezFHRQ5\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidGovernance.sol\":{\"keccak256\":\"0xea33d20751ffea4f4446bc04f6c10194fb4da0803a988586d41d49cf4859731c\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://7716b1f5eec0a7ac8780d82de4f0274ecd7059be4eec46c82b0b7adce110f10b\",\"dweb:/ipfs/QmWRQafvdCBsyfDYnevXSav1AAz8uZRRBwh2be5Z3vSfVN\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidToken.sol\":{\"keccak256\":\"0x3eec5a3bf337cd319c1918fd1b16f350cf5f6850ac71f6859066fbf86e734ff4\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://cda19a2f5ca18e79c1e2300c8efac84c718df76c4fb313f59f84264a4c6b398a\",\"dweb:/ipfs/QmfQiwgDH5Q64w5ufBnDzVaeWv6WCZ6fLTrYu1FSYfBGhq\"]},\"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\":\"0xe0b11180fac43c46f078644650795d8f7d95ce48e9793084471f36ce433b7c8e\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://1c404c8a77bdd242573bbdfe75e9438e732053ec3d2bd3bdad0a47a793677030\",\"dweb:/ipfs/QmXRxU3qBZbUm1rdUAUtgcVFi7iJj9eZ7hijxfNGuu4uU1\"]}},\"version\":1}",
403
+ "bytecode": "0x60806040523480156200001157600080fd5b50604051620019a8380380620019a8833981016040819052620000349162000321565b6001600160a01b038216620000855760405162461bcd60e51b815260206004820152601260248201527161646d696e526f6c6520697320656d70747960701b60448201526064015b60405180910390fd5b6200009260008362000189565b60005b8151811015620001805760006001600160a01b0316828281518110620000bf57620000bf6200040a565b60200260200101516001600160a01b0316036200011f5760405162461bcd60e51b815260206004820152601560248201527f6261636b656e642063616e2774206265207a65726f000000000000000000000060448201526064016200007c565b6200016d7f25cf2b509f2a7f322675b2a5322b182f44ad2c03ac941a0af17c9b178f5d5d5f8383815181106200015957620001596200040a565b60200260200101516200018960201b60201c565b620001788162000420565b905062000095565b50505062000448565b62000195828262000199565b5050565b620001b08282620001dc60201b6200085a1760201c565b6000828152600160209081526040909120620001d7918390620008de6200027c821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000195576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002383390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600062000293836001600160a01b0384166200029c565b90505b92915050565b6000818152600183016020526040812054620002e55750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000296565b50600062000296565b80516001600160a01b03811681146200030657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156200033557600080fd5b6200034083620002ee565b602084810151919350906001600160401b03808211156200036057600080fd5b818601915086601f8301126200037557600080fd5b8151818111156200038a576200038a6200030b565b8060051b604051601f19603f83011681018181108582111715620003b257620003b26200030b565b604052918252848201925083810185019189831115620003d157600080fd5b938501935b82851015620003fa57620003ea85620002ee565b84529385019392850192620003d6565b8096505050505050509250929050565b634e487b7160e01b600052603260045260246000fd5b6000600182016200044157634e487b7160e01b600052601160045260246000fd5b5060010190565b61155080620004586000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806361985da7116100a2578063a217fddf11610071578063a217fddf1461023a578063abcac5eb14610242578063ca15c87314610255578063d547741f14610268578063ec3282531461027b57600080fd5b806361985da7146101d45780639010d07c146101e757806391d148541461021257806392c2becc1461022557600080fd5b80632f2ff15d116100de5780632f2ff15d1461019357806336568abe146101a657806344e9d2fb146101b95780635d730c58146101cc57600080fd5b806301ffc9a7146101105780630f01a4a214610138578063248a9ca31461014d5780632a1972981461017e575b600080fd5b61012361011e36600461114b565b610283565b60405190151581526020015b60405180910390f35b6101406102ae565b60405161012f9190611175565b61017061015b3660046111c2565b60009081526020819052604090206001015490565b60405190815260200161012f565b61019161018c3660046111f0565b610378565b005b6101916101a1366004611231565b610612565b6101916101b4366004611231565b61063c565b6101236101c7366004611261565b6106ba565b6101916106d4565b6101916101e2366004611261565b610713565b6101fa6101f536600461127e565b61077c565b6040516001600160a01b03909116815260200161012f565b610123610220366004611231565b61079b565b6101706000805160206114fb83398151915281565b610170600081565b610191610250366004611261565b6107c4565b6101706102633660046111c2565b6107dc565b610191610276366004611231565b6107f3565b610191610818565b60006001600160e01b03198216635a05180f60e01b14806102a857506102a8826108f3565b92915050565b606060006102c96000805160206114fb8339815191526107dc565b905060008167ffffffffffffffff8111156102e6576102e66112a0565b60405190808252806020026020018201604052801561030f578160200160208202803683370190505b50905060005b82811015610371576103356000805160206114fb8339815191528261077c565b828281518110610347576103476112b6565b6001600160a01b039092166020928302919091019091015280610369816112e2565b915050610315565b5092915050565b336001600160a01b03831614806103c757506103a26000805160206114fb8339815191523361079b565b80156103c757506001600160a01b03821660009081526002602052604090205460ff16155b6104105760405162461bcd60e51b81526020600482015260156024820152741bdc195c985d1a5bdb881b9bdd08185b1b1bddd959605a1b60448201526064015b60405180910390fd5b60008390506000816001600160a01b031663ee719bc86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610455573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047991906112fb565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156104c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e79190611318565b90506104fe6001600160a01b038316863087610928565b6105136001600160a01b038316846000610999565b6105276001600160a01b0383168486610999565b6040516370a0823160e01b81523060048201526001600160a01b0380851691635b9d09cc91889185918716906370a0823190602401602060405180830381865afa158015610579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059d9190611318565b6105a79190611331565b604080516000815260208101918290526001600160e01b031960e086901b169091526105d8929190602481016113a0565b600060405180830381600087803b1580156105f257600080fd5b505af1158015610606573d6000803e3d6000fd5b50505050505050505050565b60008281526020819052604090206001015461062d81610aae565b6106378383610ab8565b505050565b6001600160a01b03811633146106ac5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610407565b6106b68282610ada565b5050565b60006102a86000805160206114fb8339815191528361079b565b33600081815260026020526040808220805460ff19169055517fde802370a7a9557e8d50bffe30a1bbd3d327beb1964088485a5465325bc5fb7a9190a2565b6001600160a01b0381166107615760405162461bcd60e51b81526020600482015260156024820152741bdc195c985d1a5bdb881b9bdd08185b1b1bddd959605a1b6044820152606401610407565b6107796000805160206114fb83398151915282610612565b50565b60008281526001602052604081206107949083610afc565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6107796000805160206114fb833981519152826107f3565b60008181526001602052604081206102a890610b08565b60008281526020819052604090206001015461080e81610aae565b6106378383610ada565b33600081815260026020526040808220805460ff19166001179055517fd07f586f18c37aa8ec13ebc5523e50304e2aa7711505bfa7242fcb7152eaee259190a2565b610864828261079b565b6106b6576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561089a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610794836001600160a01b038416610b12565b60006001600160e01b03198216637965db0b60e01b14806102a857506301ffc9a760e01b6001600160e01b03198316146102a8565b6040516001600160a01b03808516602483015283166044820152606481018290526109939085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610b61565b50505050565b801580610a135750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156109ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a119190611318565b155b610a7e5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610407565b6040516001600160a01b03831660248201526044810182905261063790849063095ea7b360e01b9060640161095c565b6107798133610c33565b610ac2828261085a565b600082815260016020526040902061063790826108de565b610ae48282610c97565b60008281526001602052604090206106379082610cfc565b60006107948383610d11565b60006102a8825490565b6000818152600183016020526040812054610b59575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556102a8565b5060006102a8565b6000610bb6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610d3b9092919063ffffffff16565b8051909150156106375780806020019051810190610bd491906113d0565b6106375760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610407565b610c3d828261079b565b6106b657610c55816001600160a01b03166014610d52565b610c60836020610d52565b604051602001610c719291906113f2565b60408051601f198184030181529082905262461bcd60e51b825261040791600401611467565b610ca1828261079b565b156106b6576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610794836001600160a01b038416610eee565b6000826000018281548110610d2857610d286112b6565b9060005260206000200154905092915050565b6060610d4a8484600085610fe1565b949350505050565b60606000610d6183600261147a565b610d6c906002611499565b67ffffffffffffffff811115610d8457610d846112a0565b6040519080825280601f01601f191660200182016040528015610dae576020820181803683370190505b509050600360fc1b81600081518110610dc957610dc96112b6565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610df857610df86112b6565b60200101906001600160f81b031916908160001a9053506000610e1c84600261147a565b610e27906001611499565b90505b6001811115610e9f576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110610e5b57610e5b6112b6565b1a60f81b828281518110610e7157610e716112b6565b60200101906001600160f81b031916908160001a90535060049490941c93610e98816114b1565b9050610e2a565b5083156107945760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610407565b60008181526001830160205260408120548015610fd7576000610f12600183611331565b8554909150600090610f2690600190611331565b9050818114610f8b576000866000018281548110610f4657610f466112b6565b9060005260206000200154905080876000018481548110610f6957610f696112b6565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080610f9c57610f9c6114c8565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506102a8565b60009150506102a8565b6060824710156110425760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610407565b6001600160a01b0385163b6110995760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610407565b600080866001600160a01b031685876040516110b591906114de565b60006040518083038185875af1925050503d80600081146110f2576040519150601f19603f3d011682016040523d82523d6000602084013e6110f7565b606091505b5091509150611107828286611112565b979650505050505050565b60608315611121575081610794565b8251156111315782518084602001fd5b8160405162461bcd60e51b81526004016104079190611467565b60006020828403121561115d57600080fd5b81356001600160e01b03198116811461079457600080fd5b6020808252825182820181905260009190848201906040850190845b818110156111b65783516001600160a01b031683529284019291840191600101611191565b50909695505050505050565b6000602082840312156111d457600080fd5b5035919050565b6001600160a01b038116811461077957600080fd5b60008060006060848603121561120557600080fd5b8335611210816111db565b92506020840135611220816111db565b929592945050506040919091013590565b6000806040838503121561124457600080fd5b823591506020830135611256816111db565b809150509250929050565b60006020828403121561127357600080fd5b8135610794816111db565b6000806040838503121561129157600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016112f4576112f46112cc565b5060010190565b60006020828403121561130d57600080fd5b8151610794816111db565b60006020828403121561132a57600080fd5b5051919050565b600082821015611343576113436112cc565b500390565b60005b8381101561136357818101518382015260200161134b565b838111156109935750506000910152565b6000815180845261138c816020860160208601611348565b601f01601f19169290920160200192915050565b60018060a01b03841681528260208201526060604082015260006113c76060830184611374565b95945050505050565b6000602082840312156113e257600080fd5b8151801515811461079457600080fd5b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161142a816017850160208801611348565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161145b816028840160208801611348565b01602801949350505050565b6020815260006107946020830184611374565b6000816000190483118215151615611494576114946112cc565b500290565b600082198211156114ac576114ac6112cc565b500190565b6000816114c0576114c06112cc565b506000190190565b634e487b7160e01b600052603160045260246000fd5b600082516114f0818460208701611348565b919091019291505056fe25cf2b509f2a7f322675b2a5322b182f44ad2c03ac941a0af17c9b178f5d5d5fa264697066735822122034d447f999748dc7ad0a07a4dd0b7316747dfc1cb4057934dcb06f9c0a95f13f64736f6c634300080e0033",
404
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806361985da7116100a2578063a217fddf11610071578063a217fddf1461023a578063abcac5eb14610242578063ca15c87314610255578063d547741f14610268578063ec3282531461027b57600080fd5b806361985da7146101d45780639010d07c146101e757806391d148541461021257806392c2becc1461022557600080fd5b80632f2ff15d116100de5780632f2ff15d1461019357806336568abe146101a657806344e9d2fb146101b95780635d730c58146101cc57600080fd5b806301ffc9a7146101105780630f01a4a214610138578063248a9ca31461014d5780632a1972981461017e575b600080fd5b61012361011e36600461114b565b610283565b60405190151581526020015b60405180910390f35b6101406102ae565b60405161012f9190611175565b61017061015b3660046111c2565b60009081526020819052604090206001015490565b60405190815260200161012f565b61019161018c3660046111f0565b610378565b005b6101916101a1366004611231565b610612565b6101916101b4366004611231565b61063c565b6101236101c7366004611261565b6106ba565b6101916106d4565b6101916101e2366004611261565b610713565b6101fa6101f536600461127e565b61077c565b6040516001600160a01b03909116815260200161012f565b610123610220366004611231565b61079b565b6101706000805160206114fb83398151915281565b610170600081565b610191610250366004611261565b6107c4565b6101706102633660046111c2565b6107dc565b610191610276366004611231565b6107f3565b610191610818565b60006001600160e01b03198216635a05180f60e01b14806102a857506102a8826108f3565b92915050565b606060006102c96000805160206114fb8339815191526107dc565b905060008167ffffffffffffffff8111156102e6576102e66112a0565b60405190808252806020026020018201604052801561030f578160200160208202803683370190505b50905060005b82811015610371576103356000805160206114fb8339815191528261077c565b828281518110610347576103476112b6565b6001600160a01b039092166020928302919091019091015280610369816112e2565b915050610315565b5092915050565b336001600160a01b03831614806103c757506103a26000805160206114fb8339815191523361079b565b80156103c757506001600160a01b03821660009081526002602052604090205460ff16155b6104105760405162461bcd60e51b81526020600482015260156024820152741bdc195c985d1a5bdb881b9bdd08185b1b1bddd959605a1b60448201526064015b60405180910390fd5b60008390506000816001600160a01b031663ee719bc86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610455573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047991906112fb565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156104c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e79190611318565b90506104fe6001600160a01b038316863087610928565b6105136001600160a01b038316846000610999565b6105276001600160a01b0383168486610999565b6040516370a0823160e01b81523060048201526001600160a01b0380851691635b9d09cc91889185918716906370a0823190602401602060405180830381865afa158015610579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059d9190611318565b6105a79190611331565b604080516000815260208101918290526001600160e01b031960e086901b169091526105d8929190602481016113a0565b600060405180830381600087803b1580156105f257600080fd5b505af1158015610606573d6000803e3d6000fd5b50505050505050505050565b60008281526020819052604090206001015461062d81610aae565b6106378383610ab8565b505050565b6001600160a01b03811633146106ac5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610407565b6106b68282610ada565b5050565b60006102a86000805160206114fb8339815191528361079b565b33600081815260026020526040808220805460ff19169055517fde802370a7a9557e8d50bffe30a1bbd3d327beb1964088485a5465325bc5fb7a9190a2565b6001600160a01b0381166107615760405162461bcd60e51b81526020600482015260156024820152741bdc195c985d1a5bdb881b9bdd08185b1b1bddd959605a1b6044820152606401610407565b6107796000805160206114fb83398151915282610612565b50565b60008281526001602052604081206107949083610afc565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6107796000805160206114fb833981519152826107f3565b60008181526001602052604081206102a890610b08565b60008281526020819052604090206001015461080e81610aae565b6106378383610ada565b33600081815260026020526040808220805460ff19166001179055517fd07f586f18c37aa8ec13ebc5523e50304e2aa7711505bfa7242fcb7152eaee259190a2565b610864828261079b565b6106b6576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561089a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610794836001600160a01b038416610b12565b60006001600160e01b03198216637965db0b60e01b14806102a857506301ffc9a760e01b6001600160e01b03198316146102a8565b6040516001600160a01b03808516602483015283166044820152606481018290526109939085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610b61565b50505050565b801580610a135750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156109ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a119190611318565b155b610a7e5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610407565b6040516001600160a01b03831660248201526044810182905261063790849063095ea7b360e01b9060640161095c565b6107798133610c33565b610ac2828261085a565b600082815260016020526040902061063790826108de565b610ae48282610c97565b60008281526001602052604090206106379082610cfc565b60006107948383610d11565b60006102a8825490565b6000818152600183016020526040812054610b59575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556102a8565b5060006102a8565b6000610bb6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610d3b9092919063ffffffff16565b8051909150156106375780806020019051810190610bd491906113d0565b6106375760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610407565b610c3d828261079b565b6106b657610c55816001600160a01b03166014610d52565b610c60836020610d52565b604051602001610c719291906113f2565b60408051601f198184030181529082905262461bcd60e51b825261040791600401611467565b610ca1828261079b565b156106b6576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610794836001600160a01b038416610eee565b6000826000018281548110610d2857610d286112b6565b9060005260206000200154905092915050565b6060610d4a8484600085610fe1565b949350505050565b60606000610d6183600261147a565b610d6c906002611499565b67ffffffffffffffff811115610d8457610d846112a0565b6040519080825280601f01601f191660200182016040528015610dae576020820181803683370190505b509050600360fc1b81600081518110610dc957610dc96112b6565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610df857610df86112b6565b60200101906001600160f81b031916908160001a9053506000610e1c84600261147a565b610e27906001611499565b90505b6001811115610e9f576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110610e5b57610e5b6112b6565b1a60f81b828281518110610e7157610e716112b6565b60200101906001600160f81b031916908160001a90535060049490941c93610e98816114b1565b9050610e2a565b5083156107945760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610407565b60008181526001830160205260408120548015610fd7576000610f12600183611331565b8554909150600090610f2690600190611331565b9050818114610f8b576000866000018281548110610f4657610f466112b6565b9060005260206000200154905080876000018481548110610f6957610f696112b6565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080610f9c57610f9c6114c8565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506102a8565b60009150506102a8565b6060824710156110425760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610407565b6001600160a01b0385163b6110995760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610407565b600080866001600160a01b031685876040516110b591906114de565b60006040518083038185875af1925050503d80600081146110f2576040519150601f19603f3d011682016040523d82523d6000602084013e6110f7565b606091505b5091509150611107828286611112565b979650505050505050565b60608315611121575081610794565b8251156111315782518084602001fd5b8160405162461bcd60e51b81526004016104079190611467565b60006020828403121561115d57600080fd5b81356001600160e01b03198116811461079457600080fd5b6020808252825182820181905260009190848201906040850190845b818110156111b65783516001600160a01b031683529284019291840191600101611191565b50909695505050505050565b6000602082840312156111d457600080fd5b5035919050565b6001600160a01b038116811461077957600080fd5b60008060006060848603121561120557600080fd5b8335611210816111db565b92506020840135611220816111db565b929592945050506040919091013590565b6000806040838503121561124457600080fd5b823591506020830135611256816111db565b809150509250929050565b60006020828403121561127357600080fd5b8135610794816111db565b6000806040838503121561129157600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016112f4576112f46112cc565b5060010190565b60006020828403121561130d57600080fd5b8151610794816111db565b60006020828403121561132a57600080fd5b5051919050565b600082821015611343576113436112cc565b500390565b60005b8381101561136357818101518382015260200161134b565b838111156109935750506000910152565b6000815180845261138c816020860160208601611348565b601f01601f19169290920160200192915050565b60018060a01b03841681528260208201526060604082015260006113c76060830184611374565b95945050505050565b6000602082840312156113e257600080fd5b8151801515811461079457600080fd5b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161142a816017850160208801611348565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161145b816028840160208801611348565b01602801949350505050565b6020815260006107946020830184611374565b6000816000190483118215151615611494576114946112cc565b500290565b600082198211156114ac576114ac6112cc565b500190565b6000816114c0576114c06112cc565b506000190190565b634e487b7160e01b600052603160045260246000fd5b600082516114f0818460208701611348565b919091019291505056fe25cf2b509f2a7f322675b2a5322b182f44ad2c03ac941a0af17c9b178f5d5d5fa264697066735822122034d447f999748dc7ad0a07a4dd0b7316747dfc1cb4057934dcb06f9c0a95f13f64736f6c634300080e0033",
405
405
  "immutableReferences": {},
406
406
  "generatedSources": [
407
407
  {
@@ -10220,7 +10220,7 @@
10220
10220
  1772
10221
10221
  ],
10222
10222
  "ISuperToken": [
10223
- 19482
10223
+ 19492
10224
10224
  ],
10225
10225
  "SafeERC20": [
10226
10226
  2189
@@ -10229,15 +10229,15 @@
10229
10229
  3046
10230
10230
  ],
10231
10231
  "SuperUpgrader": [
10232
- 37629
10232
+ 37621
10233
10233
  ]
10234
10234
  },
10235
- "id": 37630,
10235
+ "id": 37622,
10236
10236
  "license": "AGPLv3",
10237
10237
  "nodeType": "SourceUnit",
10238
10238
  "nodes": [
10239
10239
  {
10240
- "id": 37307,
10240
+ "id": 37299,
10241
10241
  "literals": [
10242
10242
  "solidity",
10243
10243
  "0.8",
@@ -10249,10 +10249,10 @@
10249
10249
  {
10250
10250
  "absolutePath": "@openzeppelin/contracts/access/AccessControlEnumerable.sol",
10251
10251
  "file": "@openzeppelin/contracts/access/AccessControlEnumerable.sol",
10252
- "id": 37308,
10252
+ "id": 37300,
10253
10253
  "nameLocation": "-1:-1:-1",
10254
10254
  "nodeType": "ImportDirective",
10255
- "scope": 37630,
10255
+ "scope": 37622,
10256
10256
  "sourceUnit": 445,
10257
10257
  "src": "60:68:100",
10258
10258
  "symbolAliases": [],
@@ -10261,10 +10261,10 @@
10261
10261
  {
10262
10262
  "absolutePath": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
10263
10263
  "file": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
10264
- "id": 37309,
10264
+ "id": 37301,
10265
10265
  "nameLocation": "-1:-1:-1",
10266
10266
  "nodeType": "ImportDirective",
10267
- "scope": 37630,
10267
+ "scope": 37622,
10268
10268
  "sourceUnit": 2190,
10269
10269
  "src": "129:65:100",
10270
10270
  "symbolAliases": [],
@@ -10273,20 +10273,20 @@
10273
10273
  {
10274
10274
  "absolutePath": "project:/contracts/interfaces/superfluid/ISuperfluid.sol",
10275
10275
  "file": "../interfaces/superfluid/ISuperfluid.sol",
10276
- "id": 37312,
10276
+ "id": 37304,
10277
10277
  "nameLocation": "-1:-1:-1",
10278
10278
  "nodeType": "ImportDirective",
10279
- "scope": 37630,
10280
- "sourceUnit": 20046,
10279
+ "scope": 37622,
10280
+ "sourceUnit": 20054,
10281
10281
  "src": "195:87:100",
10282
10282
  "symbolAliases": [
10283
10283
  {
10284
10284
  "foreign": {
10285
- "id": 37310,
10285
+ "id": 37302,
10286
10286
  "name": "ISuperToken",
10287
10287
  "nodeType": "Identifier",
10288
10288
  "overloadedDeclarations": [],
10289
- "referencedDeclaration": 19482,
10289
+ "referencedDeclaration": 19492,
10290
10290
  "src": "208:11:100",
10291
10291
  "typeDescriptions": {}
10292
10292
  },
@@ -10294,7 +10294,7 @@
10294
10294
  },
10295
10295
  {
10296
10296
  "foreign": {
10297
- "id": 37311,
10297
+ "id": 37303,
10298
10298
  "name": "IERC20",
10299
10299
  "nodeType": "Identifier",
10300
10300
  "overloadedDeclarations": [],
@@ -10312,13 +10312,13 @@
10312
10312
  "baseContracts": [
10313
10313
  {
10314
10314
  "baseName": {
10315
- "id": 37314,
10315
+ "id": 37306,
10316
10316
  "name": "AccessControlEnumerable",
10317
10317
  "nodeType": "IdentifierPath",
10318
10318
  "referencedDeclaration": 444,
10319
10319
  "src": "671:23:100"
10320
10320
  },
10321
- "id": 37315,
10321
+ "id": 37307,
10322
10322
  "nodeType": "InheritanceSpecifier",
10323
10323
  "src": "671:23:100"
10324
10324
  }
@@ -10327,15 +10327,15 @@
10327
10327
  "contractDependencies": [],
10328
10328
  "contractKind": "contract",
10329
10329
  "documentation": {
10330
- "id": 37313,
10330
+ "id": 37305,
10331
10331
  "nodeType": "StructuredDocumentation",
10332
10332
  "src": "284:360:100",
10333
10333
  "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."
10334
10334
  },
10335
10335
  "fullyImplemented": true,
10336
- "id": 37629,
10336
+ "id": 37621,
10337
10337
  "linearizedBaseContracts": [
10338
- 37629,
10338
+ 37621,
10339
10339
  444,
10340
10340
  319,
10341
10341
  3070,
@@ -10350,9 +10350,9 @@
10350
10350
  "nodes": [
10351
10351
  {
10352
10352
  "global": false,
10353
- "id": 37319,
10353
+ "id": 37311,
10354
10354
  "libraryName": {
10355
- "id": 37316,
10355
+ "id": 37308,
10356
10356
  "name": "SafeERC20",
10357
10357
  "nodeType": "IdentifierPath",
10358
10358
  "referencedDeclaration": 2189,
@@ -10361,10 +10361,10 @@
10361
10361
  "nodeType": "UsingForDirective",
10362
10362
  "src": "702:27:100",
10363
10363
  "typeName": {
10364
- "id": 37318,
10364
+ "id": 37310,
10365
10365
  "nodeType": "UserDefinedTypeName",
10366
10366
  "pathNode": {
10367
- "id": 37317,
10367
+ "id": 37309,
10368
10368
  "name": "IERC20",
10369
10369
  "nodeType": "IdentifierPath",
10370
10370
  "referencedDeclaration": 1630,
@@ -10381,12 +10381,12 @@
10381
10381
  {
10382
10382
  "constant": true,
10383
10383
  "functionSelector": "92c2becc",
10384
- "id": 37324,
10384
+ "id": 37316,
10385
10385
  "mutability": "constant",
10386
10386
  "name": "BACKEND_ROLE",
10387
10387
  "nameLocation": "815:12:100",
10388
10388
  "nodeType": "VariableDeclaration",
10389
- "scope": 37629,
10389
+ "scope": 37621,
10390
10390
  "src": "791:64:100",
10391
10391
  "stateVariable": true,
10392
10392
  "storageLocation": "default",
@@ -10395,7 +10395,7 @@
10395
10395
  "typeString": "bytes32"
10396
10396
  },
10397
10397
  "typeName": {
10398
- "id": 37320,
10398
+ "id": 37312,
10399
10399
  "name": "bytes32",
10400
10400
  "nodeType": "ElementaryTypeName",
10401
10401
  "src": "791:7:100",
@@ -10408,7 +10408,7 @@
10408
10408
  "arguments": [
10409
10409
  {
10410
10410
  "hexValue": "4241434b454e445f524f4c45",
10411
- "id": 37322,
10411
+ "id": 37314,
10412
10412
  "isConstant": false,
10413
10413
  "isLValue": false,
10414
10414
  "isPure": true,
@@ -10430,7 +10430,7 @@
10430
10430
  "typeString": "literal_string \"BACKEND_ROLE\""
10431
10431
  }
10432
10432
  ],
10433
- "id": 37321,
10433
+ "id": 37313,
10434
10434
  "name": "keccak256",
10435
10435
  "nodeType": "Identifier",
10436
10436
  "overloadedDeclarations": [],
@@ -10441,7 +10441,7 @@
10441
10441
  "typeString": "function (bytes memory) pure returns (bytes32)"
10442
10442
  }
10443
10443
  },
10444
- "id": 37323,
10444
+ "id": 37315,
10445
10445
  "isConstant": false,
10446
10446
  "isLValue": false,
10447
10447
  "isPure": true,
@@ -10461,23 +10461,23 @@
10461
10461
  {
10462
10462
  "anonymous": false,
10463
10463
  "eventSelector": "d07f586f18c37aa8ec13ebc5523e50304e2aa7711505bfa7242fcb7152eaee25",
10464
- "id": 37328,
10464
+ "id": 37320,
10465
10465
  "name": "OptoutAutoUpgrade",
10466
10466
  "nameLocation": "868:17:100",
10467
10467
  "nodeType": "EventDefinition",
10468
10468
  "parameters": {
10469
- "id": 37327,
10469
+ "id": 37319,
10470
10470
  "nodeType": "ParameterList",
10471
10471
  "parameters": [
10472
10472
  {
10473
10473
  "constant": false,
10474
- "id": 37326,
10474
+ "id": 37318,
10475
10475
  "indexed": true,
10476
10476
  "mutability": "mutable",
10477
10477
  "name": "account",
10478
10478
  "nameLocation": "902:7:100",
10479
10479
  "nodeType": "VariableDeclaration",
10480
- "scope": 37328,
10480
+ "scope": 37320,
10481
10481
  "src": "886:23:100",
10482
10482
  "stateVariable": false,
10483
10483
  "storageLocation": "default",
@@ -10486,7 +10486,7 @@
10486
10486
  "typeString": "address"
10487
10487
  },
10488
10488
  "typeName": {
10489
- "id": 37325,
10489
+ "id": 37317,
10490
10490
  "name": "address",
10491
10491
  "nodeType": "ElementaryTypeName",
10492
10492
  "src": "886:7:100",
@@ -10506,23 +10506,23 @@
10506
10506
  {
10507
10507
  "anonymous": false,
10508
10508
  "eventSelector": "de802370a7a9557e8d50bffe30a1bbd3d327beb1964088485a5465325bc5fb7a",
10509
- "id": 37332,
10509
+ "id": 37324,
10510
10510
  "name": "OptinAutoUpgrade",
10511
10511
  "nameLocation": "922:16:100",
10512
10512
  "nodeType": "EventDefinition",
10513
10513
  "parameters": {
10514
- "id": 37331,
10514
+ "id": 37323,
10515
10515
  "nodeType": "ParameterList",
10516
10516
  "parameters": [
10517
10517
  {
10518
10518
  "constant": false,
10519
- "id": 37330,
10519
+ "id": 37322,
10520
10520
  "indexed": true,
10521
10521
  "mutability": "mutable",
10522
10522
  "name": "account",
10523
10523
  "nameLocation": "955:7:100",
10524
10524
  "nodeType": "VariableDeclaration",
10525
- "scope": 37332,
10525
+ "scope": 37324,
10526
10526
  "src": "939:23:100",
10527
10527
  "stateVariable": false,
10528
10528
  "storageLocation": "default",
@@ -10531,7 +10531,7 @@
10531
10531
  "typeString": "address"
10532
10532
  },
10533
10533
  "typeName": {
10534
- "id": 37329,
10534
+ "id": 37321,
10535
10535
  "name": "address",
10536
10536
  "nodeType": "ElementaryTypeName",
10537
10537
  "src": "939:7:100",
@@ -10550,12 +10550,12 @@
10550
10550
  },
10551
10551
  {
10552
10552
  "constant": false,
10553
- "id": 37336,
10553
+ "id": 37328,
10554
10554
  "mutability": "mutable",
10555
10555
  "name": "_optout",
10556
10556
  "nameLocation": "1004:7:100",
10557
10557
  "nodeType": "VariableDeclaration",
10558
- "scope": 37629,
10558
+ "scope": 37621,
10559
10559
  "src": "970:41:100",
10560
10560
  "stateVariable": true,
10561
10561
  "storageLocation": "default",
@@ -10564,9 +10564,9 @@
10564
10564
  "typeString": "mapping(address => bool)"
10565
10565
  },
10566
10566
  "typeName": {
10567
- "id": 37335,
10567
+ "id": 37327,
10568
10568
  "keyType": {
10569
- "id": 37333,
10569
+ "id": 37325,
10570
10570
  "name": "address",
10571
10571
  "nodeType": "ElementaryTypeName",
10572
10572
  "src": "978:7:100",
@@ -10582,7 +10582,7 @@
10582
10582
  "typeString": "mapping(address => bool)"
10583
10583
  },
10584
10584
  "valueType": {
10585
- "id": 37334,
10585
+ "id": 37326,
10586
10586
  "name": "bool",
10587
10587
  "nodeType": "ElementaryTypeName",
10588
10588
  "src": "989:4:100",
@@ -10596,7 +10596,7 @@
10596
10596
  },
10597
10597
  {
10598
10598
  "body": {
10599
- "id": 37391,
10599
+ "id": 37383,
10600
10600
  "nodeType": "Block",
10601
10601
  "src": "1079:321:100",
10602
10602
  "statements": [
@@ -10608,17 +10608,17 @@
10608
10608
  "typeIdentifier": "t_address",
10609
10609
  "typeString": "address"
10610
10610
  },
10611
- "id": 37350,
10611
+ "id": 37342,
10612
10612
  "isConstant": false,
10613
10613
  "isLValue": false,
10614
10614
  "isPure": false,
10615
10615
  "lValueRequested": false,
10616
10616
  "leftExpression": {
10617
- "id": 37345,
10617
+ "id": 37337,
10618
10618
  "name": "adminRole",
10619
10619
  "nodeType": "Identifier",
10620
10620
  "overloadedDeclarations": [],
10621
- "referencedDeclaration": 37338,
10621
+ "referencedDeclaration": 37330,
10622
10622
  "src": "1097:9:100",
10623
10623
  "typeDescriptions": {
10624
10624
  "typeIdentifier": "t_address",
@@ -10631,7 +10631,7 @@
10631
10631
  "arguments": [
10632
10632
  {
10633
10633
  "hexValue": "30",
10634
- "id": 37348,
10634
+ "id": 37340,
10635
10635
  "isConstant": false,
10636
10636
  "isLValue": false,
10637
10637
  "isPure": true,
@@ -10653,7 +10653,7 @@
10653
10653
  "typeString": "int_const 0"
10654
10654
  }
10655
10655
  ],
10656
- "id": 37347,
10656
+ "id": 37339,
10657
10657
  "isConstant": false,
10658
10658
  "isLValue": false,
10659
10659
  "isPure": true,
@@ -10665,14 +10665,14 @@
10665
10665
  "typeString": "type(address)"
10666
10666
  },
10667
10667
  "typeName": {
10668
- "id": 37346,
10668
+ "id": 37338,
10669
10669
  "name": "address",
10670
10670
  "nodeType": "ElementaryTypeName",
10671
10671
  "src": "1110:7:100",
10672
10672
  "typeDescriptions": {}
10673
10673
  }
10674
10674
  },
10675
- "id": 37349,
10675
+ "id": 37341,
10676
10676
  "isConstant": false,
10677
10677
  "isLValue": false,
10678
10678
  "isPure": true,
@@ -10695,7 +10695,7 @@
10695
10695
  },
10696
10696
  {
10697
10697
  "hexValue": "61646d696e526f6c6520697320656d707479",
10698
- "id": 37351,
10698
+ "id": 37343,
10699
10699
  "isConstant": false,
10700
10700
  "isLValue": false,
10701
10701
  "isPure": true,
@@ -10721,7 +10721,7 @@
10721
10721
  "typeString": "literal_string \"adminRole is empty\""
10722
10722
  }
10723
10723
  ],
10724
- "id": 37344,
10724
+ "id": 37336,
10725
10725
  "name": "require",
10726
10726
  "nodeType": "Identifier",
10727
10727
  "overloadedDeclarations": [
@@ -10735,7 +10735,7 @@
10735
10735
  "typeString": "function (bool,string memory) pure"
10736
10736
  }
10737
10737
  },
10738
- "id": 37352,
10738
+ "id": 37344,
10739
10739
  "isConstant": false,
10740
10740
  "isLValue": false,
10741
10741
  "isPure": false,
@@ -10750,7 +10750,7 @@
10750
10750
  "typeString": "tuple()"
10751
10751
  }
10752
10752
  },
10753
- "id": 37353,
10753
+ "id": 37345,
10754
10754
  "nodeType": "ExpressionStatement",
10755
10755
  "src": "1089:54:100"
10756
10756
  },
@@ -10758,7 +10758,7 @@
10758
10758
  "expression": {
10759
10759
  "arguments": [
10760
10760
  {
10761
- "id": 37355,
10761
+ "id": 37347,
10762
10762
  "name": "DEFAULT_ADMIN_ROLE",
10763
10763
  "nodeType": "Identifier",
10764
10764
  "overloadedDeclarations": [],
@@ -10770,11 +10770,11 @@
10770
10770
  }
10771
10771
  },
10772
10772
  {
10773
- "id": 37356,
10773
+ "id": 37348,
10774
10774
  "name": "adminRole",
10775
10775
  "nodeType": "Identifier",
10776
10776
  "overloadedDeclarations": [],
10777
- "referencedDeclaration": 37338,
10777
+ "referencedDeclaration": 37330,
10778
10778
  "src": "1184:9:100",
10779
10779
  "typeDescriptions": {
10780
10780
  "typeIdentifier": "t_address",
@@ -10793,7 +10793,7 @@
10793
10793
  "typeString": "address"
10794
10794
  }
10795
10795
  ],
10796
- "id": 37354,
10796
+ "id": 37346,
10797
10797
  "name": "_setupRole",
10798
10798
  "nodeType": "Identifier",
10799
10799
  "overloadedDeclarations": [],
@@ -10804,7 +10804,7 @@
10804
10804
  "typeString": "function (bytes32,address)"
10805
10805
  }
10806
10806
  },
10807
- "id": 37357,
10807
+ "id": 37349,
10808
10808
  "isConstant": false,
10809
10809
  "isLValue": false,
10810
10810
  "isPure": false,
@@ -10819,13 +10819,13 @@
10819
10819
  "typeString": "tuple()"
10820
10820
  }
10821
10821
  },
10822
- "id": 37358,
10822
+ "id": 37350,
10823
10823
  "nodeType": "ExpressionStatement",
10824
10824
  "src": "1153:41:100"
10825
10825
  },
10826
10826
  {
10827
10827
  "body": {
10828
- "id": 37389,
10828
+ "id": 37381,
10829
10829
  "nodeType": "Block",
10830
10830
  "src": "1253:141:100",
10831
10831
  "statements": [
@@ -10837,31 +10837,31 @@
10837
10837
  "typeIdentifier": "t_address",
10838
10838
  "typeString": "address"
10839
10839
  },
10840
- "id": 37378,
10840
+ "id": 37370,
10841
10841
  "isConstant": false,
10842
10842
  "isLValue": false,
10843
10843
  "isPure": false,
10844
10844
  "lValueRequested": false,
10845
10845
  "leftExpression": {
10846
10846
  "baseExpression": {
10847
- "id": 37371,
10847
+ "id": 37363,
10848
10848
  "name": "backendAddr",
10849
10849
  "nodeType": "Identifier",
10850
10850
  "overloadedDeclarations": [],
10851
- "referencedDeclaration": 37341,
10851
+ "referencedDeclaration": 37333,
10852
10852
  "src": "1275:11:100",
10853
10853
  "typeDescriptions": {
10854
10854
  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
10855
10855
  "typeString": "address[] memory"
10856
10856
  }
10857
10857
  },
10858
- "id": 37373,
10858
+ "id": 37365,
10859
10859
  "indexExpression": {
10860
- "id": 37372,
10860
+ "id": 37364,
10861
10861
  "name": "i",
10862
10862
  "nodeType": "Identifier",
10863
10863
  "overloadedDeclarations": [],
10864
- "referencedDeclaration": 37360,
10864
+ "referencedDeclaration": 37352,
10865
10865
  "src": "1287:1:100",
10866
10866
  "typeDescriptions": {
10867
10867
  "typeIdentifier": "t_uint256",
@@ -10885,7 +10885,7 @@
10885
10885
  "arguments": [
10886
10886
  {
10887
10887
  "hexValue": "30",
10888
- "id": 37376,
10888
+ "id": 37368,
10889
10889
  "isConstant": false,
10890
10890
  "isLValue": false,
10891
10891
  "isPure": true,
@@ -10907,7 +10907,7 @@
10907
10907
  "typeString": "int_const 0"
10908
10908
  }
10909
10909
  ],
10910
- "id": 37375,
10910
+ "id": 37367,
10911
10911
  "isConstant": false,
10912
10912
  "isLValue": false,
10913
10913
  "isPure": true,
@@ -10919,14 +10919,14 @@
10919
10919
  "typeString": "type(address)"
10920
10920
  },
10921
10921
  "typeName": {
10922
- "id": 37374,
10922
+ "id": 37366,
10923
10923
  "name": "address",
10924
10924
  "nodeType": "ElementaryTypeName",
10925
10925
  "src": "1293:7:100",
10926
10926
  "typeDescriptions": {}
10927
10927
  }
10928
10928
  },
10929
- "id": 37377,
10929
+ "id": 37369,
10930
10930
  "isConstant": false,
10931
10931
  "isLValue": false,
10932
10932
  "isPure": true,
@@ -10949,7 +10949,7 @@
10949
10949
  },
10950
10950
  {
10951
10951
  "hexValue": "6261636b656e642063616e2774206265207a65726f",
10952
- "id": 37379,
10952
+ "id": 37371,
10953
10953
  "isConstant": false,
10954
10954
  "isLValue": false,
10955
10955
  "isPure": true,
@@ -10975,7 +10975,7 @@
10975
10975
  "typeString": "literal_string \"backend can't be zero\""
10976
10976
  }
10977
10977
  ],
10978
- "id": 37370,
10978
+ "id": 37362,
10979
10979
  "name": "require",
10980
10980
  "nodeType": "Identifier",
10981
10981
  "overloadedDeclarations": [
@@ -10989,7 +10989,7 @@
10989
10989
  "typeString": "function (bool,string memory) pure"
10990
10990
  }
10991
10991
  },
10992
- "id": 37380,
10992
+ "id": 37372,
10993
10993
  "isConstant": false,
10994
10994
  "isLValue": false,
10995
10995
  "isPure": false,
@@ -11004,7 +11004,7 @@
11004
11004
  "typeString": "tuple()"
11005
11005
  }
11006
11006
  },
11007
- "id": 37381,
11007
+ "id": 37373,
11008
11008
  "nodeType": "ExpressionStatement",
11009
11009
  "src": "1267:62:100"
11010
11010
  },
@@ -11012,11 +11012,11 @@
11012
11012
  "expression": {
11013
11013
  "arguments": [
11014
11014
  {
11015
- "id": 37383,
11015
+ "id": 37375,
11016
11016
  "name": "BACKEND_ROLE",
11017
11017
  "nodeType": "Identifier",
11018
11018
  "overloadedDeclarations": [],
11019
- "referencedDeclaration": 37324,
11019
+ "referencedDeclaration": 37316,
11020
11020
  "src": "1354:12:100",
11021
11021
  "typeDescriptions": {
11022
11022
  "typeIdentifier": "t_bytes32",
@@ -11025,24 +11025,24 @@
11025
11025
  },
11026
11026
  {
11027
11027
  "baseExpression": {
11028
- "id": 37384,
11028
+ "id": 37376,
11029
11029
  "name": "backendAddr",
11030
11030
  "nodeType": "Identifier",
11031
11031
  "overloadedDeclarations": [],
11032
- "referencedDeclaration": 37341,
11032
+ "referencedDeclaration": 37333,
11033
11033
  "src": "1368:11:100",
11034
11034
  "typeDescriptions": {
11035
11035
  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
11036
11036
  "typeString": "address[] memory"
11037
11037
  }
11038
11038
  },
11039
- "id": 37386,
11039
+ "id": 37378,
11040
11040
  "indexExpression": {
11041
- "id": 37385,
11041
+ "id": 37377,
11042
11042
  "name": "i",
11043
11043
  "nodeType": "Identifier",
11044
11044
  "overloadedDeclarations": [],
11045
- "referencedDeclaration": 37360,
11045
+ "referencedDeclaration": 37352,
11046
11046
  "src": "1380:1:100",
11047
11047
  "typeDescriptions": {
11048
11048
  "typeIdentifier": "t_uint256",
@@ -11072,7 +11072,7 @@
11072
11072
  "typeString": "address"
11073
11073
  }
11074
11074
  ],
11075
- "id": 37382,
11075
+ "id": 37374,
11076
11076
  "name": "_setupRole",
11077
11077
  "nodeType": "Identifier",
11078
11078
  "overloadedDeclarations": [],
@@ -11083,7 +11083,7 @@
11083
11083
  "typeString": "function (bytes32,address)"
11084
11084
  }
11085
11085
  },
11086
- "id": 37387,
11086
+ "id": 37379,
11087
11087
  "isConstant": false,
11088
11088
  "isLValue": false,
11089
11089
  "isPure": false,
@@ -11098,7 +11098,7 @@
11098
11098
  "typeString": "tuple()"
11099
11099
  }
11100
11100
  },
11101
- "id": 37388,
11101
+ "id": 37380,
11102
11102
  "nodeType": "ExpressionStatement",
11103
11103
  "src": "1343:40:100"
11104
11104
  }
@@ -11109,17 +11109,17 @@
11109
11109
  "typeIdentifier": "t_uint256",
11110
11110
  "typeString": "uint256"
11111
11111
  },
11112
- "id": 37366,
11112
+ "id": 37358,
11113
11113
  "isConstant": false,
11114
11114
  "isLValue": false,
11115
11115
  "isPure": false,
11116
11116
  "lValueRequested": false,
11117
11117
  "leftExpression": {
11118
- "id": 37363,
11118
+ "id": 37355,
11119
11119
  "name": "i",
11120
11120
  "nodeType": "Identifier",
11121
11121
  "overloadedDeclarations": [],
11122
- "referencedDeclaration": 37360,
11122
+ "referencedDeclaration": 37352,
11123
11123
  "src": "1224:1:100",
11124
11124
  "typeDescriptions": {
11125
11125
  "typeIdentifier": "t_uint256",
@@ -11130,18 +11130,18 @@
11130
11130
  "operator": "<",
11131
11131
  "rightExpression": {
11132
11132
  "expression": {
11133
- "id": 37364,
11133
+ "id": 37356,
11134
11134
  "name": "backendAddr",
11135
11135
  "nodeType": "Identifier",
11136
11136
  "overloadedDeclarations": [],
11137
- "referencedDeclaration": 37341,
11137
+ "referencedDeclaration": 37333,
11138
11138
  "src": "1228:11:100",
11139
11139
  "typeDescriptions": {
11140
11140
  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
11141
11141
  "typeString": "address[] memory"
11142
11142
  }
11143
11143
  },
11144
- "id": 37365,
11144
+ "id": 37357,
11145
11145
  "isConstant": false,
11146
11146
  "isLValue": false,
11147
11147
  "isPure": false,
@@ -11160,20 +11160,20 @@
11160
11160
  "typeString": "bool"
11161
11161
  }
11162
11162
  },
11163
- "id": 37390,
11163
+ "id": 37382,
11164
11164
  "initializationExpression": {
11165
11165
  "assignments": [
11166
- 37360
11166
+ 37352
11167
11167
  ],
11168
11168
  "declarations": [
11169
11169
  {
11170
11170
  "constant": false,
11171
- "id": 37360,
11171
+ "id": 37352,
11172
11172
  "mutability": "mutable",
11173
11173
  "name": "i",
11174
11174
  "nameLocation": "1217:1:100",
11175
11175
  "nodeType": "VariableDeclaration",
11176
- "scope": 37390,
11176
+ "scope": 37382,
11177
11177
  "src": "1209:9:100",
11178
11178
  "stateVariable": false,
11179
11179
  "storageLocation": "default",
@@ -11182,7 +11182,7 @@
11182
11182
  "typeString": "uint256"
11183
11183
  },
11184
11184
  "typeName": {
11185
- "id": 37359,
11185
+ "id": 37351,
11186
11186
  "name": "uint256",
11187
11187
  "nodeType": "ElementaryTypeName",
11188
11188
  "src": "1209:7:100",
@@ -11194,10 +11194,10 @@
11194
11194
  "visibility": "internal"
11195
11195
  }
11196
11196
  ],
11197
- "id": 37362,
11197
+ "id": 37354,
11198
11198
  "initialValue": {
11199
11199
  "hexValue": "30",
11200
- "id": 37361,
11200
+ "id": 37353,
11201
11201
  "isConstant": false,
11202
11202
  "isLValue": false,
11203
11203
  "isPure": true,
@@ -11216,7 +11216,7 @@
11216
11216
  },
11217
11217
  "loopExpression": {
11218
11218
  "expression": {
11219
- "id": 37368,
11219
+ "id": 37360,
11220
11220
  "isConstant": false,
11221
11221
  "isLValue": false,
11222
11222
  "isPure": false,
@@ -11226,11 +11226,11 @@
11226
11226
  "prefix": true,
11227
11227
  "src": "1248:3:100",
11228
11228
  "subExpression": {
11229
- "id": 37367,
11229
+ "id": 37359,
11230
11230
  "name": "i",
11231
11231
  "nodeType": "Identifier",
11232
11232
  "overloadedDeclarations": [],
11233
- "referencedDeclaration": 37360,
11233
+ "referencedDeclaration": 37352,
11234
11234
  "src": "1250:1:100",
11235
11235
  "typeDescriptions": {
11236
11236
  "typeIdentifier": "t_uint256",
@@ -11242,7 +11242,7 @@
11242
11242
  "typeString": "uint256"
11243
11243
  }
11244
11244
  },
11245
- "id": 37369,
11245
+ "id": 37361,
11246
11246
  "nodeType": "ExpressionStatement",
11247
11247
  "src": "1248:3:100"
11248
11248
  },
@@ -11251,7 +11251,7 @@
11251
11251
  }
11252
11252
  ]
11253
11253
  },
11254
- "id": 37392,
11254
+ "id": 37384,
11255
11255
  "implemented": true,
11256
11256
  "kind": "constructor",
11257
11257
  "modifiers": [],
@@ -11259,17 +11259,17 @@
11259
11259
  "nameLocation": "-1:-1:-1",
11260
11260
  "nodeType": "FunctionDefinition",
11261
11261
  "parameters": {
11262
- "id": 37342,
11262
+ "id": 37334,
11263
11263
  "nodeType": "ParameterList",
11264
11264
  "parameters": [
11265
11265
  {
11266
11266
  "constant": false,
11267
- "id": 37338,
11267
+ "id": 37330,
11268
11268
  "mutability": "mutable",
11269
11269
  "name": "adminRole",
11270
11270
  "nameLocation": "1038:9:100",
11271
11271
  "nodeType": "VariableDeclaration",
11272
- "scope": 37392,
11272
+ "scope": 37384,
11273
11273
  "src": "1030:17:100",
11274
11274
  "stateVariable": false,
11275
11275
  "storageLocation": "default",
@@ -11278,7 +11278,7 @@
11278
11278
  "typeString": "address"
11279
11279
  },
11280
11280
  "typeName": {
11281
- "id": 37337,
11281
+ "id": 37329,
11282
11282
  "name": "address",
11283
11283
  "nodeType": "ElementaryTypeName",
11284
11284
  "src": "1030:7:100",
@@ -11292,12 +11292,12 @@
11292
11292
  },
11293
11293
  {
11294
11294
  "constant": false,
11295
- "id": 37341,
11295
+ "id": 37333,
11296
11296
  "mutability": "mutable",
11297
11297
  "name": "backendAddr",
11298
11298
  "nameLocation": "1066:11:100",
11299
11299
  "nodeType": "VariableDeclaration",
11300
- "scope": 37392,
11300
+ "scope": 37384,
11301
11301
  "src": "1049:28:100",
11302
11302
  "stateVariable": false,
11303
11303
  "storageLocation": "memory",
@@ -11307,7 +11307,7 @@
11307
11307
  },
11308
11308
  "typeName": {
11309
11309
  "baseType": {
11310
- "id": 37339,
11310
+ "id": 37331,
11311
11311
  "name": "address",
11312
11312
  "nodeType": "ElementaryTypeName",
11313
11313
  "src": "1049:7:100",
@@ -11317,7 +11317,7 @@
11317
11317
  "typeString": "address"
11318
11318
  }
11319
11319
  },
11320
- "id": 37340,
11320
+ "id": 37332,
11321
11321
  "nodeType": "ArrayTypeName",
11322
11322
  "src": "1049:9:100",
11323
11323
  "typeDescriptions": {
@@ -11331,12 +11331,12 @@
11331
11331
  "src": "1029:49:100"
11332
11332
  },
11333
11333
  "returnParameters": {
11334
- "id": 37343,
11334
+ "id": 37335,
11335
11335
  "nodeType": "ParameterList",
11336
11336
  "parameters": [],
11337
11337
  "src": "1079:0:100"
11338
11338
  },
11339
- "scope": 37629,
11339
+ "scope": 37621,
11340
11340
  "src": "1018:382:100",
11341
11341
  "stateMutability": "nonpayable",
11342
11342
  "virtual": false,
@@ -11344,7 +11344,7 @@
11344
11344
  },
11345
11345
  {
11346
11346
  "body": {
11347
- "id": 37498,
11347
+ "id": 37490,
11348
11348
  "nodeType": "Block",
11349
11349
  "src": "1847:764:100",
11350
11350
  "statements": [
@@ -11356,7 +11356,7 @@
11356
11356
  "typeIdentifier": "t_bool",
11357
11357
  "typeString": "bool"
11358
11358
  },
11359
- "id": 37418,
11359
+ "id": 37410,
11360
11360
  "isConstant": false,
11361
11361
  "isLValue": false,
11362
11362
  "isPure": false,
@@ -11366,14 +11366,14 @@
11366
11366
  "typeIdentifier": "t_address",
11367
11367
  "typeString": "address"
11368
11368
  },
11369
- "id": 37406,
11369
+ "id": 37398,
11370
11370
  "isConstant": false,
11371
11371
  "isLValue": false,
11372
11372
  "isPure": false,
11373
11373
  "lValueRequested": false,
11374
11374
  "leftExpression": {
11375
11375
  "expression": {
11376
- "id": 37403,
11376
+ "id": 37395,
11377
11377
  "name": "msg",
11378
11378
  "nodeType": "Identifier",
11379
11379
  "overloadedDeclarations": [],
@@ -11384,7 +11384,7 @@
11384
11384
  "typeString": "msg"
11385
11385
  }
11386
11386
  },
11387
- "id": 37404,
11387
+ "id": 37396,
11388
11388
  "isConstant": false,
11389
11389
  "isLValue": false,
11390
11390
  "isPure": false,
@@ -11400,11 +11400,11 @@
11400
11400
  "nodeType": "BinaryOperation",
11401
11401
  "operator": "==",
11402
11402
  "rightExpression": {
11403
- "id": 37405,
11403
+ "id": 37397,
11404
11404
  "name": "account",
11405
11405
  "nodeType": "Identifier",
11406
11406
  "overloadedDeclarations": [],
11407
- "referencedDeclaration": 37397,
11407
+ "referencedDeclaration": 37389,
11408
11408
  "src": "1879:7:100",
11409
11409
  "typeDescriptions": {
11410
11410
  "typeIdentifier": "t_address",
@@ -11426,7 +11426,7 @@
11426
11426
  "typeIdentifier": "t_bool",
11427
11427
  "typeString": "bool"
11428
11428
  },
11429
- "id": 37416,
11429
+ "id": 37408,
11430
11430
  "isConstant": false,
11431
11431
  "isLValue": false,
11432
11432
  "isPure": false,
@@ -11434,11 +11434,11 @@
11434
11434
  "leftExpression": {
11435
11435
  "arguments": [
11436
11436
  {
11437
- "id": 37408,
11437
+ "id": 37400,
11438
11438
  "name": "BACKEND_ROLE",
11439
11439
  "nodeType": "Identifier",
11440
11440
  "overloadedDeclarations": [],
11441
- "referencedDeclaration": 37324,
11441
+ "referencedDeclaration": 37316,
11442
11442
  "src": "1911:12:100",
11443
11443
  "typeDescriptions": {
11444
11444
  "typeIdentifier": "t_bytes32",
@@ -11447,7 +11447,7 @@
11447
11447
  },
11448
11448
  {
11449
11449
  "expression": {
11450
- "id": 37409,
11450
+ "id": 37401,
11451
11451
  "name": "msg",
11452
11452
  "nodeType": "Identifier",
11453
11453
  "overloadedDeclarations": [],
@@ -11458,7 +11458,7 @@
11458
11458
  "typeString": "msg"
11459
11459
  }
11460
11460
  },
11461
- "id": 37410,
11461
+ "id": 37402,
11462
11462
  "isConstant": false,
11463
11463
  "isLValue": false,
11464
11464
  "isPure": false,
@@ -11483,7 +11483,7 @@
11483
11483
  "typeString": "address"
11484
11484
  }
11485
11485
  ],
11486
- "id": 37407,
11486
+ "id": 37399,
11487
11487
  "name": "hasRole",
11488
11488
  "nodeType": "Identifier",
11489
11489
  "overloadedDeclarations": [],
@@ -11494,7 +11494,7 @@
11494
11494
  "typeString": "function (bytes32,address) view returns (bool)"
11495
11495
  }
11496
11496
  },
11497
- "id": 37411,
11497
+ "id": 37403,
11498
11498
  "isConstant": false,
11499
11499
  "isLValue": false,
11500
11500
  "isPure": false,
@@ -11512,7 +11512,7 @@
11512
11512
  "nodeType": "BinaryOperation",
11513
11513
  "operator": "&&",
11514
11514
  "rightExpression": {
11515
- "id": 37415,
11515
+ "id": 37407,
11516
11516
  "isConstant": false,
11517
11517
  "isLValue": false,
11518
11518
  "isPure": false,
@@ -11523,24 +11523,24 @@
11523
11523
  "src": "1952:17:100",
11524
11524
  "subExpression": {
11525
11525
  "baseExpression": {
11526
- "id": 37412,
11526
+ "id": 37404,
11527
11527
  "name": "_optout",
11528
11528
  "nodeType": "Identifier",
11529
11529
  "overloadedDeclarations": [],
11530
- "referencedDeclaration": 37336,
11530
+ "referencedDeclaration": 37328,
11531
11531
  "src": "1953:7:100",
11532
11532
  "typeDescriptions": {
11533
11533
  "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
11534
11534
  "typeString": "mapping(address => bool)"
11535
11535
  }
11536
11536
  },
11537
- "id": 37414,
11537
+ "id": 37406,
11538
11538
  "indexExpression": {
11539
- "id": 37413,
11539
+ "id": 37405,
11540
11540
  "name": "account",
11541
11541
  "nodeType": "Identifier",
11542
11542
  "overloadedDeclarations": [],
11543
- "referencedDeclaration": 37397,
11543
+ "referencedDeclaration": 37389,
11544
11544
  "src": "1961:7:100",
11545
11545
  "typeDescriptions": {
11546
11546
  "typeIdentifier": "t_address",
@@ -11570,7 +11570,7 @@
11570
11570
  }
11571
11571
  }
11572
11572
  ],
11573
- "id": 37417,
11573
+ "id": 37409,
11574
11574
  "isConstant": false,
11575
11575
  "isInlineArray": false,
11576
11576
  "isLValue": false,
@@ -11591,7 +11591,7 @@
11591
11591
  },
11592
11592
  {
11593
11593
  "hexValue": "6f7065726174696f6e206e6f7420616c6c6f776564",
11594
- "id": 37419,
11594
+ "id": 37411,
11595
11595
  "isConstant": false,
11596
11596
  "isLValue": false,
11597
11597
  "isPure": true,
@@ -11617,7 +11617,7 @@
11617
11617
  "typeString": "literal_string \"operation not allowed\""
11618
11618
  }
11619
11619
  ],
11620
- "id": 37402,
11620
+ "id": 37394,
11621
11621
  "name": "require",
11622
11622
  "nodeType": "Identifier",
11623
11623
  "overloadedDeclarations": [
@@ -11631,7 +11631,7 @@
11631
11631
  "typeString": "function (bool,string memory) pure"
11632
11632
  }
11633
11633
  },
11634
- "id": 37420,
11634
+ "id": 37412,
11635
11635
  "isConstant": false,
11636
11636
  "isLValue": false,
11637
11637
  "isPure": false,
@@ -11646,59 +11646,59 @@
11646
11646
  "typeString": "tuple()"
11647
11647
  }
11648
11648
  },
11649
- "id": 37421,
11649
+ "id": 37413,
11650
11650
  "nodeType": "ExpressionStatement",
11651
11651
  "src": "1857:148:100"
11652
11652
  },
11653
11653
  {
11654
11654
  "assignments": [
11655
- 37424
11655
+ 37416
11656
11656
  ],
11657
11657
  "declarations": [
11658
11658
  {
11659
11659
  "constant": false,
11660
- "id": 37424,
11660
+ "id": 37416,
11661
11661
  "mutability": "mutable",
11662
11662
  "name": "superToken",
11663
11663
  "nameLocation": "2059:10:100",
11664
11664
  "nodeType": "VariableDeclaration",
11665
- "scope": 37498,
11665
+ "scope": 37490,
11666
11666
  "src": "2047:22:100",
11667
11667
  "stateVariable": false,
11668
11668
  "storageLocation": "default",
11669
11669
  "typeDescriptions": {
11670
- "typeIdentifier": "t_contract$_ISuperToken_$19482",
11670
+ "typeIdentifier": "t_contract$_ISuperToken_$19492",
11671
11671
  "typeString": "contract ISuperToken"
11672
11672
  },
11673
11673
  "typeName": {
11674
- "id": 37423,
11674
+ "id": 37415,
11675
11675
  "nodeType": "UserDefinedTypeName",
11676
11676
  "pathNode": {
11677
- "id": 37422,
11677
+ "id": 37414,
11678
11678
  "name": "ISuperToken",
11679
11679
  "nodeType": "IdentifierPath",
11680
- "referencedDeclaration": 19482,
11680
+ "referencedDeclaration": 19492,
11681
11681
  "src": "2047:11:100"
11682
11682
  },
11683
- "referencedDeclaration": 19482,
11683
+ "referencedDeclaration": 19492,
11684
11684
  "src": "2047:11:100",
11685
11685
  "typeDescriptions": {
11686
- "typeIdentifier": "t_contract$_ISuperToken_$19482",
11686
+ "typeIdentifier": "t_contract$_ISuperToken_$19492",
11687
11687
  "typeString": "contract ISuperToken"
11688
11688
  }
11689
11689
  },
11690
11690
  "visibility": "internal"
11691
11691
  }
11692
11692
  ],
11693
- "id": 37428,
11693
+ "id": 37420,
11694
11694
  "initialValue": {
11695
11695
  "arguments": [
11696
11696
  {
11697
- "id": 37426,
11697
+ "id": 37418,
11698
11698
  "name": "superTokenAddr",
11699
11699
  "nodeType": "Identifier",
11700
11700
  "overloadedDeclarations": [],
11701
- "referencedDeclaration": 37395,
11701
+ "referencedDeclaration": 37387,
11702
11702
  "src": "2084:14:100",
11703
11703
  "typeDescriptions": {
11704
11704
  "typeIdentifier": "t_address",
@@ -11713,18 +11713,18 @@
11713
11713
  "typeString": "address"
11714
11714
  }
11715
11715
  ],
11716
- "id": 37425,
11716
+ "id": 37417,
11717
11717
  "name": "ISuperToken",
11718
11718
  "nodeType": "Identifier",
11719
11719
  "overloadedDeclarations": [],
11720
- "referencedDeclaration": 19482,
11720
+ "referencedDeclaration": 19492,
11721
11721
  "src": "2072:11:100",
11722
11722
  "typeDescriptions": {
11723
- "typeIdentifier": "t_type$_t_contract$_ISuperToken_$19482_$",
11723
+ "typeIdentifier": "t_type$_t_contract$_ISuperToken_$19492_$",
11724
11724
  "typeString": "type(contract ISuperToken)"
11725
11725
  }
11726
11726
  },
11727
- "id": 37427,
11727
+ "id": 37419,
11728
11728
  "isConstant": false,
11729
11729
  "isLValue": false,
11730
11730
  "isPure": false,
@@ -11735,7 +11735,7 @@
11735
11735
  "src": "2072:27:100",
11736
11736
  "tryCall": false,
11737
11737
  "typeDescriptions": {
11738
- "typeIdentifier": "t_contract$_ISuperToken_$19482",
11738
+ "typeIdentifier": "t_contract$_ISuperToken_$19492",
11739
11739
  "typeString": "contract ISuperToken"
11740
11740
  }
11741
11741
  },
@@ -11744,17 +11744,17 @@
11744
11744
  },
11745
11745
  {
11746
11746
  "assignments": [
11747
- 37431
11747
+ 37423
11748
11748
  ],
11749
11749
  "declarations": [
11750
11750
  {
11751
11751
  "constant": false,
11752
- "id": 37431,
11752
+ "id": 37423,
11753
11753
  "mutability": "mutable",
11754
11754
  "name": "token",
11755
11755
  "nameLocation": "2148:5:100",
11756
11756
  "nodeType": "VariableDeclaration",
11757
- "scope": 37498,
11757
+ "scope": 37490,
11758
11758
  "src": "2141:12:100",
11759
11759
  "stateVariable": false,
11760
11760
  "storageLocation": "default",
@@ -11763,10 +11763,10 @@
11763
11763
  "typeString": "contract IERC20"
11764
11764
  },
11765
11765
  "typeName": {
11766
- "id": 37430,
11766
+ "id": 37422,
11767
11767
  "nodeType": "UserDefinedTypeName",
11768
11768
  "pathNode": {
11769
- "id": 37429,
11769
+ "id": 37421,
11770
11770
  "name": "IERC20",
11771
11771
  "nodeType": "IdentifierPath",
11772
11772
  "referencedDeclaration": 1630,
@@ -11782,7 +11782,7 @@
11782
11782
  "visibility": "internal"
11783
11783
  }
11784
11784
  ],
11785
- "id": 37437,
11785
+ "id": 37429,
11786
11786
  "initialValue": {
11787
11787
  "arguments": [
11788
11788
  {
@@ -11790,32 +11790,32 @@
11790
11790
  "expression": {
11791
11791
  "argumentTypes": [],
11792
11792
  "expression": {
11793
- "id": 37433,
11793
+ "id": 37425,
11794
11794
  "name": "superToken",
11795
11795
  "nodeType": "Identifier",
11796
11796
  "overloadedDeclarations": [],
11797
- "referencedDeclaration": 37424,
11797
+ "referencedDeclaration": 37416,
11798
11798
  "src": "2163:10:100",
11799
11799
  "typeDescriptions": {
11800
- "typeIdentifier": "t_contract$_ISuperToken_$19482",
11800
+ "typeIdentifier": "t_contract$_ISuperToken_$19492",
11801
11801
  "typeString": "contract ISuperToken"
11802
11802
  }
11803
11803
  },
11804
- "id": 37434,
11804
+ "id": 37426,
11805
11805
  "isConstant": false,
11806
11806
  "isLValue": false,
11807
11807
  "isPure": false,
11808
11808
  "lValueRequested": false,
11809
11809
  "memberName": "getUnderlyingToken",
11810
11810
  "nodeType": "MemberAccess",
11811
- "referencedDeclaration": 19407,
11811
+ "referencedDeclaration": 19417,
11812
11812
  "src": "2163:29:100",
11813
11813
  "typeDescriptions": {
11814
11814
  "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
11815
11815
  "typeString": "function () view external returns (address)"
11816
11816
  }
11817
11817
  },
11818
- "id": 37435,
11818
+ "id": 37427,
11819
11819
  "isConstant": false,
11820
11820
  "isLValue": false,
11821
11821
  "isPure": false,
@@ -11838,7 +11838,7 @@
11838
11838
  "typeString": "address"
11839
11839
  }
11840
11840
  ],
11841
- "id": 37432,
11841
+ "id": 37424,
11842
11842
  "name": "IERC20",
11843
11843
  "nodeType": "Identifier",
11844
11844
  "overloadedDeclarations": [],
@@ -11849,7 +11849,7 @@
11849
11849
  "typeString": "type(contract IERC20)"
11850
11850
  }
11851
11851
  },
11852
- "id": 37436,
11852
+ "id": 37428,
11853
11853
  "isConstant": false,
11854
11854
  "isLValue": false,
11855
11855
  "isPure": false,
@@ -11869,17 +11869,17 @@
11869
11869
  },
11870
11870
  {
11871
11871
  "assignments": [
11872
- 37439
11872
+ 37431
11873
11873
  ],
11874
11874
  "declarations": [
11875
11875
  {
11876
11876
  "constant": false,
11877
- "id": 37439,
11877
+ "id": 37431,
11878
11878
  "mutability": "mutable",
11879
11879
  "name": "beforeBalance",
11880
11880
  "nameLocation": "2213:13:100",
11881
11881
  "nodeType": "VariableDeclaration",
11882
- "scope": 37498,
11882
+ "scope": 37490,
11883
11883
  "src": "2205:21:100",
11884
11884
  "stateVariable": false,
11885
11885
  "storageLocation": "default",
@@ -11888,7 +11888,7 @@
11888
11888
  "typeString": "uint256"
11889
11889
  },
11890
11890
  "typeName": {
11891
- "id": 37438,
11891
+ "id": 37430,
11892
11892
  "name": "uint256",
11893
11893
  "nodeType": "ElementaryTypeName",
11894
11894
  "src": "2205:7:100",
@@ -11900,20 +11900,20 @@
11900
11900
  "visibility": "internal"
11901
11901
  }
11902
11902
  ],
11903
- "id": 37447,
11903
+ "id": 37439,
11904
11904
  "initialValue": {
11905
11905
  "arguments": [
11906
11906
  {
11907
11907
  "arguments": [
11908
11908
  {
11909
- "id": 37444,
11909
+ "id": 37436,
11910
11910
  "name": "this",
11911
11911
  "nodeType": "Identifier",
11912
11912
  "overloadedDeclarations": [],
11913
11913
  "referencedDeclaration": 4294967268,
11914
11914
  "src": "2253:4:100",
11915
11915
  "typeDescriptions": {
11916
- "typeIdentifier": "t_contract$_SuperUpgrader_$37629",
11916
+ "typeIdentifier": "t_contract$_SuperUpgrader_$37621",
11917
11917
  "typeString": "contract SuperUpgrader"
11918
11918
  }
11919
11919
  }
@@ -11921,11 +11921,11 @@
11921
11921
  "expression": {
11922
11922
  "argumentTypes": [
11923
11923
  {
11924
- "typeIdentifier": "t_contract$_SuperUpgrader_$37629",
11924
+ "typeIdentifier": "t_contract$_SuperUpgrader_$37621",
11925
11925
  "typeString": "contract SuperUpgrader"
11926
11926
  }
11927
11927
  ],
11928
- "id": 37443,
11928
+ "id": 37435,
11929
11929
  "isConstant": false,
11930
11930
  "isLValue": false,
11931
11931
  "isPure": true,
@@ -11937,14 +11937,14 @@
11937
11937
  "typeString": "type(address)"
11938
11938
  },
11939
11939
  "typeName": {
11940
- "id": 37442,
11940
+ "id": 37434,
11941
11941
  "name": "address",
11942
11942
  "nodeType": "ElementaryTypeName",
11943
11943
  "src": "2245:7:100",
11944
11944
  "typeDescriptions": {}
11945
11945
  }
11946
11946
  },
11947
- "id": 37445,
11947
+ "id": 37437,
11948
11948
  "isConstant": false,
11949
11949
  "isLValue": false,
11950
11950
  "isPure": false,
@@ -11968,18 +11968,18 @@
11968
11968
  }
11969
11969
  ],
11970
11970
  "expression": {
11971
- "id": 37440,
11971
+ "id": 37432,
11972
11972
  "name": "token",
11973
11973
  "nodeType": "Identifier",
11974
11974
  "overloadedDeclarations": [],
11975
- "referencedDeclaration": 37431,
11975
+ "referencedDeclaration": 37423,
11976
11976
  "src": "2229:5:100",
11977
11977
  "typeDescriptions": {
11978
11978
  "typeIdentifier": "t_contract$_IERC20_$1630",
11979
11979
  "typeString": "contract IERC20"
11980
11980
  }
11981
11981
  },
11982
- "id": 37441,
11982
+ "id": 37433,
11983
11983
  "isConstant": false,
11984
11984
  "isLValue": false,
11985
11985
  "isPure": false,
@@ -11993,7 +11993,7 @@
11993
11993
  "typeString": "function (address) view external returns (uint256)"
11994
11994
  }
11995
11995
  },
11996
- "id": 37446,
11996
+ "id": 37438,
11997
11997
  "isConstant": false,
11998
11998
  "isLValue": false,
11999
11999
  "isPure": false,
@@ -12015,11 +12015,11 @@
12015
12015
  "expression": {
12016
12016
  "arguments": [
12017
12017
  {
12018
- "id": 37451,
12018
+ "id": 37443,
12019
12019
  "name": "account",
12020
12020
  "nodeType": "Identifier",
12021
12021
  "overloadedDeclarations": [],
12022
- "referencedDeclaration": 37397,
12022
+ "referencedDeclaration": 37389,
12023
12023
  "src": "2292:7:100",
12024
12024
  "typeDescriptions": {
12025
12025
  "typeIdentifier": "t_address",
@@ -12029,14 +12029,14 @@
12029
12029
  {
12030
12030
  "arguments": [
12031
12031
  {
12032
- "id": 37454,
12032
+ "id": 37446,
12033
12033
  "name": "this",
12034
12034
  "nodeType": "Identifier",
12035
12035
  "overloadedDeclarations": [],
12036
12036
  "referencedDeclaration": 4294967268,
12037
12037
  "src": "2309:4:100",
12038
12038
  "typeDescriptions": {
12039
- "typeIdentifier": "t_contract$_SuperUpgrader_$37629",
12039
+ "typeIdentifier": "t_contract$_SuperUpgrader_$37621",
12040
12040
  "typeString": "contract SuperUpgrader"
12041
12041
  }
12042
12042
  }
@@ -12044,11 +12044,11 @@
12044
12044
  "expression": {
12045
12045
  "argumentTypes": [
12046
12046
  {
12047
- "typeIdentifier": "t_contract$_SuperUpgrader_$37629",
12047
+ "typeIdentifier": "t_contract$_SuperUpgrader_$37621",
12048
12048
  "typeString": "contract SuperUpgrader"
12049
12049
  }
12050
12050
  ],
12051
- "id": 37453,
12051
+ "id": 37445,
12052
12052
  "isConstant": false,
12053
12053
  "isLValue": false,
12054
12054
  "isPure": true,
@@ -12060,14 +12060,14 @@
12060
12060
  "typeString": "type(address)"
12061
12061
  },
12062
12062
  "typeName": {
12063
- "id": 37452,
12063
+ "id": 37444,
12064
12064
  "name": "address",
12065
12065
  "nodeType": "ElementaryTypeName",
12066
12066
  "src": "2301:7:100",
12067
12067
  "typeDescriptions": {}
12068
12068
  }
12069
12069
  },
12070
- "id": 37455,
12070
+ "id": 37447,
12071
12071
  "isConstant": false,
12072
12072
  "isLValue": false,
12073
12073
  "isPure": false,
@@ -12083,11 +12083,11 @@
12083
12083
  }
12084
12084
  },
12085
12085
  {
12086
- "id": 37456,
12086
+ "id": 37448,
12087
12087
  "name": "amount",
12088
12088
  "nodeType": "Identifier",
12089
12089
  "overloadedDeclarations": [],
12090
- "referencedDeclaration": 37399,
12090
+ "referencedDeclaration": 37391,
12091
12091
  "src": "2316:6:100",
12092
12092
  "typeDescriptions": {
12093
12093
  "typeIdentifier": "t_uint256",
@@ -12111,18 +12111,18 @@
12111
12111
  }
12112
12112
  ],
12113
12113
  "expression": {
12114
- "id": 37448,
12114
+ "id": 37440,
12115
12115
  "name": "token",
12116
12116
  "nodeType": "Identifier",
12117
12117
  "overloadedDeclarations": [],
12118
- "referencedDeclaration": 37431,
12118
+ "referencedDeclaration": 37423,
12119
12119
  "src": "2269:5:100",
12120
12120
  "typeDescriptions": {
12121
12121
  "typeIdentifier": "t_contract$_IERC20_$1630",
12122
12122
  "typeString": "contract IERC20"
12123
12123
  }
12124
12124
  },
12125
- "id": 37450,
12125
+ "id": 37442,
12126
12126
  "isConstant": false,
12127
12127
  "isLValue": false,
12128
12128
  "isPure": false,
@@ -12136,7 +12136,7 @@
12136
12136
  "typeString": "function (contract IERC20,address,address,uint256)"
12137
12137
  }
12138
12138
  },
12139
- "id": 37457,
12139
+ "id": 37449,
12140
12140
  "isConstant": false,
12141
12141
  "isLValue": false,
12142
12142
  "isPure": false,
@@ -12151,7 +12151,7 @@
12151
12151
  "typeString": "tuple()"
12152
12152
  }
12153
12153
  },
12154
- "id": 37458,
12154
+ "id": 37450,
12155
12155
  "nodeType": "ExpressionStatement",
12156
12156
  "src": "2269:54:100"
12157
12157
  },
@@ -12161,14 +12161,14 @@
12161
12161
  {
12162
12162
  "arguments": [
12163
12163
  {
12164
- "id": 37464,
12164
+ "id": 37456,
12165
12165
  "name": "superToken",
12166
12166
  "nodeType": "Identifier",
12167
12167
  "overloadedDeclarations": [],
12168
- "referencedDeclaration": 37424,
12168
+ "referencedDeclaration": 37416,
12169
12169
  "src": "2359:10:100",
12170
12170
  "typeDescriptions": {
12171
- "typeIdentifier": "t_contract$_ISuperToken_$19482",
12171
+ "typeIdentifier": "t_contract$_ISuperToken_$19492",
12172
12172
  "typeString": "contract ISuperToken"
12173
12173
  }
12174
12174
  }
@@ -12176,11 +12176,11 @@
12176
12176
  "expression": {
12177
12177
  "argumentTypes": [
12178
12178
  {
12179
- "typeIdentifier": "t_contract$_ISuperToken_$19482",
12179
+ "typeIdentifier": "t_contract$_ISuperToken_$19492",
12180
12180
  "typeString": "contract ISuperToken"
12181
12181
  }
12182
12182
  ],
12183
- "id": 37463,
12183
+ "id": 37455,
12184
12184
  "isConstant": false,
12185
12185
  "isLValue": false,
12186
12186
  "isPure": true,
@@ -12192,14 +12192,14 @@
12192
12192
  "typeString": "type(address)"
12193
12193
  },
12194
12194
  "typeName": {
12195
- "id": 37462,
12195
+ "id": 37454,
12196
12196
  "name": "address",
12197
12197
  "nodeType": "ElementaryTypeName",
12198
12198
  "src": "2351:7:100",
12199
12199
  "typeDescriptions": {}
12200
12200
  }
12201
12201
  },
12202
- "id": 37465,
12202
+ "id": 37457,
12203
12203
  "isConstant": false,
12204
12204
  "isLValue": false,
12205
12205
  "isPure": false,
@@ -12216,7 +12216,7 @@
12216
12216
  },
12217
12217
  {
12218
12218
  "hexValue": "30",
12219
- "id": 37466,
12219
+ "id": 37458,
12220
12220
  "isConstant": false,
12221
12221
  "isLValue": false,
12222
12222
  "isPure": true,
@@ -12243,18 +12243,18 @@
12243
12243
  }
12244
12244
  ],
12245
12245
  "expression": {
12246
- "id": 37459,
12246
+ "id": 37451,
12247
12247
  "name": "token",
12248
12248
  "nodeType": "Identifier",
12249
12249
  "overloadedDeclarations": [],
12250
- "referencedDeclaration": 37431,
12250
+ "referencedDeclaration": 37423,
12251
12251
  "src": "2333:5:100",
12252
12252
  "typeDescriptions": {
12253
12253
  "typeIdentifier": "t_contract$_IERC20_$1630",
12254
12254
  "typeString": "contract IERC20"
12255
12255
  }
12256
12256
  },
12257
- "id": 37461,
12257
+ "id": 37453,
12258
12258
  "isConstant": false,
12259
12259
  "isLValue": false,
12260
12260
  "isPure": false,
@@ -12268,7 +12268,7 @@
12268
12268
  "typeString": "function (contract IERC20,address,uint256)"
12269
12269
  }
12270
12270
  },
12271
- "id": 37467,
12271
+ "id": 37459,
12272
12272
  "isConstant": false,
12273
12273
  "isLValue": false,
12274
12274
  "isPure": false,
@@ -12283,7 +12283,7 @@
12283
12283
  "typeString": "tuple()"
12284
12284
  }
12285
12285
  },
12286
- "id": 37468,
12286
+ "id": 37460,
12287
12287
  "nodeType": "ExpressionStatement",
12288
12288
  "src": "2333:41:100"
12289
12289
  },
@@ -12293,14 +12293,14 @@
12293
12293
  {
12294
12294
  "arguments": [
12295
12295
  {
12296
- "id": 37474,
12296
+ "id": 37466,
12297
12297
  "name": "superToken",
12298
12298
  "nodeType": "Identifier",
12299
12299
  "overloadedDeclarations": [],
12300
- "referencedDeclaration": 37424,
12300
+ "referencedDeclaration": 37416,
12301
12301
  "src": "2410:10:100",
12302
12302
  "typeDescriptions": {
12303
- "typeIdentifier": "t_contract$_ISuperToken_$19482",
12303
+ "typeIdentifier": "t_contract$_ISuperToken_$19492",
12304
12304
  "typeString": "contract ISuperToken"
12305
12305
  }
12306
12306
  }
@@ -12308,11 +12308,11 @@
12308
12308
  "expression": {
12309
12309
  "argumentTypes": [
12310
12310
  {
12311
- "typeIdentifier": "t_contract$_ISuperToken_$19482",
12311
+ "typeIdentifier": "t_contract$_ISuperToken_$19492",
12312
12312
  "typeString": "contract ISuperToken"
12313
12313
  }
12314
12314
  ],
12315
- "id": 37473,
12315
+ "id": 37465,
12316
12316
  "isConstant": false,
12317
12317
  "isLValue": false,
12318
12318
  "isPure": true,
@@ -12324,14 +12324,14 @@
12324
12324
  "typeString": "type(address)"
12325
12325
  },
12326
12326
  "typeName": {
12327
- "id": 37472,
12327
+ "id": 37464,
12328
12328
  "name": "address",
12329
12329
  "nodeType": "ElementaryTypeName",
12330
12330
  "src": "2402:7:100",
12331
12331
  "typeDescriptions": {}
12332
12332
  }
12333
12333
  },
12334
- "id": 37475,
12334
+ "id": 37467,
12335
12335
  "isConstant": false,
12336
12336
  "isLValue": false,
12337
12337
  "isPure": false,
@@ -12347,11 +12347,11 @@
12347
12347
  }
12348
12348
  },
12349
12349
  {
12350
- "id": 37476,
12350
+ "id": 37468,
12351
12351
  "name": "amount",
12352
12352
  "nodeType": "Identifier",
12353
12353
  "overloadedDeclarations": [],
12354
- "referencedDeclaration": 37399,
12354
+ "referencedDeclaration": 37391,
12355
12355
  "src": "2423:6:100",
12356
12356
  "typeDescriptions": {
12357
12357
  "typeIdentifier": "t_uint256",
@@ -12371,18 +12371,18 @@
12371
12371
  }
12372
12372
  ],
12373
12373
  "expression": {
12374
- "id": 37469,
12374
+ "id": 37461,
12375
12375
  "name": "token",
12376
12376
  "nodeType": "Identifier",
12377
12377
  "overloadedDeclarations": [],
12378
- "referencedDeclaration": 37431,
12378
+ "referencedDeclaration": 37423,
12379
12379
  "src": "2384:5:100",
12380
12380
  "typeDescriptions": {
12381
12381
  "typeIdentifier": "t_contract$_IERC20_$1630",
12382
12382
  "typeString": "contract IERC20"
12383
12383
  }
12384
12384
  },
12385
- "id": 37471,
12385
+ "id": 37463,
12386
12386
  "isConstant": false,
12387
12387
  "isLValue": false,
12388
12388
  "isPure": false,
@@ -12396,7 +12396,7 @@
12396
12396
  "typeString": "function (contract IERC20,address,uint256)"
12397
12397
  }
12398
12398
  },
12399
- "id": 37477,
12399
+ "id": 37469,
12400
12400
  "isConstant": false,
12401
12401
  "isLValue": false,
12402
12402
  "isPure": false,
@@ -12411,7 +12411,7 @@
12411
12411
  "typeString": "tuple()"
12412
12412
  }
12413
12413
  },
12414
- "id": 37478,
12414
+ "id": 37470,
12415
12415
  "nodeType": "ExpressionStatement",
12416
12416
  "src": "2384:46:100"
12417
12417
  },
@@ -12419,11 +12419,11 @@
12419
12419
  "expression": {
12420
12420
  "arguments": [
12421
12421
  {
12422
- "id": 37482,
12422
+ "id": 37474,
12423
12423
  "name": "account",
12424
12424
  "nodeType": "Identifier",
12425
12425
  "overloadedDeclarations": [],
12426
- "referencedDeclaration": 37397,
12426
+ "referencedDeclaration": 37389,
12427
12427
  "src": "2522:7:100",
12428
12428
  "typeDescriptions": {
12429
12429
  "typeIdentifier": "t_address",
@@ -12435,7 +12435,7 @@
12435
12435
  "typeIdentifier": "t_uint256",
12436
12436
  "typeString": "uint256"
12437
12437
  },
12438
- "id": 37491,
12438
+ "id": 37483,
12439
12439
  "isConstant": false,
12440
12440
  "isLValue": false,
12441
12441
  "isPure": false,
@@ -12445,14 +12445,14 @@
12445
12445
  {
12446
12446
  "arguments": [
12447
12447
  {
12448
- "id": 37487,
12448
+ "id": 37479,
12449
12449
  "name": "this",
12450
12450
  "nodeType": "Identifier",
12451
12451
  "overloadedDeclarations": [],
12452
12452
  "referencedDeclaration": 4294967268,
12453
12453
  "src": "2567:4:100",
12454
12454
  "typeDescriptions": {
12455
- "typeIdentifier": "t_contract$_SuperUpgrader_$37629",
12455
+ "typeIdentifier": "t_contract$_SuperUpgrader_$37621",
12456
12456
  "typeString": "contract SuperUpgrader"
12457
12457
  }
12458
12458
  }
@@ -12460,11 +12460,11 @@
12460
12460
  "expression": {
12461
12461
  "argumentTypes": [
12462
12462
  {
12463
- "typeIdentifier": "t_contract$_SuperUpgrader_$37629",
12463
+ "typeIdentifier": "t_contract$_SuperUpgrader_$37621",
12464
12464
  "typeString": "contract SuperUpgrader"
12465
12465
  }
12466
12466
  ],
12467
- "id": 37486,
12467
+ "id": 37478,
12468
12468
  "isConstant": false,
12469
12469
  "isLValue": false,
12470
12470
  "isPure": true,
@@ -12476,14 +12476,14 @@
12476
12476
  "typeString": "type(address)"
12477
12477
  },
12478
12478
  "typeName": {
12479
- "id": 37485,
12479
+ "id": 37477,
12480
12480
  "name": "address",
12481
12481
  "nodeType": "ElementaryTypeName",
12482
12482
  "src": "2559:7:100",
12483
12483
  "typeDescriptions": {}
12484
12484
  }
12485
12485
  },
12486
- "id": 37488,
12486
+ "id": 37480,
12487
12487
  "isConstant": false,
12488
12488
  "isLValue": false,
12489
12489
  "isPure": false,
@@ -12507,18 +12507,18 @@
12507
12507
  }
12508
12508
  ],
12509
12509
  "expression": {
12510
- "id": 37483,
12510
+ "id": 37475,
12511
12511
  "name": "token",
12512
12512
  "nodeType": "Identifier",
12513
12513
  "overloadedDeclarations": [],
12514
- "referencedDeclaration": 37431,
12514
+ "referencedDeclaration": 37423,
12515
12515
  "src": "2543:5:100",
12516
12516
  "typeDescriptions": {
12517
12517
  "typeIdentifier": "t_contract$_IERC20_$1630",
12518
12518
  "typeString": "contract IERC20"
12519
12519
  }
12520
12520
  },
12521
- "id": 37484,
12521
+ "id": 37476,
12522
12522
  "isConstant": false,
12523
12523
  "isLValue": false,
12524
12524
  "isPure": false,
@@ -12532,7 +12532,7 @@
12532
12532
  "typeString": "function (address) view external returns (uint256)"
12533
12533
  }
12534
12534
  },
12535
- "id": 37489,
12535
+ "id": 37481,
12536
12536
  "isConstant": false,
12537
12537
  "isLValue": false,
12538
12538
  "isPure": false,
@@ -12550,11 +12550,11 @@
12550
12550
  "nodeType": "BinaryOperation",
12551
12551
  "operator": "-",
12552
12552
  "rightExpression": {
12553
- "id": 37490,
12553
+ "id": 37482,
12554
12554
  "name": "beforeBalance",
12555
12555
  "nodeType": "Identifier",
12556
12556
  "overloadedDeclarations": [],
12557
- "referencedDeclaration": 37439,
12557
+ "referencedDeclaration": 37431,
12558
12558
  "src": "2576:13:100",
12559
12559
  "typeDescriptions": {
12560
12560
  "typeIdentifier": "t_uint256",
@@ -12571,7 +12571,7 @@
12571
12571
  "arguments": [
12572
12572
  {
12573
12573
  "hexValue": "30",
12574
- "id": 37494,
12574
+ "id": 37486,
12575
12575
  "isConstant": false,
12576
12576
  "isLValue": false,
12577
12577
  "isPure": true,
@@ -12593,7 +12593,7 @@
12593
12593
  "typeString": "int_const 0"
12594
12594
  }
12595
12595
  ],
12596
- "id": 37493,
12596
+ "id": 37485,
12597
12597
  "isConstant": false,
12598
12598
  "isLValue": false,
12599
12599
  "isPure": true,
@@ -12605,7 +12605,7 @@
12605
12605
  "typeString": "function (uint256) pure returns (bytes memory)"
12606
12606
  },
12607
12607
  "typeName": {
12608
- "id": 37492,
12608
+ "id": 37484,
12609
12609
  "name": "bytes",
12610
12610
  "nodeType": "ElementaryTypeName",
12611
12611
  "src": "2595:5:100",
@@ -12615,7 +12615,7 @@
12615
12615
  }
12616
12616
  }
12617
12617
  },
12618
- "id": 37495,
12618
+ "id": 37487,
12619
12619
  "isConstant": false,
12620
12620
  "isLValue": false,
12621
12621
  "isPure": true,
@@ -12647,32 +12647,32 @@
12647
12647
  }
12648
12648
  ],
12649
12649
  "expression": {
12650
- "id": 37479,
12650
+ "id": 37471,
12651
12651
  "name": "superToken",
12652
12652
  "nodeType": "Identifier",
12653
12653
  "overloadedDeclarations": [],
12654
- "referencedDeclaration": 37424,
12654
+ "referencedDeclaration": 37416,
12655
12655
  "src": "2488:10:100",
12656
12656
  "typeDescriptions": {
12657
- "typeIdentifier": "t_contract$_ISuperToken_$19482",
12657
+ "typeIdentifier": "t_contract$_ISuperToken_$19492",
12658
12658
  "typeString": "contract ISuperToken"
12659
12659
  }
12660
12660
  },
12661
- "id": 37481,
12661
+ "id": 37473,
12662
12662
  "isConstant": false,
12663
12663
  "isLValue": false,
12664
12664
  "isPure": false,
12665
12665
  "lValueRequested": false,
12666
12666
  "memberName": "upgradeTo",
12667
12667
  "nodeType": "MemberAccess",
12668
- "referencedDeclaration": 19423,
12668
+ "referencedDeclaration": 19433,
12669
12669
  "src": "2488:20:100",
12670
12670
  "typeDescriptions": {
12671
12671
  "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
12672
12672
  "typeString": "function (address,uint256,bytes memory) external"
12673
12673
  }
12674
12674
  },
12675
- "id": 37496,
12675
+ "id": 37488,
12676
12676
  "isConstant": false,
12677
12677
  "isLValue": false,
12678
12678
  "isPure": false,
@@ -12687,20 +12687,20 @@
12687
12687
  "typeString": "tuple()"
12688
12688
  }
12689
12689
  },
12690
- "id": 37497,
12690
+ "id": 37489,
12691
12691
  "nodeType": "ExpressionStatement",
12692
12692
  "src": "2488:116:100"
12693
12693
  }
12694
12694
  ]
12695
12695
  },
12696
12696
  "documentation": {
12697
- "id": 37393,
12697
+ "id": 37385,
12698
12698
  "nodeType": "StructuredDocumentation",
12699
12699
  "src": "1406:315:100",
12700
12700
  "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."
12701
12701
  },
12702
12702
  "functionSelector": "2a197298",
12703
- "id": 37499,
12703
+ "id": 37491,
12704
12704
  "implemented": true,
12705
12705
  "kind": "function",
12706
12706
  "modifiers": [],
@@ -12708,17 +12708,17 @@
12708
12708
  "nameLocation": "1735:7:100",
12709
12709
  "nodeType": "FunctionDefinition",
12710
12710
  "parameters": {
12711
- "id": 37400,
12711
+ "id": 37392,
12712
12712
  "nodeType": "ParameterList",
12713
12713
  "parameters": [
12714
12714
  {
12715
12715
  "constant": false,
12716
- "id": 37395,
12716
+ "id": 37387,
12717
12717
  "mutability": "mutable",
12718
12718
  "name": "superTokenAddr",
12719
12719
  "nameLocation": "1760:14:100",
12720
12720
  "nodeType": "VariableDeclaration",
12721
- "scope": 37499,
12721
+ "scope": 37491,
12722
12722
  "src": "1752:22:100",
12723
12723
  "stateVariable": false,
12724
12724
  "storageLocation": "default",
@@ -12727,7 +12727,7 @@
12727
12727
  "typeString": "address"
12728
12728
  },
12729
12729
  "typeName": {
12730
- "id": 37394,
12730
+ "id": 37386,
12731
12731
  "name": "address",
12732
12732
  "nodeType": "ElementaryTypeName",
12733
12733
  "src": "1752:7:100",
@@ -12741,12 +12741,12 @@
12741
12741
  },
12742
12742
  {
12743
12743
  "constant": false,
12744
- "id": 37397,
12744
+ "id": 37389,
12745
12745
  "mutability": "mutable",
12746
12746
  "name": "account",
12747
12747
  "nameLocation": "1792:7:100",
12748
12748
  "nodeType": "VariableDeclaration",
12749
- "scope": 37499,
12749
+ "scope": 37491,
12750
12750
  "src": "1784:15:100",
12751
12751
  "stateVariable": false,
12752
12752
  "storageLocation": "default",
@@ -12755,7 +12755,7 @@
12755
12755
  "typeString": "address"
12756
12756
  },
12757
12757
  "typeName": {
12758
- "id": 37396,
12758
+ "id": 37388,
12759
12759
  "name": "address",
12760
12760
  "nodeType": "ElementaryTypeName",
12761
12761
  "src": "1784:7:100",
@@ -12769,12 +12769,12 @@
12769
12769
  },
12770
12770
  {
12771
12771
  "constant": false,
12772
- "id": 37399,
12772
+ "id": 37391,
12773
12773
  "mutability": "mutable",
12774
12774
  "name": "amount",
12775
12775
  "nameLocation": "1817:6:100",
12776
12776
  "nodeType": "VariableDeclaration",
12777
- "scope": 37499,
12777
+ "scope": 37491,
12778
12778
  "src": "1809:14:100",
12779
12779
  "stateVariable": false,
12780
12780
  "storageLocation": "default",
@@ -12783,7 +12783,7 @@
12783
12783
  "typeString": "uint256"
12784
12784
  },
12785
12785
  "typeName": {
12786
- "id": 37398,
12786
+ "id": 37390,
12787
12787
  "name": "uint256",
12788
12788
  "nodeType": "ElementaryTypeName",
12789
12789
  "src": "1809:7:100",
@@ -12798,12 +12798,12 @@
12798
12798
  "src": "1742:87:100"
12799
12799
  },
12800
12800
  "returnParameters": {
12801
- "id": 37401,
12801
+ "id": 37393,
12802
12802
  "nodeType": "ParameterList",
12803
12803
  "parameters": [],
12804
12804
  "src": "1847:0:100"
12805
12805
  },
12806
- "scope": 37629,
12806
+ "scope": 37621,
12807
12807
  "src": "1726:885:100",
12808
12808
  "stateMutability": "nonpayable",
12809
12809
  "virtual": false,
@@ -12811,7 +12811,7 @@
12811
12811
  },
12812
12812
  {
12813
12813
  "body": {
12814
- "id": 37512,
12814
+ "id": 37504,
12815
12815
  "nodeType": "Block",
12816
12816
  "src": "2757:54:100",
12817
12817
  "statements": [
@@ -12819,11 +12819,11 @@
12819
12819
  "expression": {
12820
12820
  "arguments": [
12821
12821
  {
12822
- "id": 37508,
12822
+ "id": 37500,
12823
12823
  "name": "BACKEND_ROLE",
12824
12824
  "nodeType": "Identifier",
12825
12825
  "overloadedDeclarations": [],
12826
- "referencedDeclaration": 37324,
12826
+ "referencedDeclaration": 37316,
12827
12827
  "src": "2782:12:100",
12828
12828
  "typeDescriptions": {
12829
12829
  "typeIdentifier": "t_bytes32",
@@ -12831,11 +12831,11 @@
12831
12831
  }
12832
12832
  },
12833
12833
  {
12834
- "id": 37509,
12834
+ "id": 37501,
12835
12835
  "name": "account",
12836
12836
  "nodeType": "Identifier",
12837
12837
  "overloadedDeclarations": [],
12838
- "referencedDeclaration": 37502,
12838
+ "referencedDeclaration": 37494,
12839
12839
  "src": "2796:7:100",
12840
12840
  "typeDescriptions": {
12841
12841
  "typeIdentifier": "t_address",
@@ -12854,7 +12854,7 @@
12854
12854
  "typeString": "address"
12855
12855
  }
12856
12856
  ],
12857
- "id": 37507,
12857
+ "id": 37499,
12858
12858
  "name": "hasRole",
12859
12859
  "nodeType": "Identifier",
12860
12860
  "overloadedDeclarations": [],
@@ -12865,7 +12865,7 @@
12865
12865
  "typeString": "function (bytes32,address) view returns (bool)"
12866
12866
  }
12867
12867
  },
12868
- "id": 37510,
12868
+ "id": 37502,
12869
12869
  "isConstant": false,
12870
12870
  "isLValue": false,
12871
12871
  "isPure": false,
@@ -12880,21 +12880,21 @@
12880
12880
  "typeString": "bool"
12881
12881
  }
12882
12882
  },
12883
- "functionReturnParameters": 37506,
12884
- "id": 37511,
12883
+ "functionReturnParameters": 37498,
12884
+ "id": 37503,
12885
12885
  "nodeType": "Return",
12886
12886
  "src": "2767:37:100"
12887
12887
  }
12888
12888
  ]
12889
12889
  },
12890
12890
  "documentation": {
12891
- "id": 37500,
12891
+ "id": 37492,
12892
12892
  "nodeType": "StructuredDocumentation",
12893
12893
  "src": "2617:62:100",
12894
12894
  "text": " @dev Test if account is member BACKEND_ROLE"
12895
12895
  },
12896
12896
  "functionSelector": "44e9d2fb",
12897
- "id": 37513,
12897
+ "id": 37505,
12898
12898
  "implemented": true,
12899
12899
  "kind": "function",
12900
12900
  "modifiers": [],
@@ -12902,17 +12902,17 @@
12902
12902
  "nameLocation": "2693:14:100",
12903
12903
  "nodeType": "FunctionDefinition",
12904
12904
  "parameters": {
12905
- "id": 37503,
12905
+ "id": 37495,
12906
12906
  "nodeType": "ParameterList",
12907
12907
  "parameters": [
12908
12908
  {
12909
12909
  "constant": false,
12910
- "id": 37502,
12910
+ "id": 37494,
12911
12911
  "mutability": "mutable",
12912
12912
  "name": "account",
12913
12913
  "nameLocation": "2716:7:100",
12914
12914
  "nodeType": "VariableDeclaration",
12915
- "scope": 37513,
12915
+ "scope": 37505,
12916
12916
  "src": "2708:15:100",
12917
12917
  "stateVariable": false,
12918
12918
  "storageLocation": "default",
@@ -12921,7 +12921,7 @@
12921
12921
  "typeString": "address"
12922
12922
  },
12923
12923
  "typeName": {
12924
- "id": 37501,
12924
+ "id": 37493,
12925
12925
  "name": "address",
12926
12926
  "nodeType": "ElementaryTypeName",
12927
12927
  "src": "2708:7:100",
@@ -12937,17 +12937,17 @@
12937
12937
  "src": "2707:17:100"
12938
12938
  },
12939
12939
  "returnParameters": {
12940
- "id": 37506,
12940
+ "id": 37498,
12941
12941
  "nodeType": "ParameterList",
12942
12942
  "parameters": [
12943
12943
  {
12944
12944
  "constant": false,
12945
- "id": 37505,
12945
+ "id": 37497,
12946
12946
  "mutability": "mutable",
12947
12947
  "name": "yes",
12948
12948
  "nameLocation": "2752:3:100",
12949
12949
  "nodeType": "VariableDeclaration",
12950
- "scope": 37513,
12950
+ "scope": 37505,
12951
12951
  "src": "2747:8:100",
12952
12952
  "stateVariable": false,
12953
12953
  "storageLocation": "default",
@@ -12956,7 +12956,7 @@
12956
12956
  "typeString": "bool"
12957
12957
  },
12958
12958
  "typeName": {
12959
- "id": 37504,
12959
+ "id": 37496,
12960
12960
  "name": "bool",
12961
12961
  "nodeType": "ElementaryTypeName",
12962
12962
  "src": "2747:4:100",
@@ -12970,7 +12970,7 @@
12970
12970
  ],
12971
12971
  "src": "2746:10:100"
12972
12972
  },
12973
- "scope": 37629,
12973
+ "scope": 37621,
12974
12974
  "src": "2684:127:100",
12975
12975
  "stateMutability": "view",
12976
12976
  "virtual": false,
@@ -12978,7 +12978,7 @@
12978
12978
  },
12979
12979
  {
12980
12980
  "body": {
12981
- "id": 37534,
12981
+ "id": 37526,
12982
12982
  "nodeType": "Block",
12983
12983
  "src": "2926:176:100",
12984
12984
  "statements": [
@@ -12990,17 +12990,17 @@
12990
12990
  "typeIdentifier": "t_address",
12991
12991
  "typeString": "address"
12992
12992
  },
12993
- "id": 37525,
12993
+ "id": 37517,
12994
12994
  "isConstant": false,
12995
12995
  "isLValue": false,
12996
12996
  "isPure": false,
12997
12997
  "lValueRequested": false,
12998
12998
  "leftExpression": {
12999
- "id": 37520,
12999
+ "id": 37512,
13000
13000
  "name": "account",
13001
13001
  "nodeType": "Identifier",
13002
13002
  "overloadedDeclarations": [],
13003
- "referencedDeclaration": 37516,
13003
+ "referencedDeclaration": 37508,
13004
13004
  "src": "2944:7:100",
13005
13005
  "typeDescriptions": {
13006
13006
  "typeIdentifier": "t_address",
@@ -13013,7 +13013,7 @@
13013
13013
  "arguments": [
13014
13014
  {
13015
13015
  "hexValue": "30",
13016
- "id": 37523,
13016
+ "id": 37515,
13017
13017
  "isConstant": false,
13018
13018
  "isLValue": false,
13019
13019
  "isPure": true,
@@ -13035,7 +13035,7 @@
13035
13035
  "typeString": "int_const 0"
13036
13036
  }
13037
13037
  ],
13038
- "id": 37522,
13038
+ "id": 37514,
13039
13039
  "isConstant": false,
13040
13040
  "isLValue": false,
13041
13041
  "isPure": true,
@@ -13047,14 +13047,14 @@
13047
13047
  "typeString": "type(address)"
13048
13048
  },
13049
13049
  "typeName": {
13050
- "id": 37521,
13050
+ "id": 37513,
13051
13051
  "name": "address",
13052
13052
  "nodeType": "ElementaryTypeName",
13053
13053
  "src": "2955:7:100",
13054
13054
  "typeDescriptions": {}
13055
13055
  }
13056
13056
  },
13057
- "id": 37524,
13057
+ "id": 37516,
13058
13058
  "isConstant": false,
13059
13059
  "isLValue": false,
13060
13060
  "isPure": true,
@@ -13077,7 +13077,7 @@
13077
13077
  },
13078
13078
  {
13079
13079
  "hexValue": "6f7065726174696f6e206e6f7420616c6c6f776564",
13080
- "id": 37526,
13080
+ "id": 37518,
13081
13081
  "isConstant": false,
13082
13082
  "isLValue": false,
13083
13083
  "isPure": true,
@@ -13103,7 +13103,7 @@
13103
13103
  "typeString": "literal_string \"operation not allowed\""
13104
13104
  }
13105
13105
  ],
13106
- "id": 37519,
13106
+ "id": 37511,
13107
13107
  "name": "require",
13108
13108
  "nodeType": "Identifier",
13109
13109
  "overloadedDeclarations": [
@@ -13117,7 +13117,7 @@
13117
13117
  "typeString": "function (bool,string memory) pure"
13118
13118
  }
13119
13119
  },
13120
- "id": 37527,
13120
+ "id": 37519,
13121
13121
  "isConstant": false,
13122
13122
  "isLValue": false,
13123
13123
  "isPure": false,
@@ -13132,7 +13132,7 @@
13132
13132
  "typeString": "tuple()"
13133
13133
  }
13134
13134
  },
13135
- "id": 37528,
13135
+ "id": 37520,
13136
13136
  "nodeType": "ExpressionStatement",
13137
13137
  "src": "2936:55:100"
13138
13138
  },
@@ -13140,11 +13140,11 @@
13140
13140
  "expression": {
13141
13141
  "arguments": [
13142
13142
  {
13143
- "id": 37530,
13143
+ "id": 37522,
13144
13144
  "name": "BACKEND_ROLE",
13145
13145
  "nodeType": "Identifier",
13146
13146
  "overloadedDeclarations": [],
13147
- "referencedDeclaration": 37324,
13147
+ "referencedDeclaration": 37316,
13148
13148
  "src": "3073:12:100",
13149
13149
  "typeDescriptions": {
13150
13150
  "typeIdentifier": "t_bytes32",
@@ -13152,11 +13152,11 @@
13152
13152
  }
13153
13153
  },
13154
13154
  {
13155
- "id": 37531,
13155
+ "id": 37523,
13156
13156
  "name": "account",
13157
13157
  "nodeType": "Identifier",
13158
13158
  "overloadedDeclarations": [],
13159
- "referencedDeclaration": 37516,
13159
+ "referencedDeclaration": 37508,
13160
13160
  "src": "3087:7:100",
13161
13161
  "typeDescriptions": {
13162
13162
  "typeIdentifier": "t_address",
@@ -13175,7 +13175,7 @@
13175
13175
  "typeString": "address"
13176
13176
  }
13177
13177
  ],
13178
- "id": 37529,
13178
+ "id": 37521,
13179
13179
  "name": "grantRole",
13180
13180
  "nodeType": "Identifier",
13181
13181
  "overloadedDeclarations": [],
@@ -13186,7 +13186,7 @@
13186
13186
  "typeString": "function (bytes32,address)"
13187
13187
  }
13188
13188
  },
13189
- "id": 37532,
13189
+ "id": 37524,
13190
13190
  "isConstant": false,
13191
13191
  "isLValue": false,
13192
13192
  "isPure": false,
@@ -13201,20 +13201,20 @@
13201
13201
  "typeString": "tuple()"
13202
13202
  }
13203
13203
  },
13204
- "id": 37533,
13204
+ "id": 37525,
13205
13205
  "nodeType": "ExpressionStatement",
13206
13206
  "src": "3063:32:100"
13207
13207
  }
13208
13208
  ]
13209
13209
  },
13210
13210
  "documentation": {
13211
- "id": 37514,
13211
+ "id": 37506,
13212
13212
  "nodeType": "StructuredDocumentation",
13213
13213
  "src": "2817:51:100",
13214
13214
  "text": " @dev Add account to BACKEND_ROLE"
13215
13215
  },
13216
13216
  "functionSelector": "61985da7",
13217
- "id": 37535,
13217
+ "id": 37527,
13218
13218
  "implemented": true,
13219
13219
  "kind": "function",
13220
13220
  "modifiers": [],
@@ -13222,17 +13222,17 @@
13222
13222
  "nameLocation": "2882:17:100",
13223
13223
  "nodeType": "FunctionDefinition",
13224
13224
  "parameters": {
13225
- "id": 37517,
13225
+ "id": 37509,
13226
13226
  "nodeType": "ParameterList",
13227
13227
  "parameters": [
13228
13228
  {
13229
13229
  "constant": false,
13230
- "id": 37516,
13230
+ "id": 37508,
13231
13231
  "mutability": "mutable",
13232
13232
  "name": "account",
13233
13233
  "nameLocation": "2908:7:100",
13234
13234
  "nodeType": "VariableDeclaration",
13235
- "scope": 37535,
13235
+ "scope": 37527,
13236
13236
  "src": "2900:15:100",
13237
13237
  "stateVariable": false,
13238
13238
  "storageLocation": "default",
@@ -13241,7 +13241,7 @@
13241
13241
  "typeString": "address"
13242
13242
  },
13243
13243
  "typeName": {
13244
- "id": 37515,
13244
+ "id": 37507,
13245
13245
  "name": "address",
13246
13246
  "nodeType": "ElementaryTypeName",
13247
13247
  "src": "2900:7:100",
@@ -13257,12 +13257,12 @@
13257
13257
  "src": "2899:17:100"
13258
13258
  },
13259
13259
  "returnParameters": {
13260
- "id": 37518,
13260
+ "id": 37510,
13261
13261
  "nodeType": "ParameterList",
13262
13262
  "parameters": [],
13263
13263
  "src": "2926:0:100"
13264
13264
  },
13265
- "scope": 37629,
13265
+ "scope": 37621,
13266
13266
  "src": "2873:229:100",
13267
13267
  "stateMutability": "nonpayable",
13268
13268
  "virtual": false,
@@ -13270,7 +13270,7 @@
13270
13270
  },
13271
13271
  {
13272
13272
  "body": {
13273
- "id": 37546,
13273
+ "id": 37538,
13274
13274
  "nodeType": "Block",
13275
13275
  "src": "3221:112:100",
13276
13276
  "statements": [
@@ -13278,11 +13278,11 @@
13278
13278
  "expression": {
13279
13279
  "arguments": [
13280
13280
  {
13281
- "id": 37542,
13281
+ "id": 37534,
13282
13282
  "name": "BACKEND_ROLE",
13283
13283
  "nodeType": "Identifier",
13284
13284
  "overloadedDeclarations": [],
13285
- "referencedDeclaration": 37324,
13285
+ "referencedDeclaration": 37316,
13286
13286
  "src": "3304:12:100",
13287
13287
  "typeDescriptions": {
13288
13288
  "typeIdentifier": "t_bytes32",
@@ -13290,11 +13290,11 @@
13290
13290
  }
13291
13291
  },
13292
13292
  {
13293
- "id": 37543,
13293
+ "id": 37535,
13294
13294
  "name": "account",
13295
13295
  "nodeType": "Identifier",
13296
13296
  "overloadedDeclarations": [],
13297
- "referencedDeclaration": 37538,
13297
+ "referencedDeclaration": 37530,
13298
13298
  "src": "3318:7:100",
13299
13299
  "typeDescriptions": {
13300
13300
  "typeIdentifier": "t_address",
@@ -13313,7 +13313,7 @@
13313
13313
  "typeString": "address"
13314
13314
  }
13315
13315
  ],
13316
- "id": 37541,
13316
+ "id": 37533,
13317
13317
  "name": "revokeRole",
13318
13318
  "nodeType": "Identifier",
13319
13319
  "overloadedDeclarations": [],
@@ -13324,7 +13324,7 @@
13324
13324
  "typeString": "function (bytes32,address)"
13325
13325
  }
13326
13326
  },
13327
- "id": 37544,
13327
+ "id": 37536,
13328
13328
  "isConstant": false,
13329
13329
  "isLValue": false,
13330
13330
  "isPure": false,
@@ -13339,20 +13339,20 @@
13339
13339
  "typeString": "tuple()"
13340
13340
  }
13341
13341
  },
13342
- "id": 37545,
13342
+ "id": 37537,
13343
13343
  "nodeType": "ExpressionStatement",
13344
13344
  "src": "3293:33:100"
13345
13345
  }
13346
13346
  ]
13347
13347
  },
13348
13348
  "documentation": {
13349
- "id": 37536,
13349
+ "id": 37528,
13350
13350
  "nodeType": "StructuredDocumentation",
13351
13351
  "src": "3108:54:100",
13352
13352
  "text": " @dev Remove account to BACKEND_ROLE"
13353
13353
  },
13354
13354
  "functionSelector": "abcac5eb",
13355
- "id": 37547,
13355
+ "id": 37539,
13356
13356
  "implemented": true,
13357
13357
  "kind": "function",
13358
13358
  "modifiers": [],
@@ -13360,17 +13360,17 @@
13360
13360
  "nameLocation": "3176:18:100",
13361
13361
  "nodeType": "FunctionDefinition",
13362
13362
  "parameters": {
13363
- "id": 37539,
13363
+ "id": 37531,
13364
13364
  "nodeType": "ParameterList",
13365
13365
  "parameters": [
13366
13366
  {
13367
13367
  "constant": false,
13368
- "id": 37538,
13368
+ "id": 37530,
13369
13369
  "mutability": "mutable",
13370
13370
  "name": "account",
13371
13371
  "nameLocation": "3203:7:100",
13372
13372
  "nodeType": "VariableDeclaration",
13373
- "scope": 37547,
13373
+ "scope": 37539,
13374
13374
  "src": "3195:15:100",
13375
13375
  "stateVariable": false,
13376
13376
  "storageLocation": "default",
@@ -13379,7 +13379,7 @@
13379
13379
  "typeString": "address"
13380
13380
  },
13381
13381
  "typeName": {
13382
- "id": 37537,
13382
+ "id": 37529,
13383
13383
  "name": "address",
13384
13384
  "nodeType": "ElementaryTypeName",
13385
13385
  "src": "3195:7:100",
@@ -13395,12 +13395,12 @@
13395
13395
  "src": "3194:17:100"
13396
13396
  },
13397
13397
  "returnParameters": {
13398
- "id": 37540,
13398
+ "id": 37532,
13399
13399
  "nodeType": "ParameterList",
13400
13400
  "parameters": [],
13401
13401
  "src": "3221:0:100"
13402
13402
  },
13403
- "scope": 37629,
13403
+ "scope": 37621,
13404
13404
  "src": "3167:166:100",
13405
13405
  "stateMutability": "nonpayable",
13406
13406
  "virtual": false,
@@ -13408,23 +13408,23 @@
13408
13408
  },
13409
13409
  {
13410
13410
  "body": {
13411
- "id": 37594,
13411
+ "id": 37586,
13412
13412
  "nodeType": "Block",
13413
13413
  "src": "3475:288:100",
13414
13414
  "statements": [
13415
13415
  {
13416
13416
  "assignments": [
13417
- 37555
13417
+ 37547
13418
13418
  ],
13419
13419
  "declarations": [
13420
13420
  {
13421
13421
  "constant": false,
13422
- "id": 37555,
13422
+ "id": 37547,
13423
13423
  "mutability": "mutable",
13424
13424
  "name": "numberOfMembers",
13425
13425
  "nameLocation": "3493:15:100",
13426
13426
  "nodeType": "VariableDeclaration",
13427
- "scope": 37594,
13427
+ "scope": 37586,
13428
13428
  "src": "3485:23:100",
13429
13429
  "stateVariable": false,
13430
13430
  "storageLocation": "default",
@@ -13433,7 +13433,7 @@
13433
13433
  "typeString": "uint256"
13434
13434
  },
13435
13435
  "typeName": {
13436
- "id": 37554,
13436
+ "id": 37546,
13437
13437
  "name": "uint256",
13438
13438
  "nodeType": "ElementaryTypeName",
13439
13439
  "src": "3485:7:100",
@@ -13445,15 +13445,15 @@
13445
13445
  "visibility": "internal"
13446
13446
  }
13447
13447
  ],
13448
- "id": 37559,
13448
+ "id": 37551,
13449
13449
  "initialValue": {
13450
13450
  "arguments": [
13451
13451
  {
13452
- "id": 37557,
13452
+ "id": 37549,
13453
13453
  "name": "BACKEND_ROLE",
13454
13454
  "nodeType": "Identifier",
13455
13455
  "overloadedDeclarations": [],
13456
- "referencedDeclaration": 37324,
13456
+ "referencedDeclaration": 37316,
13457
13457
  "src": "3530:12:100",
13458
13458
  "typeDescriptions": {
13459
13459
  "typeIdentifier": "t_bytes32",
@@ -13468,7 +13468,7 @@
13468
13468
  "typeString": "bytes32"
13469
13469
  }
13470
13470
  ],
13471
- "id": 37556,
13471
+ "id": 37548,
13472
13472
  "name": "getRoleMemberCount",
13473
13473
  "nodeType": "Identifier",
13474
13474
  "overloadedDeclarations": [],
@@ -13479,7 +13479,7 @@
13479
13479
  "typeString": "function (bytes32) view returns (uint256)"
13480
13480
  }
13481
13481
  },
13482
- "id": 37558,
13482
+ "id": 37550,
13483
13483
  "isConstant": false,
13484
13484
  "isLValue": false,
13485
13485
  "isPure": false,
@@ -13499,17 +13499,17 @@
13499
13499
  },
13500
13500
  {
13501
13501
  "assignments": [
13502
- 37564
13502
+ 37556
13503
13503
  ],
13504
13504
  "declarations": [
13505
13505
  {
13506
13506
  "constant": false,
13507
- "id": 37564,
13507
+ "id": 37556,
13508
13508
  "mutability": "mutable",
13509
13509
  "name": "members",
13510
13510
  "nameLocation": "3570:7:100",
13511
13511
  "nodeType": "VariableDeclaration",
13512
- "scope": 37594,
13512
+ "scope": 37586,
13513
13513
  "src": "3553:24:100",
13514
13514
  "stateVariable": false,
13515
13515
  "storageLocation": "memory",
@@ -13519,7 +13519,7 @@
13519
13519
  },
13520
13520
  "typeName": {
13521
13521
  "baseType": {
13522
- "id": 37562,
13522
+ "id": 37554,
13523
13523
  "name": "address",
13524
13524
  "nodeType": "ElementaryTypeName",
13525
13525
  "src": "3553:7:100",
@@ -13528,7 +13528,7 @@
13528
13528
  "typeString": "address"
13529
13529
  }
13530
13530
  },
13531
- "id": 37563,
13531
+ "id": 37555,
13532
13532
  "nodeType": "ArrayTypeName",
13533
13533
  "src": "3553:9:100",
13534
13534
  "typeDescriptions": {
@@ -13539,15 +13539,15 @@
13539
13539
  "visibility": "internal"
13540
13540
  }
13541
13541
  ],
13542
- "id": 37570,
13542
+ "id": 37562,
13543
13543
  "initialValue": {
13544
13544
  "arguments": [
13545
13545
  {
13546
- "id": 37568,
13546
+ "id": 37560,
13547
13547
  "name": "numberOfMembers",
13548
13548
  "nodeType": "Identifier",
13549
13549
  "overloadedDeclarations": [],
13550
- "referencedDeclaration": 37555,
13550
+ "referencedDeclaration": 37547,
13551
13551
  "src": "3594:15:100",
13552
13552
  "typeDescriptions": {
13553
13553
  "typeIdentifier": "t_uint256",
@@ -13562,7 +13562,7 @@
13562
13562
  "typeString": "uint256"
13563
13563
  }
13564
13564
  ],
13565
- "id": 37567,
13565
+ "id": 37559,
13566
13566
  "isConstant": false,
13567
13567
  "isLValue": false,
13568
13568
  "isPure": true,
@@ -13575,7 +13575,7 @@
13575
13575
  },
13576
13576
  "typeName": {
13577
13577
  "baseType": {
13578
- "id": 37565,
13578
+ "id": 37557,
13579
13579
  "name": "address",
13580
13580
  "nodeType": "ElementaryTypeName",
13581
13581
  "src": "3584:7:100",
@@ -13585,7 +13585,7 @@
13585
13585
  "typeString": "address"
13586
13586
  }
13587
13587
  },
13588
- "id": 37566,
13588
+ "id": 37558,
13589
13589
  "nodeType": "ArrayTypeName",
13590
13590
  "src": "3584:9:100",
13591
13591
  "typeDescriptions": {
@@ -13594,7 +13594,7 @@
13594
13594
  }
13595
13595
  }
13596
13596
  },
13597
- "id": 37569,
13597
+ "id": 37561,
13598
13598
  "isConstant": false,
13599
13599
  "isLValue": false,
13600
13600
  "isPure": false,
@@ -13614,37 +13614,37 @@
13614
13614
  },
13615
13615
  {
13616
13616
  "body": {
13617
- "id": 37590,
13617
+ "id": 37582,
13618
13618
  "nodeType": "Block",
13619
13619
  "src": "3665:68:100",
13620
13620
  "statements": [
13621
13621
  {
13622
13622
  "expression": {
13623
- "id": 37588,
13623
+ "id": 37580,
13624
13624
  "isConstant": false,
13625
13625
  "isLValue": false,
13626
13626
  "isPure": false,
13627
13627
  "lValueRequested": false,
13628
13628
  "leftHandSide": {
13629
13629
  "baseExpression": {
13630
- "id": 37581,
13630
+ "id": 37573,
13631
13631
  "name": "members",
13632
13632
  "nodeType": "Identifier",
13633
13633
  "overloadedDeclarations": [],
13634
- "referencedDeclaration": 37564,
13634
+ "referencedDeclaration": 37556,
13635
13635
  "src": "3679:7:100",
13636
13636
  "typeDescriptions": {
13637
13637
  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
13638
13638
  "typeString": "address[] memory"
13639
13639
  }
13640
13640
  },
13641
- "id": 37583,
13641
+ "id": 37575,
13642
13642
  "indexExpression": {
13643
- "id": 37582,
13643
+ "id": 37574,
13644
13644
  "name": "i",
13645
13645
  "nodeType": "Identifier",
13646
13646
  "overloadedDeclarations": [],
13647
- "referencedDeclaration": 37572,
13647
+ "referencedDeclaration": 37564,
13648
13648
  "src": "3687:1:100",
13649
13649
  "typeDescriptions": {
13650
13650
  "typeIdentifier": "t_uint256",
@@ -13667,11 +13667,11 @@
13667
13667
  "rightHandSide": {
13668
13668
  "arguments": [
13669
13669
  {
13670
- "id": 37585,
13670
+ "id": 37577,
13671
13671
  "name": "BACKEND_ROLE",
13672
13672
  "nodeType": "Identifier",
13673
13673
  "overloadedDeclarations": [],
13674
- "referencedDeclaration": 37324,
13674
+ "referencedDeclaration": 37316,
13675
13675
  "src": "3706:12:100",
13676
13676
  "typeDescriptions": {
13677
13677
  "typeIdentifier": "t_bytes32",
@@ -13679,11 +13679,11 @@
13679
13679
  }
13680
13680
  },
13681
13681
  {
13682
- "id": 37586,
13682
+ "id": 37578,
13683
13683
  "name": "i",
13684
13684
  "nodeType": "Identifier",
13685
13685
  "overloadedDeclarations": [],
13686
- "referencedDeclaration": 37572,
13686
+ "referencedDeclaration": 37564,
13687
13687
  "src": "3720:1:100",
13688
13688
  "typeDescriptions": {
13689
13689
  "typeIdentifier": "t_uint256",
@@ -13702,7 +13702,7 @@
13702
13702
  "typeString": "uint256"
13703
13703
  }
13704
13704
  ],
13705
- "id": 37584,
13705
+ "id": 37576,
13706
13706
  "name": "getRoleMember",
13707
13707
  "nodeType": "Identifier",
13708
13708
  "overloadedDeclarations": [],
@@ -13713,7 +13713,7 @@
13713
13713
  "typeString": "function (bytes32,uint256) view returns (address)"
13714
13714
  }
13715
13715
  },
13716
- "id": 37587,
13716
+ "id": 37579,
13717
13717
  "isConstant": false,
13718
13718
  "isLValue": false,
13719
13719
  "isPure": false,
@@ -13734,7 +13734,7 @@
13734
13734
  "typeString": "address"
13735
13735
  }
13736
13736
  },
13737
- "id": 37589,
13737
+ "id": 37581,
13738
13738
  "nodeType": "ExpressionStatement",
13739
13739
  "src": "3679:43:100"
13740
13740
  }
@@ -13745,17 +13745,17 @@
13745
13745
  "typeIdentifier": "t_uint256",
13746
13746
  "typeString": "uint256"
13747
13747
  },
13748
- "id": 37577,
13748
+ "id": 37569,
13749
13749
  "isConstant": false,
13750
13750
  "isLValue": false,
13751
13751
  "isPure": false,
13752
13752
  "lValueRequested": false,
13753
13753
  "leftExpression": {
13754
- "id": 37575,
13754
+ "id": 37567,
13755
13755
  "name": "i",
13756
13756
  "nodeType": "Identifier",
13757
13757
  "overloadedDeclarations": [],
13758
- "referencedDeclaration": 37572,
13758
+ "referencedDeclaration": 37564,
13759
13759
  "src": "3639:1:100",
13760
13760
  "typeDescriptions": {
13761
13761
  "typeIdentifier": "t_uint256",
@@ -13765,11 +13765,11 @@
13765
13765
  "nodeType": "BinaryOperation",
13766
13766
  "operator": "<",
13767
13767
  "rightExpression": {
13768
- "id": 37576,
13768
+ "id": 37568,
13769
13769
  "name": "numberOfMembers",
13770
13770
  "nodeType": "Identifier",
13771
13771
  "overloadedDeclarations": [],
13772
- "referencedDeclaration": 37555,
13772
+ "referencedDeclaration": 37547,
13773
13773
  "src": "3643:15:100",
13774
13774
  "typeDescriptions": {
13775
13775
  "typeIdentifier": "t_uint256",
@@ -13782,20 +13782,20 @@
13782
13782
  "typeString": "bool"
13783
13783
  }
13784
13784
  },
13785
- "id": 37591,
13785
+ "id": 37583,
13786
13786
  "initializationExpression": {
13787
13787
  "assignments": [
13788
- 37572
13788
+ 37564
13789
13789
  ],
13790
13790
  "declarations": [
13791
13791
  {
13792
13792
  "constant": false,
13793
- "id": 37572,
13793
+ "id": 37564,
13794
13794
  "mutability": "mutable",
13795
13795
  "name": "i",
13796
13796
  "nameLocation": "3632:1:100",
13797
13797
  "nodeType": "VariableDeclaration",
13798
- "scope": 37591,
13798
+ "scope": 37583,
13799
13799
  "src": "3624:9:100",
13800
13800
  "stateVariable": false,
13801
13801
  "storageLocation": "default",
@@ -13804,7 +13804,7 @@
13804
13804
  "typeString": "uint256"
13805
13805
  },
13806
13806
  "typeName": {
13807
- "id": 37571,
13807
+ "id": 37563,
13808
13808
  "name": "uint256",
13809
13809
  "nodeType": "ElementaryTypeName",
13810
13810
  "src": "3624:7:100",
@@ -13816,10 +13816,10 @@
13816
13816
  "visibility": "internal"
13817
13817
  }
13818
13818
  ],
13819
- "id": 37574,
13819
+ "id": 37566,
13820
13820
  "initialValue": {
13821
13821
  "hexValue": "30",
13822
- "id": 37573,
13822
+ "id": 37565,
13823
13823
  "isConstant": false,
13824
13824
  "isLValue": false,
13825
13825
  "isPure": true,
@@ -13838,7 +13838,7 @@
13838
13838
  },
13839
13839
  "loopExpression": {
13840
13840
  "expression": {
13841
- "id": 37579,
13841
+ "id": 37571,
13842
13842
  "isConstant": false,
13843
13843
  "isLValue": false,
13844
13844
  "isPure": false,
@@ -13848,11 +13848,11 @@
13848
13848
  "prefix": false,
13849
13849
  "src": "3660:3:100",
13850
13850
  "subExpression": {
13851
- "id": 37578,
13851
+ "id": 37570,
13852
13852
  "name": "i",
13853
13853
  "nodeType": "Identifier",
13854
13854
  "overloadedDeclarations": [],
13855
- "referencedDeclaration": 37572,
13855
+ "referencedDeclaration": 37564,
13856
13856
  "src": "3660:1:100",
13857
13857
  "typeDescriptions": {
13858
13858
  "typeIdentifier": "t_uint256",
@@ -13864,7 +13864,7 @@
13864
13864
  "typeString": "uint256"
13865
13865
  }
13866
13866
  },
13867
- "id": 37580,
13867
+ "id": 37572,
13868
13868
  "nodeType": "ExpressionStatement",
13869
13869
  "src": "3660:3:100"
13870
13870
  },
@@ -13873,32 +13873,32 @@
13873
13873
  },
13874
13874
  {
13875
13875
  "expression": {
13876
- "id": 37592,
13876
+ "id": 37584,
13877
13877
  "name": "members",
13878
13878
  "nodeType": "Identifier",
13879
13879
  "overloadedDeclarations": [],
13880
- "referencedDeclaration": 37564,
13880
+ "referencedDeclaration": 37556,
13881
13881
  "src": "3749:7:100",
13882
13882
  "typeDescriptions": {
13883
13883
  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
13884
13884
  "typeString": "address[] memory"
13885
13885
  }
13886
13886
  },
13887
- "functionReturnParameters": 37553,
13888
- "id": 37593,
13887
+ "functionReturnParameters": 37545,
13888
+ "id": 37585,
13889
13889
  "nodeType": "Return",
13890
13890
  "src": "3742:14:100"
13891
13891
  }
13892
13892
  ]
13893
13893
  },
13894
13894
  "documentation": {
13895
- "id": 37548,
13895
+ "id": 37540,
13896
13896
  "nodeType": "StructuredDocumentation",
13897
13897
  "src": "3339:63:100",
13898
13898
  "text": " @dev Get list of all members of BACKEND_ROLE"
13899
13899
  },
13900
13900
  "functionSelector": "0f01a4a2",
13901
- "id": 37595,
13901
+ "id": 37587,
13902
13902
  "implemented": true,
13903
13903
  "kind": "function",
13904
13904
  "modifiers": [],
@@ -13906,23 +13906,23 @@
13906
13906
  "nameLocation": "3416:16:100",
13907
13907
  "nodeType": "FunctionDefinition",
13908
13908
  "parameters": {
13909
- "id": 37549,
13909
+ "id": 37541,
13910
13910
  "nodeType": "ParameterList",
13911
13911
  "parameters": [],
13912
13912
  "src": "3432:2:100"
13913
13913
  },
13914
13914
  "returnParameters": {
13915
- "id": 37553,
13915
+ "id": 37545,
13916
13916
  "nodeType": "ParameterList",
13917
13917
  "parameters": [
13918
13918
  {
13919
13919
  "constant": false,
13920
- "id": 37552,
13920
+ "id": 37544,
13921
13921
  "mutability": "mutable",
13922
13922
  "name": "",
13923
13923
  "nameLocation": "-1:-1:-1",
13924
13924
  "nodeType": "VariableDeclaration",
13925
- "scope": 37595,
13925
+ "scope": 37587,
13926
13926
  "src": "3457:16:100",
13927
13927
  "stateVariable": false,
13928
13928
  "storageLocation": "memory",
@@ -13932,7 +13932,7 @@
13932
13932
  },
13933
13933
  "typeName": {
13934
13934
  "baseType": {
13935
- "id": 37550,
13935
+ "id": 37542,
13936
13936
  "name": "address",
13937
13937
  "nodeType": "ElementaryTypeName",
13938
13938
  "src": "3457:7:100",
@@ -13942,7 +13942,7 @@
13942
13942
  "typeString": "address"
13943
13943
  }
13944
13944
  },
13945
- "id": 37551,
13945
+ "id": 37543,
13946
13946
  "nodeType": "ArrayTypeName",
13947
13947
  "src": "3457:9:100",
13948
13948
  "typeDescriptions": {
@@ -13955,7 +13955,7 @@
13955
13955
  ],
13956
13956
  "src": "3456:18:100"
13957
13957
  },
13958
- "scope": 37629,
13958
+ "scope": 37621,
13959
13959
  "src": "3407:356:100",
13960
13960
  "stateMutability": "view",
13961
13961
  "virtual": false,
@@ -13963,34 +13963,34 @@
13963
13963
  },
13964
13964
  {
13965
13965
  "body": {
13966
- "id": 37611,
13966
+ "id": 37603,
13967
13967
  "nodeType": "Block",
13968
13968
  "src": "3883:87:100",
13969
13969
  "statements": [
13970
13970
  {
13971
13971
  "expression": {
13972
- "id": 37604,
13972
+ "id": 37596,
13973
13973
  "isConstant": false,
13974
13974
  "isLValue": false,
13975
13975
  "isPure": false,
13976
13976
  "lValueRequested": false,
13977
13977
  "leftHandSide": {
13978
13978
  "baseExpression": {
13979
- "id": 37599,
13979
+ "id": 37591,
13980
13980
  "name": "_optout",
13981
13981
  "nodeType": "Identifier",
13982
13982
  "overloadedDeclarations": [],
13983
- "referencedDeclaration": 37336,
13983
+ "referencedDeclaration": 37328,
13984
13984
  "src": "3893:7:100",
13985
13985
  "typeDescriptions": {
13986
13986
  "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
13987
13987
  "typeString": "mapping(address => bool)"
13988
13988
  }
13989
13989
  },
13990
- "id": 37602,
13990
+ "id": 37594,
13991
13991
  "indexExpression": {
13992
13992
  "expression": {
13993
- "id": 37600,
13993
+ "id": 37592,
13994
13994
  "name": "msg",
13995
13995
  "nodeType": "Identifier",
13996
13996
  "overloadedDeclarations": [],
@@ -14001,7 +14001,7 @@
14001
14001
  "typeString": "msg"
14002
14002
  }
14003
14003
  },
14004
- "id": 37601,
14004
+ "id": 37593,
14005
14005
  "isConstant": false,
14006
14006
  "isLValue": false,
14007
14007
  "isPure": false,
@@ -14029,7 +14029,7 @@
14029
14029
  "operator": "=",
14030
14030
  "rightHandSide": {
14031
14031
  "hexValue": "74727565",
14032
- "id": 37603,
14032
+ "id": 37595,
14033
14033
  "isConstant": false,
14034
14034
  "isLValue": false,
14035
14035
  "isPure": true,
@@ -14049,7 +14049,7 @@
14049
14049
  "typeString": "bool"
14050
14050
  }
14051
14051
  },
14052
- "id": 37605,
14052
+ "id": 37597,
14053
14053
  "nodeType": "ExpressionStatement",
14054
14054
  "src": "3893:26:100"
14055
14055
  },
@@ -14058,7 +14058,7 @@
14058
14058
  "arguments": [
14059
14059
  {
14060
14060
  "expression": {
14061
- "id": 37607,
14061
+ "id": 37599,
14062
14062
  "name": "msg",
14063
14063
  "nodeType": "Identifier",
14064
14064
  "overloadedDeclarations": [],
@@ -14069,7 +14069,7 @@
14069
14069
  "typeString": "msg"
14070
14070
  }
14071
14071
  },
14072
- "id": 37608,
14072
+ "id": 37600,
14073
14073
  "isConstant": false,
14074
14074
  "isLValue": false,
14075
14075
  "isPure": false,
@@ -14090,18 +14090,18 @@
14090
14090
  "typeString": "address"
14091
14091
  }
14092
14092
  ],
14093
- "id": 37606,
14093
+ "id": 37598,
14094
14094
  "name": "OptoutAutoUpgrade",
14095
14095
  "nodeType": "Identifier",
14096
14096
  "overloadedDeclarations": [],
14097
- "referencedDeclaration": 37328,
14097
+ "referencedDeclaration": 37320,
14098
14098
  "src": "3934:17:100",
14099
14099
  "typeDescriptions": {
14100
14100
  "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
14101
14101
  "typeString": "function (address)"
14102
14102
  }
14103
14103
  },
14104
- "id": 37609,
14104
+ "id": 37601,
14105
14105
  "isConstant": false,
14106
14106
  "isLValue": false,
14107
14107
  "isPure": false,
@@ -14116,20 +14116,20 @@
14116
14116
  "typeString": "tuple()"
14117
14117
  }
14118
14118
  },
14119
- "id": 37610,
14119
+ "id": 37602,
14120
14120
  "nodeType": "EmitStatement",
14121
14121
  "src": "3929:34:100"
14122
14122
  }
14123
14123
  ]
14124
14124
  },
14125
14125
  "documentation": {
14126
- "id": 37596,
14126
+ "id": 37588,
14127
14127
  "nodeType": "StructuredDocumentation",
14128
14128
  "src": "3769:70:100",
14129
14129
  "text": " @dev User signal that opt-out from backend upgrades"
14130
14130
  },
14131
14131
  "functionSelector": "ec328253",
14132
- "id": 37612,
14132
+ "id": 37604,
14133
14133
  "implemented": true,
14134
14134
  "kind": "function",
14135
14135
  "modifiers": [],
@@ -14137,18 +14137,18 @@
14137
14137
  "nameLocation": "3853:18:100",
14138
14138
  "nodeType": "FunctionDefinition",
14139
14139
  "parameters": {
14140
- "id": 37597,
14140
+ "id": 37589,
14141
14141
  "nodeType": "ParameterList",
14142
14142
  "parameters": [],
14143
14143
  "src": "3871:2:100"
14144
14144
  },
14145
14145
  "returnParameters": {
14146
- "id": 37598,
14146
+ "id": 37590,
14147
14147
  "nodeType": "ParameterList",
14148
14148
  "parameters": [],
14149
14149
  "src": "3883:0:100"
14150
14150
  },
14151
- "scope": 37629,
14151
+ "scope": 37621,
14152
14152
  "src": "3844:126:100",
14153
14153
  "stateMutability": "nonpayable",
14154
14154
  "virtual": false,
@@ -14156,13 +14156,13 @@
14156
14156
  },
14157
14157
  {
14158
14158
  "body": {
14159
- "id": 37627,
14159
+ "id": 37619,
14160
14160
  "nodeType": "Block",
14161
14161
  "src": "4096:86:100",
14162
14162
  "statements": [
14163
14163
  {
14164
14164
  "expression": {
14165
- "id": 37620,
14165
+ "id": 37612,
14166
14166
  "isConstant": false,
14167
14167
  "isLValue": false,
14168
14168
  "isPure": false,
@@ -14173,21 +14173,21 @@
14173
14173
  "src": "4106:26:100",
14174
14174
  "subExpression": {
14175
14175
  "baseExpression": {
14176
- "id": 37616,
14176
+ "id": 37608,
14177
14177
  "name": "_optout",
14178
14178
  "nodeType": "Identifier",
14179
14179
  "overloadedDeclarations": [],
14180
- "referencedDeclaration": 37336,
14180
+ "referencedDeclaration": 37328,
14181
14181
  "src": "4113:7:100",
14182
14182
  "typeDescriptions": {
14183
14183
  "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
14184
14184
  "typeString": "mapping(address => bool)"
14185
14185
  }
14186
14186
  },
14187
- "id": 37619,
14187
+ "id": 37611,
14188
14188
  "indexExpression": {
14189
14189
  "expression": {
14190
- "id": 37617,
14190
+ "id": 37609,
14191
14191
  "name": "msg",
14192
14192
  "nodeType": "Identifier",
14193
14193
  "overloadedDeclarations": [],
@@ -14198,7 +14198,7 @@
14198
14198
  "typeString": "msg"
14199
14199
  }
14200
14200
  },
14201
- "id": 37618,
14201
+ "id": 37610,
14202
14202
  "isConstant": false,
14203
14203
  "isLValue": false,
14204
14204
  "isPure": false,
@@ -14227,7 +14227,7 @@
14227
14227
  "typeString": "tuple()"
14228
14228
  }
14229
14229
  },
14230
- "id": 37621,
14230
+ "id": 37613,
14231
14231
  "nodeType": "ExpressionStatement",
14232
14232
  "src": "4106:26:100"
14233
14233
  },
@@ -14236,7 +14236,7 @@
14236
14236
  "arguments": [
14237
14237
  {
14238
14238
  "expression": {
14239
- "id": 37623,
14239
+ "id": 37615,
14240
14240
  "name": "msg",
14241
14241
  "nodeType": "Identifier",
14242
14242
  "overloadedDeclarations": [],
@@ -14247,7 +14247,7 @@
14247
14247
  "typeString": "msg"
14248
14248
  }
14249
14249
  },
14250
- "id": 37624,
14250
+ "id": 37616,
14251
14251
  "isConstant": false,
14252
14252
  "isLValue": false,
14253
14253
  "isPure": false,
@@ -14268,18 +14268,18 @@
14268
14268
  "typeString": "address"
14269
14269
  }
14270
14270
  ],
14271
- "id": 37622,
14271
+ "id": 37614,
14272
14272
  "name": "OptinAutoUpgrade",
14273
14273
  "nodeType": "Identifier",
14274
14274
  "overloadedDeclarations": [],
14275
- "referencedDeclaration": 37332,
14275
+ "referencedDeclaration": 37324,
14276
14276
  "src": "4147:16:100",
14277
14277
  "typeDescriptions": {
14278
14278
  "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
14279
14279
  "typeString": "function (address)"
14280
14280
  }
14281
14281
  },
14282
- "id": 37625,
14282
+ "id": 37617,
14283
14283
  "isConstant": false,
14284
14284
  "isLValue": false,
14285
14285
  "isPure": false,
@@ -14294,20 +14294,20 @@
14294
14294
  "typeString": "tuple()"
14295
14295
  }
14296
14296
  },
14297
- "id": 37626,
14297
+ "id": 37618,
14298
14298
  "nodeType": "EmitStatement",
14299
14299
  "src": "4142:33:100"
14300
14300
  }
14301
14301
  ]
14302
14302
  },
14303
14303
  "documentation": {
14304
- "id": 37613,
14304
+ "id": 37605,
14305
14305
  "nodeType": "StructuredDocumentation",
14306
14306
  "src": "3976:77:100",
14307
14307
  "text": " @dev User signal that revoke opt-out from backend upgrades"
14308
14308
  },
14309
14309
  "functionSelector": "5d730c58",
14310
- "id": 37628,
14310
+ "id": 37620,
14311
14311
  "implemented": true,
14312
14312
  "kind": "function",
14313
14313
  "modifiers": [],
@@ -14315,25 +14315,25 @@
14315
14315
  "nameLocation": "4067:17:100",
14316
14316
  "nodeType": "FunctionDefinition",
14317
14317
  "parameters": {
14318
- "id": 37614,
14318
+ "id": 37606,
14319
14319
  "nodeType": "ParameterList",
14320
14320
  "parameters": [],
14321
14321
  "src": "4084:2:100"
14322
14322
  },
14323
14323
  "returnParameters": {
14324
- "id": 37615,
14324
+ "id": 37607,
14325
14325
  "nodeType": "ParameterList",
14326
14326
  "parameters": [],
14327
14327
  "src": "4096:0:100"
14328
14328
  },
14329
- "scope": 37629,
14329
+ "scope": 37621,
14330
14330
  "src": "4058:124:100",
14331
14331
  "stateMutability": "nonpayable",
14332
14332
  "virtual": false,
14333
14333
  "visibility": "external"
14334
14334
  }
14335
14335
  ],
14336
- "scope": 37630,
14336
+ "scope": 37622,
14337
14337
  "src": "645:3539:100",
14338
14338
  "usedErrors": []
14339
14339
  }
@@ -14346,7 +14346,7 @@
14346
14346
  },
14347
14347
  "networks": {},
14348
14348
  "schemaVersion": "3.4.8",
14349
- "updatedAt": "2022-08-11T12:58:52.109Z",
14349
+ "updatedAt": "2022-08-24T13:23:34.827Z",
14350
14350
  "devdoc": {
14351
14351
  "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.",
14352
14352
  "kind": "dev",