Merge branch 'accountid-and-missing'

This commit is contained in:
Niko Storni 2019-09-24 18:31:17 +02:00
commit c36c67961f
3 changed files with 80 additions and 6 deletions

View file

@ -259,6 +259,7 @@ type ChannelCreateOptions struct {
WebsiteURL *string `json:"website_url,omitempty"` WebsiteURL *string `json:"website_url,omitempty"`
CoverURL *string `json:"cover_url,omitempty"` CoverURL *string `json:"cover_url,omitempty"`
Featured []string `json:"featured,omitempty"` Featured []string `json:"featured,omitempty"`
AccountID *string `json:"account_id,omitempty"`
} }
func (d *Client) ChannelCreate(name string, bid float64, options ChannelCreateOptions) (*TransactionSummary, error) { func (d *Client) ChannelCreate(name string, bid float64, options ChannelCreateOptions) (*TransactionSummary, error) {
@ -407,11 +408,18 @@ func (d *Client) ChannelAbandon(txID string, nOut uint64, accountID *string, blo
return response, nil return response, nil
} }
func (d *Client) AddressList(account *string) (*AddressListResponse, error) { func (d *Client) AddressList(account *string, address *string) (*AddressListResponse, error) {
response := new(AddressListResponse) response := new(AddressListResponse)
return response, d.call(response, "address_list", map[string]interface{}{
"account_id": account, args := struct {
}) AccountID *string `json:"account_id,omitempty"`
Address *string `json:"address,omitempty"`
}{
AccountID: account,
Address: address,
}
structs.DefaultTagName = "json"
return response, d.call(response, "address_list", structs.Map(args))
} }
func (d *Client) ClaimList(account *string, page uint64, pageSize uint64) (*ClaimListResponse, error) { func (d *Client) ClaimList(account *string, page uint64, pageSize uint64) (*ClaimListResponse, error) {
@ -436,6 +444,13 @@ func (d *Client) Status() (*StatusResponse, error) {
return response, d.call(response, "status", map[string]interface{}{}) return response, d.call(response, "status", map[string]interface{}{})
} }
func (d *Client) TransactionList(account *string) (*TransactionListResponse, error) {
response := new(TransactionListResponse)
return response, d.call(response, "transaction_list", map[string]interface{}{
"account_id": account,
})
}
func (d *Client) UTXOList(account *string) (*UTXOListResponse, error) { func (d *Client) UTXOList(account *string) (*UTXOListResponse, error) {
response := new(UTXOListResponse) response := new(UTXOListResponse)
return response, d.call(response, "utxo_list", map[string]interface{}{ return response, d.call(response, "utxo_list", map[string]interface{}{
@ -443,6 +458,13 @@ func (d *Client) UTXOList(account *string) (*UTXOListResponse, error) {
}) })
} }
func (d *Client) UTXORelease(account *string) (*UTXOReleaseResponse, error) {
response := new(UTXOReleaseResponse)
return response, d.call(response, "utxo_release", map[string]interface{}{
"account_id": account,
})
}
func (d *Client) Get(uri string) (*GetResponse, error) { func (d *Client) Get(uri string) (*GetResponse, error) {
response := new(GetResponse) response := new(GetResponse)
return response, d.call(response, "get", map[string]interface{}{ return response, d.call(response, "get", map[string]interface{}{

View file

@ -250,7 +250,7 @@ func TestClient_ChannelAbandon(t *testing.T) {
func TestClient_AddressList(t *testing.T) { func TestClient_AddressList(t *testing.T) {
d := NewClient("") d := NewClient("")
got, err := d.AddressList(nil) got, err := d.AddressList(nil, nil)
if err != nil { if err != nil {
t.Error(err) t.Error(err)
return return
@ -269,6 +269,17 @@ func TestClient_ClaimList(t *testing.T) {
prettyPrint(*got) prettyPrint(*got)
} }
func TestClient_TransactionList(t *testing.T) {
_ = os.Setenv("BLOCKCHAIN_NAME", "lbrycrd_regtest")
d := NewClient("")
got, err := d.TransactionList(nil)
if err != nil {
t.Error(err)
return
}
prettyPrint(*got)
}
func TestClient_SupportTest(t *testing.T) { func TestClient_SupportTest(t *testing.T) {
_ = os.Setenv("BLOCKCHAIN_NAME", "lbrycrd_regtest") _ = os.Setenv("BLOCKCHAIN_NAME", "lbrycrd_regtest")
d := NewClient("") d := NewClient("")

View file

@ -270,7 +270,12 @@ type AccountFundResponse TransactionSummary
type Address string type Address string
type AddressUnusedResponse Address type AddressUnusedResponse Address
type AddressListResponse []Address type AddressListResponse []struct {
Account string `json:"account"`
Address Address `json:"address"`
Pubkey string `json:"pubkey"`
UsedTimes uint64 `json:"used_times"`
}
type ChannelExportResponse string type ChannelExportResponse string
type ChannelListResponse struct { type ChannelListResponse struct {
@ -471,6 +476,42 @@ type UTXOListResponse []struct {
Type string `json:"type"` Type string `json:"type"`
} }
type UTXOReleaseResponse *string
type transactionListBlob struct {
Address string `json:"address"`
Amount string `json:"amount"`
BalanceDelta string `json:"balance_delta"`
ClaimId string `json:"claim_id"`
ClaimName string `json:"claim_name"`
Nout int `json:"nout"`
}
//TODO: this repeats all the fields from transactionListBlob which doesn't make sense
// but if i extend the type with transactionListBlob it doesn't fill the fields. does our unmarshaller crap out on these?
type supportBlob struct {
Address string `json:"address"`
Amount string `json:"amount"`
BalanceDelta string `json:"balance_delta"`
ClaimId string `json:"claim_id"`
ClaimName string `json:"claim_name"`
Nout int `json:"nout"`
IsTip bool `json:"is_tip"`
}
type TransactionListResponse []struct {
AbandonInfo []transactionListBlob `json:"abandon_info"`
ClaimInfo []transactionListBlob `json:"claim_info"`
Confirmations int64 `json:"confirmations"`
Date string `json:"date"`
Fee string `json:"fee"`
SupportInfo []supportBlob `json:"support_info"`
Timestamp int64 `json:"timestamp"`
Txid string `json:"txid"`
UpdateInfo []transactionListBlob `json:"update_info"`
Value string `json:"value"`
}
type VersionResponse struct { type VersionResponse struct {
Build string `json:"build"` Build string `json:"build"`
Desktop string `json:"desktop"` Desktop string `json:"desktop"`