@@ -92,8 +92,8 @@ contract TestNttManager is Test, INttManagerEvents, IRateLimiterEvents {
92
92
93
93
t.mintDummy (address (user_A), 5 * 10 ** decimals);
94
94
95
+ // Test outgoing transfers complete successfully with rate limit disabled
95
96
vm.startPrank (user_A);
96
-
97
97
t.approve (address (nttManagerZeroRateLimiter), 3 * 10 ** decimals);
98
98
99
99
uint64 s1 = nttManagerZeroRateLimiter.transfer (
@@ -105,10 +105,37 @@ contract TestNttManager is Test, INttManagerEvents, IRateLimiterEvents {
105
105
uint64 s3 = nttManagerZeroRateLimiter.transfer (
106
106
1 * 10 ** decimals, chainId, toWormholeFormat (user_B)
107
107
);
108
+ vm.stopPrank ();
108
109
109
110
assertEq (s1, 0 );
110
111
assertEq (s2, 1 );
111
112
assertEq (s3, 2 );
113
+
114
+ // Test incoming transfer completes successfully with rate limit disabled
115
+ (DummyTransceiver e1 ,) = TransceiverHelpersLib.setup_transceivers (nttManagerZeroRateLimiter);
116
+ nttManagerZeroRateLimiter.setThreshold (2 );
117
+
118
+ // register nttManager peer
119
+ bytes32 peer = toWormholeFormat (address (nttManager));
120
+ nttManagerZeroRateLimiter.setPeer (TransceiverHelpersLib.SENDING_CHAIN_ID, peer, 9 );
121
+
122
+ TransceiverStructs.NttManagerMessage memory nttManagerMessage;
123
+ bytes memory transceiverMessage;
124
+ (nttManagerMessage, transceiverMessage) = TransceiverHelpersLib
125
+ .buildTransceiverMessageWithNttManagerPayload (
126
+ 0 ,
127
+ bytes32 (0 ),
128
+ peer,
129
+ toWormholeFormat (address (nttManagerZeroRateLimiter)),
130
+ abi.encode ("payload " )
131
+ );
132
+
133
+ e1.receiveMessage (transceiverMessage);
134
+
135
+ bytes32 hash = TransceiverStructs.nttManagerMessageDigest (
136
+ TransceiverHelpersLib.SENDING_CHAIN_ID, nttManagerMessage
137
+ );
138
+ assertEq (nttManagerZeroRateLimiter.messageAttestations (hash), 1 );
112
139
}
113
140
114
141
// === ownership
0 commit comments