@evvm/testnet-contracts 2.2.3 → 3.0.0
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.
- package/LICENSE +145 -118
- package/README.md +162 -39
- package/contracts/core/Core.sol +1394 -0
- package/contracts/core/lib/CoreStorage.sol +171 -0
- package/contracts/nameService/NameService.sol +666 -586
- package/contracts/nameService/lib/IdentityValidation.sol +18 -3
- package/contracts/p2pSwap/P2PSwap.sol +439 -285
- package/contracts/staking/Estimator.sol +128 -40
- package/contracts/staking/Staking.sol +329 -322
- package/contracts/treasury/Treasury.sol +48 -37
- package/contracts/treasuryTwoChains/TreasuryExternalChainStation.sol +585 -198
- package/contracts/treasuryTwoChains/TreasuryHostChainStation.sol +425 -174
- package/contracts/treasuryTwoChains/lib/PayloadUtils.sol +2 -4
- package/interfaces/{IEvvm.sol → ICore.sol} +67 -29
- package/interfaces/IEstimator.sol +1 -1
- package/interfaces/INameService.sol +58 -52
- package/interfaces/IP2PSwap.sol +18 -17
- package/interfaces/IStaking.sol +22 -17
- package/interfaces/ITreasury.sol +2 -1
- package/interfaces/ITreasuryExternalChainStation.sol +15 -9
- package/interfaces/ITreasuryHostChainStation.sol +14 -11
- package/interfaces/IUserValidator.sol +6 -0
- package/library/Erc191TestBuilder.sol +350 -297
- package/library/EvvmService.sol +38 -27
- package/library/errors/CoreError.sol +116 -0
- package/library/errors/CrossChainTreasuryError.sol +36 -0
- package/library/errors/NameServiceError.sol +79 -0
- package/library/errors/StakingError.sol +79 -0
- package/library/errors/TreasuryError.sol +33 -0
- package/library/primitives/SignatureRecover.sol +33 -0
- package/library/structs/CoreStructs.sol +146 -0
- package/library/structs/ExternalChainStationStructs.sol +92 -0
- package/library/structs/HostChainStationStructs.sol +77 -0
- package/library/structs/NameServiceStructs.sol +47 -0
- package/library/structs/P2PSwapStructs.sol +127 -0
- package/library/structs/StakingStructs.sol +67 -0
- package/library/utils/AdvancedStrings.sol +84 -5
- package/library/utils/CAUtils.sol +29 -0
- package/library/utils/SignatureUtil.sol +34 -0
- package/library/utils/governance/Admin.sol +66 -0
- package/library/utils/governance/ProposalStructs.sol +49 -0
- package/library/utils/service/CoreExecution.sol +177 -0
- package/library/utils/service/StakingServiceUtils.sol +30 -3
- package/library/utils/signature/CoreHashUtils.sol +73 -0
- package/library/utils/signature/NameServiceHashUtils.sol +156 -0
- package/library/utils/signature/P2PSwapHashUtils.sol +65 -0
- package/library/utils/signature/StakingHashUtils.sol +41 -0
- package/library/utils/signature/TreasuryCrossChainHashUtils.sol +40 -0
- package/package.json +2 -1
- package/contracts/evvm/Evvm.sol +0 -1327
- package/contracts/evvm/lib/ErrorsLib.sol +0 -18
- package/contracts/evvm/lib/EvvmStorage.sol +0 -62
- package/contracts/evvm/lib/EvvmStructs.sol +0 -90
- package/contracts/evvm/lib/SignatureUtils.sol +0 -120
- package/contracts/nameService/lib/ErrorsLib.sol +0 -21
- package/contracts/nameService/lib/NameServiceStructs.sol +0 -69
- package/contracts/nameService/lib/SignatureUtils.sol +0 -245
- package/contracts/p2pSwap/lib/P2PSwapStructs.sol +0 -59
- package/contracts/p2pSwap/lib/SignatureUtils.sol +0 -98
- package/contracts/staking/lib/ErrorsLib.sol +0 -22
- package/contracts/staking/lib/SignatureUtils.sol +0 -39
- package/contracts/staking/lib/StakingStructs.sol +0 -94
- package/contracts/treasury/lib/ErrorsLib.sol +0 -11
- package/contracts/treasuryTwoChains/lib/ErrorsLib.sol +0 -48
- package/contracts/treasuryTwoChains/lib/ExternalChainStationStructs.sol +0 -80
- package/contracts/treasuryTwoChains/lib/HostChainStationStructs.sol +0 -87
- package/contracts/treasuryTwoChains/lib/SignatureUtils.sol +0 -79
- package/library/utils/GovernanceUtils.sol +0 -81
- package/library/utils/nonces/AsyncNonce.sol +0 -32
- package/library/utils/nonces/SyncNonce.sol +0 -27
- package/library/utils/service/EvvmPayments.sol +0 -79
|
@@ -3,12 +3,6 @@
|
|
|
3
3
|
pragma solidity ^0.8.0;
|
|
4
4
|
|
|
5
5
|
library ExternalChainStationStructs {
|
|
6
|
-
struct AddressTypeProposal {
|
|
7
|
-
address current;
|
|
8
|
-
address proposal;
|
|
9
|
-
uint256 timeToAccept;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
6
|
struct AxelarConfig {
|
|
13
7
|
string hostChainStationChainName;
|
|
14
8
|
string hostChainStationAddress;
|
|
@@ -35,6 +29,14 @@ library ExternalChainStationStructs {
|
|
|
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 ITreasuryExternalChainStation {
|
|
39
41
|
struct EnforcedOptionParam {
|
|
40
42
|
uint32 eid;
|
|
@@ -50,6 +52,7 @@ interface ITreasuryExternalChainStation {
|
|
|
50
52
|
|
|
51
53
|
error AddressEmptyCode(address target);
|
|
52
54
|
error AddressInsufficientBalance(address account);
|
|
55
|
+
error AsyncNonceAlreadyUsed();
|
|
53
56
|
error ChainIdNotAuthorized();
|
|
54
57
|
error FailedInnerCall();
|
|
55
58
|
error InsufficientBalance();
|
|
@@ -106,6 +109,7 @@ interface ITreasuryExternalChainStation {
|
|
|
106
109
|
address tokenAddress,
|
|
107
110
|
uint256 priorityFee,
|
|
108
111
|
uint256 amount,
|
|
112
|
+
uint256 nonce,
|
|
109
113
|
bytes memory signature
|
|
110
114
|
) external;
|
|
111
115
|
function fisherBridgeSendCoin(
|
|
@@ -113,6 +117,7 @@ interface ITreasuryExternalChainStation {
|
|
|
113
117
|
address addressToReceive,
|
|
114
118
|
uint256 priorityFee,
|
|
115
119
|
uint256 amount,
|
|
120
|
+
uint256 nonce,
|
|
116
121
|
bytes memory signature
|
|
117
122
|
) external payable;
|
|
118
123
|
function fisherBridgeSendERC20(
|
|
@@ -121,15 +126,16 @@ interface ITreasuryExternalChainStation {
|
|
|
121
126
|
address tokenAddress,
|
|
122
127
|
uint256 priorityFee,
|
|
123
128
|
uint256 amount,
|
|
129
|
+
uint256 nonce,
|
|
124
130
|
bytes memory signature
|
|
125
131
|
) external;
|
|
126
132
|
function gateway() external view returns (address);
|
|
127
|
-
function getAdmin() external view returns (
|
|
133
|
+
function getAdmin() external view returns (ProposalStructs.AddressTypeProposal memory);
|
|
128
134
|
function getAxelarConfig() external view returns (ExternalChainStationStructs.AxelarConfig memory);
|
|
129
|
-
function getFisherExecutor() external view returns (
|
|
135
|
+
function getFisherExecutor() external view returns (ProposalStructs.AddressTypeProposal memory);
|
|
130
136
|
function getHyperlaneConfig() external view returns (ExternalChainStationStructs.HyperlaneConfig memory);
|
|
137
|
+
function getIfUsedAsyncNonce(address user, uint256 nonce) external view returns (bool);
|
|
131
138
|
function getLayerZeroConfig() external view returns (ExternalChainStationStructs.LayerZeroConfig memory);
|
|
132
|
-
function getNextFisherExecutionNonce(address user) external view returns (uint256);
|
|
133
139
|
function getOptions() external view returns (bytes memory);
|
|
134
140
|
function getQuoteHyperlane(address toAddress, address token, uint256 amount) external view returns (uint256);
|
|
135
141
|
function handle(uint32 _origin, bytes32 _sender, bytes memory _data) external payable;
|
|
@@ -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 (
|
|
124
|
+
function getAdmin() external view returns (ProposalStructs.AddressTypeProposal memory);
|
|
122
125
|
function getAxelarConfig() external view returns (HostChainStationStructs.AxelarConfig memory);
|
|
123
|
-
function
|
|
124
|
-
function getFisherExecutor() external view returns (
|
|
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;
|