ETH Price: $2,291.02 (-5.08%)

Contract

0x156bAB355E81b498072C9Ce3cF655e9844A12529

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Token Holdings

Sponsored

Transaction Hash
Method
Block
From
To
0x60806040181100082022-08-06 22:17:04771 days ago1659824224IN
 Create: AddressMergeHelper
0 ETH0.0001714456650.001

Advanced mode:
Parent Transaction Hash Block From To
View All Internal Transactions

Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AddressMergeHelper

Compiler Version
v0.8.2+commit.661d1103

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at optimistic.etherscan.io on 2022-08-06
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.2;

contract AddressMergeHelper {
    function mergeAddresses(address[][] memory addressesSets)
        public
        pure
        returns (address[] memory)
    {
        bytes memory addressesPacked = new bytes(64);
        uint256 addressesSetsLength = addressesSets.length;
        assembly {
            mstore(add(addressesPacked, 0x20), 0x20)
        }
        uint256 totalNumberOfAddresses;
        for (
            uint256 addressesSetIdx = 0;
            addressesSetIdx < addressesSetsLength;
            addressesSetIdx++
        ) {
            address[] memory addressesSet = addressesSets[addressesSetIdx];
            uint256 addressesSetLength = addressesSet.length;
            totalNumberOfAddresses += addressesSetLength;
            for (
                uint256 addressIdx = 0;
                addressIdx < addressesSetLength;
                addressIdx++
            ) {
                address currentAddress = addressesSet[addressIdx];
                bytes memory spacer = new bytes(12);
                addressesPacked = abi.encodePacked(
                    addressesPacked,
                    spacer,
                    currentAddress
                );
            }
        }
        assembly {
            mstore(add(addressesPacked, 0x40), totalNumberOfAddresses)
        }
        address[] memory addressesMerged =
            abi.decode(addressesPacked, (address[]));
        return addressesMerged;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address[][]","name":"addressesSets","type":"address[][]"}],"name":"mergeAddresses","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"pure","type":"function"}]

608060405234801561001057600080fd5b50610522806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c0ca9ab814610030575b600080fd5b61004361003e366004610274565b610059565b60405161005091906103d3565b60405180910390f35b604080518181526060818101835291600091906020820181803683370190505083516020808301529091506000805b828110156101af5760008682815181106100b257634e487b7160e01b600052603260045260246000fd5b6020026020010151905060008151905080846100ce9190610475565b935060005b818110156101995760008382815181106100fd57634e487b7160e01b600052603260045260246000fd5b602002602001015190506000600c67ffffffffffffffff81111561013157634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561015b576020820181803683370190505b5090508881836040516020016101739392919061039c565b6040516020818303038152906040529850505080806101919061048d565b9150506100d3565b50505080806101a79061048d565b915050610088565b508060408401526000838060200190518101906101cc91906101d6565b9695505050505050565b600060208083850312156101e8578182fd5b825167ffffffffffffffff8111156101fe578283fd5b8301601f8101851361020e578283fd5b805161022161021c82610451565b610420565b818152838101908385018584028501860189101561023d578687fd5b8694505b83851015610268578051610254816104d4565b835260019490940193918501918501610241565b50979650505050505050565b60006020808385031215610286578182fd5b823567ffffffffffffffff81111561029c578283fd5b8301601f810185136102ac578283fd5b80356102ba61021c82610451565b81815283810190838501865b8481101561035557813586018a603f8201126102e0578889fd5b8781013560406102f261021c83610451565b808382528b820191508285018f848e87028801011115610310578d8efd5b8d95505b8486101561033e5780359350610329846104d4565b83835260019590950194918c01918c01610314565b5088525050509387019350908601906001016102c6565b509098975050505050505050565b60008151815b818110156103835760208185018101518683015201610369565b818111156103915782828601525b509290920192915050565b60006103b16103ab8387610363565b85610363565b60609390931b6bffffffffffffffffffffffff19168352505060140192915050565b6020808252825182820181905260009190848201906040850190845b818110156104145783516001600160a01b0316835292840192918401916001016103ef565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610449576104496104be565b604052919050565b600067ffffffffffffffff82111561046b5761046b6104be565b5060209081020190565b60008219821115610488576104886104a8565b500190565b60006000198214156104a1576104a16104a8565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146104e957600080fd5b5056fea26469706673582212207c2a3b33dc9b2ac1d42c705c2a4efe780b1d5aad709ac401af9585c2f835975864736f6c63430008020033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c0ca9ab814610030575b600080fd5b61004361003e366004610274565b610059565b60405161005091906103d3565b60405180910390f35b604080518181526060818101835291600091906020820181803683370190505083516020808301529091506000805b828110156101af5760008682815181106100b257634e487b7160e01b600052603260045260246000fd5b6020026020010151905060008151905080846100ce9190610475565b935060005b818110156101995760008382815181106100fd57634e487b7160e01b600052603260045260246000fd5b602002602001015190506000600c67ffffffffffffffff81111561013157634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561015b576020820181803683370190505b5090508881836040516020016101739392919061039c565b6040516020818303038152906040529850505080806101919061048d565b9150506100d3565b50505080806101a79061048d565b915050610088565b508060408401526000838060200190518101906101cc91906101d6565b9695505050505050565b600060208083850312156101e8578182fd5b825167ffffffffffffffff8111156101fe578283fd5b8301601f8101851361020e578283fd5b805161022161021c82610451565b610420565b818152838101908385018584028501860189101561023d578687fd5b8694505b83851015610268578051610254816104d4565b835260019490940193918501918501610241565b50979650505050505050565b60006020808385031215610286578182fd5b823567ffffffffffffffff81111561029c578283fd5b8301601f810185136102ac578283fd5b80356102ba61021c82610451565b81815283810190838501865b8481101561035557813586018a603f8201126102e0578889fd5b8781013560406102f261021c83610451565b808382528b820191508285018f848e87028801011115610310578d8efd5b8d95505b8486101561033e5780359350610329846104d4565b83835260019590950194918c01918c01610314565b5088525050509387019350908601906001016102c6565b509098975050505050505050565b60008151815b818110156103835760208185018101518683015201610369565b818111156103915782828601525b509290920192915050565b60006103b16103ab8387610363565b85610363565b60609390931b6bffffffffffffffffffffffff19168352505060140192915050565b6020808252825182820181905260009190848201906040850190845b818110156104145783516001600160a01b0316835292840192918401916001016103ef565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610449576104496104be565b604052919050565b600067ffffffffffffffff82111561046b5761046b6104be565b5060209081020190565b60008219821115610488576104886104a8565b500190565b60006000198214156104a1576104a16104a8565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146104e957600080fd5b5056fea26469706673582212207c2a3b33dc9b2ac1d42c705c2a4efe780b1d5aad709ac401af9585c2f835975864736f6c63430008020033

