@superfluid-finance/ethereum-contracts 1.2.3-dev.f94fdbb.0 → 1.3.1-dev.7df8a6a.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/build/contracts/AccessControl.json +3 -3
  2. package/build/contracts/AccessControlEnumerable.json +3 -3
  3. package/build/contracts/Address.json +5 -5
  4. package/build/contracts/AgreementBase.json +13 -13
  5. package/build/contracts/AgreementLibrary.json +7 -7
  6. package/build/contracts/BaseRelayRecipient.json +5 -5
  7. package/build/contracts/BatchLiquidator.json +179 -179
  8. package/build/contracts/BatchOperation.json +5 -5
  9. package/build/contracts/CFAv1Library.json +5 -5
  10. package/build/contracts/CallUtils.json +7 -7
  11. package/build/contracts/ClosingOnUpdateFlowTestApp.json +2107 -1917
  12. package/build/contracts/ConstantFlowAgreementV1.json +8 -8
  13. package/build/contracts/Context.json +3 -3
  14. package/build/contracts/ContextDefinitions.json +5 -5
  15. package/build/contracts/Create2.json +5 -5
  16. package/build/contracts/CustomSuperTokenBase.json +3 -3
  17. package/build/contracts/ERC165.json +3 -3
  18. package/build/contracts/ERC1820Implementer.json +5 -5
  19. package/build/contracts/ERC1820RegistryCompiled.json +7 -7
  20. package/build/contracts/ERC20.json +5 -5
  21. package/build/contracts/ERC20Burnable.json +3 -3
  22. package/build/contracts/ERC20Pausable.json +3 -3
  23. package/build/contracts/ERC20PresetMinterPauser.json +5 -5
  24. package/build/contracts/ERC20WithTokenInfo.json +3 -3
  25. package/build/contracts/ERC777Helper.json +7 -7
  26. package/build/contracts/ERC777RecipientDrainingGas.json +839 -839
  27. package/build/contracts/ERC777RecipientReverting.json +839 -839
  28. package/build/contracts/EnumerableSet.json +5 -5
  29. package/build/contracts/EventsEmitter.json +47 -47
  30. package/build/contracts/ExclusiveInflowTestApp.json +2107 -1917
  31. package/build/contracts/FixedSizeData.json +213 -213
  32. package/build/contracts/FlowExchangeTestApp.json +2107 -1917
  33. package/build/contracts/FlowOperatorDefinitions.json +5 -5
  34. package/build/contracts/FullUpgradableSuperTokenProxy.json +226 -312
  35. package/build/contracts/IAccessControl.json +3 -3
  36. package/build/contracts/IAccessControlEnumerable.json +3 -3
  37. package/build/contracts/IConstantFlowAgreementV1.json +451 -444
  38. package/build/contracts/IDAv1Library.json +5 -5
  39. package/build/contracts/IERC165.json +3 -3
  40. package/build/contracts/IERC1820Implementer.json +3 -3
  41. package/build/contracts/IERC1820Registry.json +3 -3
  42. package/build/contracts/IERC20.json +3 -3
  43. package/build/contracts/IERC20Metadata.json +3 -3
  44. package/build/contracts/IERC777.json +3 -3
  45. package/build/contracts/IERC777Recipient.json +3 -3
  46. package/build/contracts/IERC777Sender.json +3 -3
  47. package/build/contracts/IInstantDistributionAgreementV1.json +570 -559
  48. package/build/contracts/IMaticBridgedNativeSuperToken.json +71 -32
  49. package/build/contracts/IMaticBridgedNativeSuperTokenCustom.json +3 -3
  50. package/build/contracts/IMultiSigWallet.json +3 -3
  51. package/build/contracts/IPureSuperToken.json +71 -32
  52. package/build/contracts/IPureSuperTokenCustom.json +3 -3
  53. package/build/contracts/IRelayRecipient.json +3 -3
  54. package/build/contracts/IResolver.json +3 -3
  55. package/build/contracts/ISETH.json +71 -32
  56. package/build/contracts/ISETHCustom.json +3 -3
  57. package/build/contracts/ISuperAgreement.json +3 -3
  58. package/build/contracts/ISuperApp.json +179 -173
  59. package/build/contracts/ISuperToken.json +522 -483
  60. package/build/contracts/ISuperTokenFactory.json +3 -3
  61. package/build/contracts/ISuperfluid.json +633 -628
  62. package/build/contracts/ISuperfluidGovernance.json +134 -133
  63. package/build/contracts/ISuperfluidToken.json +403 -394
  64. package/build/contracts/ITOGAv1.json +1211 -1211
  65. package/build/contracts/ITOGAv2.json +1211 -1211
  66. package/build/contracts/Initializable.json +3 -3
  67. package/build/contracts/InstantDistributionAgreementV1.json +10 -10
  68. package/build/contracts/MaticBridgedNativeSuperTokenProxy.json +194 -194
  69. package/build/contracts/NonClosableOutflowTestApp.json +2107 -1917
  70. package/build/contracts/Ownable.json +3 -3
  71. package/build/contracts/Pausable.json +3 -3
  72. package/build/contracts/Proxy.json +3 -3
  73. package/build/contracts/PureSuperToken.json +91 -91
  74. package/build/contracts/Resolver.json +96 -96
  75. package/build/contracts/SETHProxy.json +199 -199
  76. package/build/contracts/SafeCast.json +5 -5
  77. package/build/contracts/SafeERC20.json +5 -5
  78. package/build/contracts/SafeMath.json +5 -5
  79. package/build/contracts/SelfDeletingFlowTestApp.json +2107 -1917
  80. package/build/contracts/SlotsBitmapLibrary.json +7 -7
  81. package/build/contracts/Strings.json +5 -5
  82. package/build/contracts/SuperAppBase.json +3 -3
  83. package/build/contracts/SuperAppDefinitions.json +5 -5
  84. package/build/contracts/SuperToken.json +2262 -2262
  85. package/build/contracts/SuperTokenFactory.json +582 -582
  86. package/build/contracts/SuperTokenFactoryBase.json +576 -576
  87. package/build/contracts/SuperTokenFactoryHelper.json +578 -578
  88. package/build/contracts/SuperUpgrader.json +687 -687
  89. package/build/contracts/Superfluid.json +6648 -6678
  90. package/build/contracts/SuperfluidFrameworkDeployer.json +526 -526
  91. package/build/contracts/SuperfluidGovernanceBase.json +13 -13
  92. package/build/contracts/SuperfluidGovernanceConfigs.json +5 -5
  93. package/build/contracts/SuperfluidGovernanceII.json +21 -21
  94. package/build/contracts/SuperfluidGovernanceIIProxy.json +20 -20
  95. package/build/contracts/SuperfluidLoader.json +147 -147
  96. package/build/contracts/SuperfluidToken.json +1269 -1269
  97. package/build/contracts/TOGA.json +1221 -1221
  98. package/build/contracts/TestGovernance.json +315 -315
  99. package/build/contracts/TestToken.json +475 -561
  100. package/build/contracts/TokenCustodian.json +220 -220
  101. package/build/contracts/TokenInfo.json +3 -3
  102. package/build/contracts/UUPSProxiable.json +136 -136
  103. package/build/contracts/UUPSProxy.json +87 -87
  104. package/build/contracts/UUPSUtils.json +43 -43
  105. package/build/contracts-sizes.txt +6 -6
  106. package/contracts/agreements/AgreementBase.sol +1 -1
  107. package/contracts/agreements/AgreementLibrary.sol +1 -1
  108. package/contracts/agreements/ConstantFlowAgreementV1.sol +1 -1
  109. package/contracts/agreements/InstantDistributionAgreementV1.sol +1 -1
  110. package/contracts/gov/SuperfluidGovernanceBase.sol +1 -1
  111. package/contracts/gov/SuperfluidGovernanceII.sol +1 -1
  112. package/contracts/interfaces/agreements/IConstantFlowAgreementV1.sol +7 -10
  113. package/contracts/interfaces/agreements/IInstantDistributionAgreementV1.sol +11 -18
  114. package/contracts/interfaces/superfluid/ISuperApp.sol +7 -9
  115. package/contracts/interfaces/superfluid/ISuperToken.sol +36 -44
  116. package/contracts/interfaces/superfluid/ISuperfluid.sol +17 -21
  117. package/contracts/interfaces/superfluid/ISuperfluidGovernance.sol +1 -1
  118. package/contracts/interfaces/superfluid/ISuperfluidToken.sol +13 -14
  119. package/contracts/libs/BaseRelayRecipient.sol +1 -1
  120. package/contracts/libs/CallUtils.sol +1 -1
  121. package/contracts/libs/ERC1820RegistryCompiled.sol +1 -1
  122. package/contracts/libs/ERC777Helper.sol +1 -1
  123. package/contracts/libs/EventsEmitter.sol +2 -2
  124. package/contracts/libs/FixedSizeData.sol +2 -2
  125. package/contracts/libs/SlotsBitmapLibrary.sol +1 -1
  126. package/contracts/mocks/AgreementMock.sol +1 -1
  127. package/contracts/mocks/CFAAppMocks.sol +6 -6
  128. package/contracts/mocks/CFALibraryMock.sol +2 -2
  129. package/contracts/mocks/CallUtilsMock.sol +1 -1
  130. package/contracts/mocks/CallUtilsTester.sol +1 -1
  131. package/contracts/mocks/CustomSuperTokenMock.sol +1 -1
  132. package/contracts/mocks/ERC777SenderRecipientMock.sol +1 -1
  133. package/contracts/mocks/FakeSuperfluidMock.sol +1 -1
  134. package/contracts/mocks/ForwarderMock.sol +1 -1
  135. package/contracts/mocks/IDASuperAppTester.sol +2 -2
  136. package/contracts/mocks/IDAv1LibraryMock.sol +3 -3
  137. package/contracts/mocks/MockSmartWallet.sol +1 -1
  138. package/contracts/mocks/MultiFlowTesterApp.sol +2 -2
  139. package/contracts/mocks/SuperAppMocks.sol +15 -12
  140. package/contracts/mocks/SuperTokenFactoryMock.sol +1 -1
  141. package/contracts/mocks/SuperTokenMock.sol +1 -1
  142. package/contracts/mocks/SuperfluidDestructorMock.sol +1 -1
  143. package/contracts/mocks/SuperfluidGovernanceIIMock.sol +1 -1
  144. package/contracts/mocks/SuperfluidMock.sol +2 -2
  145. package/contracts/mocks/UUPSProxiableMock.sol +1 -1
  146. package/contracts/superfluid/FullUpgradableSuperTokenProxy.sol +2 -2
  147. package/contracts/superfluid/SuperToken.sol +1 -1
  148. package/contracts/superfluid/SuperTokenFactory.sol +1 -1
  149. package/contracts/superfluid/Superfluid.sol +4 -4
  150. package/contracts/superfluid/SuperfluidToken.sol +1 -1
  151. package/contracts/tokens/MaticBridgedNativeSuperToken.sol +1 -1
  152. package/contracts/tokens/PureSuperToken.sol +1 -1
  153. package/contracts/tokens/SETH.sol +1 -1
  154. package/contracts/upgradability/UUPSProxiable.sol +1 -1
  155. package/contracts/upgradability/UUPSProxy.sol +1 -1
  156. package/contracts/upgradability/UUPSUtils.sol +1 -1
  157. package/contracts/utils/BatchLiquidator.sol +1 -1
  158. package/contracts/utils/Resolver.sol +1 -1
  159. package/contracts/utils/SuperUpgrader.sol +6 -6
  160. package/contracts/utils/SuperfluidLoader.sol +1 -1
  161. package/contracts/utils/TOGA.sol +1 -1
  162. package/contracts/utils/TestGovernance.sol +2 -2
  163. package/contracts/utils/TestToken.sol +2 -2
  164. package/contracts/utils/TokenCustodian.sol +1 -1
  165. package/package.json +5 -3
  166. package/scripts/deploy-framework.js +5 -5
  167. package/scripts/deploy-super-token.js +13 -4
  168. package/scripts/gov-create-new-app-registration-key.js +2 -1
  169. package/scripts/gov-create-new-factory-registration.js +1 -1
  170. package/scripts/libs/getConfig.js +21 -3
  171. package/scripts/resolver-list-super-token.js +1 -0
@@ -330,9 +330,9 @@
330
330
  "type": "function"
331
331
  }
332
332
  ],
