public async Task registry_contract_returns_correct_address()
        {
            using TestTxPermissionsBlockchain chain = await TestContractBlockchain.ForTest <TestTxPermissionsBlockchain, TxCertifierFilterTests>();

            chain.RegisterContract.TryGetAddress(chain.BlockTree.Head.Header, CertifierContract.ServiceTransactionContractRegistryName, out Address address).Should().BeTrue();
            address.Should().Be(new Address("0x5000000000000000000000000000000000000001"));
        }
        public async Task should_only_allow_addresses_from_contract_on_chain()
        {
            using TestTxPermissionsBlockchain chain = await TestContractBlockchain.ForTest <TestTxPermissionsBlockchain, TxCertifierFilterTests>();

            chain.CertifierContract.Certified(chain.BlockTree.Head.Header, TestItem.AddressA).Should().BeFalse();
            chain.CertifierContract.Certified(chain.BlockTree.Head.Header, new Address("0xbbcaa8d48289bb1ffcf9808d9aa4b1d215054c78")).Should().BeTrue();
        }
        public async Task registry_contract_returns_not_found_when_contract_doesnt_exist()
        {
            using TestTxPermissionsBlockchain chain = await TestContractBlockchain.ForTest <TestTxPermissionsBlockchain, TxCertifierFilterTests>();

            RegisterContract contract = new(AbiEncoder.Instance, Address.FromNumber(1000), chain.ReadOnlyTransactionProcessorSource);

            contract.TryGetAddress(chain.BlockTree.Head.Header, CertifierContract.ServiceTransactionContractRegistryName, out Address _).Should().BeFalse();
        }
        public async Task registry_contract_returns_not_found_when_key_doesnt_exist()
        {
            using TestTxPermissionsBlockchain chain = await TestContractBlockchain.ForTest <TestTxPermissionsBlockchain, TxCertifierFilterTests>();

            chain.RegisterContract.TryGetAddress(chain.BlockTree.Head.Header, "not existing key", out Address _).Should().BeFalse();
        }