###### tags: `tests` # Solidity Advanced Test ### The purpose of the test is to check how you learn and research new material. But also how do you communicate with me to help you and guide you, so it is perfectly fine and expected that you ask the right questions when you are stuck, or to confirm that you are on the right track. ### Good Luck Read the "Fuse Bridge" specifications here: (You DO NOT need to implement it) https://github.com/GoodDollar/Bounties/issues/9 Answer the following 1. The first condition for the smart contract is that only "Fuse Validators" can write to it. Research how can you get the current list of validators **on-chain.** 2. Write a solidity or javascript method that receives a Block Header from an evm blockchain of your choice (ethereum, fuse, binance etc..) and correctly calculates the Block Hash using the data from the block header 3. We want in the future to use this bridge to relay voting decisions made on Fuse to Ethereum. Both Fuse and Ethereum use the same governace system. (see https://github.com/GoodDollar/GoodProtocol/contracts/governance) 1. Elaborate in ordered bullet points the full flow that would need to happen from the moment a vote has passed on Fuse until it can be executed on ethereum. 2. Write the **pseudo code** for the missing code that will be required on ethereum to make that happen 4. Currently the security guarantee of the bridge is the same as Fuse's "Proof of Stake" security. 1. What would it require for the bridge to have the Ethereum POW security guarantee for blocks relayed from ethereum to fuse? 2. Can we get ethereum security guarantee for blocks relayed from fuse to ethereum? why?