333
- "metadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"initDecimals\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MINT_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Superfluid\",\"details\":\"Test ERC20 token that allows any one mint new tokens.\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"mint(address,uint256)\":{\"details\":\"See {ERC20-_mint}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"title\":\"Test token contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/utils/TestToken.sol\":\"TestToken\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xdadd41acb749920eccf40aeaa8d291adf9751399a7343561bad13e7a8d99be0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12af4ac016f9fdf3be5d15824f4292272aa11f6b2e0192a0f7320f5ad49bbbf0\",\"dweb:/ipfs/QmRXMpdqCgA3TYuYxBodqs5p9jGbnMW6xa2gvjppvq4TWk\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xbbc8ac883ac3c0078ce5ad3e288fbb3ffcc8a30c3a98c0fda0114d64fc44fca2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87a7a5d2f6f63f84598af02b8c50ca2df2631cb8ba2453e8d95fcb17e4be9824\",\"dweb:/ipfs/QmR76hqtAcRqoFj33tmNjcWTLrgNsAaakYwnKZ8zoJtKei\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"project:/contracts/utils/TestToken.sol\":{\"keccak256\":\"0x077c6577464e6c43a8077f4e8fb61635a7372d249acc2cda8e7e6cceb788e03f\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://3fae7f862b4188059e96700f129f2f4bb535b47e26a891b8f5ed2d432e4aa5bf\",\"dweb:/ipfs/QmdQFnCVzCcdPwNcf2YMSRN6hNWMhjSB32XkG6xZ3WYz24\"]}},\"version\":1}",
334
- "bytecode": "0x60806040523480156200001157600080fd5b5060405162000d2f38038062000d2f8339810160408190526200003491620001f7565b8251839083906200004d90600390602085019062000084565b5080516200006390600490602084019062000084565b50506005805460ff191660ff939093169290921790915550620002b8915050565b82805462000092906200027c565b90600052602060002090601f016020900481019282620000b6576000855562000101565b82601f10620000d157805160ff191683800117855562000101565b8280016001018555821562000101579182015b8281111562000101578251825591602001919060010190620000e4565b506200010f92915062000113565b5090565b5b808211156200010f576000815560010162000114565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200015257600080fd5b81516001600160401b03808211156200016f576200016f6200012a565b604051601f8301601f19908116603f011681019082821181831017156200019a576200019a6200012a565b81604052838152602092508683858801011115620001b757600080fd5b600091505b83821015620001db5785820183015181830184015290820190620001bc565b83821115620001ed5760008385830101525b9695505050505050565b6000806000606084860312156200020d57600080fd5b83516001600160401b03808211156200022557600080fd5b620002338783880162000140565b945060208601519150808211156200024a57600080fd5b50620002598682870162000140565b925050604084015160ff811681146200027157600080fd5b809150509250925092565b600181811c908216806200029157607f821691505b602082108103620002b257634e487b7160e01b600052602260045260246000fd5b50919050565b610a6780620002c86000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063395093511161008c57806395d89b411161006657806395d89b41146101b2578063a457c2d7146101ba578063a9059cbb146101cd578063dd62ed3e146101e057600080fd5b8063395093511461016357806340c10f191461017657806370a082311461018957600080fd5b806302775240146100d457806306fdde03146100fb578063095ea7b31461011057806318160ddd1461013357806323b872dd1461013b578063313ce5671461014e575b600080fd5b6100e86c0c9f2c9cd04674edea4000000081565b6040519081526020015b60405180910390f35b610103610219565b6040516100f291906108a5565b61012361011e366004610916565b6102ab565b60405190151581526020016100f2565b6002546100e8565b610123610149366004610940565b6102c3565b60055460405160ff90911681526020016100f2565b610123610171366004610916565b6102e7565b610123610184366004610916565b610326565b6100e861019736600461097c565b6001600160a01b031660009081526020819052604090205490565b610103610393565b6101236101c8366004610916565b6103a2565b6101236101db366004610916565b610434565b6100e86101ee36600461099e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b606060038054610228906109d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610254906109d1565b80156102a15780601f10610276576101008083540402835291602001916102a1565b820191906000526020600020905b81548152906001019060200180831161028457829003601f168201915b5050505050905090565b6000336102b9818585610442565b5060019392505050565b6000336102d1858285610566565b6102dc8585856105f8565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091906102b99082908690610321908790610a0b565b610442565b60006c0c9f2c9cd04674edea400000008211156103805760405162461bcd60e51b8152602060048201526013602482015272446f6e2774206d696e7420746f6f206d616e7960681b60448201526064015b60405180910390fd5b61038a83836107c6565b50600192915050565b606060048054610228906109d1565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156104275760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610377565b6102dc8286868403610442565b6000336102b98185856105f8565b6001600160a01b0383166104a45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610377565b6001600160a01b0382166105055760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610377565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146105f257818110156105e55760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610377565b6105f28484848403610442565b50505050565b6001600160a01b03831661065c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610377565b6001600160a01b0382166106be5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610377565b6001600160a01b038316600090815260208190526040902054818110156107365760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610377565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061076d908490610a0b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107b991815260200190565b60405180910390a36105f2565b6001600160a01b03821661081c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610377565b806002600082825461082e9190610a0b565b90915550506001600160a01b0382166000908152602081905260408120805483929061085b908490610a0b565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600060208083528351808285015260005b818110156108d2578581018301518582016040015282016108b6565b818111156108e4576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461091157600080fd5b919050565b6000806040838503121561092957600080fd5b610932836108fa565b946020939093013593505050565b60008060006060848603121561095557600080fd5b61095e846108fa565b925061096c602085016108fa565b9150604084013590509250925092565b60006020828403121561098e57600080fd5b610997826108fa565b9392505050565b600080604083850312156109b157600080fd5b6109ba836108fa565b91506109c8602084016108fa565b90509250929050565b600181811c908216806109e557607f821691505b602082108103610a0557634e487b7160e01b600052602260045260246000fd5b50919050565b60008219821115610a2c57634e487b7160e01b600052601160045260246000fd5b50019056fea26469706673582212207849f0d389759cdf8431a61d329efddc780fbb1b2c7ecabfa21c8d4be1c4538d64736f6c634300080d0033",
335
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063395093511161008c57806395d89b411161006657806395d89b41146101b2578063a457c2d7146101ba578063a9059cbb146101cd578063dd62ed3e146101e057600080fd5b8063395093511461016357806340c10f191461017657806370a082311461018957600080fd5b806302775240146100d457806306fdde03146100fb578063095ea7b31461011057806318160ddd1461013357806323b872dd1461013b578063313ce5671461014e575b600080fd5b6100e86c0c9f2c9cd04674edea4000000081565b6040519081526020015b60405180910390f35b610103610219565b6040516100f291906108a5565b61012361011e366004610916565b6102ab565b60405190151581526020016100f2565b6002546100e8565b610123610149366004610940565b6102c3565b60055460405160ff90911681526020016100f2565b610123610171366004610916565b6102e7565b610123610184366004610916565b610326565b6100e861019736600461097c565b6001600160a01b031660009081526020819052604090205490565b610103610393565b6101236101c8366004610916565b6103a2565b6101236101db366004610916565b610434565b6100e86101ee36600461099e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b606060038054610228906109d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610254906109d1565b80156102a15780601f10610276576101008083540402835291602001916102a1565b820191906000526020600020905b81548152906001019060200180831161028457829003601f168201915b5050505050905090565b6000336102b9818585610442565b5060019392505050565b6000336102d1858285610566565b6102dc8585856105f8565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091906102b99082908690610321908790610a0b565b610442565b60006c0c9f2c9cd04674edea400000008211156103805760405162461bcd60e51b8152602060048201526013602482015272446f6e2774206d696e7420746f6f206d616e7960681b60448201526064015b60405180910390fd5b61038a83836107c6565b50600192915050565b606060048054610228906109d1565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156104275760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610377565b6102dc8286868403610442565b6000336102b98185856105f8565b6001600160a01b0383166104a45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610377565b6001600160a01b0382166105055760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610377565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146105f257818110156105e55760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610377565b6105f28484848403610442565b50505050565b6001600160a01b03831661065c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610377565b6001600160a01b0382166106be5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610377565b6001600160a01b038316600090815260208190526040902054818110156107365760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610377565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061076d908490610a0b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107b991815260200190565b60405180910390a36105f2565b6001600160a01b03821661081c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610377565b806002600082825461082e9190610a0b565b90915550506001600160a01b0382166000908152602081905260408120805483929061085b908490610a0b565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600060208083528351808285015260005b818110156108d2578581018301518582016040015282016108b6565b818111156108e4576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461091157600080fd5b919050565b6000806040838503121561092957600080fd5b610932836108fa565b946020939093013593505050565b60008060006060848603121561095557600080fd5b61095e846108fa565b925061096c602085016108fa565b9150604084013590509250925092565b60006020828403121561098e57600080fd5b610997826108fa565b9392505050565b600080604083850312156109b157600080fd5b6109ba836108fa565b91506109c8602084016108fa565b90509250929050565b600181811c908216806109e557607f821691505b602082108103610a0557634e487b7160e01b600052602260045260246000fd5b50919050565b60008219821115610a2c57634e487b7160e01b600052601160045260246000fd5b50019056fea26469706673582212207849f0d389759cdf8431a61d329efddc780fbb1b2c7ecabfa21c8d4be1c4538d64736f6c634300080d0033",
333
+ "metadata": "{\"compiler\":{\"version\":\"0.8.14+commit.80d49f37\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"initDecimals\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MINT_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Superfluid\",\"details\":\"Test ERC20 token that allows any one mint new tokens.\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"mint(address,uint256)\":{\"details\":\"See {ERC20-_mint}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"title\":\"Test token contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/utils/TestToken.sol\":\"TestToken\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xdadd41acb749920eccf40aeaa8d291adf9751399a7343561bad13e7a8d99be0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12af4ac016f9fdf3be5d15824f4292272aa11f6b2e0192a0f7320f5ad49bbbf0\",\"dweb:/ipfs/QmRXMpdqCgA3TYuYxBodqs5p9jGbnMW6xa2gvjppvq4TWk\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xbbc8ac883ac3c0078ce5ad3e288fbb3ffcc8a30c3a98c0fda0114d64fc44fca2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87a7a5d2f6f63f84598af02b8c50ca2df2631cb8ba2453e8d95fcb17e4be9824\",\"dweb:/ipfs/QmR76hqtAcRqoFj33tmNjcWTLrgNsAaakYwnKZ8zoJtKei\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"project:/contracts/utils/TestToken.sol\":{\"keccak256\":\"0xbbd500e22ce737fb04d5d82a623a74bf87755ae5a2c8aeb442a8f2945ba01ad1\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://a71a5861dae45c73841c9b84af42952700f4d21780c7d9d50608c02041ea0d2f\",\"dweb:/ipfs/QmRoCCMFcc5VM95hKT9Wyagp9DzpVqxitUm2PypwLzLgjk\"]}},\"version\":1}",
334
+ "bytecode": "0x60806040523480156200001157600080fd5b5060405162000d0f38038062000d0f8339810160408190526200003491620001f7565b8251839083906200004d90600390602085019062000084565b5080516200006390600490602084019062000084565b50506005805460ff191660ff939093169290921790915550620002b8915050565b82805462000092906200027c565b90600052602060002090601f016020900481019282620000b6576000855562000101565b82601f10620000d157805160ff191683800117855562000101565b8280016001018555821562000101579182015b8281111562000101578251825591602001919060010190620000e4565b506200010f92915062000113565b5090565b5b808211156200010f576000815560010162000114565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200015257600080fd5b81516001600160401b03808211156200016f576200016f6200012a565b604051601f8301601f19908116603f011681019082821181831017156200019a576200019a6200012a565b81604052838152602092508683858801011115620001b757600080fd5b600091505b83821015620001db5785820183015181830184015290820190620001bc565b83821115620001ed5760008385830101525b9695505050505050565b6000806000606084860312156200020d57600080fd5b83516001600160401b03808211156200022557600080fd5b620002338783880162000140565b945060208601519150808211156200024a57600080fd5b50620002598682870162000140565b925050604084015160ff811681146200027157600080fd5b809150509250925092565b600181811c908216806200029157607f821691505b602082108103620002b257634e487b7160e01b600052602260045260246000fd5b50919050565b610a4780620002c86000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063395093511161008c57806395d89b411161006657806395d89b41146101b2578063a457c2d7146101ba578063a9059cbb146101cd578063dd62ed3e146101e057600080fd5b8063395093511461016357806340c10f191461017657806370a082311461018957600080fd5b806302775240146100d457806306fdde03146100fb578063095ea7b31461011057806318160ddd1461013357806323b872dd1461013b578063313ce5671461014e575b600080fd5b6100e86c0c9f2c9cd04674edea4000000081565b6040519081526020015b60405180910390f35b610103610219565b6040516100f2919061086f565b61012361011e3660046108e0565b6102ab565b60405190151581526020016100f2565b6002546100e8565b61012361014936600461090a565b6102c3565b60055460405160ff90911681526020016100f2565b6101236101713660046108e0565b6102e7565b6101236101843660046108e0565b610326565b6100e8610197366004610946565b6001600160a01b031660009081526020819052604090205490565b610103610358565b6101236101c83660046108e0565b610367565b6101236101db3660046108e0565b6103fe565b6100e86101ee366004610968565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546102289061099b565b80601f01602080910402602001604051908101604052809291908181526020018280546102549061099b565b80156102a15780601f10610276576101008083540402835291602001916102a1565b820191906000526020600020905b81548152906001019060200180831161028457829003601f168201915b5050505050905090565b6000336102b981858561040c565b5060019392505050565b6000336102d1858285610530565b6102dc8585856105c2565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091906102b990829086906103219087906109d5565b61040c565b60006c0c9f2c9cd04674edea40000000821115610345576103456109fb565b61034f8383610790565b50600192915050565b6060600480546102289061099b565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103f15760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102dc828686840361040c565b6000336102b98185856105c2565b6001600160a01b03831661046e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103e8565b6001600160a01b0382166104cf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103e8565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146105bc57818110156105af5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103e8565b6105bc848484840361040c565b50505050565b6001600160a01b0383166106265760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103e8565b6001600160a01b0382166106885760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103e8565b6001600160a01b038316600090815260208190526040902054818110156107005760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103e8565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906107379084906109d5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161078391815260200190565b60405180910390a36105bc565b6001600160a01b0382166107e65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103e8565b80600260008282546107f891906109d5565b90915550506001600160a01b038216600090815260208190526040812080548392906108259084906109d5565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600060208083528351808285015260005b8181101561089c57858101830151858201604001528201610880565b818111156108ae576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146108db57600080fd5b919050565b600080604083850312156108f357600080fd5b6108fc836108c4565b946020939093013593505050565b60008060006060848603121561091f57600080fd5b610928846108c4565b9250610936602085016108c4565b9150604084013590509250925092565b60006020828403121561095857600080fd5b610961826108c4565b9392505050565b6000806040838503121561097b57600080fd5b610984836108c4565b9150610992602084016108c4565b90509250929050565b600181811c908216806109af57607f821691505b6020821081036109cf57634e487b7160e01b600052602260045260246000fd5b50919050565b600082198211156109f657634e487b7160e01b600052601160045260246000fd5b500190565b634e487b7160e01b600052600160045260246000fdfea2646970667358221220af4b5c97cb3c6f42ecc054fca7af3666aa0a1674a07685a096cdf943ec189f5a64736f6c634300080e0033",
335
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063395093511161008c57806395d89b411161006657806395d89b41146101b2578063a457c2d7146101ba578063a9059cbb146101cd578063dd62ed3e146101e057600080fd5b8063395093511461016357806340c10f191461017657806370a082311461018957600080fd5b806302775240146100d457806306fdde03146100fb578063095ea7b31461011057806318160ddd1461013357806323b872dd1461013b578063313ce5671461014e575b600080fd5b6100e86c0c9f2c9cd04674edea4000000081565b6040519081526020015b60405180910390f35b610103610219565b6040516100f2919061086f565b61012361011e3660046108e0565b6102ab565b60405190151581526020016100f2565b6002546100e8565b61012361014936600461090a565b6102c3565b60055460405160ff90911681526020016100f2565b6101236101713660046108e0565b6102e7565b6101236101843660046108e0565b610326565b6100e8610197366004610946565b6001600160a01b031660009081526020819052604090205490565b610103610358565b6101236101c83660046108e0565b610367565b6101236101db3660046108e0565b6103fe565b6100e86101ee366004610968565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546102289061099b565b80601f01602080910402602001604051908101604052809291908181526020018280546102549061099b565b80156102a15780601f10610276576101008083540402835291602001916102a1565b820191906000526020600020905b81548152906001019060200180831161028457829003601f168201915b5050505050905090565b6000336102b981858561040c565b5060019392505050565b6000336102d1858285610530565b6102dc8585856105c2565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091906102b990829086906103219087906109d5565b61040c565b60006c0c9f2c9cd04674edea40000000821115610345576103456109fb565b61034f8383610790565b50600192915050565b6060600480546102289061099b565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103f15760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102dc828686840361040c565b6000336102b98185856105c2565b6001600160a01b03831661046e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103e8565b6001600160a01b0382166104cf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103e8565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146105bc57818110156105af5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103e8565b6105bc848484840361040c565b50505050565b6001600160a01b0383166106265760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103e8565b6001600160a01b0382166106885760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103e8565b6001600160a01b038316600090815260208190526040902054818110156107005760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103e8565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906107379084906109d5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161078391815260200190565b60405180910390a36105bc565b6001600160a01b0382166107e65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103e8565b80600260008282546107f891906109d5565b90915550506001600160a01b038216600090815260208190526040812080548392906108259084906109d5565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600060208083528351808285015260005b8181101561089c57858101830151858201604001528201610880565b818111156108ae576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146108db57600080fd5b919050565b600080604083850312156108f357600080fd5b6108fc836108c4565b946020939093013593505050565b60008060006060848603121561091f57600080fd5b610928846108c4565b9250610936602085016108c4565b9150604084013590509250925092565b60006020828403121561095857600080fd5b610961826108c4565b9392505050565b6000806040838503121561097b57600080fd5b610984836108c4565b9150610992602084016108c4565b90509250929050565b600181811c908216806109af57607f821691505b6020821081036109cf57634e487b7160e01b600052602260045260246000fd5b50919050565b600082198211156109f657634e487b7160e01b600052601160045260246000fd5b500190565b634e487b7160e01b600052600160045260246000fdfea2646970667358221220af4b5c97cb3c6f42ecc054fca7af3666aa0a1674a07685a096cdf943ec189f5a64736f6c634300080e0033",
336
336
  "immutableReferences": {},
