Skip to content

loophe/StarknetFusionPlus

 
 

Repository files navigation

Starknet <-> EVM Fustion+

Installation

Install example deps

pnpm install

Install foundry

curl -L https://foundry.paradigm.xyz | bash

Install contract deps

forge install

Running

To run tests you need to provide fork urls for Ethereum and Bsc

swap starknet to evm

pnpm run SNTOEVM <starknetToken> <amount1> <opToken> <amount2> <opUserAddress>

pnpm run SNTOEVM 0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d 0.01 0x722d3c28fadCee0f1070C12C4d47F20DB5bfE82B 8 0x7F7Ac1507d9addC6b0b23872334F2a08bDc2Cd25

swap evm to starknet

pnpm run EVMTOSN <opToken> <amount2> <starknetToken> <amount1> <tarkentUserAddress>

pnpm run EVMTOSN 0x722d3c28fadCee0f1070C12C4d47F20DB5bfE82B 8 0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d 1 0x060684D67EE65A3C3C41932cAeAD3d6B19c0738390d24924f172FFB416Cef3ae

Actual exchange

📋 Swap parameters:
  Source Token: 0x722d3c28fadCee0f1070C12C4d47F20DB5bfE82B
  Source Amount: 8
  Destination Token: 0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d
  Destination Amount: 1
  Starknet User: 0x060684D67EE65A3C3C41932cAeAD3d6B19c0738390d24924f172FFB416Cef3ae

🚀 Starting OP to Starknet cross-chain token swap
Source token: 0x722d3c28fadCee0f1070C12C4d47F20DB5bfE82B -> Destination token: 0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d
Swap amount: 8 -> 1
Actual amounts: 8000000000000000000 -> 1000000000000000000 (18 decimals)
💰 Current token balance: 24000000000000000000 (needed: 8000000000000000000)

=== STEP 1: User submits order ===
{
  srcToken: '0x722d3c28fadCee0f1070C12C4d47F20DB5bfE82B',
  dstToken: '0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d',
  makingAmount: 8,
  takingAmount: 1
}
📋 Created cross-chain order: {
  orderHash: '0x1184508c5dafb1ab2c0c6d4a3b3dc8743faaeb4a031cdc0d9d017f3fdd21b4a4',
  makingAmount: '8000000000000000000',
  takingAmount: '1000000000000000000',
  srcToken: '0x722d3c28fadCee0f1070C12C4d47F20DB5bfE82B',
  dstToken: '0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d'
}
📝 Order signed: 0xa1a851467feeed802ec528289138e28fa409ff0c0dbbd8b475175f052054b6c10bf0362ed3be5f312ca3d080dd90e66e2af20ba982c8255a094397e1664ff29a1c
📝 Order hash: 0x1184508c5dafb1ab2c0c6d4a3b3dc8743faaeb4a031cdc0d9d017f3fdd21b4a4

=== STEP 2: Resolver receives order and deploys src & dst escrows ===
📤 Submitting order to resolver...
[10] Order 0x1184508c5dafb1ab2c0c6d4a3b3dc8743faaeb4a031cdc0d9d017f3fdd21b4a4 filled for 8000000000000000000 in tx:
🔗 https://optimistic.etherscan.io/tx/0x16db9026971ca570ce26f686b6d434ed3804e9b45c14a58988b3b0e75f674740
Starknet dst created:
🔗 https://sepolia.voyager.online/tx/0x6edab596e7826fac35582d3f40d2bc8cb7a97f23f6f3c376c7d841abdb71412

=== STEP 3: Relayer checks completion and provides secret to resolver ===
{
  secret: '0x1f7330b0bc01ad901404ccd65a6528f1496f90a260a943401cec8622e7012c',
  srcEscrowAddress: '0xb4d8b16b1d01252382de163395a7e86ccc349fac',
  dstEscrowAddress: '0x216b4abd9a7ea1b56eefca6061385697e75b248389f8a0ac2990f73c8de56e2'
}

=== STEP 4: Resolver withdraws from src and dst escrows using secret ===
⏰ Waiting 11 seconds...
✅ OP src withdraw completed:
🔗 https://optimistic.etherscan.io/tx/0xc83b64e1c9117324d73601f1b08d0373f6a8cf1200cd6f7383f6463b62b1f7aa
✅ Starknet withdraw completed:
🔗 https://sepolia.voyager.online/tx/0x56340079e18b18beb146513915688941ee57cc26574ff45ab1478ebd50c9191

=== STEP 5: Complete all steps and finish order ===
{
  orderHash: '0x1184508c5dafb1ab2c0c6d4a3b3dc8743faaeb4a031cdc0d9d017f3fdd21b4a4',
  status: 'SUCCESS'
}
🎉 Swap order created successfully!
Order hash: 0x1184508c5dafb1ab2c0c6d4a3b3dc8743faaeb4a031cdc0d9d017f3fdd21b4a4
Secret: 0x1f7330b0bc01ad901404ccd65a6528f1496f90a260a943401cec8622e7012c
yycz@yyczdeMacBook-Pro cross-chain-resolver-example % 
                                                                                                                                                         
yycz@yyczdeMacBook-Pro cross-chain-resolver-example % 
yycz@yyczdeMacBook-Pro cross-chain-resolver-example % 
yycz@yyczdeMacBook-Pro cross-chain-resolver-example %  pnpm run SNTOEVM 0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d 0.01 0x722d3c28fadCee0f1070C12C4d47F20DB5bfE82B 8 0x7F7Ac1507d9addC6b0b23872334F2a08bDc2Cd25

> [email protected] SNTOEVM /Users/yycz/ethglobal/1inch/cross-chain-resolver-example
> tsx scripts/swap-starknet-to-op.ts 0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d 0.01 0x722d3c28fadCee0f1070C12C4d47F20DB5bfE82B 8 0x7F7Ac1507d9addC6b0b23872334F2a08bDc2Cd25

📋 Swap parameters:
  Source Token (Starknet): 0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d
  Source Amount: 0.01
  Destination Token (OP): 0x722d3c28fadCee0f1070C12C4d47F20DB5bfE82B
  Destination Amount: 8
  OP User: 0x7F7Ac1507d9addC6b0b23872334F2a08bDc2Cd25

🚀 Starting Starknet to OP cross-chain token swap
Source token: 0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d -> Destination token: 0x722d3c28fadCee0f1070C12C4d47F20DB5bfE82B
Swap amount: 0.01 -> 8
Actual amounts: 0.01 -> 8 (18 decimals)
Safety deposit: 110000000000000
🔓 Checking and approving Starknet token...
✅ Starknet token approval successful

=== STEP 1: User submits order ===
{
  srcToken: '0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d',
  dstToken: '0x722d3c28fadCee0f1070C12C4d47F20DB5bfE82B',
  makingAmount: 0.01,
  takingAmount: 8
}
📝 Starknet order created
📝 Order hash: 0x15f44cd02df99092feafa016c6589fe963b3ea01189a0aa8e09a12adb0865d8

=== STEP 2: Resolver receives order and deploys src & dst escrows ===
📤 Deploying src escrow on Starknet...
Starknet src escrow deployed:
🔗 https://sepolia.voyager.online/tx/0x2ce51316fb5330f8f9ce4b77fe5c8df8f5995a3d4b2b7f57cd43b6c2877e9ff
[Starknet] Order 0x15f44cd02df99092feafa016c6589fe963b3ea01189a0aa8e09a12adb0865d8 src escrow deployed at 0x748b318710905c553cbeb427b97a14bf56a49651b5d4201ee21fb749a10f16c
taker 0x09253DbFBd2B9e98F342AEBA88884cC1a84aaBe4
[OP] Created dst deposit in tx:
🔗 https://optimistic.etherscan.io/tx/0x2b05ef6c0c7ebecf252cf3d7ad06868cdd393ac5a9ac1bc09d8f22a321797285
DST Escrow Address: 0x59f8c0ba0ff6c723054dabcbea84e2d2d9d162dc

=== STEP 3: Relayer checks completion and provides secret to resolver ===
{
  secret: '0x04063aec91e52e33e19b4abdb4cd323d77e2ffa1ac7e11d2b4f9355136fbdb',
  srcEscrowAddress: '0x748b318710905c553cbeb427b97a14bf56a49651b5d4201ee21fb749a10f16c',
  dstEscrowAddress: '0x59f8c0ba0ff6c723054dabcbea84e2d2d9d162dc'
}

=== STEP 4: Resolver withdraws from src and dst escrows using secret ===
⏰ Waiting 11 seconds...
💰 Withdrawing funds from OP dst escrow: 0x59f8c0ba0ff6c723054dabcbea84e2d2d9d162dc
✅ OP dst withdraw completed:
🔗 https://optimistic.etherscan.io/tx/0x5398261a3d53a56d90f1ce6ee4f34eafd4670b33cbbf958b9b05c2a4c2f13e2e
💰 Withdrawing funds from Starknet src escrow: 0x748b318710905c553cbeb427b97a14bf56a49651b5d4201ee21fb749a10f16c
✅ Starknet src withdraw completed:

=== STEP 5: Complete all steps and finish order ===
{
  orderHash: '0x15f44cd02df99092feafa016c6589fe963b3ea01189a0aa8e09a12adb0865d8',
  status: 'SUCCESS'
}
🎉 Swap order created successfully!
Order hash: 0x15f44cd02df99092feafa016c6589fe963b3ea01189a0aa8e09a12adb0865d8
Secret: 0x04063aec91e52e33e19b4abdb4cd323d77e2ffa1ac7e11d2b4f9355136fbdb

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Solidity 65.3%
  • JavaScript 24.6%
  • TypeScript 3.7%
  • Python 3.3%
  • Ruby 2.6%
  • Cairo 0.3%
  • Other 0.2%