remix https://remix.ethereum.org/ ana https://testnet.analog.one/#/quests discord 领水 https://discord.com/channels/860069399627825163/1139090696175886376 shibuya 领水 https://portal.astar.network/shibuya-testnet/assets 认证 https://shibuya.blockscout.com/contract-verification sep认证 https://eth-sepolia.blockscout.com/contract-verification sp灵水 https://cloud.google.com/application/web3/faucet/ethereum/sepolia 0x000000007f56768dE3133034FA730a909003a165 0xa7ef4ebd000000000000000000000000f871c929be8cd8382148c69053ce5ed1a9593ea700000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000007530000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010100000000000000000000000000000000000000000000000000000000000000 代码: // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface IGmpReceiver { function onGmpReceived(bytes32 id, uint128 network, bytes32 source, bytes calldata payload) external payable returns (bytes32); } contract Counter is IGmpReceiver { address private immutable _gateway; uint256 public number; // example gw 0x000000007f56768de3133034fa730a909003a165 constructor(address gateway) { _gateway = gateway; } function onGmpReceived(bytes32, uint128, bytes32, bytes calldata) external payable returns (bytes32) { require(msg.sender == _gateway, "unauthorized"); number++; return bytes32(number); } }