{"abi":[{"type":"constructor","inputs":[{"name":"fiatToken","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferWithMultipleAuthorizations","inputs":[{"name":"params","type":"bytes","internalType":"bytes"},{"name":"signatures","type":"bytes","internalType":"bytes"},{"name":"atomic","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"TransferFailed","inputs":[{"name":"authorizer","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516109c83803806109c88339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b0319909216919091179055610963806100656000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063e5c880f014610030575b600080fd5b6100f46004803603606081101561004657600080fd5b81019060208101813564010000000081111561006157600080fd5b82018360208201111561007357600080fd5b8035906020019184600183028401116401000000008311171561009557600080fd5b9193909290916020810190356401000000008111156100b357600080fd5b8201836020820111156100c557600080fd5b803590602001918460018302840111640100000000831117156100e757600080fd5b9193509150351515610108565b604080519115158252519081900360200190f35b600060a8850480610164576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806109346023913960400191505060405180910390fd5b60a8810286146101bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806108dc602a913960400191505060405180910390fd5b80604185041480156101d357506041810284145b610228576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180610906602e913960400191505060405180910390fd5b6000805b8281101561074a57600060a8820290506000604183029050606061028a8c8c8590866028019261025e939291906108b3565b604051602001808383808284378083019250505092505050604051602081830303815290604052610756565b905060608c8c856028019060a88701926102a6939291906108b3565b604051602001808383808284378083019250505092505050604051602081830303815290604052905060008b8b858181106102dd57fe5b9050013560f81c60f81b60f81c905060608c8c86600101906041880192610306939291906108b3565b60405160200180838380828437808301925050509250505060405160208183030381529060405290506000606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3ee160e60e01b878787604051602001808260ff1681526020019150506040516020818303038152906040528760405160200180867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260040185805190602001908083835b6020831061040d57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016103d0565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905287519190930192870191508083835b6020831061049157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610454565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905286519190930192860191508083835b6020831061051557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016104d8565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905285519190930192850191508083835b6020831061059957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161055c565b6001836020036101000a038019825116818451168082178552505050505050905001955050505050506040516020818303038152906040526040518082805190602001908083835b6020831061061e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016105e1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610680576040519150601f19603f3d011682016040523d82523d6000602084013e610685565b606091505b50915091508c8015610695575081155b156106a3576106a38161079d565b81156106b457600190990198610736565b60008680602001905160408110156106cb57600080fd5b50518651909150600090602088019060808110156106e857600080fd5b5060600151604051909150819073ffffffffffffffffffffffffffffffffffffffff8416907f13cab104924a28ca77b3228596ebc8e597aa628ce47d39429f3cb62b9a9ac60f90600090a350505b50506001909601955061022c945050505050565b50149695505050505050565b60148101516028909101516040805173ffffffffffffffffffffffffffffffffffffffff938416602082015292909116828201528051808303820181526060909201905290565b60648151101561080e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f46696174546f6b656e5574696c3a2063616c6c206661696c6564000000000000604482015290519081900360640190fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201908152604483810180516024850152805190938493928392910190606487019080838360005b83811015610878578181015183820152602001610860565b50505050905090810190601f1680156108a55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600080858511156108c2578182fd5b838611156108ce578182fd5b505082019391909203915056fe46696174546f6b656e5574696c3a206c656e677468206f6620706172616d7320697320696e76616c696446696174546f6b656e5574696c3a206c656e677468206f66207369676e61747572657320697320696e76616c696446696174546f6b656e5574696c3a206e6f207472616e736665722070726f7669646564a164736f6c634300060c000a","sourceMap":"684:5381:29:-:0;;;1510:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1510:77:29;1558:10;:22;;-1:-1:-1;;;;;1558:22:29;;;-1:-1:-1;;;;;;1558:22:29;;;;;;;;;684:5381;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063e5c880f014610030575b600080fd5b6100f46004803603606081101561004657600080fd5b81019060208101813564010000000081111561006157600080fd5b82018360208201111561007357600080fd5b8035906020019184600183028401116401000000008311171561009557600080fd5b9193909290916020810190356401000000008111156100b357600080fd5b8201836020820111156100c557600080fd5b803590602001918460018302840111640100000000831117156100e757600080fd5b9193509150351515610108565b604080519115158252519081900360200190f35b600060a8850480610164576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806109346023913960400191505060405180910390fd5b60a8810286146101bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806108dc602a913960400191505060405180910390fd5b80604185041480156101d357506041810284145b610228576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180610906602e913960400191505060405180910390fd5b6000805b8281101561074a57600060a8820290506000604183029050606061028a8c8c8590866028019261025e939291906108b3565b604051602001808383808284378083019250505092505050604051602081830303815290604052610756565b905060608c8c856028019060a88701926102a6939291906108b3565b604051602001808383808284378083019250505092505050604051602081830303815290604052905060008b8b858181106102dd57fe5b9050013560f81c60f81b60f81c905060608c8c86600101906041880192610306939291906108b3565b60405160200180838380828437808301925050509250505060405160208183030381529060405290506000606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3ee160e60e01b878787604051602001808260ff1681526020019150506040516020818303038152906040528760405160200180867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260040185805190602001908083835b6020831061040d57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016103d0565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905287519190930192870191508083835b6020831061049157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610454565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905286519190930192860191508083835b6020831061051557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016104d8565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905285519190930192850191508083835b6020831061059957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161055c565b6001836020036101000a038019825116818451168082178552505050505050905001955050505050506040516020818303038152906040526040518082805190602001908083835b6020831061061e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016105e1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610680576040519150601f19603f3d011682016040523d82523d6000602084013e610685565b606091505b50915091508c8015610695575081155b156106a3576106a38161079d565b81156106b457600190990198610736565b60008680602001905160408110156106cb57600080fd5b50518651909150600090602088019060808110156106e857600080fd5b5060600151604051909150819073ffffffffffffffffffffffffffffffffffffffff8416907f13cab104924a28ca77b3228596ebc8e597aa628ce47d39429f3cb62b9a9ac60f90600090a350505b50506001909601955061022c945050505050565b50149695505050505050565b60148101516028909101516040805173ffffffffffffffffffffffffffffffffffffffff938416602082015292909116828201528051808303820181526060909201905290565b60648151101561080e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f46696174546f6b656e5574696c3a2063616c6c206661696c6564000000000000604482015290519081900360640190fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201908152604483810180516024850152805190938493928392910190606487019080838360005b83811015610878578181015183820152602001610860565b50505050905090810190601f1680156108a55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600080858511156108c2578182fd5b838611156108ce578182fd5b505082019391909203915056fe46696174546f6b656e5574696c3a206c656e677468206f6620706172616d7320697320696e76616c696446696174546f6b656e5574696c3a206c656e677468206f66207369676e61747572657320697320696e76616c696446696174546f6b656e5574696c3a206e6f207472616e736665722070726f7669646564a164736f6c634300060c000a","sourceMap":"684:5381:29:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2270:2409;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2270:2409:29;-1:-1:-1;2270:2409:29;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2441:4;838:3;2475:36;;2529:7;2521:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;838:3;2594:26;;:43;;2586:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2754:3;937:2;2715:10;:35;:42;:88;;;;-1:-1:-1;937:2:29;2761:21;;:42;;2715:88;2694:181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2886:21;2927:9;2922:1657;2946:3;2942:1;:7;2922:1657;;;2970:20;838:3;2993:1;:24;2970:47;;3031:17;937:2;3051:1;:19;3031:39;;3120:19;3142:74;3176:6;;3183:12;3176:38;3196:12;3211:2;3196:17;3176:38;;;;;;;:::i;:::-;3159:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3142:16;:74::i;:::-;3120:96;;3295:19;3334:6;;3341:12;3356:2;3341:17;3334:61;838:3;3359:12;:35;3334:61;;;;;;;:::i;:::-;3317:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3295:101;;3435:7;3451:10;;3462:9;3451:21;;;;;;;;;;;;;;;3445:28;;3435:38;;3518:15;3553:10;;3564:9;3576:1;3564:13;3553:53;937:2;3578:9;:27;3553:53;;;;;;;:::i;:::-;3536:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3518:89;;3762:12;3776:23;3803:10;;;;;;;;;;:15;;1131:10;3853:37;;3892:6;3900;3919:1;3908:13;;;;;;;;;;;;;;;;;;;;;;;;;;;3923:2;3836:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3836:90:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3836:90:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3836:90:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3803:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3761:179;;;;4032:6;:18;;;;;4043:7;4042:8;4032:18;4028:100;;;4070:43;4102:10;4070:31;:43::i;:::-;4206:7;4202:367;;;4233:15;;;;;4202:367;;;4320:12;4348:6;4337:38;;;;;;;;;;;;;;;-1:-1:-1;4337:38:29;4448:56;;4337:38;;-1:-1:-1;4431:13:29;;4337:38;4448:56;;;;;;;;;;;;;-1:-1:-1;4448:56:29;;;;4527:27;4448:56;;-1:-1:-1;4448:56:29;;4527:27;;;;;;;;;4202:367;;;-1:-1:-1;;2951:3:29;;;;;-1:-1:-1;2922:1657:29;;-1:-1:-1;;;;;2922:1657:29;;-1:-1:-1;4652:20:29;;2270:2409;-1:-1:-1;;;;;;2270:2409:29:o;4926:294::-;5115:2;5103:15;;5097:22;5159:2;5147:15;;;5141:22;5189:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;4995:12;5189:24;;;;;;4926:294::o;5363:700::-;5672:3;5652:10;:17;:23;5648:90;;;5691:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5648:90;6042:14;;;;;;;;;;;;6017:4;6001:21;;;6042:14;;;;;;;;6001:21;;;;6042:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:318:-1;;;155:8;143:10;140:24;137:2;;;-1:-1;;167:12;137:2;202:6;192:8;189:20;186:2;;;-1:-1;;212:12;186:2;-1:-1;;244:31;;;293:25;;;;;-1:-1;131:192::o","linkReferences":{}},"methodIdentifiers":{"transferWithMultipleAuthorizations(bytes,bytes,bool)":"e5c880f0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"fiatToken\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"authorizer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"}],\"name\":\"TransferFailed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signatures\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"atomic\",\"type\":\"bool\"}],\"name\":\"transferWithMultipleAuthorizations\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"If FiatTokenProxy is used to hold state and delegate calls, the proxy's address should be provided, not the implementation address\",\"params\":{\"fiatToken\":\"Address of the FiatToken contract\"}},\"transferWithMultipleAuthorizations(bytes,bytes,bool)\":{\"details\":\"The length of params must be multiples of 168, each representing encode-packed data containing from[20] + to[20] + value[32] + validAfter[32] + validBefore[32] + nonce[32], and the length of signatures must be multiples of 65, each representing encode-packed data containing v[1] + r[32] + s[32].\",\"params\":{\"atomic\":\"If true, revert if any of the transfers fail\",\"params\":\"Concatenated, encode-packed parameters\",\"signatures\":\"Concatenated, encode-packed signatures\"},\"returns\":{\"_0\":\"True if every transfer was successful\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":\"Constructor\",\"transferWithMultipleAuthorizations(bytes,bytes,bool)\":{\"notice\":\"Execute multiple authorized ERC20 Transfers\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenUtil.sol\":\"FiatTokenUtil\"},\"evmVersion\":\"istanbul\",\"libraries\":{\"SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenUtil.sol\":{\"keccak256\":\"0x863c84f4226580ea96e246ed381b73f1d6012cfe35faf216b3a73e355b7f60b2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b6a722367ace8eda4e155ee50df90109ec627981a8cef2ab15084454069953c4\",\"dweb:/ipfs/QmWfZZ7gDF6mPmtzcLvjcxoHGG7D1JhEUNgUkUJisKBbQJ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"fiatToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authorizer","type":"address","indexed":true},{"internalType":"bytes32","name":"nonce","type":"bytes32","indexed":true}],"type":"event","name":"TransferFailed","anonymous":false},{"inputs":[{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"bytes","name":"signatures","type":"bytes"},{"internalType":"bool","name":"atomic","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"transferWithMultipleAuthorizations","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"If FiatTokenProxy is used to hold state and delegate calls, the proxy's address should be provided, not the implementation address","params":{"fiatToken":"Address of the FiatToken contract"}},"transferWithMultipleAuthorizations(bytes,bytes,bool)":{"details":"The length of params must be multiples of 168, each representing encode-packed data containing from[20] + to[20] + value[32] + validAfter[32] + validBefore[32] + nonce[32], and the length of signatures must be multiples of 65, each representing encode-packed data containing v[1] + r[32] + s[32].","params":{"atomic":"If true, revert if any of the transfers fail","params":"Concatenated, encode-packed parameters","signatures":"Concatenated, encode-packed signatures"},"returns":{"_0":"True if every transfer was successful"}}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":"Constructor","transferWithMultipleAuthorizations(bytes,bytes,bool)":{"notice":"Execute multiple authorized ERC20 Transfers"}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenUtil.sol":"FiatTokenUtil"},"evmVersion":"istanbul","libraries":{"SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenUtil.sol":{"keccak256":"0x863c84f4226580ea96e246ed381b73f1d6012cfe35faf216b3a73e355b7f60b2","urls":["bzz-raw://b6a722367ace8eda4e155ee50df90109ec627981a8cef2ab15084454069953c4","dweb:/ipfs/QmWfZZ7gDF6mPmtzcLvjcxoHGG7D1JhEUNgUkUJisKBbQJ"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":3827,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenUtil.sol:FiatTokenUtil","label":"_fiatToken","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user","methods":{"constructor":"Constructor","transferWithMultipleAuthorizations(bytes,bytes,bool)":{"notice":"Execute multiple authorized ERC20 Transfers"}}},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"details":"If FiatTokenProxy is used to hold state and delegate calls, the proxy's address should be provided, not the implementation address","params":{"fiatToken":"Address of the FiatToken contract"}},"transferWithMultipleAuthorizations(bytes,bytes,bool)":{"details":"The length of params must be multiples of 168, each representing encode-packed data containing from[20] + to[20] + value[32] + validAfter[32] + validBefore[32] + nonce[32], and the length of signatures must be multiples of 65, each representing encode-packed data containing v[1] + r[32] + s[32].","params":{"atomic":"If true, revert if any of the transfers fail","params":"Concatenated, encode-packed parameters","signatures":"Concatenated, encode-packed signatures"},"returns":{"_0":"True if every transfer was successful"}}}},"ast":{"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenUtil.sol","id":4099,"exportedSymbols":{"FiatTokenUtil":[4098]},"nodeType":"SourceUnit","src":"659:5407:29","nodes":[{"id":3816,"nodeType":"PragmaDirective","src":"659:23:29","nodes":[],"literals":["solidity","0.6",".12"]},{"id":4098,"nodeType":"ContractDefinition","src":"684:5381:29","nodes":[{"id":3819,"nodeType":"VariableDeclaration","src":"790:51:29","nodes":[],"constant":true,"mutability":"constant","name":"_TRANSFER_PARAM_SIZE","overrides":null,"scope":4098,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3817,"name":"uint256","nodeType":"ElementaryTypeName","src":"790:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"313638","id":3818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"838:3:29","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},"value":"168"},"visibility":"private"},{"id":3822,"nodeType":"VariableDeclaration","src":"894:45:29","nodes":[],"constant":true,"mutability":"constant","name":"_SIGNATURE_SIZE","overrides":null,"scope":4098,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3820,"name":"uint256","nodeType":"ElementaryTypeName","src":"894:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"3635","id":3821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"937:2:29","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"visibility":"private"},{"id":3825,"nodeType":"VariableDeclaration","src":"1067:74:29","nodes":[],"constant":true,"mutability":"constant","name":"_TRANSFER_WITH_AUTHORIZATION_SELECTOR","overrides":null,"scope":4098,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":3823,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1067:6:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"argumentTypes":null,"hexValue":"30786533656531363065","id":3824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1131:10:29","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3824031246_by_1","typeString":"int_const 3824031246"},"value":"0xe3ee160e"},"visibility":"private"},{"id":3827,"nodeType":"VariableDeclaration","src":"1148:26:29","nodes":[],"constant":false,"mutability":"mutable","name":"_fiatToken","overrides":null,"scope":4098,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3826,"name":"address","nodeType":"ElementaryTypeName","src":"1148:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"private"},{"id":3833,"nodeType":"EventDefinition","src":"1181:72:29","nodes":[],"anonymous":false,"documentation":null,"name":"TransferFailed","parameters":{"id":3832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3829,"indexed":true,"mutability":"mutable","name":"authorizer","nodeType":"VariableDeclaration","overrides":null,"scope":3833,"src":"1202:26:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3828,"name":"address","nodeType":"ElementaryTypeName","src":"1202:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3831,"indexed":true,"mutability":"mutable","name":"nonce","nodeType":"VariableDeclaration","overrides":null,"scope":3833,"src":"1230:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3830,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1230:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1201:51:29"}},{"id":3844,"nodeType":"FunctionDefinition","src":"1510:77:29","nodes":[],"body":{"id":3843,"nodeType":"Block","src":"1548:39:29","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":3841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3839,"name":"_fiatToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3827,"src":"1558:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3840,"name":"fiatToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3836,"src":"1571:9:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1558:22:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3842,"nodeType":"ExpressionStatement","src":"1558:22:29"}]},"documentation":{"id":3834,"nodeType":"StructuredDocumentation","src":"1259:246:29","text":" @notice Constructor\n @dev If FiatTokenProxy is used to hold state and delegate calls, the\n proxy's address should be provided, not the implementation address\n @param fiatToken Address of the FiatToken contract"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","overrides":null,"parameters":{"id":3837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3836,"mutability":"mutable","name":"fiatToken","nodeType":"VariableDeclaration","overrides":null,"scope":3844,"src":"1522:17:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3835,"name":"address","nodeType":"ElementaryTypeName","src":"1522:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1521:19:29"},"returnParameters":{"id":3838,"nodeType":"ParameterList","parameters":[],"src":"1548:0:29"},"scope":4098,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":4050,"nodeType":"FunctionDefinition","src":"2270:2409:29","nodes":[],"body":{"id":4049,"nodeType":"Block","src":"2451:2228:29","nodes":[],"statements":[{"assignments":[3857],"declarations":[{"constant":false,"id":3857,"mutability":"mutable","name":"num","nodeType":"VariableDeclaration","overrides":null,"scope":4049,"src":"2461:11:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3856,"name":"uint256","nodeType":"ElementaryTypeName","src":"2461:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3862,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3858,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3847,"src":"2475:6:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2475:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":3860,"name":"_TRANSFER_PARAM_SIZE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3819,"src":"2491:20:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2475:36:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2461:50:29"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3864,"name":"num","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3857,"src":"2529:3:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2535:1:29","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2529:7:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"46696174546f6b656e5574696c3a206e6f207472616e736665722070726f7669646564","id":3867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2538:37:29","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ee12958cdf0805e7770bc41b324862fd4f464b924b0c899589aa4b23fb8eb3c8","typeString":"literal_string \"FiatTokenUtil: no transfer provided\""},"value":"FiatTokenUtil: no transfer provided"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ee12958cdf0805e7770bc41b324862fd4f464b924b0c899589aa4b23fb8eb3c8","typeString":"literal_string \"FiatTokenUtil: no transfer provided\""}],"id":3863,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2521:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2521:55:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3869,"nodeType":"ExpressionStatement","src":"2521:55:29"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3871,"name":"num","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3857,"src":"2594:3:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":3872,"name":"_TRANSFER_PARAM_SIZE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3819,"src":"2600:20:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2594:26:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3874,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3847,"src":"2624:6:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2624:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2594:43:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"46696174546f6b656e5574696c3a206c656e677468206f6620706172616d7320697320696e76616c6964","id":3877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2639:44:29","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_154b698c7757c652475a6fdbced82b85390f95cf69f1a30a3d5410afbd622d77","typeString":"literal_string \"FiatTokenUtil: length of params is invalid\""},"value":"FiatTokenUtil: length of params is invalid"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_154b698c7757c652475a6fdbced82b85390f95cf69f1a30a3d5410afbd622d77","typeString":"literal_string \"FiatTokenUtil: length of params is invalid\""}],"id":3870,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2586:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2586:98:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3879,"nodeType":"ExpressionStatement","src":"2586:98:29"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3881,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3849,"src":"2715:10:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2715:17:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":3883,"name":"_SIGNATURE_SIZE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"2735:15:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2715:35:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":3885,"name":"num","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3857,"src":"2754:3:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2715:42:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3887,"name":"num","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3857,"src":"2761:3:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":3888,"name":"_SIGNATURE_SIZE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"2767:15:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2761:21:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3890,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3849,"src":"2786:10:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2786:17:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2761:42:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2715:88:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"46696174546f6b656e5574696c3a206c656e677468206f66207369676e61747572657320697320696e76616c6964","id":3894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2817:48:29","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_48ce06a1e9f56ab4d41af321d612b7127d07371446f62c08abe7993f9de7b0f8","typeString":"literal_string \"FiatTokenUtil: length of signatures is invalid\""},"value":"FiatTokenUtil: length of signatures is invalid"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_48ce06a1e9f56ab4d41af321d612b7127d07371446f62c08abe7993f9de7b0f8","typeString":"literal_string \"FiatTokenUtil: length of signatures is invalid\""}],"id":3880,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2694:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2694:181:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3896,"nodeType":"ExpressionStatement","src":"2694:181:29"},{"assignments":[3898],"declarations":[{"constant":false,"id":3898,"mutability":"mutable","name":"numSuccessful","nodeType":"VariableDeclaration","overrides":null,"scope":4049,"src":"2886:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3897,"name":"uint256","nodeType":"ElementaryTypeName","src":"2886:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3900,"initialValue":{"argumentTypes":null,"hexValue":"30","id":3899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2910:1:29","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2886:25:29"},{"body":{"id":4043,"nodeType":"Block","src":"2956:1623:29","statements":[{"assignments":[3912],"declarations":[{"constant":false,"id":3912,"mutability":"mutable","name":"paramsOffset","nodeType":"VariableDeclaration","overrides":null,"scope":4043,"src":"2970:20:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3911,"name":"uint256","nodeType":"ElementaryTypeName","src":"2970:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3916,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3913,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3902,"src":"2993:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":3914,"name":"_TRANSFER_PARAM_SIZE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3819,"src":"2997:20:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2993:24:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2970:47:29"},{"assignments":[3918],"declarations":[{"constant":false,"id":3918,"mutability":"mutable","name":"sigOffset","nodeType":"VariableDeclaration","overrides":null,"scope":4043,"src":"3031:17:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3917,"name":"uint256","nodeType":"ElementaryTypeName","src":"3031:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3922,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3919,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3902,"src":"3051:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":3920,"name":"_SIGNATURE_SIZE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"3055:15:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3051:19:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3031:39:29"},{"assignments":[3924],"declarations":[{"constant":false,"id":3924,"mutability":"mutable","name":"fromTo","nodeType":"VariableDeclaration","overrides":null,"scope":4043,"src":"3120:19:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3923,"name":"bytes","nodeType":"ElementaryTypeName","src":"3120:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":3936,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3928,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3847,"src":"3176:6:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3930,"name":"paramsOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"3196:12:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"hexValue":"3430","id":3931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3211:2:29","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},"src":"3196:17:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"3176:38:29","startExpression":{"argumentTypes":null,"id":3929,"name":"paramsOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"3183:12:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"expression":{"argumentTypes":null,"id":3926,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3159:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3159:16:29","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3159:56:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3925,"name":"_unpackAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"3142:16:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) pure returns (bytes memory)"}},"id":3935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3142:74:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3120:96:29"},{"assignments":[3938],"declarations":[{"constant":false,"id":3938,"mutability":"mutable","name":"other4","nodeType":"VariableDeclaration","overrides":null,"scope":4043,"src":"3295:19:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3937,"name":"bytes","nodeType":"ElementaryTypeName","src":"3295:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":3950,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3941,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3847,"src":"3334:6:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3945,"name":"paramsOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"3359:12:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":3946,"name":"_TRANSFER_PARAM_SIZE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3819,"src":"3374:20:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3359:35:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"3334:61:29","startExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3942,"name":"paramsOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"3341:12:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"hexValue":"3430","id":3943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3356:2:29","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},"src":"3341:17:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"expression":{"argumentTypes":null,"id":3939,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3317:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3317:16:29","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3317:79:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3295:101:29"},{"assignments":[3952],"declarations":[{"constant":false,"id":3952,"mutability":"mutable","name":"v","nodeType":"VariableDeclaration","overrides":null,"scope":4043,"src":"3435:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3951,"name":"uint8","nodeType":"ElementaryTypeName","src":"3435:5:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"}],"id":3959,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3955,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3849,"src":"3451:10:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3957,"indexExpression":{"argumentTypes":null,"id":3956,"name":"sigOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3918,"src":"3462:9:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3451:21:29","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":3954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3445:5:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3953,"name":"uint8","nodeType":"ElementaryTypeName","src":"3445:5:29","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":3958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3445:28:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"3435:38:29"},{"assignments":[3961],"declarations":[{"constant":false,"id":3961,"mutability":"mutable","name":"rs","nodeType":"VariableDeclaration","overrides":null,"scope":4043,"src":"3518:15:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3960,"name":"bytes","nodeType":"ElementaryTypeName","src":"3518:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":3973,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3964,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3849,"src":"3553:10:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3968,"name":"sigOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3918,"src":"3578:9:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":3969,"name":"_SIGNATURE_SIZE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"3590:15:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3578:27:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"3553:53:29","startExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3965,"name":"sigOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3918,"src":"3564:9:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"hexValue":"31","id":3966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3576:1:29","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3564:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"expression":{"argumentTypes":null,"id":3962,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3536:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3536:16:29","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3536:71:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3518:89:29"},{"assignments":[3975,3977],"declarations":[{"constant":false,"id":3975,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","overrides":null,"scope":4043,"src":"3762:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3974,"name":"bool","nodeType":"ElementaryTypeName","src":"3762:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":3977,"mutability":"mutable","name":"returnData","nodeType":"VariableDeclaration","overrides":null,"scope":4043,"src":"3776:23:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3976,"name":"bytes","nodeType":"ElementaryTypeName","src":"3776:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":3992,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3982,"name":"_TRANSFER_WITH_AUTHORIZATION_SELECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3825,"src":"3853:37:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"id":3983,"name":"fromTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3924,"src":"3892:6:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":3984,"name":"other4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3938,"src":"3900:6:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3987,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3952,"src":"3919:1:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"argumentTypes":null,"id":3985,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3908:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3908:10:29","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3908:13:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":3989,"name":"rs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3961,"src":"3923:2:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":3980,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3836:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3836:16:29","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3836:90:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":3978,"name":"_fiatToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3827,"src":"3803:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3803:15:29","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":3991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3803:137:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3761:179:29"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3993,"name":"atomic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3851,"src":"4032:6:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"id":3995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4042:8:29","subExpression":{"argumentTypes":null,"id":3994,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3975,"src":"4043:7:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4032:18:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":4002,"nodeType":"IfStatement","src":"4028:100:29","trueBody":{"id":4001,"nodeType":"Block","src":"4052:76:29","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3998,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3977,"src":"4102:10:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3997,"name":"_revertWithReasonFromReturnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4097,"src":"4070:31:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":3999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4070:43:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4000,"nodeType":"ExpressionStatement","src":"4070:43:29"}]}},{"condition":{"argumentTypes":null,"id":4003,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3975,"src":"4206:7:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4041,"nodeType":"Block","src":"4269:300:29","statements":[{"assignments":[4009,null],"declarations":[{"constant":false,"id":4009,"mutability":"mutable","name":"from","nodeType":"VariableDeclaration","overrides":null,"scope":4041,"src":"4320:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4008,"name":"address","nodeType":"ElementaryTypeName","src":"4320:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},null],"id":4019,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4012,"name":"fromTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3924,"src":"4348:6:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"components":[{"argumentTypes":null,"id":4014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4357:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4013,"name":"address","nodeType":"ElementaryTypeName","src":"4357:7:29","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},{"argumentTypes":null,"id":4016,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4366:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4015,"name":"address","nodeType":"ElementaryTypeName","src":"4366:7:29","typeDescriptions":{"typeIdentifier":null,"typeString":null}}}],"id":4017,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4356:18:29","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_address_$_$","typeString":"tuple(type(address),type(address))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_address_$_$","typeString":"tuple(type(address),type(address))"}],"expression":{"argumentTypes":null,"id":4010,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4337:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4337:10:29","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4337:38:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_address_payable_$","typeString":"tuple(address payable,address payable)"}},"nodeType":"VariableDeclarationStatement","src":"4319:56:29"},{"assignments":[null,null,null,4021],"declarations":[null,null,null,{"constant":false,"id":4021,"mutability":"mutable","name":"nonce","nodeType":"VariableDeclaration","overrides":null,"scope":4041,"src":"4431:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4020,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4431:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":4035,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4024,"name":"other4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3938,"src":"4459:6:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"components":[{"argumentTypes":null,"id":4026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4468:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4025,"name":"uint256","nodeType":"ElementaryTypeName","src":"4468:7:29","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},{"argumentTypes":null,"id":4028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4477:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4027,"name":"uint256","nodeType":"ElementaryTypeName","src":"4477:7:29","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},{"argumentTypes":null,"id":4030,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4486:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4029,"name":"uint256","nodeType":"ElementaryTypeName","src":"4486:7:29","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},{"argumentTypes":null,"id":4032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4495:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4031,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4495:7:29","typeDescriptions":{"typeIdentifier":null,"typeString":null}}}],"id":4033,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4467:36:29","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_bytes32_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256),type(bytes32))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_bytes32_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256),type(bytes32))"}],"expression":{"argumentTypes":null,"id":4022,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4448:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4023,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4448:10:29","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4448:56:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$","typeString":"tuple(uint256,uint256,uint256,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"4426:78:29"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4037,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4009,"src":"4542:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4038,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4021,"src":"4548:5:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4036,"name":"TransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3833,"src":"4527:14:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":4039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4527:27:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4040,"nodeType":"EmitStatement","src":"4522:32:29"}]},"id":4042,"nodeType":"IfStatement","src":"4202:367:29","trueBody":{"id":4007,"nodeType":"Block","src":"4215:48:29","statements":[{"expression":{"argumentTypes":null,"id":4005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4233:15:29","subExpression":{"argumentTypes":null,"id":4004,"name":"numSuccessful","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3898,"src":"4233:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4006,"nodeType":"ExpressionStatement","src":"4233:15:29"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3905,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3902,"src":"2942:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":3906,"name":"num","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3857,"src":"2946:3:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2942:7:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4044,"initializationExpression":{"assignments":[3902],"declarations":[{"constant":false,"id":3902,"mutability":"mutable","name":"i","nodeType":"VariableDeclaration","overrides":null,"scope":4044,"src":"2927:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3901,"name":"uint256","nodeType":"ElementaryTypeName","src":"2927:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3904,"initialValue":{"argumentTypes":null,"hexValue":"30","id":3903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2939:1:29","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2927:13:29"},"loopExpression":{"expression":{"argumentTypes":null,"id":3909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2951:3:29","subExpression":{"argumentTypes":null,"id":3908,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3902,"src":"2951:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3910,"nodeType":"ExpressionStatement","src":"2951:3:29"},"nodeType":"ForStatement","src":"2922:1657:29"},{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4045,"name":"numSuccessful","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3898,"src":"4652:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":4046,"name":"num","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3857,"src":"4669:3:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4652:20:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3855,"id":4048,"nodeType":"Return","src":"4645:27:29"}]},"documentation":{"id":3845,"nodeType":"StructuredDocumentation","src":"1593:672:29","text":" @notice Execute multiple authorized ERC20 Transfers\n @dev The length of params must be multiples of 168, each representing\n encode-packed data containing from[20] + to[20] + value[32] +\n validAfter[32] + validBefore[32] + nonce[32], and the length of\n signatures must be multiples of 65, each representing encode-packed data\n containing v[1] + r[32] + s[32].\n @param params      Concatenated, encode-packed parameters\n @param signatures  Concatenated, encode-packed signatures\n @param atomic      If true, revert if any of the transfers fail\n @return            True if every transfer was successful"},"functionSelector":"e5c880f0","implemented":true,"kind":"function","modifiers":[],"name":"transferWithMultipleAuthorizations","overrides":null,"parameters":{"id":3852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3847,"mutability":"mutable","name":"params","nodeType":"VariableDeclaration","overrides":null,"scope":4050,"src":"2323:21:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3846,"name":"bytes","nodeType":"ElementaryTypeName","src":"2323:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":3849,"mutability":"mutable","name":"signatures","nodeType":"VariableDeclaration","overrides":null,"scope":4050,"src":"2354:25:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3848,"name":"bytes","nodeType":"ElementaryTypeName","src":"2354:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":3851,"mutability":"mutable","name":"atomic","nodeType":"VariableDeclaration","overrides":null,"scope":4050,"src":"2389:11:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3850,"name":"bool","nodeType":"ElementaryTypeName","src":"2389:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2313:93:29"},"returnParameters":{"id":3855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3854,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":4050,"src":"2441:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3853,"name":"bool","nodeType":"ElementaryTypeName","src":"2441:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2440:6:29"},"scope":4098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":4072,"nodeType":"FunctionDefinition","src":"4926:294:29","nodes":[],"body":{"id":4071,"nodeType":"Block","src":"5009:211:29","nodes":[],"statements":[{"assignments":[4059],"declarations":[{"constant":false,"id":4059,"mutability":"mutable","name":"addr1","nodeType":"VariableDeclaration","overrides":null,"scope":4071,"src":"5019:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4058,"name":"address","nodeType":"ElementaryTypeName","src":"5019:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":4060,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"5019:13:29"},{"assignments":[4062],"declarations":[{"constant":false,"id":4062,"mutability":"mutable","name":"addr2","nodeType":"VariableDeclaration","overrides":null,"scope":4071,"src":"5042:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4061,"name":"address","nodeType":"ElementaryTypeName","src":"5042:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":4063,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"5042:13:29"},{"AST":{"nodeType":"YulBlock","src":"5074:99:29","statements":[{"nodeType":"YulAssignment","src":"5088:31:29","value":{"arguments":[{"arguments":[{"name":"packed","nodeType":"YulIdentifier","src":"5107:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"5115:2:29","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5103:3:29"},"nodeType":"YulFunctionCall","src":"5103:15:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5097:5:29"},"nodeType":"YulFunctionCall","src":"5097:22:29"},"variableNames":[{"name":"addr1","nodeType":"YulIdentifier","src":"5088:5:29"}]},{"nodeType":"YulAssignment","src":"5132:31:29","value":{"arguments":[{"arguments":[{"name":"packed","nodeType":"YulIdentifier","src":"5151:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"5159:2:29","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5147:3:29"},"nodeType":"YulFunctionCall","src":"5147:15:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5141:5:29"},"nodeType":"YulFunctionCall","src":"5141:22:29"},"variableNames":[{"name":"addr2","nodeType":"YulIdentifier","src":"5132:5:29"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":4059,"isOffset":false,"isSlot":false,"src":"5088:5:29","valueSize":1},{"declaration":4062,"isOffset":false,"isSlot":false,"src":"5132:5:29","valueSize":1},{"declaration":4053,"isOffset":false,"isSlot":false,"src":"5107:6:29","valueSize":1},{"declaration":4053,"isOffset":false,"isSlot":false,"src":"5151:6:29","valueSize":1}],"id":4064,"nodeType":"InlineAssembly","src":"5065:108:29"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4067,"name":"addr1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4059,"src":"5200:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4068,"name":"addr2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4062,"src":"5207:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":4065,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5189:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5189:10:29","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5189:24:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":4057,"id":4070,"nodeType":"Return","src":"5182:31:29"}]},"documentation":{"id":4051,"nodeType":"StructuredDocumentation","src":"4685:236:29","text":" @dev Converts encodePacked pair of addresses (20bytes + 20 bytes) to\n regular ABI-encoded pair of addresses (32bytes + 32bytes)\n @param packed Packed data (40 bytes)\n @return Unpacked data (64 bytes)"},"implemented":true,"kind":"function","modifiers":[],"name":"_unpackAddresses","overrides":null,"parameters":{"id":4054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4053,"mutability":"mutable","name":"packed","nodeType":"VariableDeclaration","overrides":null,"scope":4072,"src":"4952:19:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4052,"name":"bytes","nodeType":"ElementaryTypeName","src":"4952:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"4951:21:29"},"returnParameters":{"id":4057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4056,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":4072,"src":"4995:12:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4055,"name":"bytes","nodeType":"ElementaryTypeName","src":"4995:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"4994:14:29"},"scope":4098,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":4097,"nodeType":"FunctionDefinition","src":"5363:700:29","nodes":[],"body":{"id":4096,"nodeType":"Block","src":"5442:621:29","nodes":[],"statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4078,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4075,"src":"5652:10:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5652:17:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"hexValue":"313030","id":4080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5672:3:29","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"5652:23:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":4087,"nodeType":"IfStatement","src":"5648:90:29","trueBody":{"id":4086,"nodeType":"Block","src":"5677:61:29","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"46696174546f6b656e5574696c3a2063616c6c206661696c6564","id":4083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5698:28:29","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4086fd5152d787e3e411b7893484466b1a3b106b3a8d474bb6d62e97cfccebb3","typeString":"literal_string \"FiatTokenUtil: call failed\""},"value":"FiatTokenUtil: call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4086fd5152d787e3e411b7893484466b1a3b106b3a8d474bb6d62e97cfccebb3","typeString":"literal_string \"FiatTokenUtil: call failed\""}],"id":4082,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5691:6:29","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5691:36:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4085,"nodeType":"ExpressionStatement","src":"5691:36:29"}]}},{"assignments":[4089],"declarations":[{"constant":false,"id":4089,"mutability":"mutable","name":"reason","nodeType":"VariableDeclaration","overrides":null,"scope":4096,"src":"5817:20:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4088,"name":"string","nodeType":"ElementaryTypeName","src":"5817:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"id":4090,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"5817:20:29"},{"AST":{"nodeType":"YulBlock","src":"5856:176:29","statements":[{"nodeType":"YulAssignment","src":"5991:31:29","value":{"arguments":[{"name":"returnData","nodeType":"YulIdentifier","src":"6005:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"6017:4:29","type":"","value":"0x44"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6001:3:29"},"nodeType":"YulFunctionCall","src":"6001:21:29"},"variableNames":[{"name":"reason","nodeType":"YulIdentifier","src":"5991:6:29"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":4089,"isOffset":false,"isSlot":false,"src":"5991:6:29","valueSize":1},{"declaration":4075,"isOffset":false,"isSlot":false,"src":"6005:10:29","valueSize":1}],"id":4091,"nodeType":"InlineAssembly","src":"5847:185:29"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4093,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4089,"src":"6049:6:29","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4092,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6042:6:29","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6042:14:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4095,"nodeType":"ExpressionStatement","src":"6042:14:29"}]},"documentation":{"id":4073,"nodeType":"StructuredDocumentation","src":"5226:132:29","text":" @dev Revert with reason string extracted from the return data\n @param returnData    Return data from a call"},"implemented":true,"kind":"function","modifiers":[],"name":"_revertWithReasonFromReturnData","overrides":null,"parameters":{"id":4076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4075,"mutability":"mutable","name":"returnData","nodeType":"VariableDeclaration","overrides":null,"scope":4097,"src":"5404:23:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4074,"name":"bytes","nodeType":"ElementaryTypeName","src":"5404:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"5403:25:29"},"returnParameters":{"id":4077,"nodeType":"ParameterList","parameters":[],"src":"5442:0:29"},"scope":4098,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[4098],"name":"FiatTokenUtil","scope":4099}],"license":"Apache-2.0"},"id":29}