337
337
  "generatedSources": [
338
338
  {
@@ -2352,7 +2352,7 @@
2352
2352
  {
2353
2353
  "ast": {
2354
2354
  "nodeType": "YulBlock",
2355
- "src": "0:6514:105",
2355
+ "src": "0:6298:105",
2356
2356
  "statements": [
2357
2357
  {
2358
2358
  "nodeType": "YulBlock",
@@ -4665,186 +4665,123 @@
4665
4665
  {
4666
4666
  "body": {
4667
4667
  "nodeType": "YulBlock",
4668
- "src": "3194:169:105",
4668
+ "src": "3052:95:105",
4669
4669
  "statements": [
4670
4670
  {
4671
4671
  "expression": {
4672
4672
  "arguments": [
4673
- {
4674
- "name": "headStart",
4675
- "nodeType": "YulIdentifier",
4676
- "src": "3211:9:105"
4677
- },
4678
4673
  {
4679
4674
  "kind": "number",
4680
4675
  "nodeType": "YulLiteral",
4681
- "src": "3222:2:105",
4676
+ "src": "3069:1:105",
4682
4677
  "type": "",
4683
- "value": "32"
4684
- }
4685
- ],
4686
- "functionName": {
4687
- "name": "mstore",
4688
- "nodeType": "YulIdentifier",
4689
- "src": "3204:6:105"
4690
- },
4691
- "nodeType": "YulFunctionCall",
4692
- "src": "3204:21:105"
4693
- },
4694
- "nodeType": "YulExpressionStatement",
4695
- "src": "3204:21:105"
4696
- },
4697
- {
4698
- "expression": {
4699
- "arguments": [
4678
+ "value": "0"
4679
+ },
4700
4680
  {
4701
4681
  "arguments": [
4702
4682
  {
4703
- "name": "headStart",
4704
- "nodeType": "YulIdentifier",
4705
- "src": "3245:9:105"
4683
+ "kind": "number",
4684
+ "nodeType": "YulLiteral",
4685
+ "src": "3076:3:105",
4686
+ "type": "",
4687
+ "value": "224"
4706
4688
  },
4707
4689
  {
4708
4690
  "kind": "number",
4709
4691
  "nodeType": "YulLiteral",
4710
- "src": "3256:2:105",
4692
+ "src": "3081:10:105",
4711
4693
  "type": "",
4712
- "value": "32"
4694
+ "value": "0x4e487b71"
4713
4695
  }
4714
4696
  ],
4715
4697
  "functionName": {
4716
- "name": "add",
4698
+ "name": "shl",
4717
4699
  "nodeType": "YulIdentifier",
4718
- "src": "3241:3:105"
4700
+ "src": "3072:3:105"
4719
4701
  },
4720
4702
  "nodeType": "YulFunctionCall",
4721
- "src": "3241:18:105"
4722
- },
4723
- {
4724
- "kind": "number",
4725
- "nodeType": "YulLiteral",
4726
- "src": "3261:2:105",
4727
- "type": "",
4728
- "value": "19"
4703
+ "src": "3072:20:105"
4729
4704
  }
4730
4705
  ],
4731
4706
  "functionName": {
4732
4707
  "name": "mstore",
4733
4708
  "nodeType": "YulIdentifier",
4734
- "src": "3234:6:105"
4709
+ "src": "3062:6:105"
4735
4710
  },
4736
4711
  "nodeType": "YulFunctionCall",
4737
- "src": "3234:30:105"
4712
+ "src": "3062:31:105"
4738
4713
  },
4739
4714
  "nodeType": "YulExpressionStatement",
4740
- "src": "3234:30:105"
4715
+ "src": "3062:31:105"
4741
4716
  },
4742
4717
  {
4743
4718
  "expression": {
4744
4719
  "arguments": [
4745
4720
  {
4746
- "arguments": [
4747
- {
4748
- "name": "headStart",
4749
- "nodeType": "YulIdentifier",
4750
- "src": "3284:9:105"
4751
- },
4752
- {
4753
- "kind": "number",
4754
- "nodeType": "YulLiteral",
4755
- "src": "3295:2:105",
4756
- "type": "",
4757
- "value": "64"
4758
- }
4759
- ],
4760
- "functionName": {
4761
- "name": "add",
4762
- "nodeType": "YulIdentifier",
4763
- "src": "3280:3:105"
4764
- },
4765
- "nodeType": "YulFunctionCall",
4766
- "src": "3280:18:105"
4721
+ "kind": "number",
4722
+ "nodeType": "YulLiteral",
4723
+ "src": "3109:1:105",
4724
+ "type": "",
4725
+ "value": "4"
4767
4726
  },
4768
4727
  {
4769
- "hexValue": "446f6e2774206d696e7420746f6f206d616e79",
4770
- "kind": "string",
4728
+ "kind": "number",
4771
4729
  "nodeType": "YulLiteral",
4772
- "src": "3300:21:105",
4730
+ "src": "3112:4:105",
4773
4731
  "type": "",
4774
- "value": "Don't mint too many"
4732
+ "value": "0x01"
4775
4733
  }
4776
4734
  ],
4777
4735
  "functionName": {
4778
4736
  "name": "mstore",
4779
4737
  "nodeType": "YulIdentifier",
4780
- "src": "3273:6:105"
4738
+ "src": "3102:6:105"
4781
4739
  },
4782
4740
  "nodeType": "YulFunctionCall",
4783
- "src": "3273:49:105"
4741
+ "src": "3102:15:105"
4784
4742
  },
4785
4743
  "nodeType": "YulExpressionStatement",
4786
- "src": "3273:49:105"
4744
+ "src": "3102:15:105"
4787
4745
  },
4788
4746
  {
4789
- "nodeType": "YulAssignment",
4790
- "src": "3331:26:105",
4791
- "value": {
4747
+ "expression": {
4792
4748
  "arguments": [
4793
4749
  {
4794
- "name": "headStart",
4795
- "nodeType": "YulIdentifier",
4796
- "src": "3343:9:105"
4750
+ "kind": "number",
4751
+ "nodeType": "YulLiteral",
4752
+ "src": "3133:1:105",
4753
+ "type": "",
4754
+ "value": "0"
4797
4755
  },
4798
4756
  {
4799
4757
  "kind": "number",
4800
4758
  "nodeType": "YulLiteral",
4801
- "src": "3354:2:105",
4759
+ "src": "3136:4:105",
4802
4760
  "type": "",
4803
- "value": "96"
4761
+ "value": "0x24"
4804
4762
  }
4805
4763
  ],
4806
4764
  "functionName": {
4807
- "name": "add",
4765
+ "name": "revert",
4808
4766
  "nodeType": "YulIdentifier",
4809
- "src": "3339:3:105"
4767
+ "src": "3126:6:105"
4810
4768
  },
4811
4769
  "nodeType": "YulFunctionCall",
4812
- "src": "3339:18:105"
4770
+ "src": "3126:15:105"
4813
4771
  },
4814
- "variableNames": [
4815
- {
4816
- "name": "tail",
4817
- "nodeType": "YulIdentifier",
4818
- "src": "3331:4:105"
4819
- }
4820
- ]
4772
+ "nodeType": "YulExpressionStatement",
4773
+ "src": "3126:15:105"
4821
4774
  }
4822
4775
  ]
4823
4776
  },
4824
- "name": "abi_encode_tuple_t_stringliteral_608840f15d16dbfa1dbf34372a5e79aa6c7278885205580529d034e3ce99c1ac__to_t_string_memory_ptr__fromStack_reversed",
4777
+ "name": "panic_error_0x01",
4825
4778
  "nodeType": "YulFunctionDefinition",
4826
- "parameters": [
4827
- {
4828
- "name": "headStart",
4829
- "nodeType": "YulTypedName",
4830
- "src": "3171:9:105",
4831
- "type": ""
4832
- }
4833
- ],
4834
- "returnVariables": [
4835
- {
4836
- "name": "tail",
4837
- "nodeType": "YulTypedName",
4838
- "src": "3185:4:105",
4839
- "type": ""
4840
- }
4841
- ],
4842
- "src": "3020:343:105"
4779
+ "src": "3020:127:105"
4843
4780
  },
4844
4781
  {
4845
4782
  "body": {
4846
4783
  "nodeType": "YulBlock",
4847
- "src": "3542:227:105",
4784
+ "src": "3326:227:105",
4848
4785
  "statements": [
4849
4786
  {
4850
4787
  "expression": {
@@ -4852,12 +4789,12 @@
4852
4789
  {
4853
4790
  "name": "headStart",
4854
4791
  "nodeType": "YulIdentifier",
4855
- "src": "3559:9:105"
4792
+ "src": "3343:9:105"
4856
4793
  },
4857
4794
  {
4858
4795
  "kind": "number",
4859
4796
  "nodeType": "YulLiteral",
4860
- "src": "3570:2:105",
4797
+ "src": "3354:2:105",
4861
4798
  "type": "",
4862
4799
  "value": "32"
4863
4800
  }
@@ -4865,13 +4802,13 @@
4865
4802
  "functionName": {
4866
4803
  "name": "mstore",
4867
4804
  "nodeType": "YulIdentifier",
4868
- "src": "3552:6:105"
4805
+ "src": "3336:6:105"
4869
4806
  },
4870
4807
  "nodeType": "YulFunctionCall",
4871
- "src": "3552:21:105"
4808
+ "src": "3336:21:105"
4872
4809
  },
4873
4810
  "nodeType": "YulExpressionStatement",
4874
- "src": "3552:21:105"
4811
+ "src": "3336:21:105"
4875
4812
  },
4876
4813
  {
4877
4814
  "expression": {
@@ -4881,12 +4818,12 @@
4881
4818
  {
4882
4819
  "name": "headStart",
4883
4820
  "nodeType": "YulIdentifier",
4884
- "src": "3593:9:105"
4821
+ "src": "3377:9:105"
4885
4822
  },
4886
4823
  {
4887
4824
  "kind": "number",
4888
4825
  "nodeType": "YulLiteral",
4889
- "src": "3604:2:105",
4826
+ "src": "3388:2:105",
4890
4827
  "type": "",
4891
4828
  "value": "32"
4892
4829
  }
@@ -4894,15 +4831,15 @@
4894
4831
  "functionName": {
4895
4832
  "name": "add",
4896
4833
  "nodeType": "YulIdentifier",
4897
- "src": "3589:3:105"
4834
+ "src": "3373:3:105"
4898
4835
  },
4899
4836
  "nodeType": "YulFunctionCall",
4900
- "src": "3589:18:105"
4837
+ "src": "3373:18:105"
4901
4838
  },
4902
4839
  {
4903
4840
  "kind": "number",
4904
4841
  "nodeType": "YulLiteral",
4905
- "src": "3609:2:105",
4842
+ "src": "3393:2:105",
4906
4843
  "type": "",
4907
4844
  "value": "37"
4908
4845
  }
@@ -4910,13 +4847,13 @@
4910
4847
  "functionName": {
4911
4848
  "name": "mstore",
4912
4849
  "nodeType": "YulIdentifier",
4913
- "src": "3582:6:105"
4850
+ "src": "3366:6:105"
4914
4851
  },
4915
4852
  "nodeType": "YulFunctionCall",
4916
- "src": "3582:30:105"
4853
+ "src": "3366:30:105"
4917
4854
  },
4918
4855
  "nodeType": "YulExpressionStatement",
4919
- "src": "3582:30:105"
4856
+ "src": "3366:30:105"
4920
4857
  },
4921
4858
  {
4922
4859
  "expression": {
@@ -4926,12 +4863,12 @@
4926
4863
  {
4927
4864
  "name": "headStart",
4928
4865
  "nodeType": "YulIdentifier",
4929
- "src": "3632:9:105"
4866
+ "src": "3416:9:105"
4930
4867
  },
4931
4868
  {
4932
4869
  "kind": "number",
4933
4870
  "nodeType": "YulLiteral",
4934
- "src": "3643:2:105",
4871
+ "src": "3427:2:105",
4935
4872
  "type": "",
4936
4873
  "value": "64"
4937
4874
  }
@@ -4939,16 +4876,16 @@
4939
4876
  "functionName": {
4940
4877
  "name": "add",
4941
4878
  "nodeType": "YulIdentifier",
4942
- "src": "3628:3:105"
4879
+ "src": "3412:3:105"
4943
4880
  },
4944
4881
  "nodeType": "YulFunctionCall",
4945
- "src": "3628:18:105"
4882
+ "src": "3412:18:105"
4946
4883
  },
4947
4884
  {
4948
4885
  "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77",
4949
4886
  "kind": "string",
4950
4887
  "nodeType": "YulLiteral",
4951
- "src": "3648:34:105",
4888
+ "src": "3432:34:105",
4952
4889
  "type": "",
4953
4890
  "value": "ERC20: decreased allowance below"
4954
4891
  }
@@ -4956,13 +4893,13 @@
4956
4893
  "functionName": {
4957
4894
  "name": "mstore",
4958
4895
  "nodeType": "YulIdentifier",
4959
- "src": "3621:6:105"
4896
+ "src": "3405:6:105"
4960
4897
  },
4961
4898
  "nodeType": "YulFunctionCall",
4962
- "src": "3621:62:105"
4899
+ "src": "3405:62:105"
4963
4900
  },
4964
4901
  "nodeType": "YulExpressionStatement",
4965
- "src": "3621:62:105"
4902
+ "src": "3405:62:105"
4966
4903
  },
4967
4904
  {
4968
4905
  "expression": {
@@ -4972,12 +4909,12 @@
4972
4909
  {
4973
4910
  "name": "headStart",
4974
4911
  "nodeType": "YulIdentifier",
4975
- "src": "3703:9:105"
4912
+ "src": "3487:9:105"
4976
4913
  },
4977
4914
  {
4978
4915
  "kind": "number",
4979
4916
  "nodeType": "YulLiteral",
4980
- "src": "3714:2:105",
4917
+ "src": "3498:2:105",
4981
4918
  "type": "",
4982
4919
  "value": "96"
4983
4920
  }
@@ -4985,16 +4922,16 @@
4985
4922
  "functionName": {
4986
4923
  "name": "add",
4987
4924
  "nodeType": "YulIdentifier",
4988
- "src": "3699:3:105"
4925
+ "src": "3483:3:105"
4989
4926
  },
4990
4927
  "nodeType": "YulFunctionCall",
4991
- "src": "3699:18:105"
4928
+ "src": "3483:18:105"
4992
4929
  },
4993
4930
  {
4994
4931
  "hexValue": "207a65726f",
4995
4932
  "kind": "string",
4996
4933
  "nodeType": "YulLiteral",
4997
- "src": "3719:7:105",
4934
+ "src": "3503:7:105",
4998
4935
  "type": "",
4999
4936
  "value": " zero"
5000
4937
  }
@@ -5002,28 +4939,28 @@
5002
4939
  "functionName": {
5003
4940
  "name": "mstore",
5004
4941
  "nodeType": "YulIdentifier",
5005
- "src": "3692:6:105"
4942
+ "src": "3476:6:105"
5006
4943
  },
5007
4944
  "nodeType": "YulFunctionCall",
5008
- "src": "3692:35:105"
4945
+ "src": "3476:35:105"
5009
4946
  },
5010
4947
  "nodeType": "YulExpressionStatement",
5011
- "src": "3692:35:105"
4948
+ "src": "3476:35:105"
5012
4949
  },
5013
4950
  {
5014
4951
  "nodeType": "YulAssignment",
5015
- "src": "3736:27:105",
4952
+ "src": "3520:27:105",
5016
4953
  "value": {
5017
4954
  "arguments": [
5018
4955
  {
5019
4956
  "name": "headStart",
5020
4957
  "nodeType": "YulIdentifier",
5021
- "src": "3748:9:105"
4958
+ "src": "3532:9:105"
5022
4959
  },
5023
4960
  {
5024
4961
  "kind": "number",
5025
4962
  "nodeType": "YulLiteral",
5026
- "src": "3759:3:105",
4963
+ "src": "3543:3:105",
5027
4964
  "type": "",
5028
4965
  "value": "128"
5029
4966
  }
@@ -5031,16 +4968,16 @@
5031
4968
  "functionName": {
5032
4969
  "name": "add",
5033
4970
  "nodeType": "YulIdentifier",
5034
- "src": "3744:3:105"
4971
+ "src": "3528:3:105"
5035
4972
  },
5036
4973
  "nodeType": "YulFunctionCall",
5037
- "src": "3744:19:105"
4974
+ "src": "3528:19:105"
5038
4975
  },
5039
4976
  "variableNames": [
5040
4977
  {
5041
4978
  "name": "tail",
5042
4979
  "nodeType": "YulIdentifier",
5043
- "src": "3736:4:105"
4980
+ "src": "3520:4:105"
5044
4981
  }
5045
4982
  ]
5046
4983
  }
@@ -5052,7 +4989,7 @@
5052
4989
  {
5053
4990
  "name": "headStart",
5054
4991
  "nodeType": "YulTypedName",
5055
- "src": "3519:9:105",
4992
+ "src": "3303:9:105",
5056
4993
  "type": ""
5057
4994
  }
5058
4995
  ],
@@ -5060,16 +4997,16 @@
5060
4997
  {
5061
4998
  "name": "tail",
5062
4999
  "nodeType": "YulTypedName",
5063
- "src": "3533:4:105",
5000
+ "src": "3317:4:105",
5064
5001
  "type": ""
5065
5002
  }
5066
5003
  ],
5067
- "src": "3368:401:105"
5004
+ "src": "3152:401:105"
5068
5005
  },
5069
5006
  {
5070
5007
  "body": {
5071
5008
  "nodeType": "YulBlock",
5072
- "src": "3948:226:105",
5009
+ "src": "3732:226:105",
5073
5010
  "statements": [
5074
5011
  {
5075
5012
  "expression": {
@@ -5077,12 +5014,12 @@
5077
5014
  {
5078
5015
  "name": "headStart",
5079
5016
  "nodeType": "YulIdentifier",
5080
- "src": "3965:9:105"
5017
+ "src": "3749:9:105"
5081
5018
  },
5082
5019
  {
5083
5020
  "kind": "number",
5084
5021
  "nodeType": "YulLiteral",
5085
- "src": "3976:2:105",
5022
+ "src": "3760:2:105",
5086
5023
  "type": "",
5087
5024
  "value": "32"
5088
5025
  }
@@ -5090,13 +5027,13 @@
5090
5027
  "functionName": {
5091
5028
  "name": "mstore",
5092
5029
  "nodeType": "YulIdentifier",
5093
- "src": "3958:6:105"
5030
+ "src": "3742:6:105"
5094
5031
  },
5095
5032
  "nodeType": "YulFunctionCall",
5096
- "src": "3958:21:105"
5033
+ "src": "3742:21:105"
5097
5034
  },
5098
5035
  "nodeType": "YulExpressionStatement",
5099
- "src": "3958:21:105"
5036
+ "src": "3742:21:105"
5100
5037
  },
5101
5038
  {
5102
5039
  "expression": {
@@ -5106,12 +5043,12 @@
5106
5043
  {
5107
5044
  "name": "headStart",
5108
5045
  "nodeType": "YulIdentifier",
5109
- "src": "3999:9:105"
5046
+ "src": "3783:9:105"
5110
5047
  },
5111
5048
  {
5112
5049
  "kind": "number",
5113
5050
  "nodeType": "YulLiteral",
5114
- "src": "4010:2:105",
5051
+ "src": "3794:2:105",
5115
5052
  "type": "",
5116
5053
  "value": "32"
5117
5054
  }
@@ -5119,15 +5056,15 @@
5119
5056
  "functionName": {
5120
5057
  "name": "add",
5121
5058
  "nodeType": "YulIdentifier",
5122
- "src": "3995:3:105"
5059
+ "src": "3779:3:105"
5123
5060
  },
5124
5061
  "nodeType": "YulFunctionCall",
5125
- "src": "3995:18:105"
5062
+ "src": "3779:18:105"
5126
5063
  },
5127
5064
  {
5128
5065
  "kind": "number",
5129
5066
  "nodeType": "YulLiteral",
5130
- "src": "4015:2:105",
5067
+ "src": "3799:2:105",
5131
5068
  "type": "",
5132
5069
  "value": "36"
5133
5070
  }
@@ -5135,13 +5072,13 @@
5135
5072
  "functionName": {
5136
5073
  "name": "mstore",
5137
5074
  "nodeType": "YulIdentifier",
5138
- "src": "3988:6:105"
5075
+ "src": "3772:6:105"
5139
5076
  },
5140
5077
  "nodeType": "YulFunctionCall",
5141
- "src": "3988:30:105"
5078
+ "src": "3772:30:105"
5142
5079
  },
5143
5080
  "nodeType": "YulExpressionStatement",
5144
- "src": "3988:30:105"
5081
+ "src": "3772:30:105"
5145
5082
  },
5146
5083
  {
5147
5084
  "expression": {
@@ -5151,12 +5088,12 @@
5151
5088
  {
5152
5089
  "name": "headStart",
5153
5090
  "nodeType": "YulIdentifier",
5154
- "src": "4038:9:105"
5091
+ "src": "3822:9:105"
5155
5092
  },
5156
5093
  {
5157
5094
  "kind": "number",
5158
5095
  "nodeType": "YulLiteral",
5159
- "src": "4049:2:105",
5096
+ "src": "3833:2:105",
5160
5097
  "type": "",
5161
5098
  "value": "64"
5162
5099
  }
@@ -5164,16 +5101,16 @@
5164
5101
  "functionName": {
5165
5102
  "name": "add",
5166
5103
  "nodeType": "YulIdentifier",
5167
- "src": "4034:3:105"
5104
+ "src": "3818:3:105"
5168
5105
  },
5169
5106
  "nodeType": "YulFunctionCall",
5170
- "src": "4034:18:105"
5107
+ "src": "3818:18:105"
5171
5108
  },
5172
5109
  {
5173
5110
  "hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f20616464",
5174
5111
  "kind": "string",
5175
5112
  "nodeType": "YulLiteral",
5176
- "src": "4054:34:105",
5113
+ "src": "3838:34:105",
5177
5114
  "type": "",
5178
5115
  "value": "ERC20: approve from the zero add"
5179
5116
  }
@@ -5181,13 +5118,13 @@
5181
5118
  "functionName": {
5182
5119
  "name": "mstore",
5183
5120
  "nodeType": "YulIdentifier",
5184
- "src": "4027:6:105"
5121
+ "src": "3811:6:105"
5185
5122
  },
5186
5123
  "nodeType": "YulFunctionCall",
5187
- "src": "4027:62:105"
5124
+ "src": "3811:62:105"
5188
5125
  },
5189
5126
  "nodeType": "YulExpressionStatement",
5190
- "src": "4027:62:105"
5127
+ "src": "3811:62:105"
5191
5128
  },
5192
5129
  {
5193
5130
  "expression": {
@@ -5197,12 +5134,12 @@
5197
5134
  {
5198
5135
  "name": "headStart",
5199
5136
  "nodeType": "YulIdentifier",
5200
- "src": "4109:9:105"
5137
+ "src": "3893:9:105"
5201
5138
  },
5202
5139
  {
5203
5140
  "kind": "number",
5204
5141
  "nodeType": "YulLiteral",
5205
- "src": "4120:2:105",
5142
+ "src": "3904:2:105",
5206
5143
  "type": "",
5207
5144
  "value": "96"
5208
5145
  }
@@ -5210,16 +5147,16 @@
5210
5147
  "functionName": {
5211
5148
  "name": "add",
5212
5149
  "nodeType": "YulIdentifier",
5213
- "src": "4105:3:105"
5150
+ "src": "3889:3:105"
5214
5151
  },
5215
5152
  "nodeType": "YulFunctionCall",
5216
- "src": "4105:18:105"
5153
+ "src": "3889:18:105"
5217
5154
  },
5218
5155
  {
5219
5156
  "hexValue": "72657373",
5220
5157
  "kind": "string",
5221
5158
  "nodeType": "YulLiteral",
5222
- "src": "4125:6:105",
5159
+ "src": "3909:6:105",
5223
5160
  "type": "",
5224
5161
  "value": "ress"
5225
5162
  }
@@ -5227,28 +5164,28 @@
5227
5164
  "functionName": {
5228
5165
  "name": "mstore",
5229
5166
  "nodeType": "YulIdentifier",
5230
- "src": "4098:6:105"
5167
+ "src": "3882:6:105"
5231
5168
  },
5232
5169
  "nodeType": "YulFunctionCall",
5233
- "src": "4098:34:105"
5170
+ "src": "3882:34:105"
5234
5171
  },
5235
5172
  "nodeType": "YulExpressionStatement",
5236
- "src": "4098:34:105"
5173
+ "src": "3882:34:105"
5237
5174
  },
5238
5175
  {
5239
5176
  "nodeType": "YulAssignment",
5240
- "src": "4141:27:105",
5177
+ "src": "3925:27:105",
5241
5178
  "value": {
5242
5179
  "arguments": [
5243
5180
  {
5244
5181
  "name": "headStart",
5245
5182
  "nodeType": "YulIdentifier",
5246
- "src": "4153:9:105"
5183
+ "src": "3937:9:105"
5247
5184
  },
5248
5185
  {
5249
5186
  "kind": "number",
5250
5187
  "nodeType": "YulLiteral",
5251
- "src": "4164:3:105",
5188
+ "src": "3948:3:105",
5252
5189
  "type": "",
5253
5190
  "value": "128"
5254
5191
  }
@@ -5256,16 +5193,16 @@
5256
5193
  "functionName": {
5257
5194
  "name": "add",
5258
5195
  "nodeType": "YulIdentifier",
5259
- "src": "4149:3:105"
5196
+ "src": "3933:3:105"
5260
5197
  },
5261
5198
  "nodeType": "YulFunctionCall",
5262
- "src": "4149:19:105"
5199
+ "src": "3933:19:105"
5263
5200
  },
5264
5201
  "variableNames": [
5265
5202
  {
5266
5203
  "name": "tail",
5267
5204
  "nodeType": "YulIdentifier",
5268
- "src": "4141:4:105"
5205
+ "src": "3925:4:105"
5269
5206
  }
5270
5207
  ]
5271
5208
  }
@@ -5277,7 +5214,7 @@
5277
5214
  {
5278
5215
  "name": "headStart",
5279
5216
  "nodeType": "YulTypedName",
5280
- "src": "3925:9:105",
5217
+ "src": "3709:9:105",
5281
5218
  "type": ""
5282
5219
  }
5283
5220
  ],
@@ -5285,16 +5222,16 @@
5285
5222
  {
5286
5223
  "name": "tail",
5287
5224
  "nodeType": "YulTypedName",
5288
- "src": "3939:4:105",
5225
+ "src": "3723:4:105",
5289
5226
  "type": ""
5290
5227
  }
5291
5228
  ],
5292
- "src": "3774:400:105"
5229
+ "src": "3558:400:105"
5293
5230
  },
5294
5231
  {
5295
5232
  "body": {
5296
5233
  "nodeType": "YulBlock",
5297
- "src": "4353:224:105",
5234
+ "src": "4137:224:105",
5298
5235
  "statements": [
5299
5236
  {
5300
5237
  "expression": {
@@ -5302,12 +5239,12 @@
5302
5239
  {
5303
5240
  "name": "headStart",
5304
5241
  "nodeType": "YulIdentifier",
5305
- "src": "4370:9:105"
5242
+ "src": "4154:9:105"
5306
5243
  },
5307
5244
  {
5308
5245
  "kind": "number",
5309
5246
  "nodeType": "YulLiteral",
5310
- "src": "4381:2:105",
5247
+ "src": "4165:2:105",
5311
5248
  "type": "",
5312
5249
  "value": "32"
5313
5250
  }
@@ -5315,13 +5252,13 @@
5315
5252
  "functionName": {
5316
5253
  "name": "mstore",
5317
5254
  "nodeType": "YulIdentifier",
5318
- "src": "4363:6:105"
5255
+ "src": "4147:6:105"
5319
5256
  },
5320
5257
  "nodeType": "YulFunctionCall",
5321
- "src": "4363:21:105"
5258
+ "src": "4147:21:105"
5322
5259
  },
5323
5260
  "nodeType": "YulExpressionStatement",
5324
- "src": "4363:21:105"
5261
+ "src": "4147:21:105"
5325
5262
  },
5326
5263
  {
5327
5264
  "expression": {
@@ -5331,12 +5268,12 @@
5331
5268
  {
5332
5269
  "name": "headStart",
5333
5270
  "nodeType": "YulIdentifier",
5334
- "src": "4404:9:105"
5271
+ "src": "4188:9:105"
5335
5272
  },
5336
5273
  {
5337
5274
  "kind": "number",
5338
5275
  "nodeType": "YulLiteral",
5339
- "src": "4415:2:105",
5276
+ "src": "4199:2:105",
5340
5277
  "type": "",
5341
5278
  "value": "32"
5342
5279
  }
@@ -5344,15 +5281,15 @@
5344
5281
  "functionName": {
5345
5282
  "name": "add",
5346
5283
  "nodeType": "YulIdentifier",
5347
- "src": "4400:3:105"
5284
+ "src": "4184:3:105"
5348
5285
  },
5349
5286
  "nodeType": "YulFunctionCall",
5350
- "src": "4400:18:105"
5287
+ "src": "4184:18:105"
5351
5288
  },
5352
5289
  {
5353
5290
  "kind": "number",
5354
5291
  "nodeType": "YulLiteral",
5355
- "src": "4420:2:105",
5292
+ "src": "4204:2:105",
5356
5293
  "type": "",
5357
5294
  "value": "34"
5358
5295
  }
@@ -5360,13 +5297,13 @@
5360
5297
  "functionName": {
5361
5298
  "name": "mstore",
5362
5299
  "nodeType": "YulIdentifier",
5363
- "src": "4393:6:105"
5300
+ "src": "4177:6:105"
5364
5301
  },
5365
5302
  "nodeType": "YulFunctionCall",
5366
- "src": "4393:30:105"
5303
+ "src": "4177:30:105"
5367
5304
  },
5368
5305
  "nodeType": "YulExpressionStatement",
5369
- "src": "4393:30:105"
5306
+ "src": "4177:30:105"
5370
5307
  },
5371
5308
  {
5372
5309
  "expression": {
@@ -5376,12 +5313,12 @@
5376
5313
  {
5377
5314
  "name": "headStart",
5378
5315
  "nodeType": "YulIdentifier",
5379
- "src": "4443:9:105"
5316
+ "src": "4227:9:105"
5380
5317
  },
5381
5318
  {
5382
5319
  "kind": "number",
5383
5320
  "nodeType": "YulLiteral",
5384
- "src": "4454:2:105",
5321
+ "src": "4238:2:105",
5385
5322
  "type": "",
5386
5323
  "value": "64"
5387
5324
  }
@@ -5389,16 +5326,16 @@
5389
5326
  "functionName": {
5390
5327
  "name": "add",
5391
5328
  "nodeType": "YulIdentifier",
5392
- "src": "4439:3:105"
5329
+ "src": "4223:3:105"
5393
5330
  },
5394
5331
  "nodeType": "YulFunctionCall",
5395
- "src": "4439:18:105"
5332
+ "src": "4223:18:105"
5396
5333
  },
5397
5334
  {
5398
5335
  "hexValue": "45524332303a20617070726f766520746f20746865207a65726f206164647265",
5399
5336
  "kind": "string",
5400
5337
  "nodeType": "YulLiteral",
5401
- "src": "4459:34:105",
5338
+ "src": "4243:34:105",
5402
5339
  "type": "",
5403
5340
  "value": "ERC20: approve to the zero addre"
5404
5341
  }
@@ -5406,13 +5343,13 @@
5406
5343
  "functionName": {
5407
5344
  "name": "mstore",
5408
5345
  "nodeType": "YulIdentifier",
5409
- "src": "4432:6:105"
5346
+ "src": "4216:6:105"
5410
5347
  },
5411
5348
  "nodeType": "YulFunctionCall",
5412
- "src": "4432:62:105"
5349
+ "src": "4216:62:105"
5413
5350
  },
5414
5351
  "nodeType": "YulExpressionStatement",
5415
- "src": "4432:62:105"
5352
+ "src": "4216:62:105"
5416
5353
  },
5417
5354
  {
5418
5355
  "expression": {
@@ -5422,12 +5359,12 @@
5422
5359
  {
5423
5360
  "name": "headStart",
5424
5361
  "nodeType": "YulIdentifier",
5425
- "src": "4514:9:105"
5362
+ "src": "4298:9:105"
5426
5363
  },
5427
5364
  {
5428
5365
  "kind": "number",
5429
5366
  "nodeType": "YulLiteral",
5430
- "src": "4525:2:105",
5367
+ "src": "4309:2:105",
5431
5368
  "type": "",
5432
5369
  "value": "96"
5433
5370
  }
@@ -5435,16 +5372,16 @@
5435
5372
  "functionName": {
5436
5373
  "name": "add",
5437
5374
  "nodeType": "YulIdentifier",
5438
- "src": "4510:3:105"
5375
+ "src": "4294:3:105"
5439
5376
  },
5440
5377
  "nodeType": "YulFunctionCall",
5441
- "src": "4510:18:105"
5378
+ "src": "4294:18:105"
5442
5379
  },
5443
5380
  {
5444
5381
  "hexValue": "7373",
5445
5382
  "kind": "string",
5446
5383
  "nodeType": "YulLiteral",
5447
- "src": "4530:4:105",
5384
+ "src": "4314:4:105",
5448
5385
  "type": "",
5449
5386
  "value": "ss"
5450
5387
  }
@@ -5452,28 +5389,28 @@
5452
5389
  "functionName": {
5453
5390
  "name": "mstore",
5454
5391
  "nodeType": "YulIdentifier",
5455
- "src": "4503:6:105"
5392
+ "src": "4287:6:105"
5456
5393
  },
5457
5394
  "nodeType": "YulFunctionCall",
5458
- "src": "4503:32:105"
5395
+ "src": "4287:32:105"
5459
5396
  },
5460
5397
  "nodeType": "YulExpressionStatement",
5461
- "src": "4503:32:105"
5398
+ "src": "4287:32:105"
5462
5399
  },
5463
5400
  {
5464
5401
  "nodeType": "YulAssignment",
5465
- "src": "4544:27:105",
5402
+ "src": "4328:27:105",
5466
5403
  "value": {
5467
5404
  "arguments": [
5468
5405
  {
5469
5406
  "name": "headStart",
5470
5407
  "nodeType": "YulIdentifier",
5471
- "src": "4556:9:105"
5408
+ "src": "4340:9:105"
5472
5409
  },
5473
5410
  {
5474
5411
  "kind": "number",
5475
5412
  "nodeType": "YulLiteral",
5476
- "src": "4567:3:105",
5413
+ "src": "4351:3:105",
5477
5414
  "type": "",
5478
5415
  "value": "128"
5479
5416
  }
@@ -5481,16 +5418,16 @@
5481
5418
  "functionName": {
5482
5419
  "name": "add",
5483
5420
  "nodeType": "YulIdentifier",
5484
- "src": "4552:3:105"
5421
+ "src": "4336:3:105"
5485
5422
  },
5486
5423
  "nodeType": "YulFunctionCall",
5487
- "src": "4552:19:105"
5424
+ "src": "4336:19:105"
5488
5425
  },
5489
5426
  "variableNames": [
5490
5427
  {
5491
5428
  "name": "tail",
5492
5429
  "nodeType": "YulIdentifier",
5493
- "src": "4544:4:105"
5430
+ "src": "4328:4:105"
5494
5431
  }
5495
5432
  ]
5496
5433
  }
@@ -5502,7 +5439,7 @@
5502
5439
  {
5503
5440
  "name": "headStart",
5504
5441
  "nodeType": "YulTypedName",
5505
- "src": "4330:9:105",
5442
+ "src": "4114:9:105",
5506
5443
  "type": ""
5507
5444
  }
5508
5445
  ],
@@ -5510,16 +5447,16 @@
5510
5447
  {
5511
5448
  "name": "tail",
5512
5449
  "nodeType": "YulTypedName",
5513
- "src": "4344:4:105",
5450
+ "src": "4128:4:105",
5514
5451
  "type": ""
5515
5452
  }
5516
5453
  ],
5517
- "src": "4179:398:105"
5454
+ "src": "3963:398:105"
5518
5455
  },
