Users are able to withdraw assets from L2 to L1 in Zecrey.
Initialize SDK
You need to initialize the SDK in order to use it.
Withdraw NFT to L1
Example
Withdraw NFT with NftId
= 6
package main
import (
"fmt"
"github.com/Zecrey-Labs/zecrey-marketplace-go-sdk/sdk"
)
func main() {
var nftId int64 = 6
accountName := "Bob"
seed := "17673b9a9fdec6dc90c7cc1eb1c939134dfb659d2f08edbe071e5c45f343d008"
c, err := sdk.NewClient(accountName, seed)
if err != nil { panic(err) }
result, err := c.WithdrawNft(nftId)
if err != nil { panic(err) }
data, _ := json.Marshal(result)
fmt.Println("WithdrawNft:", string(data))
}
Example result
WithdrawNft: {"success":true}
Example
Withdraw NFT with NftId
= 6
With the private key:
import { Client } from "@zecrey/zecrey-legend-js-sdk";
const account_name = "amber1.zec";
const seed = "ee823a72698fd05c70fbdf36ba2ea467d33cf628c94ef030383efcb39581e43f";
const client = new Client(account_name, seed);
await client.initialize();
const nft_id = 48;
const to_address = "0x09E45d6FcF322c4D93E6aFE7076601FF10BA942E";
const res = await client.withdrawNft(nft_id, to_address);
console.log("success: ", res);
With the wallet:
import { SDK } from "@zecrey/zecrey-legend-js-sdk";
const sdk = new SDK();
await sdk.initial();
const account_name = "Alice.zec"; // sender's account name
const account_index = 14; // sender's account index
const nft_id = 48;
const to_address = "0x09E45d6FcF322c4D93E6aFE7076601FF10BA942E";
const res = await sdk.withdrawNft(account_name, account_index, nft_id, to_address);
console.log("success: ", res);
Example result
Withdraw FT to L1
Example
Withdraw 100000 BNB to L1
package main
import (
"fmt"
"github.com/Zecrey-Labs/zecrey-marketplace-go-sdk/sdk"
)
func main() {
seed := "13243b9a9fdec6dc90c7cc1eb1c939134dfb659d2f0asdfas5413213213213213"
accountName := "bob"
tol1Address := "0x< a l1 address you want to withdraw>"
assetAmount := int64(100000)
c, err := sdk.NewClient(accountName, seed)
if err != nil { panic(err) }
result, err := c.Withdraw(tol1Address,sdk.BNBAssetId, assetAmount)
if err != nil { panic(err) }
data, err := json.Marshal(result)
fmt.Println("Withdraw:", string(data))
}
Example result
Withdraw: {"tx_id":"DJIkgT9j2f1uX2xkWR+fJ35Kyg/HDJ4trixtL9CNG/k="}
Example
Withdraw 100000 BNB to L1
import { Client } from "@zecrey/zecrey-legend-js-sdk";
const account_name = "amber1.zec";
const seed = "ee823a72698fd05c70fbdf36ba2ea467d33cf628c94ef030383efcb39581e43f";
const client = new Client(account_name, seed);
await client.initialize();
const asset_id = 0; // BNB
const amount = "100000000000000"; // 0.0001 BNB
const to_address = "0x09E45d6FcF322c4D93E6aFE7076601FF10BA942E";
const res = await client.withdraw(asset_id, amount, to_address);
console.log("tx id: ", res);
Example result
tx id: LNwRbx6JwTDcSTt5tEosiD2wO4RGre8VxAu9nWayiGs=