BridgeGetters.sol 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. // contracts/Getters.sol
  2. // SPDX-License-Identifier: Apache 2
  3. pragma solidity ^0.8.0;
  4. import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
  5. import "../interfaces/IWormhole.sol";
  6. import "./BridgeState.sol";
  7. contract BridgeGetters is BridgeState {
  8. function governanceActionIsConsumed(bytes32 hash) public view returns (bool) {
  9. return _state.consumedGovernanceActions[hash];
  10. }
  11. function isInitialized(address impl) public view returns (bool) {
  12. return _state.initializedImplementations[impl];
  13. }
  14. function isTransferCompleted(bytes32 hash) public view returns (bool) {
  15. return _state.completedTransfers[hash];
  16. }
  17. function wormhole() public view returns (IWormhole) {
  18. return IWormhole(_state.wormhole);
  19. }
  20. function chainId() public view returns (uint16){
  21. return _state.provider.chainId;
  22. }
  23. function governanceChainId() public view returns (uint16){
  24. return _state.provider.governanceChainId;
  25. }
  26. function governanceContract() public view returns (bytes32){
  27. return _state.provider.governanceContract;
  28. }
  29. function wrappedAsset(uint16 tokenChainId, bytes32 tokenAddress) public view returns (address){
  30. return _state.wrappedAssets[tokenChainId][tokenAddress];
  31. }
  32. function bridgeContracts(uint16 chainId_) public view returns (bytes32){
  33. return _state.bridgeImplementations[chainId_];
  34. }
  35. function tokenImplementation() public view returns (address){
  36. return _state.tokenImplementation;
  37. }
  38. function WETH() public view returns (IWETH){
  39. return IWETH(_state.provider.WETH);
  40. }
  41. function outstandingBridged(address token) public view returns (uint256){
  42. return _state.outstandingBridged[token];
  43. }
  44. function isWrappedAsset(address token) public view returns (bool){
  45. return _state.isWrappedAsset[token];
  46. }
  47. }
  48. interface IWETH is IERC20 {
  49. function deposit() external payable;
  50. function withdraw(uint amount) external;
  51. }