5519
5456
  {
5520
5457
  "body": {
5521
5458
  "nodeType": "YulBlock",
5522
- "src": "4756:179:105",
5459
+ "src": "4540:179:105",
5523
5460
  "statements": [
5524
5461
  {
5525
5462
  "expression": {
@@ -5527,12 +5464,12 @@
5527
5464
  {
5528
5465
  "name": "headStart",
5529
5466
  "nodeType": "YulIdentifier",
5530
- "src": "4773:9:105"
5467
+ "src": "4557:9:105"
5531
5468
  },
5532
5469
  {
5533
5470
  "kind": "number",
5534
5471
  "nodeType": "YulLiteral",
5535
- "src": "4784:2:105",
5472
+ "src": "4568:2:105",
5536
5473
  "type": "",
5537
5474
  "value": "32"
5538
5475
  }
@@ -5540,13 +5477,13 @@
5540
5477
  "functionName": {
5541
5478
  "name": "mstore",
5542
5479
  "nodeType": "YulIdentifier",
5543
- "src": "4766:6:105"
5480
+ "src": "4550:6:105"
5544
5481
  },
5545
5482
  "nodeType": "YulFunctionCall",
5546
- "src": "4766:21:105"
5483
+ "src": "4550:21:105"
5547
5484
  },
5548
5485
  "nodeType": "YulExpressionStatement",
5549
- "src": "4766:21:105"
5486
+ "src": "4550:21:105"
5550
5487
  },
5551
5488
  {
5552
5489
  "expression": {
@@ -5556,12 +5493,12 @@
5556
5493
  {
5557
5494
  "name": "headStart",
5558
5495
  "nodeType": "YulIdentifier",
5559
- "src": "4807:9:105"
5496
+ "src": "4591:9:105"
5560
5497
  },
5561
5498
  {
5562
5499
  "kind": "number",
5563
5500
  "nodeType": "YulLiteral",
5564
- "src": "4818:2:105",
5501
+ "src": "4602:2:105",
5565
5502
  "type": "",
5566
5503
  "value": "32"
5567
5504
  }
@@ -5569,15 +5506,15 @@
5569
5506
  "functionName": {
5570
5507
  "name": "add",
5571
5508
  "nodeType": "YulIdentifier",
5572
- "src": "4803:3:105"
5509
+ "src": "4587:3:105"
5573
5510
  },
5574
5511
  "nodeType": "YulFunctionCall",
5575
- "src": "4803:18:105"
5512
+ "src": "4587:18:105"
5576
5513
  },
5577
5514
  {
5578
5515
  "kind": "number",
5579
5516
  "nodeType": "YulLiteral",
5580
- "src": "4823:2:105",
5517
+ "src": "4607:2:105",
5581
5518
  "type": "",
5582
5519
  "value": "29"
5583
5520
  }
@@ -5585,13 +5522,13 @@
5585
5522
  "functionName": {
5586
5523
  "name": "mstore",
5587
5524
  "nodeType": "YulIdentifier",
5588
- "src": "4796:6:105"
5525
+ "src": "4580:6:105"
5589
5526
  },
5590
5527
  "nodeType": "YulFunctionCall",
5591
- "src": "4796:30:105"
5528
+ "src": "4580:30:105"
5592
5529
  },
5593
5530
  "nodeType": "YulExpressionStatement",
5594
- "src": "4796:30:105"
5531
+ "src": "4580:30:105"
5595
5532
  },
5596
5533
  {
5597
5534
  "expression": {
@@ -5601,12 +5538,12 @@
5601
5538
  {
5602
5539
  "name": "headStart",
5603
5540
  "nodeType": "YulIdentifier",
5604
- "src": "4846:9:105"
5541
+ "src": "4630:9:105"
5605
5542
  },
5606
5543
  {
5607
5544
  "kind": "number",
5608
5545
  "nodeType": "YulLiteral",
5609
- "src": "4857:2:105",
5546
+ "src": "4641:2:105",
5610
5547
  "type": "",
5611
5548
  "value": "64"
5612
5549
  }
@@ -5614,16 +5551,16 @@
5614
5551
  "functionName": {
5615
5552
  "name": "add",
5616
5553
  "nodeType": "YulIdentifier",
5617
- "src": "4842:3:105"
5554
+ "src": "4626:3:105"
5618
5555
  },
5619
5556
  "nodeType": "YulFunctionCall",
5620
- "src": "4842:18:105"
5557
+ "src": "4626:18:105"
5621
5558
  },
5622
5559
  {
5623
5560
  "hexValue": "45524332303a20696e73756666696369656e7420616c6c6f77616e6365",
5624
5561
  "kind": "string",
5625
5562
  "nodeType": "YulLiteral",
5626
- "src": "4862:31:105",
5563
+ "src": "4646:31:105",
5627
5564
  "type": "",
5628
5565
  "value": "ERC20: insufficient allowance"
5629
5566
  }
@@ -5631,28 +5568,28 @@
5631
5568
  "functionName": {
5632
5569
  "name": "mstore",
5633
5570
  "nodeType": "YulIdentifier",
5634
- "src": "4835:6:105"
5571
+ "src": "4619:6:105"
5635
5572
  },
5636
5573
  "nodeType": "YulFunctionCall",
5637
- "src": "4835:59:105"
5574
+ "src": "4619:59:105"
5638
5575
  },
5639
5576
  "nodeType": "YulExpressionStatement",
5640
- "src": "4835:59:105"
5577
+ "src": "4619:59:105"
5641
5578
  },
5642
5579
  {
5643
5580
  "nodeType": "YulAssignment",
5644
- "src": "4903:26:105",
5581
+ "src": "4687:26:105",
5645
5582
  "value": {
5646
5583
  "arguments": [
5647
5584
  {
5648
5585
  "name": "headStart",
5649
5586
  "nodeType": "YulIdentifier",
5650
- "src": "4915:9:105"
5587
+ "src": "4699:9:105"
5651
5588
  },
5652
5589
  {
5653
5590
  "kind": "number",
5654
5591
  "nodeType": "YulLiteral",
5655
- "src": "4926:2:105",
5592
+ "src": "4710:2:105",
5656
5593
  "type": "",
5657
5594
  "value": "96"
5658
5595
  }
@@ -5660,16 +5597,16 @@
5660
5597
  "functionName": {
5661
5598
  "name": "add",
5662
5599
  "nodeType": "YulIdentifier",
5663
- "src": "4911:3:105"
5600
+ "src": "4695:3:105"
5664
5601
  },
5665
5602
  "nodeType": "YulFunctionCall",
5666
- "src": "4911:18:105"
5603
+ "src": "4695:18:105"
5667
5604
  },
5668
5605
  "variableNames": [
5669
5606
  {
5670
5607
  "name": "tail",
5671
5608
  "nodeType": "YulIdentifier",
5672
- "src": "4903:4:105"
5609
+ "src": "4687:4:105"
5673
5610
  }
5674
5611
  ]
5675
5612
  }
@@ -5681,7 +5618,7 @@
5681
5618
  {
5682
5619
  "name": "headStart",
5683
5620
  "nodeType": "YulTypedName",
5684
- "src": "4733:9:105",
5621
+ "src": "4517:9:105",
5685
5622
  "type": ""
5686
5623
  }
5687
5624
  ],
@@ -5689,16 +5626,16 @@
5689
5626
  {
5690
5627
  "name": "tail",
5691
5628
  "nodeType": "YulTypedName",
5692
- "src": "4747:4:105",
5629
+ "src": "4531:4:105",
5693
5630
  "type": ""
5694
5631
  }
5695
5632
  ],
5696
- "src": "4582:353:105"
5633
+ "src": "4366:353:105"
5697
5634
  },
5698
5635
  {
5699
5636
  "body": {
5700
5637
  "nodeType": "YulBlock",
5701
- "src": "5114:227:105",
5638
+ "src": "4898:227:105",
5702
5639
  "statements": [
5703
5640
  {
5704
5641
  "expression": {
@@ -5706,12 +5643,12 @@
5706
5643
  {
5707
5644
  "name": "headStart",
5708
5645
  "nodeType": "YulIdentifier",
5709
- "src": "5131:9:105"
5646
+ "src": "4915:9:105"
5710
5647
  },
5711
5648
  {
5712
5649
  "kind": "number",
5713
5650
  "nodeType": "YulLiteral",
5714
- "src": "5142:2:105",
5651
+ "src": "4926:2:105",
5715
5652
  "type": "",
5716
5653
  "value": "32"
5717
5654
  }
@@ -5719,13 +5656,13 @@
5719
5656
  "functionName": {
5720
5657
  "name": "mstore",
5721
5658
  "nodeType": "YulIdentifier",
5722
- "src": "5124:6:105"
5659
+ "src": "4908:6:105"
5723
5660
  },
5724
5661
  "nodeType": "YulFunctionCall",
5725
- "src": "5124:21:105"
5662
+ "src": "4908:21:105"
5726
5663
  },
5727
5664
  "nodeType": "YulExpressionStatement",
5728
- "src": "5124:21:105"
5665
+ "src": "4908:21:105"
5729
5666
  },
5730
5667
  {
5731
5668
  "expression": {
@@ -5735,12 +5672,12 @@
5735
5672
  {
5736
5673
  "name": "headStart",
5737
5674
  "nodeType": "YulIdentifier",
5738
- "src": "5165:9:105"
5675
+ "src": "4949:9:105"
5739
5676
  },
5740
5677
  {
5741
5678
  "kind": "number",
5742
5679
  "nodeType": "YulLiteral",
5743
- "src": "5176:2:105",
5680
+ "src": "4960:2:105",
5744
5681
  "type": "",
5745
5682
  "value": "32"
5746
5683
  }
@@ -5748,15 +5685,15 @@
5748
5685
  "functionName": {
5749
5686
  "name": "add",
5750
5687
  "nodeType": "YulIdentifier",
5751
- "src": "5161:3:105"
5688
+ "src": "4945:3:105"
5752
5689
  },
5753
5690
  "nodeType": "YulFunctionCall",
5754
- "src": "5161:18:105"
5691
+ "src": "4945:18:105"
5755
5692
  },
5756
5693
  {
5757
5694
  "kind": "number",
5758
5695
  "nodeType": "YulLiteral",
5759
- "src": "5181:2:105",
5696
+ "src": "4965:2:105",
5760
5697
  "type": "",
5761
5698
  "value": "37"
5762
5699
  }
@@ -5764,13 +5701,13 @@
5764
5701
  "functionName": {
5765
5702
  "name": "mstore",
5766
5703
  "nodeType": "YulIdentifier",
5767
- "src": "5154:6:105"
5704
+ "src": "4938:6:105"
5768
5705
  },
5769
5706
  "nodeType": "YulFunctionCall",
5770
- "src": "5154:30:105"
5707
+ "src": "4938:30:105"
5771
5708
  },
5772
5709
  "nodeType": "YulExpressionStatement",
5773
- "src": "5154:30:105"
5710
+ "src": "4938:30:105"
5774
5711
  },
5775
5712
  {
5776
5713
  "expression": {
@@ -5780,12 +5717,12 @@
5780
5717
  {
5781
5718
  "name": "headStart",
5782
5719
  "nodeType": "YulIdentifier",
5783
- "src": "5204:9:105"
5720
+ "src": "4988:9:105"
5784
5721
  },
5785
5722
  {
5786
5723
  "kind": "number",
5787
5724
  "nodeType": "YulLiteral",
5788
- "src": "5215:2:105",
5725
+ "src": "4999:2:105",
5789
5726
  "type": "",
5790
5727
  "value": "64"
5791
5728
  }
@@ -5793,16 +5730,16 @@
5793
5730
  "functionName": {
5794
5731
  "name": "add",
5795
5732
  "nodeType": "YulIdentifier",
5796
- "src": "5200:3:105"
5733
+ "src": "4984:3:105"
5797
5734
  },
5798
5735
  "nodeType": "YulFunctionCall",
5799
- "src": "5200:18:105"
5736
+ "src": "4984:18:105"
5800
5737
  },
5801
5738
  {
5802
5739
  "hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f206164",
5803
5740
  "kind": "string",
5804
5741
  "nodeType": "YulLiteral",
5805
- "src": "5220:34:105",
5742
+ "src": "5004:34:105",
5806
5743
  "type": "",
5807
5744
  "value": "ERC20: transfer from the zero ad"
5808
5745
  }
@@ -5810,13 +5747,13 @@
5810
5747
  "functionName": {
5811
5748
  "name": "mstore",
5812
5749
  "nodeType": "YulIdentifier",
5813
- "src": "5193:6:105"
5750
+ "src": "4977:6:105"
5814
5751
  },
5815
5752
  "nodeType": "YulFunctionCall",
5816
- "src": "5193:62:105"
5753
+ "src": "4977:62:105"
5817
5754
  },
5818
5755
  "nodeType": "YulExpressionStatement",
5819
- "src": "5193:62:105"
5756
+ "src": "4977:62:105"
5820
5757
  },
5821
5758
  {
5822
5759
  "expression": {
@@ -5826,12 +5763,12 @@
5826
5763
  {
5827
5764
  "name": "headStart",
5828
5765
  "nodeType": "YulIdentifier",
5829
- "src": "5275:9:105"
5766
+ "src": "5059:9:105"
5830
5767
  },
5831
5768
  {
5832
5769
  "kind": "number",
5833
5770
  "nodeType": "YulLiteral",
5834
- "src": "5286:2:105",
5771
+ "src": "5070:2:105",
5835
5772
  "type": "",
5836
5773
  "value": "96"
5837
5774
  }
@@ -5839,16 +5776,16 @@
5839
5776
  "functionName": {
5840
5777
  "name": "add",
5841
5778
  "nodeType": "YulIdentifier",
5842
- "src": "5271:3:105"
5779
+ "src": "5055:3:105"
5843
5780
  },
5844
5781
  "nodeType": "YulFunctionCall",
5845
- "src": "5271:18:105"
5782
+ "src": "5055:18:105"
5846
5783
  },
5847
5784
  {
5848
5785
  "hexValue": "6472657373",
5849
5786
  "kind": "string",
5850
5787
  "nodeType": "YulLiteral",
5851
- "src": "5291:7:105",
5788
+ "src": "5075:7:105",
5852
5789
  "type": "",
5853
5790
  "value": "dress"
5854
5791
  }
@@ -5856,28 +5793,28 @@
5856
5793
  "functionName": {
5857
5794
  "name": "mstore",
5858
5795
  "nodeType": "YulIdentifier",
5859
- "src": "5264:6:105"
5796
+ "src": "5048:6:105"
5860
5797
  },
5861
5798
  "nodeType": "YulFunctionCall",
5862
- "src": "5264:35:105"
5799
+ "src": "5048:35:105"
5863
5800
  },
5864
5801
  "nodeType": "YulExpressionStatement",
5865
- "src": "5264:35:105"
5802
+ "src": "5048:35:105"
5866
5803
  },
5867
5804
  {
5868
5805
  "nodeType": "YulAssignment",
5869
- "src": "5308:27:105",
5806
+ "src": "5092:27:105",
5870
5807
  "value": {
5871
5808
  "arguments": [
5872
5809
  {
5873
5810
  "name": "headStart",
5874
5811
  "nodeType": "YulIdentifier",
5875
- "src": "5320:9:105"
5812
+ "src": "5104:9:105"
5876
5813
  },
5877
5814
  {
5878
5815
  "kind": "number",
5879
5816
  "nodeType": "YulLiteral",
5880
- "src": "5331:3:105",
5817
+ "src": "5115:3:105",
5881
5818
  "type": "",
5882
5819
  "value": "128"
5883
5820
  }
@@ -5885,16 +5822,16 @@
5885
5822
  "functionName": {
5886
5823
  "name": "add",
5887
5824
  "nodeType": "YulIdentifier",
5888
- "src": "5316:3:105"
5825
+ "src": "5100:3:105"
5889
5826
  },
5890
5827
  "nodeType": "YulFunctionCall",
5891
- "src": "5316:19:105"
5828
+ "src": "5100:19:105"
5892
5829
  },
5893
5830
  "variableNames": [
5894
5831
  {
5895
5832
  "name": "tail",
5896
5833
  "nodeType": "YulIdentifier",
5897
- "src": "5308:4:105"
5834
+ "src": "5092:4:105"
5898
5835
  }
5899
5836
  ]
5900
5837
  }
@@ -5906,7 +5843,7 @@
5906
5843
  {
5907
5844
  "name": "headStart",
5908
5845
  "nodeType": "YulTypedName",
5909
- "src": "5091:9:105",
5846
+ "src": "4875:9:105",
5910
5847
  "type": ""
5911
5848
  }
5912
5849
  ],
