GAL - General Access Layer
Your new contract administrator
Created on 18th September 2022
•
GAL - General Access Layer
Your new contract administrator
The problem GAL - General Access Layer 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
onlyOwnermethods 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.
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.
Technologies used
