@evvm/testnet-contracts 2.1.3 → 2.2.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 (52) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +355 -55
  3. package/contracts/evvm/Evvm.sol +39 -38
  4. package/contracts/evvm/lib/ErrorsLib.sol +2 -1
  5. package/contracts/evvm/lib/EvvmStorage.sol +2 -0
  6. package/contracts/evvm/lib/EvvmStructs.sol +27 -1
  7. package/contracts/evvm/lib/SignatureUtils.sol +14 -17
  8. package/contracts/nameService/NameService.sol +124 -366
  9. package/contracts/nameService/lib/ErrorsLib.sol +2 -8
  10. package/contracts/nameService/lib/IdentityValidation.sol +182 -0
  11. package/contracts/nameService/lib/NameServiceStructs.sol +69 -0
  12. package/contracts/nameService/lib/SignatureUtils.sol +47 -41
  13. package/contracts/p2pSwap/P2PSwap.sol +54 -535
  14. package/contracts/p2pSwap/lib/P2PSwapStructs.sol +59 -0
  15. package/contracts/p2pSwap/lib/SignatureUtils.sol +16 -18
  16. package/contracts/staking/Estimator.sol +7 -6
  17. package/contracts/staking/Staking.sol +70 -159
  18. package/contracts/staking/lib/ErrorsLib.sol +0 -1
  19. package/contracts/staking/lib/SignatureUtils.sol +7 -36
  20. package/contracts/staking/lib/StakingStructs.sol +94 -0
  21. package/contracts/treasury/Treasury.sol +18 -20
  22. package/contracts/treasuryTwoChains/TreasuryExternalChainStation.sol +88 -35
  23. package/contracts/treasuryTwoChains/TreasuryHostChainStation.sol +81 -47
  24. package/contracts/treasuryTwoChains/lib/ErrorsLib.sol +2 -0
  25. package/contracts/treasuryTwoChains/lib/ExternalChainStationStructs.sol +3 -14
  26. package/contracts/treasuryTwoChains/lib/HostChainStationStructs.sol +3 -7
  27. package/contracts/treasuryTwoChains/lib/SignatureUtils.sol +12 -14
  28. package/interfaces/IEstimator.sol +7 -50
  29. package/interfaces/IEvvm.sol +17 -91
  30. package/interfaces/INameService.sol +37 -88
  31. package/interfaces/IP2PSwap.sol +19 -15
  32. package/interfaces/IStaking.sol +20 -50
  33. package/interfaces/ITreasury.sol +1 -4
  34. package/interfaces/ITreasuryExternalChainStation.sol +11 -15
  35. package/interfaces/ITreasuryHostChainStation.sol +7 -10
  36. package/library/Erc191TestBuilder.sol +56 -57
  37. package/library/EvvmService.sol +40 -0
  38. package/library/primitives/IERC20.sol +79 -0
  39. package/library/primitives/Math.sol +415 -0
  40. package/library/primitives/SignatureRecover.sol +42 -0
  41. package/library/utils/AdvancedStrings.sol +89 -0
  42. package/library/utils/GovernanceUtils.sol +81 -0
  43. package/library/utils/SignatureUtil.sol +29 -0
  44. package/library/utils/nonces/AsyncNonce.sol +32 -0
  45. package/library/utils/nonces/SyncNonce.sol +27 -0
  46. package/library/utils/service/EvvmPayments.sol +77 -0
  47. package/library/utils/service/StakingServiceUtils.sol +32 -0
  48. package/package.json +11 -13
  49. package/contracts/evvm/EvvmLegacy.sol +0 -1553
  50. package/library/AdvancedStrings.sol +0 -77
  51. package/library/SignatureRecover.sol +0 -140
  52. package/library/StakingServiceHooks.sol +0 -116
@@ -0,0 +1,59 @@
1
+ // SPDX-License-Identifier: EVVM-NONCOMMERCIAL-1.0
2
+ // Full license terms available at: https://www.evvm.info/docs/EVVMNoncommercialLicense
3
+
4
+ pragma solidity ^0.8.0;
5
+
6
+
7
+ abstract contract P2PSwapStructs {
8
+ struct MarketInformation {
9
+ address tokenA;
10
+ address tokenB;
11
+ uint256 maxSlot;
12
+ uint256 ordersAvailable;
13
+ }
14
+
15
+ struct Order {
16
+ address seller;
17
+ uint256 amountA;
18
+ uint256 amountB;
19
+ }
20
+
21
+ struct OrderForGetter {
22
+ uint256 marketId;
23
+ uint256 orderId;
24
+ address seller;
25
+ uint256 amountA;
26
+ uint256 amountB;
27
+ }
28
+
29
+ struct Percentage {
30
+ uint256 seller;
31
+ uint256 service;
32
+ uint256 mateStaker;
33
+ }
34
+
35
+ struct MetadataMakeOrder {
36
+ uint256 nonce;
37
+ address tokenA;
38
+ address tokenB;
39
+ uint256 amountA;
40
+ uint256 amountB;
41
+ }
42
+
43
+ struct MetadataCancelOrder {
44
+ uint256 nonce;
45
+ address tokenA;
46
+ address tokenB;
47
+ uint256 orderId;
48
+ bytes signature;
49
+ }
50
+
51
+ struct MetadataDispatchOrder {
52
+ uint256 nonce;
53
+ address tokenA;
54
+ address tokenB;
55
+ uint256 orderId;
56
+ uint256 amountOfTokenBToFill;
57
+ bytes signature;
58
+ }
59
+ }
@@ -1,12 +1,10 @@
1
1
  // SPDX-License-Identifier: EVVM-NONCOMMERCIAL-1.0
2
2
  // Full license terms available at: https://www.evvm.info/docs/EVVMNoncommercialLicense
3
-
4
- import {SignatureRecover} from "@evvm/testnet-contracts/library/SignatureRecover.sol";
5
- import {AdvancedStrings} from "@evvm/testnet-contracts/library/AdvancedStrings.sol";
6
- import {Strings} from "@openzeppelin/contracts/utils/Strings.sol";
7
-
8
3
  pragma solidity ^0.8.0;
9
4
 
5
+ import {SignatureUtil} from "@evvm/testnet-contracts/library/utils/SignatureUtil.sol";
6
+ import {AdvancedStrings} from "@evvm/testnet-contracts/library/utils/AdvancedStrings.sol";
7
+
10
8
  library SignatureUtils {
11
9
  /**
12
10
  * @dev using EIP-191 (https://eips.ethereum.org/EIPS/eip-191) can be used to sign and
@@ -25,19 +23,19 @@ library SignatureUtils {
25
23
  bytes memory signature
26
24
  ) internal pure returns (bool) {
27
25
  return
28
- SignatureRecover.signatureVerification(
29
- Strings.toString(evvmID),
26
+ SignatureUtil.verifySignature(
27
+ evvmID,
30
28
  "makeOrder",
31
29
  string.concat(
32
- Strings.toString(_nonce),
30
+ AdvancedStrings.uintToString(_nonce),
33
31
  ",",
34
32
  AdvancedStrings.addressToString(_tokenA),
35
33
  ",",
36
34
  AdvancedStrings.addressToString(_tokenB),
37
35
  ",",
38
- Strings.toString(_amountA),
36
+ AdvancedStrings.uintToString(_amountA),
39
37
  ",",
40
- Strings.toString(_amountB)
38
+ AdvancedStrings.uintToString(_amountB)
41
39
  ),
42
40
  signature,
43
41
  signer
@@ -54,17 +52,17 @@ library SignatureUtils {
54
52
  bytes memory signature
55
53
  ) internal pure returns (bool) {
56
54
  return
57
- SignatureRecover.signatureVerification(
58
- Strings.toString(evvmID),
55
+ SignatureUtil.verifySignature(
56
+ evvmID,
59
57
  "cancelOrder",
60
58
  string.concat(
61
- Strings.toString(_nonce),
59
+ AdvancedStrings.uintToString(_nonce),
62
60
  ",",
63
61
  AdvancedStrings.addressToString(_tokenA),
64
62
  ",",
65
63
  AdvancedStrings.addressToString(_tokenB),
66
64
  ",",
67
- Strings.toString(_orderId)
65
+ AdvancedStrings.uintToString(_orderId)
68
66
  ),
69
67
  signature,
70
68
  signer
@@ -81,17 +79,17 @@ library SignatureUtils {
81
79
  bytes memory signature
82
80
  ) internal pure returns (bool) {
83
81
  return
84
- SignatureRecover.signatureVerification(
85
- Strings.toString(evvmID),
82
+ SignatureUtil.verifySignature(
83
+ evvmID,
86
84
  "dispatchOrder",
87
85
  string.concat(
88
- Strings.toString(_nonce),
86
+ AdvancedStrings.uintToString(_nonce),
89
87
  ",",
90
88
  AdvancedStrings.addressToString(_tokenA),
91
89
  ",",
92
90
  AdvancedStrings.addressToString(_tokenB),
93
91
  ",",
94
- Strings.toString(_orderId)
92
+ AdvancedStrings.uintToString(_orderId)
95
93
  ),
96
94
  signature,
97
95
  signer
@@ -16,6 +16,7 @@ MMMMMMMMMMMM
16
16
  */
17
17
 
18
18
  import {Staking} from "@evvm/testnet-contracts/contracts/staking/Staking.sol";
19
+ import {StakingStructs} from "@evvm/testnet-contracts/contracts/staking/lib/StakingStructs.sol";
19
20
  import {Evvm} from "@evvm/testnet-contracts/contracts/evvm/Evvm.sol";
20
21
 
21
22
  contract Estimator {
@@ -111,7 +112,7 @@ contract Estimator {
111
112
  uint256 sumSmT;
112
113
 
113
114
  uint256 tLast = epoch.tStart;
114
- Staking.HistoryMetadata memory h;
115
+ StakingStructs.HistoryMetadata memory h;
115
116
  uint256 size = Staking(addressStaking.actual).getSizeOfAddressHistory(
116
117
  _user
117
118
  );
@@ -180,7 +181,7 @@ contract Estimator {
180
181
  address _proposal
181
182
  ) external onlyActivator {
182
183
  activator.proposal = _proposal;
183
- activator.timeToAccept = block.timestamp + 1 minutes;
184
+ activator.timeToAccept = block.timestamp + 1 days;
184
185
  }
185
186
 
186
187
  function cancelActivatorProposal() external onlyActivator {
@@ -200,7 +201,7 @@ contract Estimator {
200
201
  address _proposal
201
202
  ) external onlyAdmin {
202
203
  evvmAddress.proposal = _proposal;
203
- evvmAddress.timeToAccept = block.timestamp + 1 minutes;
204
+ evvmAddress.timeToAccept = block.timestamp + 1 days;
204
205
  }
205
206
 
206
207
  function cancelEvvmAddressProposal() external onlyAdmin {
@@ -220,7 +221,7 @@ contract Estimator {
220
221
  address _proposal
221
222
  ) external onlyAdmin {
222
223
  addressStaking.proposal = _proposal;
223
- addressStaking.timeToAccept = block.timestamp + 1 minutes;
224
+ addressStaking.timeToAccept = block.timestamp + 1 days;
224
225
  }
225
226
 
226
227
  function cancelAddressStakingProposal() external onlyAdmin {
@@ -240,7 +241,7 @@ contract Estimator {
240
241
  address _proposal
241
242
  ) external onlyAdmin {
242
243
  admin.proposal = _proposal;
243
- admin.timeToAccept = block.timestamp + 1 minutes;
244
+ admin.timeToAccept = block.timestamp + 1 days;
244
245
  }
245
246
 
246
247
  function cancelAdminProposal() external onlyAdmin {
@@ -315,7 +316,7 @@ contract Estimator {
315
316
  uint256 sumSmT;
316
317
 
317
318
  uint256 tLast = epoch.tStart;
318
- Staking.HistoryMetadata memory h;
319
+ StakingStructs.HistoryMetadata memory h;
319
320
  uint256 size = Staking(addressStaking.actual).getSizeOfAddressHistory(
320
321
  _user
321
322
  );