@@ -5914,16 +5851,16 @@
5914
5851
  {
5915
5852
  "name": "tail",
5916
5853
  "nodeType": "YulTypedName",
5917
- "src": "5105:4:105",
5854
+ "src": "4889:4:105",
5918
5855
  "type": ""
5919
5856
  }
5920
5857
  ],
5921
- "src": "4940:401:105"
5858
+ "src": "4724:401:105"
5922
5859
  },
5923
5860
  {
5924
5861
  "body": {
5925
5862
  "nodeType": "YulBlock",
5926
- "src": "5520:225:105",
5863
+ "src": "5304:225:105",
5927
5864
  "statements": [
5928
5865
  {
5929
5866
  "expression": {
@@ -5931,12 +5868,12 @@
5931
5868
  {
5932
5869
  "name": "headStart",
5933
5870
  "nodeType": "YulIdentifier",
5934
- "src": "5537:9:105"
5871
+ "src": "5321:9:105"
5935
5872
  },
5936
5873
  {
5937
5874
  "kind": "number",
5938
5875
  "nodeType": "YulLiteral",
5939
- "src": "5548:2:105",
5876
+ "src": "5332:2:105",
5940
5877
  "type": "",
5941
5878
  "value": "32"
5942
5879
  }
@@ -5944,13 +5881,13 @@
5944
5881
  "functionName": {
5945
5882
  "name": "mstore",
5946
5883
  "nodeType": "YulIdentifier",
5947
- "src": "5530:6:105"
5884
+ "src": "5314:6:105"
5948
5885
  },
5949
5886
  "nodeType": "YulFunctionCall",
5950
- "src": "5530:21:105"
5887
+ "src": "5314:21:105"
5951
5888
  },
5952
5889
  "nodeType": "YulExpressionStatement",
5953
- "src": "5530:21:105"
5890
+ "src": "5314:21:105"
5954
5891
  },
5955
5892
  {
5956
5893
  "expression": {
@@ -5960,12 +5897,12 @@
5960
5897
  {
5961
5898
  "name": "headStart",
5962
5899
  "nodeType": "YulIdentifier",
5963
- "src": "5571:9:105"
5900
+ "src": "5355:9:105"
5964
5901
  },
5965
5902
  {
5966
5903
  "kind": "number",
5967
5904
  "nodeType": "YulLiteral",
5968
- "src": "5582:2:105",
5905
+ "src": "5366:2:105",
5969
5906
  "type": "",
5970
5907
  "value": "32"
5971
5908
  }
@@ -5973,15 +5910,15 @@
5973
5910
  "functionName": {
5974
5911
  "name": "add",
5975
5912
  "nodeType": "YulIdentifier",
5976
- "src": "5567:3:105"
5913
+ "src": "5351:3:105"
5977
5914
  },
5978
5915
  "nodeType": "YulFunctionCall",
5979
- "src": "5567:18:105"
5916
+ "src": "5351:18:105"
5980
5917
  },
5981
5918
  {
5982
5919
  "kind": "number",
5983
5920
  "nodeType": "YulLiteral",
5984
- "src": "5587:2:105",
5921
+ "src": "5371:2:105",
5985
5922
  "type": "",
5986
5923
  "value": "35"
5987
5924
  }
@@ -5989,13 +5926,13 @@
5989
5926
  "functionName": {
5990
5927
  "name": "mstore",
5991
5928
  "nodeType": "YulIdentifier",
5992
- "src": "5560:6:105"
5929
+ "src": "5344:6:105"
5993
5930
  },
5994
5931
  "nodeType": "YulFunctionCall",
5995
- "src": "5560:30:105"
5932
+ "src": "5344:30:105"
5996
5933
  },
5997
5934
  "nodeType": "YulExpressionStatement",
5998
- "src": "5560:30:105"
5935
+ "src": "5344:30:105"
5999
5936
  },
6000
5937
  {
6001
5938
  "expression": {
@@ -6005,12 +5942,12 @@
6005
5942
  {
6006
5943
  "name": "headStart",
6007
5944
  "nodeType": "YulIdentifier",
6008
- "src": "5610:9:105"
5945
+ "src": "5394:9:105"
6009
5946
  },
6010
5947
  {
6011
5948
  "kind": "number",
6012
5949
  "nodeType": "YulLiteral",
6013
- "src": "5621:2:105",
5950
+ "src": "5405:2:105",
6014
5951
  "type": "",
6015
5952
  "value": "64"
6016
5953
  }
@@ -6018,16 +5955,16 @@
6018
5955
  "functionName": {
6019
5956
  "name": "add",
6020
5957
  "nodeType": "YulIdentifier",
6021
- "src": "5606:3:105"
5958
+ "src": "5390:3:105"
6022
5959
  },
6023
5960
  "nodeType": "YulFunctionCall",
6024
- "src": "5606:18:105"
5961
+ "src": "5390:18:105"
6025
5962
  },
6026
5963
  {
6027
5964
  "hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472",
6028
5965
  "kind": "string",
6029
5966
  "nodeType": "YulLiteral",
6030
- "src": "5626:34:105",
5967
+ "src": "5410:34:105",
6031
5968
  "type": "",
6032
5969
  "value": "ERC20: transfer to the zero addr"
6033
5970
  }
@@ -6035,13 +5972,13 @@
6035
5972
  "functionName": {
6036
5973
  "name": "mstore",
6037
5974
  "nodeType": "YulIdentifier",
6038
- "src": "5599:6:105"
5975
+ "src": "5383:6:105"
6039
5976
  },
6040
5977
  "nodeType": "YulFunctionCall",
6041
- "src": "5599:62:105"
5978
+ "src": "5383:62:105"
6042
5979
  },
6043
5980
  "nodeType": "YulExpressionStatement",
6044
- "src": "5599:62:105"
5981
+ "src": "5383:62:105"
6045
5982
  },
6046
5983
  {
6047
5984
  "expression": {
@@ -6051,12 +5988,12 @@
6051
5988
  {
6052
5989
  "name": "headStart",
6053
5990
  "nodeType": "YulIdentifier",
6054
- "src": "5681:9:105"
5991
+ "src": "5465:9:105"
6055
5992
  },
6056
5993
  {
6057
5994
  "kind": "number",
6058
5995
  "nodeType": "YulLiteral",
6059
- "src": "5692:2:105",
5996
+ "src": "5476:2:105",
6060
5997
  "type": "",
6061
5998
  "value": "96"
6062
5999
  }
@@ -6064,16 +6001,16 @@
6064
6001
  "functionName": {
6065
6002
  "name": "add",
6066
6003
  "nodeType": "YulIdentifier",
6067
- "src": "5677:3:105"
6004
+ "src": "5461:3:105"
6068
6005
  },
6069
6006
  "nodeType": "YulFunctionCall",
6070
- "src": "5677:18:105"
6007
+ "src": "5461:18:105"
6071
6008
  },
6072
6009
  {
6073
6010
  "hexValue": "657373",
6074
6011
  "kind": "string",
6075
6012
  "nodeType": "YulLiteral",
6076
- "src": "5697:5:105",
6013
+ "src": "5481:5:105",
6077
6014
  "type": "",
6078
6015
  "value": "ess"
6079
6016
  }
@@ -6081,28 +6018,28 @@
6081
6018
  "functionName": {
6082
6019
  "name": "mstore",
6083
6020
  "nodeType": "YulIdentifier",
6084
- "src": "5670:6:105"
6021
+ "src": "5454:6:105"
6085
6022
  },
6086
6023
  "nodeType": "YulFunctionCall",
6087
- "src": "5670:33:105"
6024
+ "src": "5454:33:105"
6088
6025
  },
6089
6026
  "nodeType": "YulExpressionStatement",
6090
- "src": "5670:33:105"
6027
+ "src": "5454:33:105"
6091
6028
  },
6092
6029
  {
6093
6030
  "nodeType": "YulAssignment",
6094
- "src": "5712:27:105",
6031
+ "src": "5496:27:105",
6095
6032
  "value": {
6096
6033
  "arguments": [
6097
6034
  {
6098
6035
  "name": "headStart",
6099
6036
  "nodeType": "YulIdentifier",
6100
- "src": "5724:9:105"
6037
+ "src": "5508:9:105"
6101
6038
  },
6102
6039
  {
6103
6040
  "kind": "number",
6104
6041
  "nodeType": "YulLiteral",
6105
- "src": "5735:3:105",
6042
+ "src": "5519:3:105",
6106
6043
  "type": "",
6107
6044
  "value": "128"
6108
6045
  }
@@ -6110,16 +6047,16 @@
6110
6047
  "functionName": {
6111
6048
  "name": "add",
6112
6049
  "nodeType": "YulIdentifier",
6113
- "src": "5720:3:105"
6050
+ "src": "5504:3:105"
6114
6051
  },
6115
6052
  "nodeType": "YulFunctionCall",
6116
- "src": "5720:19:105"
6053
+ "src": "5504:19:105"
6117
6054
  },
6118
6055
  "variableNames": [
6119
6056
  {
6120
6057
  "name": "tail",
6121
6058
  "nodeType": "YulIdentifier",
6122
- "src": "5712:4:105"
6059
+ "src": "5496:4:105"
6123
6060
  }
6124
6061
  ]
6125
6062
  }
@@ -6131,7 +6068,7 @@
6131
6068
  {
6132
6069
  "name": "headStart",
6133
6070
  "nodeType": "YulTypedName",
6134
- "src": "5497:9:105",
6071
+ "src": "5281:9:105",
6135
6072
  "type": ""
6136
6073
  }
6137
6074
  ],
@@ -6139,16 +6076,16 @@
6139
6076
  {
6140
6077
  "name": "tail",
6141
6078
  "nodeType": "YulTypedName",
6142
- "src": "5511:4:105",
6079
+ "src": "5295:4:105",
6143
6080
  "type": ""
6144
6081
  }
6145
6082
  ],
6146
- "src": "5346:399:105"
6083
+ "src": "5130:399:105"
6147
6084
  },
6148
6085
  {
6149
6086
  "body": {
6150
6087
  "nodeType": "YulBlock",
6151
- "src": "5924:228:105",
6088
+ "src": "5708:228:105",
6152
6089
  "statements": [
6153
6090
  {
6154
6091
  "expression": {
@@ -6156,12 +6093,12 @@
6156
6093
  {
6157
6094
  "name": "headStart",
6158
6095
  "nodeType": "YulIdentifier",
6159
- "src": "5941:9:105"
6096
+ "src": "5725:9:105"
6160
6097
  },
6161
6098
  {
6162
6099
  "kind": "number",
6163
6100
  "nodeType": "YulLiteral",
6164
- "src": "5952:2:105",
6101
+ "src": "5736:2:105",
6165
6102
  "type": "",
6166
6103
  "value": "32"
6167
6104
  }
@@ -6169,13 +6106,13 @@
6169
6106
  "functionName": {
6170
6107
  "name": "mstore",
6171
6108
  "nodeType": "YulIdentifier",
6172
- "src": "5934:6:105"
6109
+ "src": "5718:6:105"
6173
6110
  },
6174
6111
  "nodeType": "YulFunctionCall",
6175
- "src": "5934:21:105"
6112
+ "src": "5718:21:105"
6176
6113
  },
6177
6114
  "nodeType": "YulExpressionStatement",
6178
- "src": "5934:21:105"
6115
+ "src": "5718:21:105"
6179
6116
  },
6180
6117
  {
6181
6118
  "expression": {
@@ -6185,12 +6122,12 @@
6185
6122
  {
6186
6123
  "name": "headStart",
6187
6124
  "nodeType": "YulIdentifier",
6188
- "src": "5975:9:105"
6125
+ "src": "5759:9:105"
6189
6126
  },
6190
6127
  {
6191
6128
  "kind": "number",
6192
6129
  "nodeType": "YulLiteral",
6193
- "src": "5986:2:105",
6130
+ "src": "5770:2:105",
6194
6131
  "type": "",
6195
6132
  "value": "32"
6196
6133
  }
@@ -6198,15 +6135,15 @@
6198
6135
  "functionName": {
6199
6136
  "name": "add",
6200
6137
  "nodeType": "YulIdentifier",
6201
- "src": "5971:3:105"
6138
+ "src": "5755:3:105"
6202
6139
  },
6203
6140
  "nodeType": "YulFunctionCall",
6204
- "src": "5971:18:105"
6141
+ "src": "5755:18:105"
6205
6142
  },
6206
6143
  {
6207
6144
  "kind": "number",
6208
6145
  "nodeType": "YulLiteral",
6209
- "src": "5991:2:105",
6146
+ "src": "5775:2:105",
6210
6147
  "type": "",
6211
6148
  "value": "38"
6212
6149
  }
@@ -6214,13 +6151,13 @@
6214
6151
  "functionName": {
6215
6152
  "name": "mstore",
6216
6153
  "nodeType": "YulIdentifier",
6217
- "src": "5964:6:105"
6154
+ "src": "5748:6:105"
6218
6155
  },
6219
6156
  "nodeType": "YulFunctionCall",
6220
- "src": "5964:30:105"
6157
+ "src": "5748:30:105"
6221
6158
  },
6222
6159
  "nodeType": "YulExpressionStatement",
6223
- "src": "5964:30:105"
6160
+ "src": "5748:30:105"
6224
6161
  },
6225
6162
  {
6226
6163
  "expression": {
@@ -6230,12 +6167,12 @@
6230
6167
  {
6231
6168
  "name": "headStart",
6232
6169
  "nodeType": "YulIdentifier",
6233
- "src": "6014:9:105"
6170
+ "src": "5798:9:105"
6234
6171
  },
6235
6172
  {
6236
6173
  "kind": "number",
6237
6174
  "nodeType": "YulLiteral",
6238
- "src": "6025:2:105",
6175
+ "src": "5809:2:105",
6239
6176
  "type": "",
6240
6177
  "value": "64"
6241
6178
  }
@@ -6243,16 +6180,16 @@
6243
6180
  "functionName": {
6244
6181
  "name": "add",
6245
6182
  "nodeType": "YulIdentifier",
6246
- "src": "6010:3:105"
6183
+ "src": "5794:3:105"
6247
6184
  },
6248
6185
  "nodeType": "YulFunctionCall",
6249
- "src": "6010:18:105"
6186
+ "src": "5794:18:105"
6250
6187
  },
6251
6188
  {
6252
6189
  "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062",
6253
6190
  "kind": "string",
6254
6191
  "nodeType": "YulLiteral",
6255
- "src": "6030:34:105",
6192
+ "src": "5814:34:105",
6256
6193
  "type": "",
6257
6194
  "value": "ERC20: transfer amount exceeds b"
6258
6195
  }
@@ -6260,13 +6197,13 @@
6260
6197
  "functionName": {
6261
6198
  "name": "mstore",
6262
6199
  "nodeType": "YulIdentifier",
6263
- "src": "6003:6:105"
6200
+ "src": "5787:6:105"
6264
6201
  },
6265
6202
  "nodeType": "YulFunctionCall",
6266
- "src": "6003:62:105"
6203
+ "src": "5787:62:105"
6267
6204
  },
6268
6205
  "nodeType": "YulExpressionStatement",
6269
- "src": "6003:62:105"
6206
+ "src": "5787:62:105"
6270
6207
  },
6271
6208
  {
6272
6209
  "expression": {
@@ -6276,12 +6213,12 @@
6276
6213
  {
6277
6214
  "name": "headStart",
6278
6215
  "nodeType": "YulIdentifier",
6279
- "src": "6085:9:105"
6216
+ "src": "5869:9:105"
6280
6217
  },
6281
6218
  {
6282
6219
  "kind": "number",
6283
6220
  "nodeType": "YulLiteral",
6284
- "src": "6096:2:105",
6221
+ "src": "5880:2:105",
6285
6222
  "type": "",
6286
6223
  "value": "96"
6287
6224
  }
@@ -6289,16 +6226,16 @@
6289
6226
  "functionName": {
6290
6227
  "name": "add",
6291
6228
  "nodeType": "YulIdentifier",
6292
- "src": "6081:3:105"
6229
+ "src": "5865:3:105"
6293
6230
  },
6294
6231
  "nodeType": "YulFunctionCall",
6295
- "src": "6081:18:105"
6232
+ "src": "5865:18:105"
6296
6233
  },
6297
6234
  {
6298
6235
  "hexValue": "616c616e6365",
6299
6236
  "kind": "string",
6300
6237
  "nodeType": "YulLiteral",
6301
- "src": "6101:8:105",
6238
+ "src": "5885:8:105",
6302
6239
  "type": "",
6303
6240
  "value": "alance"
6304
6241
  }
@@ -6306,28 +6243,28 @@
6306
6243
  "functionName": {
6307
6244
  "name": "mstore",
6308
6245
  "nodeType": "YulIdentifier",
6309
- "src": "6074:6:105"
6246
+ "src": "5858:6:105"
6310
6247
  },
6311
6248
  "nodeType": "YulFunctionCall",
6312
- "src": "6074:36:105"
6249
+ "src": "5858:36:105"
6313
6250
  },
6314
6251
  "nodeType": "YulExpressionStatement",
6315
- "src": "6074:36:105"
6252
+ "src": "5858:36:105"
6316
6253
  },
6317
6254
  {
6318
6255
  "nodeType": "YulAssignment",
6319
- "src": "6119:27:105",
6256
+ "src": "5903:27:105",
6320
6257
  "value": {
6321
6258
  "arguments": [
6322
6259
  {
6323
6260
  "name": "headStart",
6324
6261
  "nodeType": "YulIdentifier",
6325
- "src": "6131:9:105"
6262
+ "src": "5915:9:105"
6326
6263
  },
6327
6264
  {
6328
6265
  "kind": "number",
6329
6266
  "nodeType": "YulLiteral",
6330
- "src": "6142:3:105",
6267
+ "src": "5926:3:105",
6331
6268
  "type": "",
6332
6269
  "value": "128"
6333
6270
  }
@@ -6335,16 +6272,16 @@
6335
6272
  "functionName": {
6336
6273
  "name": "add",
6337
6274
  "nodeType": "YulIdentifier",
6338
- "src": "6127:3:105"
6275
+ "src": "5911:3:105"
6339
6276
  },
6340
6277
  "nodeType": "YulFunctionCall",
6341
- "src": "6127:19:105"
6278
+ "src": "5911:19:105"
6342
6279
  },
6343
6280
  "variableNames": [
6344
6281
  {
6345
6282
  "name": "tail",
6346
6283
  "nodeType": "YulIdentifier",
6347
- "src": "6119:4:105"
6284
+ "src": "5903:4:105"
6348
6285
  }
6349
6286
  ]
6350
6287
  }
@@ -6356,7 +6293,7 @@
6356
6293
  {
6357
6294
  "name": "headStart",
6358
6295
  "nodeType": "YulTypedName",
6359
- "src": "5901:9:105",
6296
+ "src": "5685:9:105",
6360
6297
  "type": ""
6361
6298
  }
6362
6299
  ],
@@ -6364,16 +6301,16 @@
6364
6301
  {
6365
6302
  "name": "tail",
6366
6303
  "nodeType": "YulTypedName",
6367
- "src": "5915:4:105",
6304
+ "src": "5699:4:105",
6368
6305
  "type": ""
6369
6306
  }
6370
6307
  ],
6371
- "src": "5750:402:105"
6308
+ "src": "5534:402:105"
6372
6309
  },
