Search projects, hackathons, sponsors and tech

    ← All projects

    GAL - General Access Layer

    Your new contract administrator

    About

    The problem it solves Organizations and teams developing web3 applications are exposed to the risk of losing ownership and control over their own contracts in the case of a leaving teammate, losing the deployer's private keys, or a planned attack. - Whenever an Ownable contract belongs to a single wallet a team is exposed to this unnecessary risk of losing ownership over it. - Developers in a team may need to access some `onlyOwner` methods but must have no right over others. - Both developers and administrators may need to take multiple actions with deployed contracts, hence the need for batch calling. - An easy and quick way is always needed to revoke access rights of a wallet over all company / team assets - GCM takes out the single point of failure.

    How it's made

    Challenges we ran into # Batch calling multiple methods ## Problem In Solidity we wanted to slice the bytarray information that we received as calldata. It seemed possible, but the end result was incorrect. ## Solution We rewrote the code with assembly using memory storage for the bytearray > function batchCall(bytes memory bytesData) public { > uint16 numberOfCalls; > uint256 ptr; > > assembly { > // set read pointer > ptr := add( bytesData, 32 ) > numberOfCalls := shr( 240, mload( ptr ) ) > // shift pointer to data Id > ptr := add( ptr, 2 ) > // move free memory pointer > mstore(0x40, msize()) > } > ........................... > # Front-end ## Problem We are here with a team of 4, without any front-end developer :) We started building the front-end part of GAL with zero react knowledge. ## Solution After multiple difficulties we decided to focus more on the smartcontract, and we wrote tests and did transactions to prove our contract's usefulness. # Beer ## Problem During the event we were really thirsty for some beers. Of course, if we have (too many) beers, we can not be productive, so we did not drink beers and stood with our thirst for it. ## Solution At the end of every day we had a beer together with many of the competitors, and had an awesome closure for both Friday and Saturday. Thank you ETH B3RLIN.