ETH Price: $2,580.80 (+0.20%)
Gas: 0.44 Gwei

Transaction Decoder

Block:
9788200 at Apr-01-2020 08:35:07 PM +UTC
Transaction Fee:
0.0048958119 ETH $12.64
Gas Used:
750,316 Gas / 6.525 Gwei

Emitted Events:

35 RebalancingSetTokenV2.Transfer( from=[Sender] 0xd1898665a01a91ac10bd2c6cb1899336df34ac33, to=0x0000000000000000000000000000000000000000, value=891364902506000000 )
36 Core.SetRedeemed( _setAddress=RebalancingSetTokenV2, _quantity=891364902506000000 )
37 SetToken.Transfer( from=Vault, to=[Receiver] 0x4f57e1f2020c35cd2fb45cf53cfeb6ff2e796180, value=2239999999997578 )
38 SetToken.Transfer( from=[Receiver] 0x4f57e1f2020c35cd2fb45cf53cfeb6ff2e796180, to=0x0000000000000000000000000000000000000000, value=2230000000000000 )
39 Core.SetRedeemed( _setAddress=SetToken, _quantity=2230000000000000 )
40 FiatTokenProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x0000000000000000000000005b67871c3a857de81a1ca0f9f7945e5670d986dc, 0x0000000000000000000000000acd0b5cf881cd8398ac563872209de1ce15df0f, 0000000000000000000000000000000000000000000000000000000005226618 )
41 Exchange.Fill( makerAddress=0x56178a0d5F301bAf6CF3e1Cd53d9863437345Bf9, feeRecipientAddress=0x55662E22...f8f0C9FBb, takerAddress=ZeroExExchangeWrapper, senderAddress=ZeroExExchangeWrapper, makerAssetFilledAmount=655010569538438141, takerAssetFilledAmount=86140440, makerFeePaid=0, takerFeePaid=0, orderHash=88AE47EDCAD8B20EAB98F4565034801ABC89B5BCDA606812638F7117A636E2D5, makerAssetData=0xF47261B0000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2, takerAssetData=0xF47261B0000000000000000000000000A0B86991C6218B36C1D19D4A2E9EB0CE3606EB48 )
42 WETH9.Transfer( src=0x56178a0d5F301bAf6CF3e1Cd53d9863437345Bf9, dst=ZeroExExchangeWrapper, wad=655010569538438141 )
43 FiatTokenProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x0000000000000000000000000acd0b5cf881cd8398ac563872209de1ce15df0f, 0x00000000000000000000000056178a0d5f301baf6cf3e1cd53d9863437345bf9, 0000000000000000000000000000000000000000000000000000000005226618 )
44 WETH9.Transfer( src=ZeroExExchangeWrapper, dst=Vault, wad=655010569538438141 )
45 WETH9.Transfer( src=Vault, dst=[Receiver] 0x4f57e1f2020c35cd2fb45cf53cfeb6ff2e796180, wad=655010569538438141 )
46 0x8f2d580c3cccd96c3541386daac0af71c5d1c0f9.0x06c4316d43c46a4ded573b4dee3cf64d66b87d192f4f6bd88b830ae18b29c7c0( 0x06c4316d43c46a4ded573b4dee3cf64d66b87d192f4f6bd88b830ae18b29c7c0, 0x0000000000000000000000004f57e1f2020c35cd2fb45cf53cfeb6ff2e796180, 00000000000000000000000032a3d08e194a6ec29c7532a80a86c661782aa98d, 0000000000000000000000000000000000000000000000000007ec2c55d96000, 0000000000000000000000000000000000000000000000000000000000000080, 00000000000000000000000000000000000000000000000000000000000000c0, 0000000000000000000000000000000000000000000000000000000000000001, 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2, 0000000000000000000000000000000000000000000000000000000000000001, 000000000000000000000000000000000000000000000000091710a4817703fd )
47 WETH9.Withdrawal( src=[Receiver] 0x4f57e1f2020c35cd2fb45cf53cfeb6ff2e796180, wad=655010569538438141 )
48 SetToken.Transfer( from=[Receiver] 0x4f57e1f2020c35cd2fb45cf53cfeb6ff2e796180, to=Vault, value=9999999997578 )
49 SetToken.Approval( owner=[Receiver] 0x4f57e1f2020c35cd2fb45cf53cfeb6ff2e796180, spender=TransferProxy, value=115792089237316195423570985008687907853269984665640564039456337266594978624695 )
50 0x4f57e1f2020c35cd2fb45cf53cfeb6ff2e796180.0xb29ec646affe25971fbbb20d14f7c9beed0d7d8e6a47eb46beb893487aa22fa4( 0xb29ec646affe25971fbbb20d14f7c9beed0d7d8e6a47eb46beb893487aa22fa4, 0x00000000000000000000000078e14b9a8d006ec7e23988a0a87263569c3f4839, 0x000000000000000000000000d1898665a01a91ac10bd2c6cb1899336df34ac33, 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2, 0000000000000000000000000000000000000000000000000c5ec3a7fb1eee80, 000000000000000000000000000000000000000000000000091710a4817703fd )

Account State Difference:

  Address   Before After State Difference Code
0x080bf510...022937712
(0x: Exchange v2.1)
0x32a3D08e...1782aa98d
(firepool)
86.614360595913078244 Eth86.619256407813078244 Eth0.0048958119
0x4f57e1f2...f2e796180
(Set: Rebalancing Set Exchange Issuance Module V2)
0x5B67871C...670D986Dc
(Set: Vault)
0x78E14B9A...69c3F4839
0x8F2D580C...1C5d1c0f9
(Set: Exchange Issuance Module V2)
0xA0b86991...E3606eB48
0xC02aaA39...83C756Cc2 2,497,270.087304162664046365 Eth2,497,269.432293593125608224 Eth0.655010569538438141
0xD1898665...6df34AC33
0.272151190581234393 Eth
Nonce: 232
0.922265948219672534 Eth
Nonce: 233
0.650114757638438141

Execution Trace