6373
6310
  {
6374
6311
  "body": {
6375
6312
  "nodeType": "YulBlock",
6376
- "src": "6331:181:105",
6313
+ "src": "6115:181:105",
6377
6314
  "statements": [
6378
6315
  {
6379
6316
  "expression": {
@@ -6381,12 +6318,12 @@
6381
6318
  {
6382
6319
  "name": "headStart",
6383
6320
  "nodeType": "YulIdentifier",
6384
- "src": "6348:9:105"
6321
+ "src": "6132:9:105"
6385
6322
  },
6386
6323
  {
6387
6324
  "kind": "number",
6388
6325
  "nodeType": "YulLiteral",
6389
- "src": "6359:2:105",
6326
+ "src": "6143:2:105",
6390
6327
  "type": "",
6391
6328
  "value": "32"
6392
6329
  }
@@ -6394,13 +6331,13 @@
6394
6331
  "functionName": {
6395
6332
  "name": "mstore",
6396
6333
  "nodeType": "YulIdentifier",
6397
- "src": "6341:6:105"
6334
+ "src": "6125:6:105"
6398
6335
  },
6399
6336
  "nodeType": "YulFunctionCall",
6400
- "src": "6341:21:105"
6337
+ "src": "6125:21:105"
6401
6338
  },
6402
6339
  "nodeType": "YulExpressionStatement",
6403
- "src": "6341:21:105"
6340
+ "src": "6125:21:105"
6404
6341
  },
6405
6342
  {
6406
6343
  "expression": {
@@ -6410,12 +6347,12 @@
6410
6347
  {
6411
6348
  "name": "headStart",
6412
6349
  "nodeType": "YulIdentifier",
6413
- "src": "6382:9:105"
6350
+ "src": "6166:9:105"
6414
6351
  },
6415
6352
  {
6416
6353
  "kind": "number",
6417
6354
  "nodeType": "YulLiteral",
6418
- "src": "6393:2:105",
6355
+ "src": "6177:2:105",
6419
6356
  "type": "",
6420
6357
  "value": "32"
6421
6358
  }
@@ -6423,15 +6360,15 @@
6423
6360
  "functionName": {
6424
6361
  "name": "add",
6425
6362
  "nodeType": "YulIdentifier",
6426
- "src": "6378:3:105"
6363
+ "src": "6162:3:105"
6427
6364
  },
6428
6365
  "nodeType": "YulFunctionCall",
6429
- "src": "6378:18:105"
6366
+ "src": "6162:18:105"
6430
6367
  },
6431
6368
  {
6432
6369
  "kind": "number",
6433
6370
  "nodeType": "YulLiteral",
6434
- "src": "6398:2:105",
6371
+ "src": "6182:2:105",
6435
6372
  "type": "",
6436
6373
  "value": "31"
6437
6374
  }
@@ -6439,13 +6376,13 @@
6439
6376
  "functionName": {
6440
6377
  "name": "mstore",
6441
6378
  "nodeType": "YulIdentifier",
6442
- "src": "6371:6:105"
6379
+ "src": "6155:6:105"
6443
6380
  },
6444
6381
  "nodeType": "YulFunctionCall",
6445
- "src": "6371:30:105"
6382
+ "src": "6155:30:105"
6446
6383
  },
6447
6384
  "nodeType": "YulExpressionStatement",
6448
- "src": "6371:30:105"
6385
+ "src": "6155:30:105"
6449
6386
  },
6450
6387
  {
6451
6388
  "expression": {
@@ -6455,12 +6392,12 @@
6455
6392
  {
6456
6393
  "name": "headStart",
6457
6394
  "nodeType": "YulIdentifier",
6458
- "src": "6421:9:105"
6395
+ "src": "6205:9:105"
6459
6396
  },
6460
6397
  {
6461
6398
  "kind": "number",
6462
6399
  "nodeType": "YulLiteral",
6463
- "src": "6432:2:105",
6400
+ "src": "6216:2:105",
6464
6401
  "type": "",
6465
6402
  "value": "64"
6466
6403
  }
@@ -6468,16 +6405,16 @@
6468
6405
  "functionName": {
6469
6406
  "name": "add",
6470
6407
  "nodeType": "YulIdentifier",
6471
- "src": "6417:3:105"
6408
+ "src": "6201:3:105"
6472
6409
  },
6473
6410
  "nodeType": "YulFunctionCall",
6474
- "src": "6417:18:105"
6411
+ "src": "6201:18:105"
6475
6412
  },
6476
6413
  {
6477
6414
  "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373",
6478
6415
  "kind": "string",
6479
6416
  "nodeType": "YulLiteral",
6480
- "src": "6437:33:105",
6417
+ "src": "6221:33:105",
6481
6418
  "type": "",
6482
6419
  "value": "ERC20: mint to the zero address"
6483
6420
  }
@@ -6485,28 +6422,28 @@
6485
6422
  "functionName": {
6486
6423
  "name": "mstore",
6487
6424
  "nodeType": "YulIdentifier",
6488
- "src": "6410:6:105"
6425
+ "src": "6194:6:105"
6489
6426
  },
6490
6427
  "nodeType": "YulFunctionCall",
6491
- "src": "6410:61:105"
6428
+ "src": "6194:61:105"
6492
6429
  },
6493
6430
  "nodeType": "YulExpressionStatement",
6494
- "src": "6410:61:105"
6431
+ "src": "6194:61:105"
6495
6432
  },
6496
6433
  {
6497
6434
  "nodeType": "YulAssignment",
6498
- "src": "6480:26:105",
6435
+ "src": "6264:26:105",
6499
6436
  "value": {
6500
6437
  "arguments": [
6501
6438
  {
6502
6439
  "name": "headStart",
6503
6440
  "nodeType": "YulIdentifier",
6504
- "src": "6492:9:105"
6441
+ "src": "6276:9:105"
6505
6442
  },
6506
6443
  {
6507
6444
  "kind": "number",
6508
6445
  "nodeType": "YulLiteral",
6509
- "src": "6503:2:105",
6446
+ "src": "6287:2:105",
6510
6447
  "type": "",
6511
6448
  "value": "96"
6512
6449
  }
@@ -6514,16 +6451,16 @@
6514
6451
  "functionName": {
6515
6452
  "name": "add",
6516
6453
  "nodeType": "YulIdentifier",
6517
- "src": "6488:3:105"
6454
+ "src": "6272:3:105"
6518
6455
  },
6519
6456
  "nodeType": "YulFunctionCall",
6520
- "src": "6488:18:105"
6457
+ "src": "6272:18:105"
6521
6458
  },
6522
6459
  "variableNames": [
6523
6460
  {
6524
6461
  "name": "tail",
6525
6462
  "nodeType": "YulIdentifier",
6526
- "src": "6480:4:105"
6463
+ "src": "6264:4:105"
6527
6464
  }
6528
6465
  ]
6529
6466
  }
@@ -6535,7 +6472,7 @@
6535
6472
  {
6536
6473
  "name": "headStart",
6537
6474
  "nodeType": "YulTypedName",
6538
- "src": "6308:9:105",
6475
+ "src": "6092:9:105",
6539
6476
  "type": ""
6540
6477
  }
6541
6478
  ],
@@ -6543,23 +6480,23 @@
6543
6480
  {
6544
6481
  "name": "tail",
6545
6482
  "nodeType": "YulTypedName",
6546
- "src": "6322:4:105",
6483
+ "src": "6106:4:105",
6547
6484
  "type": ""
6548
6485
  }
6549
6486
  ],
6550
- "src": "6157:355:105"
6487
+ "src": "5941:355:105"
6551
6488
  }
6552
6489
  ]
6553
6490
  },
6554
- "contents": "{\n { }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), 0)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_608840f15d16dbfa1dbf34372a5e79aa6c7278885205580529d034e3ce99c1ac__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 19)\n mstore(add(headStart, 64), \"Don't mint too many\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n}",
6491
+ "contents": "{\n { }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), 0)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n sum := add(x, y)\n }\n function panic_error_0x01()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n}",
6555
6492
  "id": 105,
6556
6493
  "language": "Yul",
6557
6494
  "name": "#utility.yul"
6558
6495
  }
6559
6496
  ],
6560
- "sourceMap": "254:614:103:-:0;;;372:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2044:13:8;;460:4:103;;466:6;;2044:13:8;;:5;;:13;;;;;:::i;:::-;-1:-1:-1;2067:17:8;;;;:7;;:17;;;;;:::i;:::-;-1:-1:-1;;488:9:103::1;:24:::0;;-1:-1:-1;;488:24:103::1;;::::0;;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;254:614:103;;-1:-1:-1;;254:614:103;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;254:614:103;;;-1:-1:-1;254:614:103;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:127:105;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:885;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:105;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:105;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;930:2;927:1;924:9;921:80;;;989:1;984:2;979;971:6;967:15;963:24;956:35;921:80;1019:6;146:885;-1:-1:-1;;;;;;146:885:105:o;1036:712::-;1142:6;1150;1158;1211:2;1199:9;1190:7;1186:23;1182:32;1179:52;;;1227:1;1224;1217:12;1179:52;1254:16;;-1:-1:-1;;;;;1319:14:105;;;1316:34;;;1346:1;1343;1336:12;1316:34;1369:61;1422:7;1413:6;1402:9;1398:22;1369:61;:::i;:::-;1359:71;;1476:2;1465:9;1461:18;1455:25;1439:41;;1505:2;1495:8;1492:16;1489:36;;;1521:1;1518;1511:12;1489:36;;1544:63;1599:7;1588:8;1577:9;1573:24;1544:63;:::i;:::-;1534:73;;;1650:2;1639:9;1635:18;1629:25;1694:4;1687:5;1683:16;1676:5;1673:27;1663:55;;1714:1;1711;1704:12;1663:55;1737:5;1727:15;;;1036:712;;;;;:::o;1753:380::-;1832:1;1828:12;;;;1875;;;1896:61;;1950:4;1942:6;1938:17;1928:27;;1896:61;2003:2;1995:6;1992:14;1972:18;1969:38;1966:161;;2049:10;2044:3;2040:20;2037:1;2030:31;2084:4;2081:1;2074:15;2112:4;2109:1;2102:15;1966:161;;1753:380;;;:::o;:::-;254:614:103;;;;;;",
6561
- "deployedSourceMap": "254:614:103:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;289:47;;326:10;289:47;;;;;160:25:105;;;148:2;133:18;289:47:103;;;;;;;;2156:98:8;;;:::i;:::-;;;;;;;:::i;4433:197::-;;;;;;:::i;:::-;;:::i;:::-;;;1400:14:105;;1393:22;1375:41;;1363:2;1348:18;4433:197:8;1235:187:105;3244:106:8;3331:12;;3244:106;;5192:286;;;;;;:::i;:::-;;:::i;775:90:103:-;849:9;;775:90;;849:9;;;;1902:36:105;;1890:2;1875:18;775:90:103;1760:184:105;5873:236:8;;;;;;:::i;:::-;;:::i;572:197:103:-;;;;;;:::i;:::-;;:::i;3408:125:8:-;;;;;;:::i;:::-;-1:-1:-1;;;;;3508:18:8;3482:7;3508:18;;;;;;;;;;;;3408:125;2367:102;;;:::i;6596:429::-;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4091:18:8;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149;2156:98;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:19;4570:32:8;719:10:19;4586:7:8;4595:6;4570:8;:32::i;:::-;-1:-1:-1;4619:4:8;;4433:197;-1:-1:-1;;;4433:197:8:o;5192:286::-;5319:4;719:10:19;5375:38:8;5391:4;719:10:19;5406:6:8;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:8;;5192:286;-1:-1:-1;;;;5192:286:8:o;5873:236::-;719:10:19;5961:4:8;6040:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;6040:27:8;;;;;;;;;;5961:4;;719:10:19;6015:66:8;;719:10:19;;6040:27:8;;:40;;6070:10;;6040:40;:::i;:::-;6015:8;:66::i;572:197:103:-;635:4;326:10;659:6;:20;;651:52;;;;-1:-1:-1;;;651:52:103;;3222:2:105;651:52:103;;;3204:21:105;3261:2;3241:18;;;3234:30;-1:-1:-1;;;3280:18:105;;;3273:49;3339:18;;651:52:103;;;;;;;;;713:28;725:7;734:6;713:11;:28::i;:::-;-1:-1:-1;758:4:103;572:197;;;;:::o;2367:102:8:-;2423:13;2455:7;2448:14;;;;;:::i;6596:429::-;719:10:19;6689:4:8;6770:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;6770:27:8;;;;;;;;;;6689:4;;719:10:19;6815:35:8;;;;6807:85;;;;-1:-1:-1;;;6807:85:8;;3570:2:105;6807:85:8;;;3552:21:105;3609:2;3589:18;;;3582:30;3648:34;3628:18;;;3621:62;-1:-1:-1;;;3699:18:105;;;3692:35;3744:19;;6807:85:8;3368:401:105;6807:85:8;6926:60;6935:5;6942:7;6970:15;6951:16;:34;6926:8;:60::i;3729:189::-;3808:4;719:10:19;3862:28:8;719:10:19;3879:2:8;3883:6;3862:9;:28::i;10123:370::-;-1:-1:-1;;;;;10254:19:8;;10246:68;;;;-1:-1:-1;;;10246:68:8;;3976:2:105;10246:68:8;;;3958:21:105;4015:2;3995:18;;;3988:30;4054:34;4034:18;;;4027:62;-1:-1:-1;;;4105:18:105;;;4098:34;4149:19;;10246:68:8;3774:400:105;10246:68:8;-1:-1:-1;;;;;10332:21:8;;10324:68;;;;-1:-1:-1;;;10324:68:8;;4381:2:105;10324:68:8;;;4363:21:105;4420:2;4400:18;;;4393:30;4459:34;4439:18;;;4432:62;-1:-1:-1;;;4510:18:105;;;4503:32;4552:19;;10324:68:8;4179:398:105;10324:68:8;-1:-1:-1;;;;;10403:18:8;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10454:32;;160:25:105;;;10454:32:8;;133:18:105;10454:32:8;;;;;;;10123:370;;;:::o;10770:441::-;-1:-1:-1;;;;;4091:18:8;;;10900:24;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;10966:37:8;;10962:243;;11047:6;11027:16;:26;;11019:68;;;;-1:-1:-1;;;11019:68:8;;4784:2:105;11019:68:8;;;4766:21:105;4823:2;4803:18;;;4796:30;4862:31;4842:18;;;4835:59;4911:18;;11019:68:8;4582:353:105;11019:68:8;11129:51;11138:5;11145:7;11173:6;11154:16;:25;11129:8;:51::i;:::-;10890:321;10770:441;;;:::o;7488:651::-;-1:-1:-1;;;;;7614:18:8;;7606:68;;;;-1:-1:-1;;;7606:68:8;;5142:2:105;7606:68:8;;;5124:21:105;5181:2;5161:18;;;5154:30;5220:34;5200:18;;;5193:62;-1:-1:-1;;;5271:18:105;;;5264:35;5316:19;;7606:68:8;4940:401:105;7606:68:8;-1:-1:-1;;;;;7692:16:8;;7684:64;;;;-1:-1:-1;;;7684:64:8;;5548:2:105;7684:64:8;;;5530:21:105;5587:2;5567:18;;;5560:30;5626:34;5606:18;;;5599:62;-1:-1:-1;;;5677:18:105;;;5670:33;5720:19;;7684:64:8;5346:399:105;7684:64:8;-1:-1:-1;;;;;7830:15:8;;7808:19;7830:15;;;;;;;;;;;7863:21;;;;7855:72;;;;-1:-1:-1;;;7855:72:8;;5952:2:105;7855:72:8;;;5934:21:105;5991:2;5971:18;;;5964:30;6030:34;6010:18;;;6003:62;-1:-1:-1;;;6081:18:105;;;6074:36;6127:19;;7855:72:8;5750:402:105;7855:72:8;-1:-1:-1;;;;;7961:15:8;;;:9;:15;;;;;;;;;;;7979:20;;;7961:38;;8019:13;;;;;;;;:23;;7993:6;;7961:9;8019:23;;7993:6;;8019:23;:::i;:::-;;;;;;;;8073:2;-1:-1:-1;;;;;8058:26:8;8067:4;-1:-1:-1;;;;;8058:26:8;;8077:6;8058:26;;;;160:25:105;;148:2;133:18;;14:177;8058:26:8;;;;;;;;8095:37;11795:121;8415:389;-1:-1:-1;;;;;8498:21:8;;8490:65;;;;-1:-1:-1;;;8490:65:8;;6359:2:105;8490:65:8;;;6341:21:105;6398:2;6378:18;;;6371:30;6437:33;6417:18;;;6410:61;6488:18;;8490:65:8;6157:355:105;8490:65:8;8642:6;8626:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8658:18:8;;:9;:18;;;;;;;;;;:28;;8680:6;;8658:9;:28;;8680:6;;8658:28;:::i;:::-;;;;-1:-1:-1;;8701:37:8;;160:25:105;;;-1:-1:-1;;;;;8701:37:8;;;8718:1;;8701:37;;148:2:105;133:18;8701:37:8;;;;;;;8415:389;;:::o;196:597:105:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:105;756:15;-1:-1:-1;;752:29:105;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:105:o;798:173::-;866:20;;-1:-1:-1;;;;;915:31:105;;905:42;;895:70;;961:1;958;951:12;895:70;798:173;;;:::o;976:254::-;1044:6;1052;1105:2;1093:9;1084:7;1080:23;1076:32;1073:52;;;1121:1;1118;1111:12;1073:52;1144:29;1163:9;1144:29;:::i;:::-;1134:39;1220:2;1205:18;;;;1192:32;;-1:-1:-1;;;976:254:105:o;1427:328::-;1504:6;1512;1520;1573:2;1561:9;1552:7;1548:23;1544:32;1541:52;;;1589:1;1586;1579:12;1541:52;1612:29;1631:9;1612:29;:::i;:::-;1602:39;;1660:38;1694:2;1683:9;1679:18;1660:38;:::i;:::-;1650:48;;1745:2;1734:9;1730:18;1717:32;1707:42;;1427:328;;;;;:::o;1949:186::-;2008:6;2061:2;2049:9;2040:7;2036:23;2032:32;2029:52;;;2077:1;2074;2067:12;2029:52;2100:29;2119:9;2100:29;:::i;:::-;2090:39;1949:186;-1:-1:-1;;;1949:186:105:o;2140:260::-;2208:6;2216;2269:2;2257:9;2248:7;2244:23;2240:32;2237:52;;;2285:1;2282;2275:12;2237:52;2308:29;2327:9;2308:29;:::i;:::-;2298:39;;2356:38;2390:2;2379:9;2375:18;2356:38;:::i;:::-;2346:48;;2140:260;;;;;:::o;2405:380::-;2484:1;2480:12;;;;2527;;;2548:61;;2602:4;2594:6;2590:17;2580:27;;2548:61;2655:2;2647:6;2644:14;2624:18;2621:38;2618:161;;2701:10;2696:3;2692:20;2689:1;2682:31;2736:4;2733:1;2726:15;2764:4;2761:1;2754:15;2618:161;;2405:380;;;:::o;2790:225::-;2830:3;2861:1;2857:6;2854:1;2851:13;2848:136;;;2906:10;2901:3;2897:20;2894:1;2887:31;2941:4;2938:1;2931:15;2969:4;2966:1;2959:15;2848:136;-1:-1:-1;3000:9:105;;2790:225::o",
6562
- "source": "// SPDX-License-Identifier: AGPLv3\npragma solidity 0.8.13;\n\nimport { ERC20 } from \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\n/**\n * @title Test token contract\n * @author Superfluid\n * @dev Test ERC20 token that allows any one mint new tokens.\n */\ncontract TestToken is ERC20 {\n\n uint256 public constant MINT_LIMIT = 1e12 ether;\n uint8 private _decimals;\n\n constructor(string memory name, string memory symbol, uint8 initDecimals)\n ERC20(name, symbol)\n {\n _decimals = initDecimals;\n }\n\n /**\n * @dev See {ERC20-_mint}.\n */\n function mint(address account, uint256 amount) public returns (bool) {\n require(amount <= MINT_LIMIT, \"Don't mint too many\");\n ERC20._mint(account, amount);\n return true;\n }\n\n function decimals() public view override returns (uint8) {\n return _decimals;\n }\n\n}\n",
6497
+ "sourceMap": "254:624:103:-:0;;;372:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2044:13:8;;460:4:103;;466:6;;2044:13:8;;:5;;:13;;;;;:::i;:::-;-1:-1:-1;2067:17:8;;;;:7;;:17;;;;;:::i;:::-;-1:-1:-1;;488:9:103::1;:24:::0;;-1:-1:-1;;488:24:103::1;;::::0;;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;254:624:103;;-1:-1:-1;;254:624:103;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;254:624:103;;;-1:-1:-1;254:624:103;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:127:105;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:885;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:105;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:105;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;930:2;927:1;924:9;921:80;;;989:1;984:2;979;971:6;967:15;963:24;956:35;921:80;1019:6;146:885;-1:-1:-1;;;;;;146:885:105:o;1036:712::-;1142:6;1150;1158;1211:2;1199:9;1190:7;1186:23;1182:32;1179:52;;;1227:1;1224;1217:12;1179:52;1254:16;;-1:-1:-1;;;;;1319:14:105;;;1316:34;;;1346:1;1343;1336:12;1316:34;1369:61;1422:7;1413:6;1402:9;1398:22;1369:61;:::i;:::-;1359:71;;1476:2;1465:9;1461:18;1455:25;1439:41;;1505:2;1495:8;1492:16;1489:36;;;1521:1;1518;1511:12;1489:36;;1544:63;1599:7;1588:8;1577:9;1573:24;1544:63;:::i;:::-;1534:73;;;1650:2;1639:9;1635:18;1629:25;1694:4;1687:5;1683:16;1676:5;1673:27;1663:55;;1714:1;1711;1704:12;1663:55;1737:5;1727:15;;;1036:712;;;;;:::o;1753:380::-;1832:1;1828:12;;;;1875;;;1896:61;;1950:4;1942:6;1938:17;1928:27;;1896:61;2003:2;1995:6;1992:14;1972:18;1969:38;1966:161;;2049:10;2044:3;2040:20;2037:1;2030:31;2084:4;2081:1;2074:15;2112:4;2109:1;2102:15;1966:161;;1753:380;;;:::o;:::-;254:624:103;;;;;;",
6498
+ "deployedSourceMap": "254:624:103:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;289:47;;326:10;289:47;;;;;160:25:105;;;148:2;133:18;289:47:103;;;;;;;;2156:98:8;;;:::i;:::-;;;;;;;:::i;4433:197::-;;;;;;:::i;:::-;;:::i;:::-;;;1400:14:105;;1393:22;1375:41;;1363:2;1348:18;4433:197:8;1235:187:105;3244:106:8;3331:12;;3244:106;;5192:286;;;;;;:::i;:::-;;:::i;785:90:103:-;859:9;;785:90;;859:9;;;;1902:36:105;;1890:2;1875:18;785:90:103;1760:184:105;5873:236:8;;;;;;:::i;:::-;;:::i;572:207:103:-;;;;;;:::i;:::-;;:::i;3408:125:8:-;;;;;;:::i;:::-;-1:-1:-1;;;;;3508:18:8;3482:7;3508:18;;;;;;;;;;;;3408:125;2367:102;;;:::i;6596:429::-;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4091:18:8;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149;2156:98;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:19;4570:32:8;719:10:19;4586:7:8;4595:6;4570:8;:32::i;:::-;-1:-1:-1;4619:4:8;;4433:197;-1:-1:-1;;;4433:197:8:o;5192:286::-;5319:4;719:10:19;5375:38:8;5391:4;719:10:19;5406:6:8;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:8;;5192:286;-1:-1:-1;;;;5192:286:8:o;5873:236::-;719:10:19;5961:4:8;6040:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;6040:27:8;;;;;;;;;;5961:4;;719:10:19;6015:66:8;;719:10:19;;6040:27:8;;:40;;6070:10;;6040:40;:::i;:::-;6015:8;:66::i;572:207:103:-;635:4;326:10;658:6;:20;;651:28;;;;:::i;:::-;723;735:7;744:6;723:11;:28::i;:::-;-1:-1:-1;768:4:103;572:207;;;;:::o;2367:102:8:-;2423:13;2455:7;2448:14;;;;;:::i;6596:429::-;719:10:19;6689:4:8;6770:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;6770:27:8;;;;;;;;;;6689:4;;719:10:19;6815:35:8;;;;6807:85;;;;-1:-1:-1;;;6807:85:8;;3354:2:105;6807:85:8;;;3336:21:105;3393:2;3373:18;;;3366:30;3432:34;3412:18;;;3405:62;-1:-1:-1;;;3483:18:105;;;3476:35;3528:19;;6807:85:8;;;;;;;;;6926:60;6935:5;6942:7;6970:15;6951:16;:34;6926:8;:60::i;3729:189::-;3808:4;719:10:19;3862:28:8;719:10:19;3879:2:8;3883:6;3862:9;:28::i;10123:370::-;-1:-1:-1;;;;;10254:19:8;;10246:68;;;;-1:-1:-1;;;10246:68:8;;3760:2:105;10246:68:8;;;3742:21:105;3799:2;3779:18;;;3772:30;3838:34;3818:18;;;3811:62;-1:-1:-1;;;3889:18:105;;;3882:34;3933:19;;10246:68:8;3558:400:105;10246:68:8;-1:-1:-1;;;;;10332:21:8;;10324:68;;;;-1:-1:-1;;;10324:68:8;;4165:2:105;10324:68:8;;;4147:21:105;4204:2;4184:18;;;4177:30;4243:34;4223:18;;;4216:62;-1:-1:-1;;;4294:18:105;;;4287:32;4336:19;;10324:68:8;3963:398:105;10324:68:8;-1:-1:-1;;;;;10403:18:8;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10454:32;;160:25:105;;;10454:32:8;;133:18:105;10454:32:8;;;;;;;10123:370;;;:::o;10770:441::-;-1:-1:-1;;;;;4091:18:8;;;10900:24;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;10966:37:8;;10962:243;;11047:6;11027:16;:26;;11019:68;;;;-1:-1:-1;;;11019:68:8;;4568:2:105;11019:68:8;;;4550:21:105;4607:2;4587:18;;;4580:30;4646:31;4626:18;;;4619:59;4695:18;;11019:68:8;4366:353:105;11019:68:8;11129:51;11138:5;11145:7;11173:6;11154:16;:25;11129:8;:51::i;:::-;10890:321;10770:441;;;:::o;7488:651::-;-1:-1:-1;;;;;7614:18:8;;7606:68;;;;-1:-1:-1;;;7606:68:8;;4926:2:105;7606:68:8;;;4908:21:105;4965:2;4945:18;;;4938:30;5004:34;4984:18;;;4977:62;-1:-1:-1;;;5055:18:105;;;5048:35;5100:19;;7606:68:8;4724:401:105;7606:68:8;-1:-1:-1;;;;;7692:16:8;;7684:64;;;;-1:-1:-1;;;7684:64:8;;5332:2:105;7684:64:8;;;5314:21:105;5371:2;5351:18;;;5344:30;5410:34;5390:18;;;5383:62;-1:-1:-1;;;5461:18:105;;;5454:33;5504:19;;7684:64:8;5130:399:105;7684:64:8;-1:-1:-1;;;;;7830:15:8;;7808:19;7830:15;;;;;;;;;;;7863:21;;;;7855:72;;;;-1:-1:-1;;;7855:72:8;;5736:2:105;7855:72:8;;;5718:21:105;5775:2;5755:18;;;5748:30;5814:34;5794:18;;;5787:62;-1:-1:-1;;;5865:18:105;;;5858:36;5911:19;;7855:72:8;5534:402:105;7855:72:8;-1:-1:-1;;;;;7961:15:8;;;:9;:15;;;;;;;;;;;7979:20;;;7961:38;;8019:13;;;;;;;;:23;;7993:6;;7961:9;8019:23;;7993:6;;8019:23;:::i;:::-;;;;;;;;8073:2;-1:-1:-1;;;;;8058:26:8;8067:4;-1:-1:-1;;;;;8058:26:8;;8077:6;8058:26;;;;160:25:105;;148:2;133:18;;14:177;8058:26:8;;;;;;;;8095:37;11795:121;8415:389;-1:-1:-1;;;;;8498:21:8;;8490:65;;;;-1:-1:-1;;;8490:65:8;;6143:2:105;8490:65:8;;;6125:21:105;6182:2;6162:18;;;6155:30;6221:33;6201:18;;;6194:61;6272:18;;8490:65:8;5941:355:105;8490:65:8;8642:6;8626:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8658:18:8;;:9;:18;;;;;;;;;;:28;;8680:6;;8658:9;:28;;8680:6;;8658:28;:::i;:::-;;;;-1:-1:-1;;8701:37:8;;160:25:105;;;-1:-1:-1;;;;;8701:37:8;;;8718:1;;8701:37;;148:2:105;133:18;8701:37:8;;;;;;;8415:389;;:::o;196:597:105:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:105;756:15;-1:-1:-1;;752:29:105;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:105:o;798:173::-;866:20;;-1:-1:-1;;;;;915:31:105;;905:42;;895:70;;961:1;958;951:12;895:70;798:173;;;:::o;976:254::-;1044:6;1052;1105:2;1093:9;1084:7;1080:23;1076:32;1073:52;;;1121:1;1118;1111:12;1073:52;1144:29;1163:9;1144:29;:::i;:::-;1134:39;1220:2;1205:18;;;;1192:32;;-1:-1:-1;;;976:254:105:o;1427:328::-;1504:6;1512;1520;1573:2;1561:9;1552:7;1548:23;1544:32;1541:52;;;1589:1;1586;1579:12;1541:52;1612:29;1631:9;1612:29;:::i;:::-;1602:39;;1660:38;1694:2;1683:9;1679:18;1660:38;:::i;:::-;1650:48;;1745:2;1734:9;1730:18;1717:32;1707:42;;1427:328;;;;;:::o;1949:186::-;2008:6;2061:2;2049:9;2040:7;2036:23;2032:32;2029:52;;;2077:1;2074;2067:12;2029:52;2100:29;2119:9;2100:29;:::i;:::-;2090:39;1949:186;-1:-1:-1;;;1949:186:105:o;2140:260::-;2208:6;2216;2269:2;2257:9;2248:7;2244:23;2240:32;2237:52;;;2285:1;2282;2275:12;2237:52;2308:29;2327:9;2308:29;:::i;:::-;2298:39;;2356:38;2390:2;2379:9;2375:18;2356:38;:::i;:::-;2346:48;;2140:260;;;;;:::o;2405:380::-;2484:1;2480:12;;;;2527;;;2548:61;;2602:4;2594:6;2590:17;2580:27;;2548:61;2655:2;2647:6;2644:14;2624:18;2621:38;2618:161;;2701:10;2696:3;2692:20;2689:1;2682:31;2736:4;2733:1;2726:15;2764:4;2761:1;2754:15;2618:161;;2405:380;;;:::o;2790:225::-;2830:3;2861:1;2857:6;2854:1;2851:13;2848:136;;;2906:10;2901:3;2897:20;2894:1;2887:31;2941:4;2938:1;2931:15;2969:4;2966:1;2959:15;2848:136;-1:-1:-1;3000:9:105;;2790:225::o;3020:127::-;3081:10;3076:3;3072:20;3069:1;3062:31;3112:4;3109:1;3102:15;3136:4;3133:1;3126:15",
6499
+ "source": "// SPDX-License-Identifier: AGPLv3\npragma solidity 0.8.14;\n\nimport { ERC20 } from \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\n/**\n * @title Test token contract\n * @author Superfluid\n * @dev Test ERC20 token that allows any one mint new tokens.\n */\ncontract TestToken is ERC20 {\n\n uint256 public constant MINT_LIMIT = 1e12 ether;\n uint8 private _decimals;\n\n constructor(string memory name, string memory symbol, uint8 initDecimals)\n ERC20(name, symbol)\n {\n _decimals = initDecimals;\n }\n\n /**\n * @dev See {ERC20-_mint}.\n */\n function mint(address account, uint256 amount) public returns (bool) {\n assert(amount <= MINT_LIMIT); // no revert msg for you, bad boy\n ERC20._mint(account, amount);\n return true;\n }\n\n function decimals() public view override returns (uint8) {\n return _decimals;\n }\n\n}\n",
6563
6500
  "sourcePath": "/home/runner/work/protocol-monorepo/protocol-monorepo/packages/ethereum-contracts/contracts/utils/TestToken.sol",
