11import " FungibleToken"
22import " EVM"
3- import " FlowEVMBridgeUtils"
4- import " UniswapV3SwapConnectors3"
3+ import " UniswapV3SwapConnectors"
54import " FlowEVMBridgeConfig"
65
76transaction () {
@@ -15,23 +14,20 @@ transaction() {
1514
1615 let quoter = EVM .addressFromString (" 0xA1e0E4CCACA34a738f03cFB1EAbAb16331FA3E2c" )
1716
18- // let usdc = EVM.addressFromString("0x5e65b6B04fbA51D95409712978Cb91E99d93aE73")
19- // let wflow = EVM.addressFromString("0xd3bF53DAC106A0290B0483EcBC89d40FcC961f3e") // WFLOW on EVM side
17+ // let usdc = EVM.addressFromString("0x5e65b6B04fbA51D95409712978Cb91E99d93aE73") // Testnet USDC
18+ // let wflow = EVM.addressFromString("0xd3bF53DAC106A0290B0483EcBC89d40FcC961f3e") // Testnet WFLOW
2019
21- let tokenIn = EVM .addressFromString (" 0xd431955D55a99EF69BEb96BA34718d0f9fBc91b1" )
22- let tokenOut = EVM .addressFromString (" 0x4154d5B0E2931a0A1E5b733f19161aa7D2fc4b95" )
20+ let tokenIn = EVM .addressFromString (" 0xd431955D55a99EF69BEb96BA34718d0f9fBc91b1" ) // mockUSDC
21+ let tokenOut = EVM .addressFromString (" 0x4154d5B0E2931a0A1E5b733f19161aa7D2fc4b95" ) // More Vaults mUSDC
2322
2423 // Vault types for in/out
25- // let inType: Type = Type<@FlowToken.Vault>() // FLOW in
26- // let outType: Type = FlowEVMBridgeConfig.getTypeAssociated(with: usdc) ?? panic("invalid USDC out type")
2724
28- let inType : Type = FlowEVMBridgeConfig .getTypeAssociated (with : tokenIn ) ?? panic (" invalid mockUSDC in type" ) // FLOW in
25+ let inType : Type = FlowEVMBridgeConfig .getTypeAssociated (with : tokenIn ) ?? panic (" invalid mockUSDC in type" )
2926 let outType : Type = FlowEVMBridgeConfig .getTypeAssociated (with : tokenOut ) ?? panic (" invalid moreVaultUSDC out type" )
30- // Swapper: tokenPath must be [WFLOW, USDC] for FLOW → USDC
31- let swapper = UniswapV3SwapConnectors3 .Swapper (
27+
28+ let swapper = UniswapV3SwapConnectors .Swapper (
3229 routerAddress : router ,
3330 quoterAddress : quoter ,
34- // tokenPath: [wflow, usdc],
3531 tokenPath : [tokenIn , tokenOut ],
3632 feePath : [3000 ], // 0.3%
3733 inVault : inType ,
@@ -42,26 +38,27 @@ transaction() {
4238
4339 let tokenInStoragePath = /storage/EVMVMBridgedToken_d431955d55a99ef69beb96ba34718d0f9fbc91b1Vault
4440 let tokenOutStoragePath = /storage/EVMVMBridgedToken_4154d5b0e2931a0a1e5b733f19161aa7d2fc4b95Vault
45- // Withdraw FLOW
41+
42+ // Withdraw
4643 let withdrawRef = acct .storage
4744 .borrow <auth (FungibleToken.Withdraw ) &{FungibleToken .Vault }>(from : tokenInStoragePath )
48- ?? panic (" Missing FLOW vault at /storage/flowTokenVault " )
45+ ?? panic (" Missing TokenIn vault at " . concat ( tokenInStoragePath . toString ()) )
4946
5047 let amountIn : UFix64 = 1.0
5148 let vaultIn <- withdrawRef .withdraw (amount : amountIn )
5249
53- // Quote how much USDC we’ll get
50+ // Quote how much we’ll get
5451 let q = swapper .quoteOut (forProvided : amountIn , reverse : false )
55- log (" Quote out for provided " .concat (amountIn .toString ()).concat (" FLOW → USDC : " ).concat (q .outAmount .toString ()))
52+ log (" Quote out for provided " .concat (amountIn .toString ()).concat (" TokenIn → TokenOut : " ).concat (q .outAmount .toString ()))
5653
5754 // Perform the swap
5855 let vaultOut <- swapper .swap (quote : q , inVault : <- vaultIn )
59- log (" USDC received: " .concat (vaultOut .balance .toString ()))
56+ log (" TokenOut received: " .concat (vaultOut .balance .toString ()))
6057
61- // Deposit USDC
62- let usdcReceiver = acct .storage
58+ // Deposit
59+ let tokenOutReceiver = acct .storage
6360 .borrow <&{FungibleToken .Receiver }>(from : tokenOutStoragePath )
64- ?? panic (" Missing USDC vault at " .concat (tokenOutStoragePath .toString ()))
65- usdcReceiver .deposit (from : <- vaultOut )
61+ ?? panic (" Missing TokenOut vault at " .concat (tokenOutStoragePath .toString ()))
62+ tokenOutReceiver .deposit (from : <- vaultOut )
6663 }
6764}
0 commit comments