@@ -121,18 +121,12 @@ abstract contract Credit is FeesManagerStorage, Initializable, Ownable, AppGatew
121121 }
122122
123123 /// @notice Deposits credits and native tokens to a user
124- /// @param depositTo_ The address to deposit the credits to
125- /// @param chainSlug_ The chain slug
126- /// @param token_ The token address
127- /// @param nativeAmount_ The native amount
128- /// @param creditAmount_ The credit amount
129- function deposit (
130- uint32 chainSlug_ ,
131- address token_ ,
132- address depositTo_ ,
133- uint256 nativeAmount_ ,
134- uint256 creditAmount_
135- ) external override onlyWatcher {
124+ /// @param payload_ Encoded deposit parameters: (chainSlug, token, receiver, creditAmount, nativeAmount)
125+ function deposit (bytes calldata payload_ ) external override onlyWatcher {
126+ // Decode payload: (chainSlug, token, receiver, creditAmount, nativeAmount)
127+ (uint32 chainSlug_ , address token_ , address depositTo_ , uint256 creditAmount_ , uint256 nativeAmount_ ) =
128+ abi.decode (payload_, (uint32 , address , address , uint256 , uint256 ));
129+
136130 tokenOnChainBalances[chainSlug_][token_] += creditAmount_ + nativeAmount_;
137131
138132 // Mint tokens to the user
@@ -142,9 +136,10 @@ abstract contract Credit is FeesManagerStorage, Initializable, Ownable, AppGatew
142136 bool success = feesPool.withdraw (depositTo_, nativeAmount_);
143137
144138 if (! success) {
145- _mint (depositTo_, creditAmount_);
146- nativeAmount_ = 0 ;
139+ // Convert failed native amount to credits
140+ _mint (depositTo_, nativeAmount_) ;
147141 creditAmount_ += nativeAmount_;
142+ nativeAmount_ = 0 ;
148143 }
149144 }
150145
0 commit comments