Deployed Bytecode Sourcemap

62:1485:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;97:1447;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;278:2;268:13;;;;;203:16;268:13;;;;;203:16;237:28;;268:13;;;;;;;;;;;-1:-1:-1;;322:20:0;;412:4;384:26;;;377:40;237:44;;-1:-1:-1;292:27:0;;479:823;558:19;540:15;:37;479:823;;;636:29;668:13;682:15;668:30;;;;;;-1:-1:-1;;;668:30:0;;;;;;;;;;;;;;;636:62;;713:26;742:12;:19;713:48;;802:18;776:44;;;;;:::i;:::-;;;858:18;835:456;912:18;899:10;:31;835:456;;;996:22;1021:12;1034:10;1021:24;;;;;;-1:-1:-1;;;1021:24:0;;;;;;;;;;;;;;;996:49;;1064:19;1096:2;1086:13;;;;;;-1:-1:-1;;;1086:13:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1086:13:0;;1064:35;;1175:15;1213:6;1242:14;1136:139;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1118:157;;835:456;;949:12;;;;;:::i;:::-;;;;835:456;;;;479:823;;592:17;;;;;:::i;:::-;;;;479:823;;;;1371:22;1364:4;1347:15;1343:26;1336:58;1415:32;1474:15;1463:40;;;;;;;;;;;;:::i;:::-;1415:88;97:1447;-1:-1:-1;;;;;;97:1447:0:o;14:1013:1:-;;140:2;183;171:9;162:7;158:23;154:32;151:2;;;204:6;196;189:22;151:2;242:9;236:16;275:18;267:6;264:30;261:2;;;312:6;304;297:22;261:2;340:22;;393:4;385:13;;381:27;-1:-1:-1;371:2:1;;427:6;419;412:22;371:2;461;455:9;484:60;500:43;540:2;500:43;:::i;:::-;484:60;:::i;:::-;578:15;;;609:12;;;;641:11;;;679;;;671:20;;667:29;;664:42;-1:-1:-1;661:2:1;;;724:6;716;709:22;661:2;751:6;742:15;;766:231;780:2;777:1;774:9;766:231;;;844:3;838:10;861:31;886:5;861:31;:::i;:::-;905:18;;798:1;791:9;;;;;943:12;;;;975;;766:231;;;-1:-1:-1;1016:5:1;120:907;-1:-1:-1;;;;;;;120:907:1:o;1032:1710::-;;1172:2;1215;1203:9;1194:7;1190:23;1186:32;1183:2;;;1236:6;1228;1221:22;1183:2;1281:9;1268:23;1314:18;1306:6;1303:30;1300:2;;;1351:6;1343;1336:22;1300:2;1379:22;;1432:4;1424:13;;1420:27;-1:-1:-1;1410:2:1;;1466:6;1458;1451:22;1410:2;1507;1494:16;1530:60;1546:43;1586:2;1546:43;:::i;1530:60::-;1624:15;;;1655:12;;;;1687:11;;;1716:6;1731:981;1745:2;1742:1;1739:9;1731:981;;;1821:3;1808:17;1804:2;1800:26;1866:7;1861:2;1857;1853:11;1849:25;1839:2;;1893:6;1885;1878:22;1839:2;1946;1942;1938:11;1925:25;1973:2;2001:60;2017:43;2057:2;2017:43;:::i;2001:60::-;2087:5;2119:2;2112:5;2105:17;2155:2;2148:5;2144:14;2135:23;;2192:2;2188;2184:11;2245:7;2240:2;2234;2230;2226:11;2222:2;2218:20;2214:29;2211:42;2208:2;;;2271:6;2263;2256:22;2208:2;2304:6;2293:17;;2323:284;2339:2;2334:3;2331:11;2323:284;;;2422:5;2409:19;2396:32;;2445:31;2470:5;2445:31;:::i;:::-;2493:20;;;2361:1;2352:11;;;;;2539:14;;;;2579;;2323:284;;;-1:-1:-1;2620:18:1;;-1:-1:-1;;;2658:12:1;;;;-1:-1:-1;2690:12:1;;;;1763:1;1756:9;1731:981;;;-1:-1:-1;2731:5:1;;1152:1590;-1:-1:-1;;;;;;;;1152:1590:1:o;2747:340::-;;2826:5;2820:12;2850:3;2862:128;2876:6;2873:1;2870:13;2862:128;;;2973:4;2958:13;;;2954:24;;2948:31;2935:11;;;2928:52;2891:12;2862:128;;;3008:6;3005:1;3002:13;2999:2;;;3043:3;3034:6;3029:3;3025:16;3018:29;2999:2;-1:-1:-1;3065:16:1;;;;;2796:291;-1:-1:-1;;2796:291:1:o;3092:402::-;;3326:55;3351:29;3376:3;3368:6;3351:29;:::i;:::-;3343:6;3326:55;:::i;:::-;3412:2;3408:15;;;;-1:-1:-1;;3404:53:1;3390:68;;-1:-1:-1;;3485:2:1;3474:14;;3303:191;-1:-1:-1;;3303:191:1:o;3499:661::-;3670:2;3722:21;;;3792:13;;3695:18;;;3814:22;;;3499:661;;3670:2;3893:15;;;;3867:2;3852:18;;;3499:661;3939:195;3953:6;3950:1;3947:13;3939:195;;;4018:13;;-1:-1:-1;;;;;4014:39:1;4002:52;;4109:15;;;;4074:12;;;;4050:1;3968:9;3939:195;;;-1:-1:-1;4151:3:1;;3650:510;-1:-1:-1;;;;;;3650:510:1:o;4165:275::-;4236:2;4230:9;4301:2;4282:13;;-1:-1:-1;;4278:27:1;4266:40;;4336:18;4321:34;;4357:22;;;4318:62;4315:2;;;4383:18;;:::i;:::-;4419:2;4412:22;4210:230;;-1:-1:-1;4210:230:1:o;4445:186::-;;4538:18;4530:6;4527:30;4524:2;;;4560:18;;:::i;:::-;-1:-1:-1;4620:4:1;4601:17;;;4597:28;;4514:117::o;4636:128::-;;4707:1;4703:6;4700:1;4697:13;4694:2;;;4713:18;;:::i;:::-;-1:-1:-1;4749:9:1;;4684:80::o;4769:135::-;;-1:-1:-1;;4829:17:1;;4826:2;;;4849:18;;:::i;:::-;-1:-1:-1;4896:1:1;4885:13;;4816:88::o;4909:127::-;4970:10;4965:3;4961:20;4958:1;4951:31;5001:4;4998:1;4991:15;5025:4;5022:1;5015:15;5041:127;5102:10;5097:3;5093:20;5090:1;5083:31;5133:4;5130:1;5123:15;5157:4;5154:1;5147:15;5173:131;-1:-1:-1;;;;;5248:31:1;;5238:42;;5228:2;;5294:1;5291;5284:12;5228:2;5218:86;:::o

Swarm Source

ipfs://7c2a3b33dc9b2ac1d42c705c2a4efe780b1d5aad709ac401af9585c2f8359758

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.