Set: Rebalancing Set Exchange Issuance Module V2.4b096173( )
  • Core.validSets( _set=0x78E14B9A8D006eC7E23988a0A87263569c3F4839 ) => ( True )
  • RebalancingSetTokenV2.STATICCALL( )
  • RebalancingSetTokenV2.STATICCALL( )
  • Core.redeemModule( _burnAddress=0xD1898665a01A91AC10bD2C6cb1899336df34AC33, _incrementAddress=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180, _set=0x78E14B9A8D006eC7E23988a0A87263569c3F4839, _quantity=891364902506000000 )
    • 0xdc733ec262f32882f7c05525cc2d09f2c04d86ac.49468457( )
      • RebalancingSetTokenV2.STATICCALL( )
      • RebalancingSetTokenV2.burn( _from=0xD1898665a01A91AC10bD2C6cb1899336df34AC33, _quantity=891364902506000000 )
      • RebalancingSetTokenV2.STATICCALL( )
      • RebalancingSetTokenV2.STATICCALL( )
      • RebalancingSetTokenV2.STATICCALL( )
      • CoreIssuanceLibrary.calculateRequiredComponentQuantities( _componentUnits=[2513], _naturalUnit=1000000, _quantity=891364902506000000 ) => ( [2239999999997578] )
      • Vault.batchDecrementTokenOwner( _tokens=[0x32a3D08e194A6EC29C7532A80A86c661782aa98d], _owner=0x78E14B9A8D006eC7E23988a0A87263569c3F4839, _quantities=[2239999999997578] )
      • RebalancingSetTokenV2.STATICCALL( )
      • Vault.batchIncrementTokenOwner( _tokens=[0x32a3D08e194A6EC29C7532A80A86c661782aa98d], _owner=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180, _quantities=[2239999999997578] )
      • Vault.getOwnerBalance( _token=0x32a3D08e194A6EC29C7532A80A86c661782aa98d, _owner=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180 ) => ( 2239999999997578 )
      • Core.withdrawModule( _from=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180, _to=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180, _token=0x32a3D08e194A6EC29C7532A80A86c661782aa98d, _quantity=2239999999997578 )
        • CommonValidationsLibrary.validateNonEmpty( _addressArray=[0x32a3D08e194A6EC29C7532A80A86c661782aa98d] )
        • CommonValidationsLibrary.validateEqualLength( _addressArray=[0x32a3D08e194A6EC29C7532A80A86c661782aa98d], _uint256Array=[2239999999997578] )
        • Vault.batchDecrementTokenOwner( _tokens=[0x32a3D08e194A6EC29C7532A80A86c661782aa98d], _owner=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180, _quantities=[2239999999997578] )
        • Vault.batchWithdrawTo( _tokens=[0x32a3D08e194A6EC29C7532A80A86c661782aa98d], _to=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180, _quantities=[2239999999997578] )
          • ERC20Wrapper.balanceOf( _token=0x32a3D08e194A6EC29C7532A80A86c661782aa98d, _owner=0x5B67871C3a857dE81A1ca0f9F7945e5670D986Dc ) => ( 945435559266929596 )
            • SetToken.balanceOf( owner=0x5B67871C3a857dE81A1ca0f9F7945e5670D986Dc ) => ( 945435559266929596 )
            • ERC20Wrapper.beabacc8( )
              • SetToken.transfer( to=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180, value=2239999999997578 ) => ( True )
              • ERC20Wrapper.balanceOf( _token=0x32a3D08e194A6EC29C7532A80A86c661782aa98d, _owner=0x5B67871C3a857dE81A1ca0f9F7945e5670D986Dc ) => ( 943195559266932018 )
                • SetToken.balanceOf( owner=0x5B67871C3a857dE81A1ca0f9F7945e5670D986Dc ) => ( 943195559266932018 )
                • Set: Exchange Issuance Module V2.188eec69( )
                  • Core.validSets( _set=0x32a3D08e194A6EC29C7532A80A86c661782aa98d ) => ( True )
                  • SetToken.STATICCALL( )
                  • Core.exchangeIds( _exchangeId=1 ) => ( 0x0acd0b5cF881cd8398ac563872209De1ce15dF0F )
                  • 0xdc733ec262f32882f7c05525cc2d09f2c04d86ac.03cd8870( )
                    • SetToken.tokenIsComponent( _tokenAddress=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 ) => ( True )
                    • Core.redeemModule( _burnAddress=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180, _incrementAddress=0x8F2D580C3cccd96c3541386daac0AF71C5d1c0f9, _set=0x32a3D08e194A6EC29C7532A80A86c661782aa98d, _quantity=2230000000000000 )
                      • 0xdc733ec262f32882f7c05525cc2d09f2c04d86ac.49468457( )
                        • SetToken.STATICCALL( )
                        • SetToken.burn( _from=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180, _quantity=2230000000000000 )
                          • SetTokenFactory.CALL( )
                          • SetToken.STATICCALL( )
                          • SetToken.STATICCALL( )
                          • SetToken.STATICCALL( )
                          • CoreIssuanceLibrary.calculateRequiredComponentQuantities( _componentUnits=[386280], _naturalUnit=10000000000000, _quantity=2230000000000000 ) => ( [86140440] )
                          • Vault.batchDecrementTokenOwner( _tokens=[0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48], _owner=0x32a3D08e194A6EC29C7532A80A86c661782aa98d, _quantities=[86140440] )
                          • SetToken.STATICCALL( )
                          • Vault.batchIncrementTokenOwner( _tokens=[0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48], _owner=0x8F2D580C3cccd96c3541386daac0AF71C5d1c0f9, _quantities=[86140440] )
                          • Vault.getOwnerBalance( _token=0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, _owner=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180 ) => ( 0 )
                          • Core.exchangeIds( _exchangeId=1 ) => ( 0x0acd0b5cF881cd8398ac563872209De1ce15dF0F )
                          • AddressToAddressWhiteList.whitelist( 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 ) => ( 0x0000000000000000000000000000000000000000 )
                          • Core.withdrawModule( _from=0x8F2D580C3cccd96c3541386daac0AF71C5d1c0f9, _to=0x0acd0b5cF881cd8398ac563872209De1ce15dF0F, _token=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, _quantity=86140440 )
                            • CommonValidationsLibrary.validateNonEmpty( _addressArray=[0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48] )
                            • CommonValidationsLibrary.validateEqualLength( _addressArray=[0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48], _uint256Array=[86140440] )
                            • Vault.batchDecrementTokenOwner( _tokens=[0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48], _owner=0x8F2D580C3cccd96c3541386daac0AF71C5d1c0f9, _quantities=[86140440] )
                            • Vault.batchWithdrawTo( _tokens=[0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48], _to=0x0acd0b5cF881cd8398ac563872209De1ce15dF0F, _quantities=[86140440] )
                              • ERC20Wrapper.balanceOf( _token=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, _owner=0x5B67871C3a857dE81A1ca0f9F7945e5670D986Dc ) => ( 589091491407 )
                                • FiatTokenProxy.70a08231( )
                                  • FiatTokenV1.balanceOf( account=0x5B67871C3a857dE81A1ca0f9F7945e5670D986Dc ) => ( 589091491407 )
                                  • ERC20Wrapper.beabacc8( )
                                    • FiatTokenProxy.a9059cbb( )
                                      • FiatTokenV1.transfer( _to=0x0acd0b5cF881cd8398ac563872209De1ce15dF0F, _value=86140440 ) => ( True )
                                      • ERC20Wrapper.balanceOf( _token=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, _owner=0x5B67871C3a857dE81A1ca0f9F7945e5670D986Dc ) => ( 589005350967 )
                                        • FiatTokenProxy.70a08231( )
                                          • FiatTokenV1.balanceOf( account=0x5B67871C3a857dE81A1ca0f9F7945e5670D986Dc ) => ( 589005350967 )
                                          • Core.exchangeIds( _exchangeId=1 ) => ( 0x0acd0b5cF881cd8398ac563872209De1ce15dF0F )
                                          • ZeroExExchangeWrapper.exchange( _exchangeData=[{name:caller, type:address, order:1, indexed:false, value:0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180, valueString:0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180}, {name:orderCount, type:uint256, order:2, indexed:false, value:1, valueString:1}], _ordersData=0x000000000000000000000000000000000000000000000000000000000000004200000000000000000000000000000000000000000000000000000000052266181BEB2E5AD2F911E5B404FFA856878A0F70052478546E0AE5DF549A87E142F3BEBC115F03710E4ECBBC9BF37BC15F33779F71AF8726F2F766553C044654EB49D6330300000000000000000000000056178A0D5F301BAF6CF3E1CD53D9863437345BF90000000000000000000000000ACD0B5CF881CD8398AC563872209DE1CE15DF0F00000000000000000000000055662E225A3376759C24331A9AED764F8F0C9FBB0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091761FAA85BC000000000000000000000000000000000000000000000000000000000000522940900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005E84FC070000000000000000000000000000000000000000000000001601CC6460D17695000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2000000000000000000000000A0B86991C6218B36C1D19D4A2E9EB0CE3606EB48 ) => ( [{name:receiveTokens, type:address[], order:1, indexed:false, value:[0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2], valueString:[0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2]}, {name:receiveTokenAmounts, type:uint256[], order:2, indexed:false, value:[655010569538438141], valueString:[655010569538438141]}] )
                                            • Core.validModules( _module=0x8F2D580C3cccd96c3541386daac0AF71C5d1c0f9 ) => ( True )
                                            • FiatTokenProxy.dd62ed3e( )
                                              • FiatTokenV1.allowance( owner=0x0acd0b5cF881cd8398ac563872209De1ce15dF0F, spender=0x95E6F48254609A6ee006F7D493c8e5fB97094ceF ) => ( 115792089237316195423570985008687907853269984665640564039457584005743654488726 )
                                              • Exchange.fillOrKillOrder( order=[{name:makerAddress, type:address, order:1, indexed:false, value:0x56178a0d5F301bAf6CF3e1Cd53d9863437345Bf9, valueString:0x56178a0d5F301bAf6CF3e1Cd53d9863437345Bf9}, {name:takerAddress, type:address, order:2, indexed:false, value:0x0acd0b5cF881cd8398ac563872209De1ce15dF0F, valueString:0x0acd0b5cF881cd8398ac563872209De1ce15dF0F}, {name:feeRecipientAddress, type:address, order:3, indexed:false, value:0x55662E225a3376759c24331a9aeD764f8f0C9FBb, valueString:0x55662E225a3376759c24331a9aeD764f8f0C9FBb}, {name:senderAddress, type:address, order:4, indexed:false, value:0x0000000000000000000000000000000000000000, valueString:0x0000000000000000000000000000000000000000}, {name:makerAssetAmount, type:uint256, order:5, indexed:false, value:655100000000000000, valueString:655100000000000000}, {name:takerAssetAmount, type:uint256, order:6, indexed:false, value:86152201, valueString:86152201}, {name:makerFee, type:uint256, order:7, indexed:false, value:0, valueString:0}, {name:takerFee, type:uint256, order:8, indexed:false, value:0, valueString:0}, {name:expirationTimeSeconds, type:uint256, order:9, indexed:false, value:1585773575, valueString:1585773575}, {name:salt, type:uint256, order:10, indexed:false, value:1585773275304261269, valueString:1585773275304261269}, {name:makerAssetData, type:bytes, order:11, indexed:false, value:0xF47261B0000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2, valueString:0xF47261B0000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2}, {name:takerAssetData, type:bytes, order:12, indexed:false, value:0xF47261B0000000000000000000000000A0B86991C6218B36C1D19D4A2E9EB0CE3606EB48, valueString:0xF47261B0000000000000000000000000A0B86991C6218B36C1D19D4A2E9EB0CE3606EB48}], takerAssetFillAmount=86140440, signature=0x1BEB2E5AD2F911E5B404FFA856878A0F70052478546E0AE5DF549A87E142F3BEBC115F03710E4ECBBC9BF37BC15F33779F71AF8726F2F766553C044654EB49D63303 ) => ( fillResults=[{name:makerAssetFilledAmount, type:uint256, order:1, indexed:false, value:655010569538438141, valueString:655010569538438141}, {name:takerAssetFilledAmount, type:uint256, order:2, indexed:false, value:86140440, valueString:86140440}, {name:makerFeePaid, type:uint256, order:3, indexed:false, value:0, valueString:0}, {name:takerFeePaid, type:uint256, order:4, indexed:false, value:0, valueString:0}] )
                                                • Null: 0x000...001.10c71cc1( )
                                                • ERC20Proxy.a85e59e4( )
                                                  • WETH9.transferFrom( src=0x56178a0d5F301bAf6CF3e1Cd53d9863437345Bf9, dst=0x0acd0b5cF881cd8398ac563872209De1ce15dF0F, wad=655010569538438141 ) => ( True )
                                                  • ERC20Proxy.a85e59e4( )
                                                    • FiatTokenProxy.23b872dd( )
                                                      • FiatTokenV1.transferFrom( _from=0x0acd0b5cF881cd8398ac563872209De1ce15dF0F, _to=0x56178a0d5F301bAf6CF3e1Cd53d9863437345Bf9, _value=86140440 ) => ( True )
                                                      • WETH9.allowance( 0x0acd0b5cF881cd8398ac563872209De1ce15dF0F, 0x882d80D3a191859d64477eb78Cca46599307ec1C ) => ( 115792089237316195423570985008687907853269984665640564039457584007913129639935 )
                                                      • ERC20Wrapper.balanceOf( _token=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, _owner=0x0acd0b5cF881cd8398ac563872209De1ce15dF0F ) => ( 0 )
                                                        • FiatTokenProxy.70a08231( )
                                                          • FiatTokenV1.balanceOf( account=0x0acd0b5cF881cd8398ac563872209De1ce15dF0F ) => ( 0 )
                                                          • Core.batchDepositModule( _from=0x0acd0b5cF881cd8398ac563872209De1ce15dF0F, _to=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180, _tokens=[0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2], _quantities=[655010569538438141] )
                                                            • CommonValidationsLibrary.validateNonEmpty( _addressArray=[0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2] )
                                                            • CommonValidationsLibrary.validateEqualLength( _addressArray=[0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2], _uint256Array=[655010569538438141] )
                                                            • TransferProxy.batchTransfer( _tokens=[0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2], _quantities=[655010569538438141], _from=0x0acd0b5cF881cd8398ac563872209De1ce15dF0F, _to=0x5B67871C3a857dE81A1ca0f9F7945e5670D986Dc )
                                                              • ERC20Wrapper.balanceOf( _token=0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, _owner=0x5B67871C3a857dE81A1ca0f9F7945e5670D986Dc ) => ( 16037821156534073822955 )
                                                                • WETH9.balanceOf( 0x5B67871C3a857dE81A1ca0f9F7945e5670D986Dc ) => ( 16037821156534073822955 )
                                                                • ERC20Wrapper.15dacbea( )
                                                                  • WETH9.transferFrom( src=0x0acd0b5cF881cd8398ac563872209De1ce15dF0F, dst=0x5B67871C3a857dE81A1ca0f9F7945e5670D986Dc, wad=655010569538438141 ) => ( True )
                                                                  • ERC20Wrapper.balanceOf( _token=0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, _owner=0x5B67871C3a857dE81A1ca0f9F7945e5670D986Dc ) => ( 16038476167103612261096 )
                                                                    • WETH9.balanceOf( 0x5B67871C3a857dE81A1ca0f9F7945e5670D986Dc ) => ( 16038476167103612261096 )
                                                                    • Vault.batchIncrementTokenOwner( _tokens=[0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2], _owner=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180, _quantities=[655010569538438141] )
                                                                    • Vault.getOwnerBalance( _token=0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, _owner=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180 ) => ( 655010569538438141 )
                                                                    • Core.batchWithdrawModule( _from=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180, _to=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180, _tokens=[0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2], _quantities=[655010569538438141] )
                                                                      • CommonValidationsLibrary.validateNonEmpty( _addressArray=[0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2] )
                                                                      • CommonValidationsLibrary.validateEqualLength( _addressArray=[0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2], _uint256Array=[655010569538438141] )
                                                                      • Vault.batchDecrementTokenOwner( _tokens=[0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2], _owner=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180, _quantities=[655010569538438141] )
                                                                      • Vault.batchWithdrawTo( _tokens=[0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2], _to=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180, _quantities=[655010569538438141] )
                                                                        • ERC20Wrapper.balanceOf( _token=0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, _owner=0x5B67871C3a857dE81A1ca0f9F7945e5670D986Dc ) => ( 16038476167103612261096 )
                                                                          • WETH9.balanceOf( 0x5B67871C3a857dE81A1ca0f9F7945e5670D986Dc ) => ( 16038476167103612261096 )
                                                                          • ERC20Wrapper.beabacc8( )
                                                                            • WETH9.transfer( dst=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180, wad=655010569538438141 ) => ( True )
                                                                            • ERC20Wrapper.balanceOf( _token=0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, _owner=0x5B67871C3a857dE81A1ca0f9F7945e5670D986Dc ) => ( 16037821156534073822955 )
                                                                              • WETH9.balanceOf( 0x5B67871C3a857dE81A1ca0f9F7945e5670D986Dc ) => ( 16037821156534073822955 )
                                                                              • SetToken.STATICCALL( )
                                                                              • Vault.getOwnerBalance( _token=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, _owner=0x8F2D580C3cccd96c3541386daac0AF71C5d1c0f9 ) => ( 0 )
                                                                              • Vault.getOwnerBalance( _token=0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, _owner=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180 ) => ( 0 )
                                                                              • ERC20Wrapper.balanceOf( _token=0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, _owner=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180 ) => ( 655010569538438141 )
                                                                                • WETH9.balanceOf( 0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180 ) => ( 655010569538438141 )
                                                                                • WETH9.withdraw( wad=655010569538438141 )
                                                                                  • ETH 0.655010569538438141 Set: Rebalancing Set Exchange Issuance Module V2.CALL( )
                                                                                  • ETH 0.655010569538438141 0xd1898665a01a91ac10bd2c6cb1899336df34ac33.CALL( )
                                                                                  • ERC20Wrapper.balanceOf( _token=0x32a3D08e194A6EC29C7532A80A86c661782aa98d, _owner=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180 ) => ( 9999999997578 )
                                                                                    • SetToken.balanceOf( owner=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180 ) => ( 9999999997578 )
                                                                                    • SetToken.allowance( owner=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180, spender=0x882d80D3a191859d64477eb78Cca46599307ec1C ) => ( 115792089237316195423570985008687907853269984665640564039456337276594978622273 )
                                                                                    • Core.depositModule( _from=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180, _to=0xD1898665a01A91AC10bD2C6cb1899336df34AC33, _token=0x32a3D08e194A6EC29C7532A80A86c661782aa98d, _quantity=9999999997578 )
                                                                                      • CommonValidationsLibrary.validateNonEmpty( _addressArray=[0x32a3D08e194A6EC29C7532A80A86c661782aa98d] )
                                                                                      • CommonValidationsLibrary.validateEqualLength( _addressArray=[0x32a3D08e194A6EC29C7532A80A86c661782aa98d], _uint256Array=[9999999997578] )
                                                                                      • TransferProxy.batchTransfer( _tokens=[0x32a3D08e194A6EC29C7532A80A86c661782aa98d], _quantities=[9999999997578], _from=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180, _to=0x5B67871C3a857dE81A1ca0f9F7945e5670D986Dc )
                                                                                        • ERC20Wrapper.balanceOf( _token=0x32a3D08e194A6EC29C7532A80A86c661782aa98d, _owner=0x5B67871C3a857dE81A1ca0f9F7945e5670D986Dc ) => ( 943195559266932018 )
                                                                                          • SetToken.balanceOf( owner=0x5B67871C3a857dE81A1ca0f9F7945e5670D986Dc ) => ( 943195559266932018 )
                                                                                          • ERC20Wrapper.15dacbea( )
                                                                                            • SetToken.transferFrom( from=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180, to=0x5B67871C3a857dE81A1ca0f9F7945e5670D986Dc, value=9999999997578 ) => ( True )
                                                                                            • ERC20Wrapper.balanceOf( _token=0x32a3D08e194A6EC29C7532A80A86c661782aa98d, _owner=0x5B67871C3a857dE81A1ca0f9F7945e5670D986Dc ) => ( 943205559266929596 )
                                                                                              • SetToken.balanceOf( owner=0x5B67871C3a857dE81A1ca0f9F7945e5670D986Dc ) => ( 943205559266929596 )
                                                                                              • Vault.batchIncrementTokenOwner( _tokens=[0x32a3D08e194A6EC29C7532A80A86c661782aa98d], _owner=0xD1898665a01A91AC10bD2C6cb1899336df34AC33, _quantities=[9999999997578] )
                                                                                              • SetToken.STATICCALL( )
                                                                                              • ERC20Wrapper.balanceOf( _token=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, _owner=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180 ) => ( 0 )
                                                                                                • FiatTokenProxy.70a08231( )
                                                                                                  • FiatTokenV1.balanceOf( account=0x4f57e1f2020C35cd2Fb45CF53CFEb6ff2e796180 ) => ( 0 )
                                                                                                  • AddressToAddressWhiteList.whitelist( 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 ) => ( 0x0000000000000000000000000000000000000000 )
                                                                                                    File 1 of 16: RebalancingSetTokenV2
                                                                                                    1
                                                                                                    2
                                                                                                    3
                                                                                                    4
                                                                                                    5
                                                                                                    6
                                                                                                    7
                                                                                                    8
                                                                                                    9
                                                                                                    10
                                                                                                    11
                                                                                                    12
                                                                                                    13
                                                                                                    14
                                                                                                    15
                                                                                                    16
                                                                                                    // File: openzeppelin-solidity/contracts/token/ERC20/IERC20.sol
                                                                                                    pragma solidity ^0.5.2;
                                                                                                    pragma experimental "ABIEncoderV2";
                                                                                                    /**
                                                                                                    * @title ERC20 interface
                                                                                                    * @dev see https://eips.ethereum.org/EIPS/eip-20
                                                                                                    */
                                                                                                    interface IERC20 {
                                                                                                    function transfer(address to, uint256 value) external returns (bool);
                                                                                                    function approve(address spender, uint256 value) external returns (bool);
                                                                                                    function transferFrom(address from, address to, uint256 value) external returns (bool);
                                                                                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                                                                                    File 2 of 16: Core
                                                                                                    1
                                                                                                    2
                                                                                                    3
                                                                                                    4
                                                                                                    5
                                                                                                    6
                                                                                                    7
                                                                                                    8
                                                                                                    9
                                                                                                    10
                                                                                                    11
                                                                                                    12
                                                                                                    13
                                                                                                    14
                                                                                                    15
                                                                                                    16
                                                                                                    // File: openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol
                                                                                                    pragma solidity ^0.5.2;
                                                                                                    /**
                                                                                                    * @title Helps contracts guard against reentrancy attacks.
                                                                                                    * @author Remco Bloemen <remco@2π.com>, Eenae <alexey@mixbytes.io>
                                                                                                    * @dev If you mark a function `nonReentrant`, you should also
                                                                                                    * mark it `external`.
                                                                                                    */
                                                                                                    contract ReentrancyGuard {
                                                                                                    /// @dev counter to allow mutex lock with only one SSTORE operation
                                                                                                    uint256 private _guardCounter;
                                                                                                    constructor () internal {
                                                                                                    // The counter starts at one to prevent changing it from zero to a non-zero
                                                                                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                                                                                    File 3 of 16: Vault
                                                                                                    1
                                                                                                    2
                                                                                                    3
                                                                                                    4
                                                                                                    5
                                                                                                    6
                                                                                                    7
                                                                                                    8
                                                                                                    9
                                                                                                    10
                                                                                                    11
                                                                                                    12
                                                                                                    13
                                                                                                    14
                                                                                                    15
                                                                                                    16
                                                                                                    // File: openzeppelin-solidity/contracts/math/SafeMath.sol
                                                                                                    pragma solidity ^0.5.2;
                                                                                                    /**
                                                                                                    * @title SafeMath
                                                                                                    * @dev Unsigned math operations with safety checks that revert on error
                                                                                                    */
                                                                                                    library SafeMath {
                                                                                                    /**
                                                                                                    * @dev Multiplies two unsigned integers, reverts on overflow.
                                                                                                    */
                                                                                                    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
                                                                                                    // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
                                                                                                    // benefit is lost if 'b' is also tested.
                                                                                                    // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
                                                                                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                                                                                    File 4 of 16: SetToken
                                                                                                    1
                                                                                                    2
                                                                                                    3
                                                                                                    4
                                                                                                    5
                                                                                                    6
                                                                                                    7
                                                                                                    8
                                                                                                    9
                                                                                                    10
                                                                                                    11
                                                                                                    12
                                                                                                    13
                                                                                                    14
                                                                                                    15
                                                                                                    16
                                                                                                    // File: openzeppelin-solidity/contracts/token/ERC20/IERC20.sol
                                                                                                    pragma solidity ^0.5.2;
                                                                                                    /**
                                                                                                    * @title ERC20 interface
                                                                                                    * @dev see https://eips.ethereum.org/EIPS/eip-20
                                                                                                    */
                                                                                                    interface IERC20 {
                                                                                                    function transfer(address to, uint256 value) external returns (bool);
                                                                                                    function approve(address spender, uint256 value) external returns (bool);
                                                                                                    function transferFrom(address from, address to, uint256 value) external returns (bool);
                                                                                                    function totalSupply() external view returns (uint256);
                                                                                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                                                                                    File 5 of 16: FiatTokenProxy
                                                                                                    1
                                                                                                    2
                                                                                                    3
                                                                                                    4
                                                                                                    5
                                                                                                    6
                                                                                                    7
                                                                                                    8
                                                                                                    9
                                                                                                    10
                                                                                                    11
                                                                                                    12
                                                                                                    13
                                                                                                    14
                                                                                                    15
                                                                                                    16
                                                                                                    pragma solidity ^0.4.24;
                                                                                                    // File: zos-lib/contracts/upgradeability/Proxy.sol
                                                                                                    /**
                                                                                                    * @title Proxy
                                                                                                    * @dev Implements delegation of calls to other contracts, with proper
                                                                                                    * forwarding of return values and bubbling of failures.
                                                                                                    * It defines a fallback function that delegates all calls to the address
                                                                                                    * returned by the abstract _implementation() internal function.
                                                                                                    */
                                                                                                    contract Proxy {
                                                                                                    /**
                                                                                                    * @dev Fallback function.
                                                                                                    * Implemented entirely in `_fallback`.
                                                                                                    */
                                                                                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                                                                                    File 6 of 16: Exchange
                                                                                                    1
                                                                                                    2
                                                                                                    3
                                                                                                    4
                                                                                                    5
                                                                                                    6
                                                                                                    7
                                                                                                    8
                                                                                                    9
                                                                                                    10
                                                                                                    11
                                                                                                    12
                                                                                                    13
                                                                                                    14
                                                                                                    15
                                                                                                    16
                                                                                                    /*
                                                                                                    Copyright 2018 ZeroEx Intl.
                                                                                                    Licensed under the Apache License, Version 2.0 (the "License");
                                                                                                    you may not use this file except in compliance with the License.
                                                                                                    You may obtain a copy of the License at
                                                                                                    http://www.apache.org/licenses/LICENSE-2.0
                                                                                                    Unless required by applicable law or agreed to in writing, software
                                                                                                    distributed under the License is distributed on an "AS IS" BASIS,
                                                                                                    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                                                                                                    See the License for the specific language governing permissions and
                                                                                                    limitations under the License.
                                                                                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                                                                                    File 7 of 16: ZeroExExchangeWrapper
                                                                                                    1
                                                                                                    2
                                                                                                    3
                                                                                                    4
                                                                                                    5
                                                                                                    6
                                                                                                    7
                                                                                                    8
                                                                                                    9
                                                                                                    10
                                                                                                    11
                                                                                                    12
                                                                                                    13
                                                                                                    14
                                                                                                    15
                                                                                                    16
                                                                                                    // File: openzeppelin-solidity/contracts/math/SafeMath.sol
                                                                                                    pragma solidity ^0.5.2;
                                                                                                    pragma experimental "ABIEncoderV2";
                                                                                                    /**
                                                                                                    * @title SafeMath
                                                                                                    * @dev Unsigned math operations with safety checks that revert on error
                                                                                                    */
                                                                                                    library SafeMath {
                                                                                                    /**
                                                                                                    * @dev Multiplies two unsigned integers, reverts on overflow.
                                                                                                    */
                                                                                                    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
                                                                                                    // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
                                                                                                    // benefit is lost if 'b' is also tested.
                                                                                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                                                                                    File 8 of 16: WETH9
                                                                                                    1
                                                                                                    2
                                                                                                    3
                                                                                                    4
                                                                                                    5
                                                                                                    6
                                                                                                    7
                                                                                                    8
                                                                                                    9
                                                                                                    10
                                                                                                    11
                                                                                                    12
                                                                                                    13
                                                                                                    14
                                                                                                    15
                                                                                                    16
                                                                                                    // Copyright (C) 2015, 2016, 2017 Dapphub
                                                                                                    // This program is free software: you can redistribute it and/or modify
                                                                                                    // it under the terms of the GNU General Public License as published by
                                                                                                    // the Free Software Foundation, either version 3 of the License, or
                                                                                                    // (at your option) any later version.
                                                                                                    // This program is distributed in the hope that it will be useful,
                                                                                                    // but WITHOUT ANY WARRANTY; without even the implied warranty of
                                                                                                    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
                                                                                                    // GNU General Public License for more details.
                                                                                                    // You should have received a copy of the GNU General Public License
                                                                                                    // along with this program. If not, see <http://www.gnu.org/licenses/>.
                                                                                                    pragma solidity ^0.4.18;
                                                                                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                                                                                    File 9 of 16: CoreIssuanceLibrary
                                                                                                    1
                                                                                                    2
                                                                                                    3
                                                                                                    4
                                                                                                    5
                                                                                                    6
                                                                                                    7
                                                                                                    8
                                                                                                    9
                                                                                                    10
                                                                                                    11
                                                                                                    12
                                                                                                    13
                                                                                                    14
                                                                                                    15
                                                                                                    16
                                                                                                    // File: openzeppelin-solidity/contracts/math/SafeMath.sol
                                                                                                    pragma solidity ^0.5.2;
                                                                                                    /**
                                                                                                    * @title SafeMath
                                                                                                    * @dev Unsigned math operations with safety checks that revert on error
                                                                                                    */
                                                                                                    library SafeMath {
                                                                                                    /**
                                                                                                    * @dev Multiplies two unsigned integers, reverts on overflow.
                                                                                                    */
                                                                                                    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
                                                                                                    // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
                                                                                                    // benefit is lost if 'b' is also tested.
                                                                                                    // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
                                                                                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                                                                                    File 10 of 16: CommonValidationsLibrary
                                                                                                    1
                                                                                                    2
                                                                                                    3
                                                                                                    4
                                                                                                    5
                                                                                                    6
                                                                                                    7
                                                                                                    8
                                                                                                    9
                                                                                                    10
                                                                                                    11
                                                                                                    12
                                                                                                    13
                                                                                                    14
                                                                                                    15
                                                                                                    16
                                                                                                    /*
                                                                                                    Copyright 2018 Set Labs Inc.
                                                                                                    Licensed under the Apache License, Version 2.0 (the "License");
                                                                                                    you may not use this file except in compliance with the License.
                                                                                                    You may obtain a copy of the License at
                                                                                                    http://www.apache.org/licenses/LICENSE-2.0
                                                                                                    Unless required by applicable law or agreed to in writing, software
                                                                                                    distributed under the License is distributed on an "AS IS" BASIS,
                                                                                                    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                                                                                                    See the License for the specific language governing permissions and
                                                                                                    limitations under the License.
                                                                                                    */
                                                                                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                                                                                    File 11 of 16: ERC20Wrapper
                                                                                                    1
                                                                                                    {"CommonMath.sol":{"content":"/*\r\n Copyright 2018 Set Labs Inc.\r\n\r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n
                                                                                                         you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\r\n http://www.apache.org
                                                                                                        /licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is
                                                                                                        distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the
                                                                                                        specific language governing permissions and\r\n limitations under the License.\r\n*/\r\n\r\npragma solidity 0.5.7;\r\n\r\nimport \"./SafeMath
                                                                                                        .sol\";\r\n\r\n\r\nlibrary CommonMath {\r\n using SafeMath for uint256;\r\n\r\n /**\r\n * Calculates and returns the maximum value for a
                                                                                                        uint256\r\n *\r\n * @return The maximum value for uint256\r\n */\r\n function maxUInt256()\r\n internal\r\n pure\r\n
                                                                                                         returns (uint256)\r\n {\r\n return 2 ** 256 - 1;\r\n }\r\n\r\n /**\r\n * @dev Performs the power on a specified value,
                                                                                                        reverts on overflow.\r\n */\r\n function safePower(\r\n uint256 a,\r\n uint256 pow\r\n )\r\n internal\r\n
                                                                                                        pure\r\n returns (uint256)\r\n {\r\n require(a \u003e 0);\r\n\r\n uint256 result = 1;\r\n for (uint256 i = 0; i
                                                                                                        \u003c pow; i++){\r\n uint256 previousResult = result;\r\n\r\n // Using safemath multiplication prevents overflows\r\n
                                                                                                         result = previousResult.mul(a);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Checks for rounding errors and
                                                                                                        returns value of potential partial amounts of a principal\r\n *\r\n * @param _principal Number fractional amount is derived from\r\n
                                                                                                         * @param _numerator Numerator of fraction\r\n * @param _denominator Denominator of fraction\r\n * @return uint256
                                                                                                        Fractional amount of principal calculated\r\n */\r\n function getPartialAmount(\r\n uint256 _principal,\r\n uint256 _numerator
                                                                                                        ,\r\n uint256 _denominator\r\n )\r\n internal\r\n pure\r\n returns (uint256)\r\n {\r\n // Get remainder of
                                                                                                        partial amount (if 0 not a partial amount)\r\n uint256 remainder = mulmod(_principal, _numerator, _denominator);\r\n\r\n // Return if
                                                                                                        not a partial amount\r\n if (remainder == 0) {\r\n return _principal.mul(_numerator).div(_denominator);\r\n }\r\n\r\n
                                                                                                         // Calculate error percentage\r\n uint256 errPercentageTimes1000000 = remainder.mul(1000000).div(_numerator.mul(_principal));\r\n\r\n
                                                                                                         // Require error percentage is less than 0.1%.\r\n require(\r\n errPercentageTimes1000000 \u003c 1000,\r\n
                                                                                                        \"CommonMath.getPartialAmount: Rounding error exceeds bounds\"\r\n );\r\n\r\n return _principal.mul(_numerator).div(_denominator
                                                                                                        );\r\n }\r\n\r\n}\r\n\r\n"},"ERC20Wrapper.sol":{"content":"/*\r\n Copyright 2018 Set Labs Inc.\r\n\r\n Licensed under the Apache License,
                                                                                                        Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License
                                                                                                        at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n
                                                                                                        distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied
                                                                                                        .\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n*/\r\n\r\npragma solidity 0.5
                                                                                                        .7;\r\n\r\nimport \"./CommonMath.sol\";\r\nimport \"./IERC20.sol\";\r\n\r\n\r\n/**\r\n * @title ERC20Wrapper\r\n * @author Set Protocol\r\n *\r\n *
                                                                                                        This library contains functions for interacting wtih ERC20 tokens, even those not fully compliant.\r\n * For all functions we will only accept
                                                                                                        tokens that return a null or true value, any other values will\r\n * cause the operation to revert.\r\n */\r\nlibrary ERC20Wrapper {\r\n\r\n //
                                                                                                        ============ Internal Functions ============\r\n\r\n /**\r\n * Check balance owner\u0027s balance of ERC20 token\r\n *\r\n * @param
                                                                                                         _token The address of the ERC20 token\r\n * @param _owner The owner who\u0027s balance is being checked\r\n * @return
                                                                                                        uint256 The _owner\u0027s amount of tokens\r\n */\r\n function balanceOf(\r\n address _token,\r\n address _owner\r\n
                                                                                                         )\r\n external\r\n view\r\n returns (uint256)\r\n {\r\n return IERC20(_token).balanceOf(_owner);\r\n }\r\n\r\n
                                                                                                         /**\r\n * Checks spender\u0027s allowance to use token\u0027s on owner\u0027s behalf.\r\n *\r\n * @param _token The address
                                                                                                        of the ERC20 token\r\n * @param _owner The token owner address\r\n * @param _spender The address the allowance is being
                                                                                                        checked on\r\n * @return uint256 The spender\u0027s allowance on behalf of owner\r\n */\r\n function allowance(\r\n
                                                                                                        address _token,\r\n address _owner,\r\n address _spender\r\n )\r\n internal\r\n view\r\n returns (uint256
                                                                                                        )\r\n {\r\n return IERC20(_token).allowance(_owner, _spender);\r\n }\r\n\r\n /**\r\n * Transfers tokens from an address.
                                                                                                        Handle\u0027s tokens that return true or null.\r\n * If other value returned, reverts.\r\n *\r\n * @param _token The address
                                                                                                        of the ERC20 token\r\n * @param _to The address to transfer to\r\n * @param _quantity The amount of tokens to
                                                                                                        transfer\r\n */\r\n function transfer(\r\n address _token,\r\n address _to,\r\n uint256 _quantity\r\n )\r\n
                                                                                                        external\r\n {\r\n IERC20(_token).transfer(_to, _quantity);\r\n\r\n // Check that transfer returns true or null\r\n require
                                                                                                        (\r\n checkSuccess(),\r\n \"ERC20Wrapper.transfer: Bad return value\"\r\n );\r\n }\r\n\r\n /**\r\n *
                                                                                                        Transfers tokens from an address (that has set allowance on the proxy).\r\n * Handle\u0027s tokens that return true or null. If other value
                                                                                                        returned, reverts.\r\n *\r\n * @param _token The address of the ERC20 token\r\n * @param _from The address to
                                                                                                        transfer from\r\n * @param _to The address to transfer to\r\n * @param _quantity The number of tokens to transfer\r\n
                                                                                                         */\r\n function transferFrom(\r\n address _token,\r\n address _from,\r\n address _to,\r\n uint256 _quantity\r\n
                                                                                                         )\r\n external\r\n {\r\n IERC20(_token).transferFrom(_from, _to, _quantity);\r\n\r\n // Check that transferFrom returns
                                                                                                        true or null\r\n require(\r\n checkSuccess(),\r\n \"ERC20Wrapper.transferFrom: Bad return value\"\r\n );\r\n
                                                                                                         }\r\n\r\n /**\r\n * Grants spender ability to spend on owner\u0027s behalf.\r\n * Handle\u0027s tokens that return true or null. If
                                                                                                        other value returned, reverts.\r\n *\r\n * @param _token The address of the ERC20 token\r\n * @param _spender The
                                                                                                        address to approve for transfer\r\n * @param _quantity The amount of tokens to approve spender for\r\n */\r\n function approve
                                                                                                        (\r\n address _token,\r\n address _spender,\r\n uint256 _quantity\r\n )\r\n internal\r\n {\r\n IERC20
                                                                                                        (_token).approve(_spender, _quantity);\r\n\r\n // Check that approve returns true or null\r\n require(\r\n checkSuccess
                                                                                                        (),\r\n \"ERC20Wrapper.approve: Bad return value\"\r\n );\r\n }\r\n\r\n /**\r\n * Ensure\u0027s the owner has granted
                                                                                                        enough allowance for system to\r\n * transfer tokens.\r\n *\r\n * @param _token The address of the ERC20 token\r\n *
                                                                                                        @param _owner The address of the token owner\r\n * @param _spender The address to grant/check allowance for\r\n * @param
                                                                                                         _quantity The amount to see if allowed for\r\n */\r\n function ensureAllowance(\r\n address _token,\r\n address _owner
                                                                                                        ,\r\n address _spender,\r\n uint256 _quantity\r\n )\r\n internal\r\n {\r\n uint256 currentAllowance = allowance
                                                                                                        (_token, _owner, _spender);\r\n if (currentAllowance \u003c _quantity) {\r\n approve(\r\n _token,\r\n
                                                                                                         _spender,\r\n CommonMath.maxUInt256()\r\n );\r\n }\r\n }\r\n\r\n // ============ Private Functions
                                                                                                        ============\r\n\r\n /**\r\n * Checks the return value of the previous function up to 32 bytes. Returns true if the previous\r\n *
                                                                                                        function returned 0 bytes or 1.\r\n */\r\n function checkSuccess(\r\n )\r\n private\r\n pure\r\n returns (bool)\r\n
                                                                                                         {\r\n // default to failure\r\n uint256 returnValue = 0;\r\n\r\n assembly {\r\n // check number of bytes
                                                                                                        returned from last function call\r\n switch returndatasize\r\n\r\n // no bytes returned: assume success\r\n case
                                                                                                        0x0 {\r\n returnValue := 1\r\n }\r\n\r\n // 32 bytes returned\r\n case 0x20 {\r\n //
                                                                                                        copy 32 bytes into scratch space\r\n returndatacopy(0x0, 0x0, 0x20)\r\n\r\n // load those bytes into returnValue\r\n
                                                                                                         returnValue := mload(0x0)\r\n }\r\n\r\n // not sure what was returned: dont mark as success\r\n
                                                                                                        default { }\r\n }\r\n\r\n // check if returned value is one or nothing\r\n return returnValue == 1;\r\n }\r\n}\r\n"}
                                                                                                        ,"IERC20.sol":{"content":"/*\r\n Copyright 2018 Set Labs Inc.\r\n\r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n
                                                                                                         you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\r\n http://www.apache.org
                                                                                                        /licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is
                                                                                                        distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the
                                                                                                        specific language governing permissions and\r\n limitations under the License.\r\n*/\r\n\r\npragma solidity 0.5.7;\r\n\r\n\r\n/**\r\n * @title
                                                                                                        IERC20\r\n * @author Set Protocol\r\n *\r\n * Interface for using ERC20 Tokens. This interface is needed to interact with tokens that are not\r\n *
                                                                                                        fully ERC20 compliant and return something other than true on successful transfers.\r\n */\r\ninterface IERC20 {\r\n function balanceOf(\r\n
                                                                                                         address _owner\r\n )\r\n external\r\n view\r\n returns (uint256);\r\n\r\n function allowance(\r\n address
                                                                                                        _owner,\r\n address _spender\r\n )\r\n external\r\n view\r\n returns (uint256);\r\n\r\n function transfer(\r\n
                                                                                                         address _to,\r\n uint256 _quantity\r\n )\r\n external;\r\n\r\n function transferFrom(\r\n address _from,\r\n
                                                                                                         address _to,\r\n uint256 _quantity\r\n )\r\n external;\r\n\r\n function approve(\r\n address _spender,\r\n
                                                                                                        uint256 _quantity\r\n )\r\n external\r\n returns (bool);\r\n}\r\n"},"SafeMath.sol":{"content":"pragma solidity ^0.5.7;\r\n\r\n
                                                                                                        /**\r\n * @title SafeMath\r\n * @dev Unsigned math operations with safety checks that revert on error.\r\n */\r\nlibrary SafeMath {\r\n /**\r\n
                                                                                                         * @dev Multiplies two unsigned integers, reverts on overflow.\r\n */\r\n function mul(uint256 a, uint256 b) internal pure returns
                                                                                                        (uint256) {\r\n // Gas optimization: this is cheaper than requiring \u0027a\u0027 not being zero, but the\r\n // benefit is lost if
                                                                                                        \u0027b\u0027 is also tested.\r\n // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\r\n if (a == 0) {\r\n
                                                                                                         return 0;\r\n }\r\n\r\n uint256 c = a * b;\r\n require(c / a == b);\r\n\r\n return c;\r\n }\r\n\r\n /**\r\n
                                                                                                         * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.\r\n */\r\n function div(uint256 a
                                                                                                        , uint256 b) internal pure returns (uint256) {\r\n // Solidity only automatically asserts when dividing by 0\r\n require(b \u003e 0
                                                                                                        );\r\n uint256 c = a / b;\r\n // assert(a == b * c + a % b); // There is no case in which this doesn\u0027t hold\r\n\r\n
                                                                                                        return c;\r\n }\r\n\r\n /**\r\n * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend
                                                                                                        ).\r\n */\r\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n require(b \u003c= a);\r\n uint256 c = a
                                                                                                        - b;\r\n\r\n return c;\r\n }\r\n\r\n /**\r\n * @dev Adds two unsigned integers, reverts on overflow.\r\n */\r\n function
                                                                                                        add(uint256 a, uint256 b) internal pure returns (uint256) {\r\n uint256 c = a + b;\r\n require(c \u003e= a);\r\n\r\n return c
                                                                                                        ;\r\n }\r\n\r\n /**\r\n * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),\r\n * reverts when
                                                                                                        dividing by zero.\r\n */\r\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\r\n require(b != 0);\r\n
                                                                                                        return a % b;\r\n }\r\n}\r\n"}}
                                                                                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                                                                                    File 12 of 16: SetTokenFactory
                                                                                                    1
                                                                                                    2
                                                                                                    3
                                                                                                    4
                                                                                                    5
                                                                                                    6
                                                                                                    7
                                                                                                    8
                                                                                                    9
                                                                                                    10
                                                                                                    11
                                                                                                    12
                                                                                                    13
                                                                                                    14
                                                                                                    15
                                                                                                    16
                                                                                                    // File: contracts/lib/Bytes32Library.sol
                                                                                                    /*
                                                                                                    Copyright 2018 Set Labs Inc.
                                                                                                    Licensed under the Apache License, Version 2.0 (the "License");
                                                                                                    you may not use this file except in compliance with the License.
                                                                                                    You may obtain a copy of the License at
                                                                                                    http://www.apache.org/licenses/LICENSE-2.0
                                                                                                    Unless required by applicable law or agreed to in writing, software
                                                                                                    distributed under the License is distributed on an "AS IS" BASIS,
                                                                                                    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                                                                                                    See the License for the specific language governing permissions and
                                                                                                    limitations under the License.
                                                                                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                                                                                    File 13 of 16: AddressToAddressWhiteList
                                                                                                    1
                                                                                                    2
                                                                                                    3
                                                                                                    4
                                                                                                    5
                                                                                                    6
                                                                                                    7
                                                                                                    8
                                                                                                    9
                                                                                                    10
                                                                                                    11
                                                                                                    12
                                                                                                    13
                                                                                                    14
                                                                                                    15
                                                                                                    16
                                                                                                    pragma solidity ^0.5.2;
                                                                                                    /**
                                                                                                    * @title Ownable
                                                                                                    * @dev The Ownable contract has an owner address, and provides basic authorization control
                                                                                                    * functions, this simplifies the implementation of "user permissions".
                                                                                                    */
                                                                                                    contract Ownable {
                                                                                                    address private _owner;
                                                                                                    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
                                                                                                    /**
                                                                                                    * @dev The Ownable constructor sets the original `owner` of the contract to the sender
                                                                                                    * account.
                                                                                                    */
                                                                                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                                                                                    File 14 of 16: FiatTokenV1
                                                                                                    1
                                                                                                    2
                                                                                                    3
                                                                                                    4
                                                                                                    5
                                                                                                    6
                                                                                                    7
                                                                                                    8
                                                                                                    9
                                                                                                    10
                                                                                                    11
                                                                                                    12
                                                                                                    13
                                                                                                    14
                                                                                                    15
                                                                                                    16
                                                                                                    pragma solidity ^0.4.24;
                                                                                                    // File: contracts/Ownable.sol
                                                                                                    /**
                                                                                                    * Copyright CENTRE SECZ 2018
                                                                                                    *
                                                                                                    * Permission is hereby granted, free of charge, to any person obtaining a copy
                                                                                                    * of this software and associated documentation files (the "Software"), to deal
                                                                                                    * in the Software without restriction, including without limitation the rights
                                                                                                    * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
                                                                                                    * copies of the Software, and to permit persons to whom the Software is furnished to
                                                                                                    * do so, subject to the following conditions:
                                                                                                    *
                                                                                                    * The above copyright notice and this permission notice shall be included in all
                                                                                                    * copies or substantial portions of the Software.
                                                                                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                                                                                    File 15 of 16: ERC20Proxy
                                                                                                    1
                                                                                                    2
                                                                                                    3
                                                                                                    4
                                                                                                    5
                                                                                                    6
                                                                                                    7
                                                                                                    8
                                                                                                    9
                                                                                                    10
                                                                                                    11
                                                                                                    12
                                                                                                    13
                                                                                                    14
                                                                                                    15
                                                                                                    16
                                                                                                    /*
                                                                                                    Copyright 2018 ZeroEx Intl.
                                                                                                    Licensed under the Apache License, Version 2.0 (the "License");
                                                                                                    you may not use this file except in compliance with the License.
                                                                                                    You may obtain a copy of the License at
                                                                                                    http://www.apache.org/licenses/LICENSE-2.0
                                                                                                    Unless required by applicable law or agreed to in writing, software
                                                                                                    distributed under the License is distributed on an "AS IS" BASIS,
                                                                                                    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                                                                                                    See the License for the specific language governing permissions and
                                                                                                    limitations under the License.
                                                                                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                                                                                    File 16 of 16: TransferProxy
                                                                                                    1
                                                                                                    2
                                                                                                    3
                                                                                                    4
                                                                                                    5
                                                                                                    6
                                                                                                    7
                                                                                                    8
                                                                                                    9
                                                                                                    10
                                                                                                    11
                                                                                                    12
                                                                                                    13
                                                                                                    14
                                                                                                    15
                                                                                                    16
                                                                                                    // File: openzeppelin-solidity/contracts/math/SafeMath.sol
                                                                                                    pragma solidity ^0.5.2;
                                                                                                    /**
                                                                                                    * @title SafeMath
                                                                                                    * @dev Unsigned math operations with safety checks that revert on error
                                                                                                    */
                                                                                                    library SafeMath {
                                                                                                    /**
                                                                                                    * @dev Multiplies two unsigned integers, reverts on overflow.
                                                                                                    */
                                                                                                    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
                                                                                                    // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
                                                                                                    // benefit is lost if 'b' is also tested.
                                                                                                    // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
                                                                                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX