@evvm/testnet-contracts 2.3.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +44 -24
  2. package/contracts/core/Core.sol +1392 -0
  3. package/contracts/core/lib/CoreStorage.sol +171 -0
  4. package/contracts/nameService/NameService.sol +613 -543
  5. package/contracts/nameService/lib/IdentityValidation.sol +15 -21
  6. package/contracts/p2pSwap/P2PSwap.sol +258 -145
  7. package/contracts/staking/Estimator.sol +25 -44
  8. package/contracts/staking/Staking.sol +284 -262
  9. package/contracts/treasury/Treasury.sol +40 -47
  10. package/contracts/treasuryTwoChains/TreasuryExternalChainStation.sol +585 -198
  11. package/contracts/treasuryTwoChains/TreasuryHostChainStation.sol +425 -174
  12. package/contracts/treasuryTwoChains/lib/PayloadUtils.sol +2 -4
  13. package/interfaces/{IEvvm.sol → ICore.sol} +58 -25
  14. package/interfaces/IEstimator.sol +1 -1
  15. package/interfaces/INameService.sol +46 -49
  16. package/interfaces/IP2PSwap.sol +16 -17
  17. package/interfaces/IStaking.sol +21 -17
  18. package/interfaces/ITreasury.sol +2 -1
  19. package/interfaces/ITreasuryExternalChainStation.sol +15 -9
  20. package/interfaces/ITreasuryHostChainStation.sol +14 -11
  21. package/interfaces/IUserValidator.sol +6 -0
  22. package/library/Erc191TestBuilder.sol +336 -471
  23. package/library/EvvmService.sol +27 -71
  24. package/library/errors/CoreError.sol +116 -0
  25. package/library/errors/CrossChainTreasuryError.sol +36 -0
  26. package/library/errors/NameServiceError.sol +79 -0
  27. package/library/errors/StakingError.sol +79 -0
  28. package/{contracts/treasury/lib/ErrorsLib.sol → library/errors/TreasuryError.sol} +9 -17
  29. package/library/structs/CoreStructs.sol +146 -0
  30. package/library/structs/ExternalChainStationStructs.sol +92 -0
  31. package/library/structs/HostChainStationStructs.sol +77 -0
  32. package/library/structs/NameServiceStructs.sol +47 -0
  33. package/library/structs/P2PSwapStructs.sol +127 -0
  34. package/library/structs/StakingStructs.sol +67 -0
  35. package/library/utils/AdvancedStrings.sol +62 -44
  36. package/library/utils/CAUtils.sol +29 -0
  37. package/library/utils/governance/Admin.sol +66 -0
  38. package/library/utils/governance/ProposalStructs.sol +49 -0
  39. package/library/utils/service/CoreExecution.sol +158 -0
  40. package/library/utils/service/StakingServiceUtils.sol +20 -37
  41. package/library/utils/signature/CoreHashUtils.sol +73 -0
  42. package/library/utils/signature/NameServiceHashUtils.sol +156 -0
  43. package/library/utils/signature/P2PSwapHashUtils.sol +65 -0
  44. package/library/utils/signature/StakingHashUtils.sol +41 -0
  45. package/library/utils/signature/TreasuryCrossChainHashUtils.sol +40 -0
  46. package/package.json +1 -1
  47. package/contracts/evvm/Evvm.sol +0 -1300
  48. package/contracts/evvm/lib/ErrorsLib.sol +0 -131
  49. package/contracts/evvm/lib/EvvmStorage.sol +0 -217
  50. package/contracts/evvm/lib/EvvmStructs.sol +0 -208
  51. package/contracts/evvm/lib/SignatureUtils.sol +0 -162
  52. package/contracts/nameService/lib/ErrorsLib.sol +0 -155
  53. package/contracts/nameService/lib/NameServiceStructs.sol +0 -125
  54. package/contracts/nameService/lib/SignatureUtils.sol +0 -420
  55. package/contracts/p2pSwap/lib/P2PSwapStructs.sol +0 -59
  56. package/contracts/p2pSwap/lib/SignatureUtils.sol +0 -98
  57. package/contracts/staking/lib/ErrorsLib.sol +0 -98
  58. package/contracts/staking/lib/SignatureUtils.sol +0 -105
  59. package/contracts/staking/lib/StakingStructs.sol +0 -106
  60. package/contracts/treasuryTwoChains/lib/ErrorsLib.sol +0 -48
  61. package/contracts/treasuryTwoChains/lib/ExternalChainStationStructs.sol +0 -80
  62. package/contracts/treasuryTwoChains/lib/HostChainStationStructs.sol +0 -87
  63. package/contracts/treasuryTwoChains/lib/SignatureUtils.sol +0 -79
  64. package/library/utils/GovernanceUtils.sol +0 -81
  65. package/library/utils/nonces/AsyncNonce.sol +0 -74
  66. package/library/utils/nonces/SyncNonce.sol +0 -71
  67. package/library/utils/service/EvvmPayments.sol +0 -144
@@ -3,12 +3,6 @@
3
3
  pragma solidity ^0.8.0;
4
4
 
5
5
  library HostChainStationStructs {
6
- struct AddressTypeProposal {
7
- address current;
8
- address proposal;
9
- uint256 timeToAccept;
10
- }
11
-
12
6
  struct AxelarConfig {
13
7
  string externalChainStationChainName;
14
8
  string externalChainStationAddress;
@@ -35,6 +29,14 @@ library HostChainStationStructs {
35
29
  }
36
30
  }
37
31
 
32
+ library ProposalStructs {
33
+ struct AddressTypeProposal {
34
+ address current;
35
+ address proposal;
36
+ uint256 timeToAccept;
37
+ }
38
+ }
39
+
38
40
  interface ITreasuryHostChainStation {
39
41
  struct EnforcedOptionParam {
40
42
  uint32 eid;
@@ -58,7 +60,6 @@ interface ITreasuryHostChainStation {
58
60
  error InvalidEndpointCall();
59
61
  error InvalidOptionType(uint16 optionType);
60
62
  error InvalidOptions(bytes options);
61
- error InvalidSignature();
62
63
  error LzTokenUnavailable();
63
64
  error MailboxNotAuthorized();
64
65
  error NoPeer(uint32 eid);
@@ -107,6 +108,7 @@ interface ITreasuryHostChainStation {
107
108
  address tokenAddress,
108
109
  uint256 priorityFee,
109
110
  uint256 amount,
111
+ uint256 nonce,
110
112
  bytes memory signature
111
113
  ) external;
112
114
  function fisherBridgeSend(
@@ -115,16 +117,17 @@ interface ITreasuryHostChainStation {
115
117
  address tokenAddress,
116
118
  uint256 priorityFee,
117
119
  uint256 amount,
120
+ uint256 nonce,
118
121
  bytes memory signature
119
122
  ) external;
120
123
  function gateway() external view returns (address);
121
- function getAdmin() external view returns (HostChainStationStructs.AddressTypeProposal memory);
124
+ function getAdmin() external view returns (ProposalStructs.AddressTypeProposal memory);
122
125
  function getAxelarConfig() external view returns (HostChainStationStructs.AxelarConfig memory);
123
- function getEvvmAddress() external view returns (address);
124
- function getFisherExecutor() external view returns (HostChainStationStructs.AddressTypeProposal memory);
126
+ function getCoreAddress() external view returns (address);
127
+ function getFisherExecutor() external view returns (ProposalStructs.AddressTypeProposal memory);
125
128
  function getHyperlaneConfig() external view returns (HostChainStationStructs.HyperlaneConfig memory);
129
+ function getIfUsedAsyncNonce(address user, uint256 nonce) external view returns (bool);
126
130
  function getLayerZeroConfig() external view returns (HostChainStationStructs.LayerZeroConfig memory);
127
- function getNextFisherExecutionNonce(address user) external view returns (uint256);
128
131
  function getOptions() external view returns (bytes memory);
129
132
  function getQuoteHyperlane(address toAddress, address token, uint256 amount) external view returns (uint256);
130
133
  function handle(uint32 _origin, bytes32 _sender, bytes memory _data) external payable;
@@ -0,0 +1,6 @@
1
+ // SPDX-License-Identifier: EVVM-NONCOMMERCIAL-1.0
2
+ // Full license terms available at: https://www.evvm.info/docs/EVVMNoncommercialLicense
3
+ pragma solidity ^0.8.0;
4
+ interface IUserValidator {
5
+ function canExecute(address user) external view returns (bool);
6
+ }