Skip to content

Commit 0dc1596

Browse files
authored
Update rate limit if it is previously used (wormhole-foundation#607)
Currently when peer is upgraded, the rate limit is reset. This PR sets rate limit to new rate limit if the rate limit is uninitialized/unused. Otherwise it updates the rate limit.
1 parent 6305c9e commit 0dc1596

File tree

1 file changed

+12
-4
lines changed
  • solana/programs/example-native-token-transfers/src/instructions/admin

1 file changed

+12
-4
lines changed

solana/programs/example-native-token-transfers/src/instructions/admin/mod.rs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,18 @@ pub fn set_peer(ctx: Context<SetPeer>, args: SetPeerArgs) -> Result<()> {
7070
token_decimals: args.token_decimals,
7171
});
7272

73-
ctx.accounts.inbox_rate_limit.set_inner(InboxRateLimit {
74-
bump: ctx.bumps.inbox_rate_limit,
75-
rate_limit: RateLimitState::new(args.limit),
76-
});
73+
// if rate limit is uninitialized/unused, set new rate limit
74+
if ctx.accounts.inbox_rate_limit.rate_limit.last_tx_timestamp == 0 {
75+
ctx.accounts.inbox_rate_limit.set_inner(InboxRateLimit {
76+
bump: ctx.bumps.inbox_rate_limit,
77+
rate_limit: RateLimitState::new(args.limit),
78+
});
79+
}
80+
// else update rate limit
81+
else {
82+
ctx.accounts.inbox_rate_limit.set_limit(args.limit);
83+
}
84+
7785
Ok(())
7886
}
7987

0 commit comments

Comments
 (0)