6564
6501
  "ast": {
6565
6502
  "absolutePath": "project:/contracts/utils/TestToken.sol",
@@ -6568,19 +6505,19 @@
6568
6505
  1442
6569
6506
  ],
6570
6507
  "TestToken": [
6571
- 36894
6508
+ 36912
6572
6509
  ]
6573
6510
  },
6574
- "id": 36895,
6511
+ "id": 36913,
6575
6512
  "license": "AGPLv3",
6576
6513
  "nodeType": "SourceUnit",
6577
6514
  "nodes": [
6578
6515
  {
6579
- "id": 36829,
6516
+ "id": 36848,
6580
6517
  "literals": [
6581
6518
  "solidity",
6582
6519
  "0.8",
6583
- ".13"
6520
+ ".14"
6584
6521
  ],
6585
6522
  "nodeType": "PragmaDirective",
6586
6523
  "src": "35:23:103"
@@ -6588,16 +6525,16 @@
6588
6525
  {
6589
6526
  "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
6590
6527
  "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
6591
- "id": 36831,
6528
+ "id": 36850,
6592
6529
  "nameLocation": "-1:-1:-1",
6593
6530
  "nodeType": "ImportDirective",
6594
- "scope": 36895,
6531
+ "scope": 36913,
6595
6532
  "sourceUnit": 1443,
6596
6533
  "src": "60:70:103",
6597
6534
  "symbolAliases": [
6598
6535
  {
6599
6536
  "foreign": {
6600
- "id": 36830,
6537
+ "id": 36849,
6601
6538
  "name": "ERC20",
6602
6539
  "nodeType": "Identifier",
6603
6540
  "overloadedDeclarations": [],
@@ -6615,13 +6552,13 @@
6615
6552
  "baseContracts": [
6616
6553
  {
6617
6554
  "baseName": {
6618
- "id": 36833,
6555
+ "id": 36852,
6619
6556
  "name": "ERC20",
6620
6557
  "nodeType": "IdentifierPath",
6621
6558
  "referencedDeclaration": 1442,
6622
6559
  "src": "276:5:103"
6623
6560
  },
6624
- "id": 36834,
6561
+ "id": 36853,
6625
6562
  "nodeType": "InheritanceSpecifier",
6626
6563
  "src": "276:5:103"
6627
6564
  }
@@ -6630,15 +6567,15 @@
6630
6567
  "contractDependencies": [],
6631
6568
  "contractKind": "contract",
6632
6569
  "documentation": {
6633
- "id": 36832,
6570
+ "id": 36851,
6634
6571
  "nodeType": "StructuredDocumentation",
6635
6572
  "src": "132:121:103",
6636
6573
  "text": " @title Test token contract\n @author Superfluid\n @dev Test ERC20 token that allows any one mint new tokens."
6637
6574
  },
6638
6575
  "fullyImplemented": true,
6639
- "id": 36894,
6576
+ "id": 36912,
6640
6577
  "linearizedBaseContracts": [
6641
- 36894,
6578
+ 36912,
6642
6579
  1442,
6643
6580
  1626,
6644
6581
  1520,
@@ -6651,12 +6588,12 @@
6651
6588
  {
6652
6589
  "constant": true,
6653
6590
  "functionSelector": "02775240",
6654
- "id": 36837,
6591
+ "id": 36856,
6655
6592
  "mutability": "constant",
6656
6593
  "name": "MINT_LIMIT",
6657
6594
  "nameLocation": "313:10:103",
6658
6595
  "nodeType": "VariableDeclaration",
6659
- "scope": 36894,
6596
+ "scope": 36912,
6660
6597
  "src": "289:47:103",
6661
6598
  "stateVariable": true,
6662
6599
  "storageLocation": "default",
@@ -6665,7 +6602,7 @@
6665
6602
  "typeString": "uint256"
6666
6603
  },
6667
6604
  "typeName": {
6668
- "id": 36835,
6605
+ "id": 36854,
6669
6606
  "name": "uint256",
6670
6607
  "nodeType": "ElementaryTypeName",
6671
6608
  "src": "289:7:103",
@@ -6676,7 +6613,7 @@
6676
6613
  },
6677
6614
  "value": {
6678
6615
  "hexValue": "31653132",
6679
- "id": 36836,
6616
+ "id": 36855,
6680
6617
  "isConstant": false,
6681
6618
  "isLValue": false,
6682
6619
  "isPure": true,
@@ -6695,12 +6632,12 @@
6695
6632
  },
6696
6633
  {
6697
6634
  "constant": false,
6698
- "id": 36839,
6635
+ "id": 36858,
6699
6636
  "mutability": "mutable",
6700
6637
  "name": "_decimals",
6701
6638
  "nameLocation": "356:9:103",
6702
6639
  "nodeType": "VariableDeclaration",
6703
- "scope": 36894,
6640
+ "scope": 36912,
6704
6641
  "src": "342:23:103",
6705
6642
  "stateVariable": true,
6706
6643
  "storageLocation": "default",
@@ -6709,7 +6646,7 @@
6709
6646
  "typeString": "uint8"
6710
6647
  },
6711
6648
  "typeName": {
6712
- "id": 36838,
6649
+ "id": 36857,
6713
6650
  "name": "uint8",
6714
6651
  "nodeType": "ElementaryTypeName",
6715
6652
  "src": "342:5:103",
@@ -6722,23 +6659,23 @@
6722
6659
  },
6723
6660
  {
6724
6661
  "body": {
6725
- "id": 36856,
6662
+ "id": 36875,
6726
6663
  "nodeType": "Block",
6727
6664
  "src": "478:41:103",
6728
6665
  "statements": [
6729
6666
  {
6730
6667
  "expression": {
6731
- "id": 36854,
6668
+ "id": 36873,
6732
6669
  "isConstant": false,
6733
6670
  "isLValue": false,
6734
6671
  "isPure": false,
6735
6672
  "lValueRequested": false,
6736
6673
  "leftHandSide": {
6737
- "id": 36852,
6674
+ "id": 36871,
6738
6675
  "name": "_decimals",
6739
6676
  "nodeType": "Identifier",
6740
6677
  "overloadedDeclarations": [],
6741
- "referencedDeclaration": 36839,
6678
+ "referencedDeclaration": 36858,
6742
6679
  "src": "488:9:103",
6743
6680
  "typeDescriptions": {
6744
6681
  "typeIdentifier": "t_uint8",
@@ -6748,11 +6685,11 @@
6748
6685
  "nodeType": "Assignment",
6749
6686
  "operator": "=",
6750
6687
  "rightHandSide": {
6751
- "id": 36853,
6688
+ "id": 36872,
6752
6689
  "name": "initDecimals",
6753
6690
  "nodeType": "Identifier",
6754
6691
  "overloadedDeclarations": [],
6755
- "referencedDeclaration": 36845,
6692
+ "referencedDeclaration": 36864,
6756
6693
  "src": "500:12:103",
6757
6694
  "typeDescriptions": {
6758
6695
  "typeIdentifier": "t_uint8",
@@ -6765,24 +6702,24 @@
6765
6702
  "typeString": "uint8"
6766
6703
  }
6767
6704
  },
6768
- "id": 36855,
6705
+ "id": 36874,
6769
6706
  "nodeType": "ExpressionStatement",
6770
6707
  "src": "488:24:103"
6771
6708
  }
6772
6709
  ]
6773
6710
  },
6774
- "id": 36857,
6711
+ "id": 36876,
6775
6712
  "implemented": true,
6776
6713
  "kind": "constructor",
6777
6714
  "modifiers": [
6778
6715
  {
6779
6716
  "arguments": [
6780
6717
  {
6781
- "id": 36848,
6718
+ "id": 36867,
6782
6719
  "name": "name",
6783
6720
  "nodeType": "Identifier",
6784
6721
  "overloadedDeclarations": [],
6785
- "referencedDeclaration": 36841,
6722
+ "referencedDeclaration": 36860,
6786
6723
  "src": "460:4:103",
6787
6724
  "typeDescriptions": {
6788
6725
  "typeIdentifier": "t_string_memory_ptr",
@@ -6790,11 +6727,11 @@
6790
6727
  }
6791
6728
  },
6792
6729
  {
6793
- "id": 36849,
6730
+ "id": 36868,
6794
6731
  "name": "symbol",
6795
6732
  "nodeType": "Identifier",
6796
6733
  "overloadedDeclarations": [],
6797
- "referencedDeclaration": 36843,
6734
+ "referencedDeclaration": 36862,
6798
6735
  "src": "466:6:103",
6799
6736
  "typeDescriptions": {
6800
6737
  "typeIdentifier": "t_string_memory_ptr",
@@ -6802,10 +6739,10 @@
6802
6739
  }
6803
6740
  }
6804
6741
  ],
6805
- "id": 36850,
6742
+ "id": 36869,
6806
6743
  "kind": "baseConstructorSpecifier",
6807
6744
  "modifierName": {
6808
- "id": 36847,
6745
+ "id": 36866,
6809
6746
  "name": "ERC20",
6810
6747
  "nodeType": "IdentifierPath",
6811
6748
  "referencedDeclaration": 1442,
@@ -6819,17 +6756,17 @@
6819
6756
  "nameLocation": "-1:-1:-1",
6820
6757
  "nodeType": "FunctionDefinition",
6821
6758
  "parameters": {
6822
- "id": 36846,
6759
+ "id": 36865,
6823
6760
  "nodeType": "ParameterList",
6824
6761
  "parameters": [
6825
6762
  {
6826
6763
  "constant": false,
6827
- "id": 36841,
6764
+ "id": 36860,
6828
6765
  "mutability": "mutable",
6829
6766
  "name": "name",
6830
6767
  "nameLocation": "398:4:103",
6831
6768
  "nodeType": "VariableDeclaration",
6832
- "scope": 36857,
6769
+ "scope": 36876,
6833
6770
  "src": "384:18:103",
6834
6771
  "stateVariable": false,
6835
6772
  "storageLocation": "memory",
@@ -6838,7 +6775,7 @@
6838
6775
  "typeString": "string"
6839
6776
  },
6840
6777
  "typeName": {
6841
- "id": 36840,
6778
+ "id": 36859,
6842
6779
  "name": "string",
6843
6780
  "nodeType": "ElementaryTypeName",
6844
6781
  "src": "384:6:103",
@@ -6851,12 +6788,12 @@
6851
6788
  },
6852
6789
  {
6853
6790
  "constant": false,
6854
- "id": 36843,
6791
+ "id": 36862,
6855
6792
  "mutability": "mutable",
6856
6793
  "name": "symbol",
6857
6794
  "nameLocation": "418:6:103",
6858
6795
  "nodeType": "VariableDeclaration",
6859
- "scope": 36857,
6796
+ "scope": 36876,
6860
6797
  "src": "404:20:103",
6861
6798
  "stateVariable": false,
6862
6799
  "storageLocation": "memory",
@@ -6865,7 +6802,7 @@
6865
6802
  "typeString": "string"
6866
6803
  },
6867
6804
  "typeName": {
6868
- "id": 36842,
6805
+ "id": 36861,
6869
6806
  "name": "string",
6870
6807
  "nodeType": "ElementaryTypeName",
6871
6808
  "src": "404:6:103",
@@ -6878,12 +6815,12 @@
6878
6815
  },
6879
6816
  {
6880
6817
  "constant": false,
6881
- "id": 36845,
6818
+ "id": 36864,
6882
6819
  "mutability": "mutable",
6883
6820
  "name": "initDecimals",
6884
6821
  "nameLocation": "432:12:103",
6885
6822
  "nodeType": "VariableDeclaration",
6886
- "scope": 36857,
6823
+ "scope": 36876,
6887
6824
  "src": "426:18:103",
6888
6825
  "stateVariable": false,
6889
6826
  "storageLocation": "default",
@@ -6892,7 +6829,7 @@
6892
6829
  "typeString": "uint8"
6893
6830
  },
6894
6831
  "typeName": {
6895
- "id": 36844,
6832
+ "id": 36863,
6896
6833
  "name": "uint8",
6897
6834
  "nodeType": "ElementaryTypeName",
6898
6835
  "src": "426:5:103",
@@ -6907,12 +6844,12 @@
6907
6844
  "src": "383:62:103"
6908
6845
  },
6909
6846
  "returnParameters": {
6910
- "id": 36851,
6847
+ "id": 36870,
6911
6848
  "nodeType": "ParameterList",
6912
6849
  "parameters": [],
6913
6850
  "src": "478:0:103"
6914
6851
  },
6915
- "scope": 36894,
6852
+ "scope": 36912,
6916
6853
  "src": "372:147:103",
6917
6854
  "stateMutability": "nonpayable",
6918
6855
  "virtual": false,
@@ -6920,9 +6857,9 @@
6920
6857
  },
6921
6858
  {
6922
6859
  "body": {
6923
- "id": 36883,
6860
+ "id": 36901,
6924
6861
  "nodeType": "Block",
6925
- "src": "641:128:103",
6862
+ "src": "641:138:103",
6926
6863
  "statements": [
6927
6864
  {
6928
6865
  "expression": {
@@ -6932,18 +6869,18 @@
6932
6869
  "typeIdentifier": "t_uint256",
6933
6870
  "typeString": "uint256"
6934
6871
  },
6935
- "id": 36870,
6872
+ "id": 36889,
6936
6873
  "isConstant": false,
6937
6874
  "isLValue": false,
6938
6875
  "isPure": false,
6939
6876
  "lValueRequested": false,
6940
6877
  "leftExpression": {
6941
- "id": 36868,
6878
+ "id": 36887,
6942
6879
  "name": "amount",
6943
6880
  "nodeType": "Identifier",
6944
6881
  "overloadedDeclarations": [],
6945
- "referencedDeclaration": 36862,
6946
- "src": "659:6:103",
6882
+ "referencedDeclaration": 36881,
6883
+ "src": "658:6:103",
6947
6884
  "typeDescriptions": {
6948
6885
  "typeIdentifier": "t_uint256",
6949
6886
  "typeString": "uint256"
@@ -6952,38 +6889,22 @@
6952
6889
  "nodeType": "BinaryOperation",
6953
6890
  "operator": "<=",
6954
6891
  "rightExpression": {
6955
- "id": 36869,
6892
+ "id": 36888,
6956
6893
  "name": "MINT_LIMIT",
6957
6894
  "nodeType": "Identifier",
6958
6895
  "overloadedDeclarations": [],
6959
- "referencedDeclaration": 36837,
6960
- "src": "669:10:103",
6896
+ "referencedDeclaration": 36856,
6897
+ "src": "668:10:103",
6961
6898
  "typeDescriptions": {
6962
6899
  "typeIdentifier": "t_uint256",
6963
6900
  "typeString": "uint256"
6964
6901
  }
6965
6902
  },
6966
- "src": "659:20:103",
6903
+ "src": "658:20:103",
6967
6904
  "typeDescriptions": {
6968
6905
  "typeIdentifier": "t_bool",
6969
6906
  "typeString": "bool"
6970
6907
  }
6971
- },
6972
- {
6973
- "hexValue": "446f6e2774206d696e7420746f6f206d616e79",
6974
- "id": 36871,
6975
- "isConstant": false,
6976
- "isLValue": false,
6977
- "isPure": true,
6978
- "kind": "string",
6979
- "lValueRequested": false,
6980
- "nodeType": "Literal",
6981
- "src": "681:21:103",
6982
- "typeDescriptions": {
6983
- "typeIdentifier": "t_stringliteral_608840f15d16dbfa1dbf34372a5e79aa6c7278885205580529d034e3ce99c1ac",
6984
- "typeString": "literal_string \"Don't mint too many\""
6985
- },
6986
- "value": "Don't mint too many"
6987
6908
  }
6988
6909
  ],
6989
6910
  "expression": {
@@ -6991,27 +6912,20 @@
6991
6912
  {
6992
6913
  "typeIdentifier": "t_bool",
6993
6914
  "typeString": "bool"
6994
- },
6995
- {
6996
- "typeIdentifier": "t_stringliteral_608840f15d16dbfa1dbf34372a5e79aa6c7278885205580529d034e3ce99c1ac",
6997
- "typeString": "literal_string \"Don't mint too many\""
6998
6915
  }
6999
6916
  ],
7000
- "id": 36867,
7001
- "name": "require",
6917
+ "id": 36886,
6918
+ "name": "assert",
7002
6919
  "nodeType": "Identifier",
7003
- "overloadedDeclarations": [
7004
- 4294967278,
7005
- 4294967278
7006
- ],
7007
- "referencedDeclaration": 4294967278,
7008
- "src": "651:7:103",
6920
+ "overloadedDeclarations": [],
6921
+ "referencedDeclaration": 4294967293,
6922
+ "src": "651:6:103",
7009
6923
  "typeDescriptions": {
7010
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
7011
- "typeString": "function (bool,string memory) pure"
6924
+ "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
6925
+ "typeString": "function (bool) pure"
7012
6926
  }
7013
6927
  },
7014
- "id": 36872,
6928
+ "id": 36890,
7015
6929
  "isConstant": false,
7016
6930
  "isLValue": false,
7017
6931
  "isPure": false,
@@ -7019,39 +6933,39 @@
7019
6933
  "lValueRequested": false,
7020
6934
  "names": [],
7021
6935
  "nodeType": "FunctionCall",
7022
- "src": "651:52:103",
6936
+ "src": "651:28:103",
7023
6937
  "tryCall": false,
7024
6938
  "typeDescriptions": {
7025
6939
  "typeIdentifier": "t_tuple$__$",
7026
6940
  "typeString": "tuple()"
7027
6941
  }
7028
6942
  },
7029
- "id": 36873,
6943
+ "id": 36891,
7030
6944
  "nodeType": "ExpressionStatement",
7031
- "src": "651:52:103"
6945
+ "src": "651:28:103"
7032
6946
  },
7033
6947
  {
7034
6948
  "expression": {
7035
6949
  "arguments": [
7036
6950
  {
7037
- "id": 36877,
6951
+ "id": 36895,
7038
6952
  "name": "account",
7039
6953
  "nodeType": "Identifier",
7040
6954
  "overloadedDeclarations": [],
7041
- "referencedDeclaration": 36860,
7042
- "src": "725:7:103",
6955
+ "referencedDeclaration": 36879,
6956
+ "src": "735:7:103",
7043
6957
  "typeDescriptions": {
7044
6958
  "typeIdentifier": "t_address",
7045
6959
  "typeString": "address"
7046
6960
  }
7047
6961
  },
7048
6962
  {
7049
- "id": 36878,
6963
+ "id": 36896,
7050
6964
  "name": "amount",
7051
6965
  "nodeType": "Identifier",
7052
6966
  "overloadedDeclarations": [],
7053
- "referencedDeclaration": 36862,
7054
- "src": "734:6:103",
6967
+ "referencedDeclaration": 36881,
6968
+ "src": "744:6:103",
7055
6969
  "typeDescriptions": {
7056
6970
  "typeIdentifier": "t_uint256",
7057
6971
  "typeString": "uint256"
@@ -7070,18 +6984,18 @@
7070
6984
  }
7071
6985
  ],
7072
6986
  "expression": {
7073
- "id": 36874,
6987
+ "id": 36892,
7074
6988
  "name": "ERC20",
7075
6989
  "nodeType": "Identifier",
7076
6990
  "overloadedDeclarations": [],
7077
6991
  "referencedDeclaration": 1442,
7078
- "src": "713:5:103",
6992
+ "src": "723:5:103",
7079
6993
  "typeDescriptions": {
7080
6994
  "typeIdentifier": "t_type$_t_contract$_ERC20_$1442_$",
7081
6995
  "typeString": "type(contract ERC20)"
7082
6996
  }
7083
6997
  },
7084
- "id": 36876,
6998
+ "id": 36894,
7085
6999
  "isConstant": false,
7086
7000
  "isLValue": false,
7087
7001
  "isPure": false,
@@ -7089,13 +7003,13 @@
7089
7003
  "memberName": "_mint",
7090
7004
  "nodeType": "MemberAccess",
7091
7005
  "referencedDeclaration": 1259,
7092
- "src": "713:11:103",
7006
+ "src": "723:11:103",
7093
7007
  "typeDescriptions": {
7094
7008
  "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
7095
7009
  "typeString": "function (address,uint256)"
7096
7010
  }
7097
7011
  },
7098
- "id": 36879,
7012
+ "id": 36897,
7099
7013
  "isConstant": false,
7100
7014
  "isLValue": false,
7101
7015
  "isPure": false,
@@ -7103,49 +7017,49 @@
7103
7017
  "lValueRequested": false,
7104
7018
  "names": [],
7105
7019
  "nodeType": "FunctionCall",
7106
- "src": "713:28:103",
7020
+ "src": "723:28:103",
7107
7021
  "tryCall": false,
7108
7022
  "typeDescriptions": {
7109
7023
  "typeIdentifier": "t_tuple$__$",
7110
7024
  "typeString": "tuple()"
7111
7025
  }
7112
7026
  },
7113
- "id": 36880,
7027
+ "id": 36898,
7114
7028
  "nodeType": "ExpressionStatement",
7115
- "src": "713:28:103"
7029
+ "src": "723:28:103"
7116
7030
  },
7117
7031
  {
7118
7032
  "expression": {
7119
7033
  "hexValue": "74727565",
7120
- "id": 36881,
7034
+ "id": 36899,
7121
7035
  "isConstant": false,
7122
7036
  "isLValue": false,
7123
7037
  "isPure": true,
7124
7038
  "kind": "bool",
7125
7039
  "lValueRequested": false,
7126
7040
  "nodeType": "Literal",
7127
- "src": "758:4:103",
7041
+ "src": "768:4:103",
7128
7042
  "typeDescriptions": {
7129
7043
  "typeIdentifier": "t_bool",
7130
7044
  "typeString": "bool"
7131
7045
  },
7132
7046
  "value": "true"
7133
7047
  },
7134
- "functionReturnParameters": 36866,
7135
- "id": 36882,
7048
+ "functionReturnParameters": 36885,
7049
+ "id": 36900,
7136
7050
  "nodeType": "Return",
7137
- "src": "751:11:103"
7051
+ "src": "761:11:103"
7138
7052
  }
7139
7053
  ]
7140
7054
  },
7141
7055
  "documentation": {
7142
- "id": 36858,
7056
+ "id": 36877,
7143
7057
  "nodeType": "StructuredDocumentation",
7144
7058
  "src": "525:42:103",
7145
7059
  "text": " @dev See {ERC20-_mint}."
7146
7060
  },
7147
7061
  "functionSelector": "40c10f19",
7148
- "id": 36884,
7062
+ "id": 36902,
7149
7063
  "implemented": true,
7150
7064
  "kind": "function",
7151
7065
  "modifiers": [],
@@ -7153,17 +7067,17 @@
7153
7067
  "nameLocation": "581:4:103",
7154
7068
  "nodeType": "FunctionDefinition",
7155
7069
  "parameters": {
7156
- "id": 36863,
7070
+ "id": 36882,
7157
7071
  "nodeType": "ParameterList",
7158
7072
  "parameters": [
7159
7073
  {
7160
7074
  "constant": false,
7161
- "id": 36860,
7075
+ "id": 36879,
7162
7076
  "mutability": "mutable",
7163
7077
  "name": "account",
7164
7078
  "nameLocation": "594:7:103",
7165
7079
  "nodeType": "VariableDeclaration",
7166
- "scope": 36884,
7080
+ "scope": 36902,
7167
7081
  "src": "586:15:103",
7168
7082
  "stateVariable": false,
7169
7083
  "storageLocation": "default",
@@ -7172,7 +7086,7 @@
7172
7086
  "typeString": "address"
7173
7087
  },
7174
7088
  "typeName": {
7175
- "id": 36859,
7089
+ "id": 36878,
7176
7090
  "name": "address",
7177
7091
  "nodeType": "ElementaryTypeName",
7178
7092
  "src": "586:7:103",
@@ -7186,12 +7100,12 @@
7186
7100
  },
7187
7101
  {
7188
7102
  "constant": false,
7189
- "id": 36862,
7103
+ "id": 36881,
7190
7104
  "mutability": "mutable",
7191
7105
  "name": "amount",
7192
7106
  "nameLocation": "611:6:103",
7193
7107
  "nodeType": "VariableDeclaration",
7194
- "scope": 36884,
7108
+ "scope": 36902,
7195
7109
  "src": "603:14:103",
7196
7110
  "stateVariable": false,
7197
7111
  "storageLocation": "default",
@@ -7200,7 +7114,7 @@
7200
7114
  "typeString": "uint256"
7201
7115
  },
7202
7116
  "typeName": {
7203
- "id": 36861,
7117
+ "id": 36880,
7204
7118
  "name": "uint256",
7205
7119
  "nodeType": "ElementaryTypeName",
7206
7120
  "src": "603:7:103",
@@ -7215,17 +7129,17 @@
7215
7129
  "src": "585:33:103"
7216
7130
  },
7217
7131
  "returnParameters": {
7218
- "id": 36866,
7132
+ "id": 36885,
7219
7133
  "nodeType": "ParameterList",
7220
7134
  "parameters": [
7221
7135
  {
7222
7136
  "constant": false,
7223
- "id": 36865,
7137
+ "id": 36884,
7224
7138
  "mutability": "mutable",
7225
7139
  "name": "",
7226
7140
  "nameLocation": "-1:-1:-1",
7227
7141
  "nodeType": "VariableDeclaration",
7228
- "scope": 36884,
7142
+ "scope": 36902,
7229
7143
  "src": "635:4:103",
7230
7144
  "stateVariable": false,
7231
7145
  "storageLocation": "default",
@@ -7234,7 +7148,7 @@
7234
7148
  "typeString": "bool"
7235
7149
  },
7236
7150
  "typeName": {
7237
- "id": 36864,
7151
+ "id": 36883,
7238
7152
  "name": "bool",
7239
7153
  "nodeType": "ElementaryTypeName",
7240
7154
  "src": "635:4:103",
@@ -7248,8 +7162,8 @@
7248
7162
  ],
7249
7163
  "src": "634:6:103"
7250
7164
  },
7251
- "scope": 36894,
7252
- "src": "572:197:103",
7165
+ "scope": 36912,
7166
+ "src": "572:207:103",
7253
7167
  "stateMutability": "nonpayable",
7254
7168
  "virtual": false,
7255
7169
  "visibility": "public"
@@ -7259,63 +7173,63 @@
7259
7173
  929
7260
7174
  ],
7261
7175
  "body": {
7262
- "id": 36892,
7176
+ "id": 36910,
7263
7177
  "nodeType": "Block",
7264
- "src": "832:33:103",
7178
+ "src": "842:33:103",
7265
7179
  "statements": [
7266
7180
  {
7267
7181
  "expression": {
7268
- "id": 36890,
7182
+ "id": 36908,
7269
7183
  "name": "_decimals",
7270
7184
  "nodeType": "Identifier",
7271
7185
  "overloadedDeclarations": [],
7272
- "referencedDeclaration": 36839,
7273
- "src": "849:9:103",
7186
+ "referencedDeclaration": 36858,
7187
+ "src": "859:9:103",
7274
7188
  "typeDescriptions": {
7275
7189
  "typeIdentifier": "t_uint8",
7276
7190
  "typeString": "uint8"
7277
7191
  }
7278
7192
  },
7279
- "functionReturnParameters": 36889,
7280
- "id": 36891,
7193
+ "functionReturnParameters": 36907,
7194
+ "id": 36909,
7281
7195
  "nodeType": "Return",
7282
- "src": "842:16:103"
7196
+ "src": "852:16:103"
7283
7197
  }
7284
7198
  ]
7285
7199
  },
7286
7200
  "functionSelector": "313ce567",
7287
- "id": 36893,
7201
+ "id": 36911,
7288
7202
  "implemented": true,
7289
7203
  "kind": "function",
7290
7204
  "modifiers": [],
7291
7205
  "name": "decimals",
7292
- "nameLocation": "784:8:103",
7206
+ "nameLocation": "794:8:103",
7293
7207
  "nodeType": "FunctionDefinition",
7294
7208
  "overrides": {
7295
- "id": 36886,
7209
+ "id": 36904,
7296
7210
  "nodeType": "OverrideSpecifier",
7297
7211
  "overrides": [],
7298
- "src": "807:8:103"
7212
+ "src": "817:8:103"
7299
7213
  },
7300
7214
  "parameters": {
7301
- "id": 36885,
7215
+ "id": 36903,
7302
7216
  "nodeType": "ParameterList",
7303
7217
  "parameters": [],
7304
- "src": "792:2:103"
7218
+ "src": "802:2:103"
7305
7219
  },
7306
7220
  "returnParameters": {
7307
- "id": 36889,
7221
+ "id": 36907,
7308
7222
  "nodeType": "ParameterList",
7309
7223
  "parameters": [
7310
7224
  {
7311
7225
  "constant": false,
7312
- "id": 36888,
7226
+ "id": 36906,
7313
7227
  "mutability": "mutable",
7314
7228
  "name": "",
7315
7229
  "nameLocation": "-1:-1:-1",
7316
7230
  "nodeType": "VariableDeclaration",
7317
- "scope": 36893,
7318
- "src": "825:5:103",
7231
+ "scope": 36911,
7232
+ "src": "835:5:103",
7319
7233
  "stateVariable": false,
7320
7234
  "storageLocation": "default",
7321
7235
  "typeDescriptions": {
@@ -7323,10 +7237,10 @@
7323
7237
  "typeString": "uint8"
7324
7238
  },
7325
7239
  "typeName": {
7326
- "id": 36887,
7240
+ "id": 36905,
7327
7241
  "name": "uint8",
7328
7242
  "nodeType": "ElementaryTypeName",
7329
- "src": "825:5:103",
7243
+ "src": "835:5:103",
7330
7244
  "typeDescriptions": {
7331
7245
  "typeIdentifier": "t_uint8",
7332
7246
  "typeString": "uint8"
@@ -7335,29 +7249,29 @@
7335
7249
  "visibility": "internal"
7336
7250
  }
7337
7251
  ],
7338
- "src": "824:7:103"
7252
+ "src": "834:7:103"
7339
7253
  },
7340
- "scope": 36894,
7341
- "src": "775:90:103",
7254
+ "scope": 36912,
7255
+ "src": "785:90:103",
7342
7256
  "stateMutability": "view",
7343
7257
  "virtual": false,
7344
7258
  "visibility": "public"
7345
7259
  }
7346
7260
  ],
7347
- "scope": 36895,
7348
- "src": "254:614:103",
7261
+ "scope": 36913,
7262
+ "src": "254:624:103",
7349
7263
  "usedErrors": []
7350
7264
  }
7351
7265
  ],
7352
- "src": "35:834:103"
7266
+ "src": "35:844:103"
7353
7267
  },
7354
7268
  "compiler": {
7355
7269
  "name": "solc",
7356
- "version": "0.8.13+commit.abaa5c0e.Emscripten.clang"
7270
+ "version": "0.8.14+commit.80d49f37.Emscripten.clang"
7357
7271
  },
7358
7272
  "networks": {},
7359
7273
  "schemaVersion": "3.4.7",
7360
- "updatedAt": "2022-06-03T09:45:14.379Z",
7274
+ "updatedAt": "2022-06-20T11:32:30.134Z",
7361
7275
  "devdoc": {
7362
7276
  "author": "Superfluid",
7363
7277
  "details": "Test ERC20 token that allows any one mint new tokens.",