Quick Start
1. Configure Private Key and RPC
Please fill in your private key and RPC node address in the main function:
var rpcUrl = "https://your-rpc-url"
var privKey = "your private key (hex string, without 0x)"
var appKey = "App key"
2. Parameter Description
sourceChain
: Source chain ID (string)destChain
: Destination chain ID (string)sourceToken
: Source chain Token addressdestToken
: Destination chain Token addressamount
: Transfer amount (string, unit is minimum precision)to
: Recipient address (destination chain address, recommended to use Hex string)
3. Example Call
package main
import (
"fmt"
"github.com/Fintechain/gate-sdk/go/bridge-sdk-go/api"
"github.com/Fintechain/gate-sdk/go/bridge-sdk-go/bridge"
"github.com/Fintechain/gate-sdk/go/bridge-sdk-go/types"
"github.com/ethereum/go-ethereum/crypto"
)
func main() {
var rpcUrl = "" // Blockchain RPC node URL
var privKey = "" // Private key for data signing
var appKey = "" // App key
privateKey, _ := crypto.HexToECDSA(privKey)
fromAddress := crypto.PubkeyToAddress(privateKey.PublicKey)
// Get signature data
routerParams := types.RouterParams{
SourceChain: "1",
DestChain: "56",
SourceToken: "0xF3F2b4815A58152c9BE53250275e8211163268BA",
DestToken: "0xe37Bdc6F09DAB6ce6E4eBC4d2E72792994Ef3765",
Amount: "10000000",
To: fromAddress.Hex(),
}
routerUrl := "https://www.fintechain.org/proxy/api/oracle/router"
routerResp, err := api.Router(appKey, routerUrl, &routerParams)
if err != nil {
fmt.Println("Router failed:", err)
}
fmt.Println("Bridge data:", routerResp)
// Sign the returned data and send it to the blockchain
b := bridge.NewBridge(types.Config{RPCUrl: rpcUrl})
txHash, err := b.Cross(privateKey, &routerResp.Data.SignData)
if err != nil {
fmt.Println("Bridge failed:", err)
return
}
fmt.Println("Bridge txHash:", txHash)
}
4. Main Function Descriptions
4.1. api.Router
Calls the backend routing interface to obtain cross-chain parameters.
4.2. b.Cross
Main process, automatically completes routing, approval, and transaction sending.