commit
478f0c0421
|
@ -0,0 +1,443 @@
|
|||
package bybit_connector
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
type AssetClient struct {
|
||||
c *Client
|
||||
params map[string]interface{}
|
||||
}
|
||||
|
||||
func (s *AssetClient) GetAssetOrderRecord(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) {
|
||||
r := &request{
|
||||
method: http.MethodGet,
|
||||
endpoint: "/v5/asset/exchange/order-record",
|
||||
secType: secTypeSigned,
|
||||
}
|
||||
data, err := s.c.callAPI(ctx, r, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res = new(ServerResponse)
|
||||
err = json.Unmarshal(data, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (s *AssetClient) GetAssetInfo(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) {
|
||||
r := &request{
|
||||
method: http.MethodGet,
|
||||
endpoint: "/v5/asset/transfer/query-asset-info",
|
||||
secType: secTypeSigned,
|
||||
}
|
||||
data, err := s.c.callAPI(ctx, r, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res = new(ServerResponse)
|
||||
err = json.Unmarshal(data, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (s *AssetClient) GetDeliveryRecord(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) {
|
||||
r := &request{
|
||||
method: http.MethodGet,
|
||||
endpoint: "/v5/asset/delivery-record",
|
||||
secType: secTypeSigned,
|
||||
}
|
||||
data, err := s.c.callAPI(ctx, r, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res = new(ServerResponse)
|
||||
err = json.Unmarshal(data, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (s *AssetClient) GetUsdcSettlement(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) {
|
||||
r := &request{
|
||||
method: http.MethodGet,
|
||||
endpoint: "/v5/asset/settlement-record",
|
||||
secType: secTypeSigned,
|
||||
}
|
||||
data, err := s.c.callAPI(ctx, r, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res = new(ServerResponse)
|
||||
err = json.Unmarshal(data, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (s *AssetClient) GetAllCoinsBalance(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) {
|
||||
r := &request{
|
||||
method: http.MethodGet,
|
||||
endpoint: "/v5/asset/transfer/query-account-coins-balance",
|
||||
secType: secTypeSigned,
|
||||
}
|
||||
data, err := s.c.callAPI(ctx, r, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res = new(ServerResponse)
|
||||
err = json.Unmarshal(data, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (s *AssetClient) GetSingleCoinsBalance(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) {
|
||||
r := &request{
|
||||
method: http.MethodGet,
|
||||
endpoint: "/v5/asset/transfer/query-account-coin-balance",
|
||||
secType: secTypeSigned,
|
||||
}
|
||||
data, err := s.c.callAPI(ctx, r, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res = new(ServerResponse)
|
||||
err = json.Unmarshal(data, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (s *AssetClient) GetTransferableCoin(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) {
|
||||
r := &request{
|
||||
method: http.MethodGet,
|
||||
endpoint: "/v5/asset/transfer/query-transfer-coin-list",
|
||||
secType: secTypeSigned,
|
||||
}
|
||||
data, err := s.c.callAPI(ctx, r, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res = new(ServerResponse)
|
||||
err = json.Unmarshal(data, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (s *AssetClient) CreateInternalTransfer(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) {
|
||||
r := &request{
|
||||
method: http.MethodPost,
|
||||
endpoint: "/v5/asset/transfer/inter-transfer",
|
||||
secType: secTypeSigned,
|
||||
}
|
||||
data, err := s.c.callAPI(ctx, r, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res = new(ServerResponse)
|
||||
err = json.Unmarshal(data, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (s *AssetClient) CreateUniversalTransfer(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) {
|
||||
r := &request{
|
||||
method: http.MethodPost,
|
||||
endpoint: "/v5/asset/transfer/universal-transfer",
|
||||
secType: secTypeSigned,
|
||||
}
|
||||
data, err := s.c.callAPI(ctx, r, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res = new(ServerResponse)
|
||||
err = json.Unmarshal(data, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (s *AssetClient) SetDepositAccount(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) {
|
||||
r := &request{
|
||||
method: http.MethodPost,
|
||||
endpoint: "/v5/asset/deposit/deposit-to-account",
|
||||
secType: secTypeSigned,
|
||||
}
|
||||
data, err := s.c.callAPI(ctx, r, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res = new(ServerResponse)
|
||||
err = json.Unmarshal(data, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (s *AssetClient) WithdrawAsset(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) {
|
||||
r := &request{
|
||||
method: http.MethodPost,
|
||||
endpoint: "/v5/asset/withdraw/create",
|
||||
secType: secTypeSigned,
|
||||
}
|
||||
data, err := s.c.callAPI(ctx, r, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res = new(ServerResponse)
|
||||
err = json.Unmarshal(data, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (s *AssetClient) CancelWithdrawAsset(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) {
|
||||
r := &request{
|
||||
method: http.MethodPost,
|
||||
endpoint: "/v5/asset/withdraw/cancel",
|
||||
secType: secTypeSigned,
|
||||
}
|
||||
data, err := s.c.callAPI(ctx, r, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res = new(ServerResponse)
|
||||
err = json.Unmarshal(data, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (s *AssetClient) GetInternalTransfer(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) {
|
||||
r := &request{
|
||||
method: http.MethodGet,
|
||||
endpoint: "/v5/asset/transfer/query-inter-transfer-list",
|
||||
secType: secTypeSigned,
|
||||
}
|
||||
data, err := s.c.callAPI(ctx, r, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res = new(ServerResponse)
|
||||
err = json.Unmarshal(data, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (s *AssetClient) GetUniversalTransfer(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) {
|
||||
r := &request{
|
||||
method: http.MethodGet,
|
||||
endpoint: "/v5/asset/transfer/query-universal-transfer-list",
|
||||
secType: secTypeSigned,
|
||||
}
|
||||
data, err := s.c.callAPI(ctx, r, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res = new(ServerResponse)
|
||||
err = json.Unmarshal(data, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (s *AssetClient) GetSubUids(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) {
|
||||
r := &request{
|
||||
method: http.MethodGet,
|
||||
endpoint: "/v5/asset/transfer/query-sub-member-list",
|
||||
secType: secTypeSigned,
|
||||
}
|
||||
data, err := s.c.callAPI(ctx, r, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res = new(ServerResponse)
|
||||
err = json.Unmarshal(data, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (s *AssetClient) GetAllowedDepositCoin(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) {
|
||||
r := &request{
|
||||
method: http.MethodGet,
|
||||
endpoint: "/v5/asset/deposit/query-allowed-list",
|
||||
secType: secTypeSigned,
|
||||
}
|
||||
data, err := s.c.callAPI(ctx, r, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res = new(ServerResponse)
|
||||
err = json.Unmarshal(data, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (s *AssetClient) GetDepositRecords(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) {
|
||||
r := &request{
|
||||
method: http.MethodGet,
|
||||
endpoint: "/v5/asset/deposit/query-record",
|
||||
secType: secTypeSigned,
|
||||
}
|
||||
data, err := s.c.callAPI(ctx, r, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res = new(ServerResponse)
|
||||
err = json.Unmarshal(data, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (s *AssetClient) GetSubDepositRecords(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) {
|
||||
r := &request{
|
||||
method: http.MethodGet,
|
||||
endpoint: "/v5/asset/deposit/query-sub-member-record",
|
||||
secType: secTypeSigned,
|
||||
}
|
||||
data, err := s.c.callAPI(ctx, r, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res = new(ServerResponse)
|
||||
err = json.Unmarshal(data, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (s *AssetClient) GetInternalDepositRecords(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) {
|
||||
r := &request{
|
||||
method: http.MethodGet,
|
||||
endpoint: "/v5/asset/deposit/query-internal-record",
|
||||
secType: secTypeSigned,
|
||||
}
|
||||
data, err := s.c.callAPI(ctx, r, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res = new(ServerResponse)
|
||||
err = json.Unmarshal(data, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (s *AssetClient) GetMasterDepositAddress(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) {
|
||||
r := &request{
|
||||
method: http.MethodGet,
|
||||
endpoint: "/v5/asset/deposit/query-address",
|
||||
secType: secTypeSigned,
|
||||
}
|
||||
data, err := s.c.callAPI(ctx, r, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res = new(ServerResponse)
|
||||
err = json.Unmarshal(data, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (s *AssetClient) GetSubDepositAddress(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) {
|
||||
r := &request{
|
||||
method: http.MethodGet,
|
||||
endpoint: "/v5/asset/deposit/query-sub-member-address",
|
||||
secType: secTypeSigned,
|
||||
}
|
||||
data, err := s.c.callAPI(ctx, r, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res = new(ServerResponse)
|
||||
err = json.Unmarshal(data, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (s *AssetClient) GetCoinInfo(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) {
|
||||
r := &request{
|
||||
method: http.MethodGet,
|
||||
endpoint: "/v5/asset/coin/query-info",
|
||||
secType: secTypeSigned,
|
||||
}
|
||||
data, err := s.c.callAPI(ctx, r, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res = new(ServerResponse)
|
||||
err = json.Unmarshal(data, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (s *AssetClient) GetWithdrawalAmount(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) {
|
||||
r := &request{
|
||||
method: http.MethodGet,
|
||||
endpoint: "/v5/asset/withdraw/withdrawable-amount",
|
||||
secType: secTypeSigned,
|
||||
}
|
||||
data, err := s.c.callAPI(ctx, r, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res = new(ServerResponse)
|
||||
err = json.Unmarshal(data, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
func (s *AssetClient) GetWithdrawalRecords(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) {
|
||||
r := &request{
|
||||
method: http.MethodGet,
|
||||
endpoint: "/v5/asset/withdraw/query-record",
|
||||
secType: secTypeSigned,
|
||||
}
|
||||
data, err := s.c.callAPI(ctx, r, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res = new(ServerResponse)
|
||||
err = json.Unmarshal(data, res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
|
@ -268,3 +268,9 @@ func (c *Client) NewAccountServiceNoParams() *AccountClient {
|
|||
c: c,
|
||||
}
|
||||
}
|
||||
|
||||
func (c *Client) NewAssetService(params map[string]interface{}) *AssetClient {
|
||||
return &AssetClient{
|
||||
c: c,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
bybit "github.com/wuhewuhe/bybit.go.api"
|
||||
)
|
||||
|
||||
func main() {
|
||||
AssetInfo()
|
||||
}
|
||||
|
||||
func AssetInfo() {
|
||||
client := bybit.NewBybitHttpClient("8wYkmpLsMg10eNQyPm", "Ouxc34myDnXvei54XsBZgoQzfGxO4bkr2Zsj", bybit.WithBaseURL(bybit.TESTNET))
|
||||
params := map[string]interface{}{"accountType": "spot"}
|
||||
assetResult, err := client.NewAssetService(params).GetAssetInfo(context.Background())
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
fmt.Println(bybit.PrettyPrint(assetResult))
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
bybit "github.com/wuhewuhe/bybit.go.api"
|
||||
)
|
||||
|
||||
func main() {
|
||||
GetCoinInfo()
|
||||
}
|
||||
|
||||
func GetCoinInfo() {
|
||||
client := bybit.NewBybitHttpClient("8wYkmpLsMg10eNQyPm", "Ouxc34myDnXvei54XsBZgoQzfGxO4bkr2Zsj", bybit.WithBaseURL(bybit.TESTNET))
|
||||
params := map[string]interface{}{"coin": "USDT"}
|
||||
assetResult, err := client.NewAssetService(params).GetCoinInfo(context.Background())
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
fmt.Println(bybit.PrettyPrint(assetResult))
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
package user
|
|
@ -32,3 +32,226 @@ type SettlementEntry struct {
|
|||
RealisedPnl string `json:"realisedPnl"`
|
||||
CreatedTime string `json:"createdTime"`
|
||||
}
|
||||
|
||||
type AssetInfo struct {
|
||||
Spot SpotInfo `json:"spot"`
|
||||
}
|
||||
|
||||
type SpotInfo struct {
|
||||
Status string `json:"status"`
|
||||
Assets []AssetItem `json:"assets"`
|
||||
}
|
||||
|
||||
type AssetItem struct {
|
||||
Coin string `json:"coin"`
|
||||
Frozen string `json:"frozen"`
|
||||
Free string `json:"free"`
|
||||
Withdraw string `json:"withdraw"`
|
||||
}
|
||||
|
||||
type AllCoinsBalance struct {
|
||||
AccountType string `json:"accountType"`
|
||||
MemberId string `json:"memberId"`
|
||||
Balance []BalanceDetail `json:"balance"`
|
||||
}
|
||||
|
||||
type BalanceDetail struct {
|
||||
Coin string `json:"coin"`
|
||||
WalletBalance string `json:"walletBalance"`
|
||||
TransferBalance string `json:"transferBalance"`
|
||||
Bonus string `json:"bonus"`
|
||||
}
|
||||
|
||||
type SingleCoinBalance struct {
|
||||
AccountType string `json:"accountType"`
|
||||
BizType int `json:"bizType"`
|
||||
AccountId string `json:"accountId"`
|
||||
MemberId string `json:"memberId"`
|
||||
Balance CoinBalance `json:"balance"`
|
||||
}
|
||||
|
||||
type CoinBalance struct {
|
||||
Coin string `json:"coin"`
|
||||
WalletBalance string `json:"walletBalance"`
|
||||
TransferBalance string `json:"transferBalance"`
|
||||
Bonus string `json:"bonus"`
|
||||
TransferSafeAmount string `json:"transferSafeAmount"`
|
||||
LtvTransferSafeAmount string `json:"ltvTransferSafeAmount"`
|
||||
}
|
||||
|
||||
type TransferResult struct {
|
||||
TransferId string `json:"transferId"`
|
||||
}
|
||||
|
||||
type InternalTransferInfo struct {
|
||||
List []TransferDetail `json:"list"`
|
||||
NextPageCursor string `json:"nextPageCursor"`
|
||||
}
|
||||
|
||||
type TransferDetail struct {
|
||||
TransferId string `json:"transferId"`
|
||||
Coin string `json:"coin"`
|
||||
Amount string `json:"amount"`
|
||||
FromAccountType string `json:"fromAccountType"`
|
||||
ToAccountType string `json:"toAccountType"`
|
||||
Timestamp string `json:"timestamp"`
|
||||
Status string `json:"status"`
|
||||
}
|
||||
|
||||
type SubUidsInfo struct {
|
||||
SubMemberIds []string `json:"subMemberIds"`
|
||||
TransferableSubMemberIds []string `json:"transferableSubMemberIds"`
|
||||
}
|
||||
|
||||
type UniversalTransferInfo struct {
|
||||
List []UniversalTransferDetail `json:"list"`
|
||||
NextPageCursor string `json:"nextPageCursor"`
|
||||
}
|
||||
|
||||
type UniversalTransferDetail struct {
|
||||
TransferId string `json:"transferId"`
|
||||
Coin string `json:"coin"`
|
||||
Amount string `json:"amount"`
|
||||
FromMemberId string `json:"fromMemberId"`
|
||||
ToMemberId string `json:"toMemberId"`
|
||||
FromAccountType string `json:"fromAccountType"`
|
||||
ToAccountType string `json:"toAccountType"`
|
||||
Timestamp string `json:"timestamp"`
|
||||
Status string `json:"status"`
|
||||
}
|
||||
|
||||
type WithdrawAssetResult struct {
|
||||
Id string `json:"id"`
|
||||
}
|
||||
|
||||
type CancelWithdrawAssetResult struct {
|
||||
Status string `json:"status"`
|
||||
}
|
||||
|
||||
type SetDepositAccountResult struct {
|
||||
Status string `json:"status"`
|
||||
}
|
||||
|
||||
type AllowDepositCoinInfo struct {
|
||||
ConfigList []DepositCoinConfig `json:"configList"`
|
||||
NextPageCursor string `json:"nextPageCursor"`
|
||||
}
|
||||
|
||||
type DepositCoinConfig struct {
|
||||
Coin string `json:"coin"`
|
||||
Chain string `json:"chain"`
|
||||
CoinShowName string `json:"coinShowName"`
|
||||
ChainType string `json:"chainType"`
|
||||
BlockConfirmNumber int `json:"blockConfirmNumber"`
|
||||
MinDepositAmount string `json:"minDepositAmount"`
|
||||
}
|
||||
|
||||
type DepositRecords struct {
|
||||
Rows []DepositRecord `json:"rows"`
|
||||
NextPageCursor string `json:"nextPageCursor"`
|
||||
}
|
||||
|
||||
type DepositRecord struct {
|
||||
Coin string `json:"coin"`
|
||||
Chain string `json:"chain"`
|
||||
Amount string `json:"amount"`
|
||||
TxID string `json:"txID"`
|
||||
Status int `json:"status"`
|
||||
ToAddress string `json:"toAddress"`
|
||||
Tag string `json:"tag"`
|
||||
DepositFee string `json:"depositFee"`
|
||||
SuccessAt string `json:"successAt"`
|
||||
Confirmations string `json:"confirmations"`
|
||||
TxIndex string `json:"txIndex"`
|
||||
BlockHash string `json:"blockHash"`
|
||||
BatchReleaseLimit string `json:"batchReleaseLimit"`
|
||||
DepositType int `json:"depositType"`
|
||||
}
|
||||
|
||||
type SubDepositResult struct {
|
||||
Coin string `json:"coin"`
|
||||
Chains []DepositChainInfo `json:"chains"`
|
||||
}
|
||||
|
||||
// MasterDepositResult represents the structure for master deposit results.
|
||||
type MasterDepositResult struct {
|
||||
Coin string `json:"coin"`
|
||||
Chains []DepositChainInfo `json:"chains"`
|
||||
}
|
||||
|
||||
// DepositChainInfo represents the shared structure for deposit chain information.
|
||||
type DepositChainInfo struct {
|
||||
ChainType string `json:"chainType"`
|
||||
AddressDeposit string `json:"addressDeposit"`
|
||||
TagDeposit string `json:"tagDeposit"`
|
||||
Chain string `json:"chain"`
|
||||
BatchReleaseLimit string `json:"batchReleaseLimit"`
|
||||
}
|
||||
|
||||
// CoinInfoResult represents the structure for coin info results.
|
||||
type CoinInfoResult struct {
|
||||
Rows []CoinInfoRow `json:"rows"`
|
||||
}
|
||||
|
||||
// CoinInfoRow represents the structure for each row of coin information.
|
||||
type CoinInfoRow struct {
|
||||
Name string `json:"name"`
|
||||
Coin string `json:"coin"`
|
||||
RemainAmount string `json:"remainAmount"`
|
||||
Chains []CoinChainInfo `json:"chains"`
|
||||
}
|
||||
|
||||
// CoinChainInfo represents the structure for each chain's information for a coin.
|
||||
type CoinChainInfo struct {
|
||||
Chain string `json:"chain"`
|
||||
ChainType string `json:"chainType"`
|
||||
Confirmation string `json:"confirmation"`
|
||||
WithdrawFee string `json:"withdrawFee"`
|
||||
DepositMin string `json:"depositMin"`
|
||||
WithdrawMin string `json:"withdrawMin"`
|
||||
MinAccuracy string `json:"minAccuracy"`
|
||||
ChainDeposit string `json:"chainDeposit"`
|
||||
ChainWithdraw string `json:"chainWithdraw"`
|
||||
WithdrawPercentageFee string `json:"withdrawPercentageFee"`
|
||||
}
|
||||
|
||||
// WithdrawRecords represents the structure for withdrawal records.
|
||||
type WithdrawRecords struct {
|
||||
Rows []WithdrawRecord `json:"rows"`
|
||||
NextPageCursor string `json:"nextPageCursor"`
|
||||
}
|
||||
|
||||
// WithdrawRecord represents the structure for each withdrawal record.
|
||||
type WithdrawRecord struct {
|
||||
WithdrawID string `json:"withdrawId"`
|
||||
TxID string `json:"txID"`
|
||||
WithdrawType string `json:"withdrawType"`
|
||||
Coin string `json:"coin"`
|
||||
Chain string `json:"chain"`
|
||||
Amount string `json:"amount"`
|
||||
WithdrawFee string `json:"withdrawFee"`
|
||||
Status string `json:"status"`
|
||||
ToAddress string `json:"toAddress"`
|
||||
Tag string `json:"tag"`
|
||||
CreateTime string `json:"createTime"`
|
||||
UpdateTime string `json:"updateTime"`
|
||||
}
|
||||
|
||||
// WithdrawableAmount represents the structure for information about withdrawable amounts.
|
||||
type WithdrawableAmount struct {
|
||||
LimitAmountUsd string `json:"limitAmountUsd"`
|
||||
WithdrawableAmounts []WithdrawableAsset `json:"withdrawableAmount"`
|
||||
}
|
||||
|
||||
// WithdrawableAsset represents the structure for withdrawable amounts for each wallet type.
|
||||
type WithdrawableAsset struct {
|
||||
SPOT *WalletInfo `json:"SPOT,omitempty"` // Omitted if empty
|
||||
FUND *WalletInfo `json:"FUND,omitempty"` // Omitted if empty
|
||||
}
|
||||
|
||||
// WalletInfo represents the wallet information for withdrawable assets.
|
||||
type WalletInfo struct {
|
||||
Coin string `json:"coin"`
|
||||
WithdrawableAmount string `json:"withdrawableAmount"`
|
||||
AvailableBalance string `json:"availableBalance"`
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue