diff --git a/metadata/metadata.gen.go b/metadata/metadata.gen.go index 721428b2..b3f76619 100644 --- a/metadata/metadata.gen.go +++ b/metadata/metadata.gen.go @@ -1,6 +1,6 @@ -// sequence-metadata v0.4.0 7cd2d21d284379078f35906687a348ebecb44a36 +// sequence-metadata v0.4.0 e06ac865e8df630513b2639b3c0df8aa308beb23 // -- -// Code generated by webrpc-gen@v0.21.0 with golang generator. DO NOT EDIT. +// Code generated by webrpc-gen@v0.21.1 with golang generator. DO NOT EDIT. // // webrpc-gen -schema=metadata.ridl -target=golang -pkg=metadata -client -out=./clients/metadata.gen.go package metadata @@ -22,7 +22,7 @@ import ( const WebrpcHeader = "Webrpc" -const WebrpcHeaderValue = "webrpc@v0.21.0;gen-golang@v0.16.0;sequence-metadata@v0.4.0" +const WebrpcHeaderValue = "webrpc@v0.21.1;gen-golang@v0.16.0;sequence-metadata@v0.4.0" // WebRPC description and code-gen version func WebRPCVersion() string { @@ -36,7 +36,7 @@ func WebRPCSchemaVersion() string { // Schema hash generated from your RIDL schema func WebRPCSchemaHash() string { - return "7cd2d21d284379078f35906687a348ebecb44a36" + return "e06ac865e8df630513b2639b3c0df8aa308beb23" } type WebrpcGenVersions struct { @@ -142,6 +142,51 @@ func (x *ContractType) Is(values ...ContractType) bool { return false } +type ResourceStatus uint32 + +const ( + ResourceStatus_NOT_AVAILABLE ResourceStatus = 0 + ResourceStatus_STALE ResourceStatus = 1 + ResourceStatus_AVAILABLE ResourceStatus = 2 +) + +var ResourceStatus_name = map[uint32]string{ + 0: "NOT_AVAILABLE", + 1: "STALE", + 2: "AVAILABLE", +} + +var ResourceStatus_value = map[string]uint32{ + "NOT_AVAILABLE": 0, + "STALE": 1, + "AVAILABLE": 2, +} + +func (x ResourceStatus) String() string { + return ResourceStatus_name[uint32(x)] +} + +func (x ResourceStatus) MarshalText() ([]byte, error) { + return []byte(ResourceStatus_name[uint32(x)]), nil +} + +func (x *ResourceStatus) UnmarshalText(b []byte) error { + *x = ResourceStatus(ResourceStatus_value[string(b)]) + return nil +} + +func (x *ResourceStatus) Is(values ...ResourceStatus) bool { + if x == nil { + return false + } + for _, v := range values { + if *x == v { + return true + } + } + return false +} + type PropertyType uint32 const ( @@ -291,13 +336,23 @@ type Version struct { } type RuntimeStatus struct { - HealthOK bool `json:"healthOK"` - StartTime time.Time `json:"startTime"` - Uptime uint64 `json:"uptime"` - Ver string `json:"ver"` - Branch string `json:"branch"` - CommitHash string `json:"commitHash"` - Checks *RuntimeChecks `json:"checks"` + HealthOK bool `json:"healthOK"` + StartTime time.Time `json:"startTime"` + Uptime uint64 `json:"uptime"` + UptimeString string `json:"uptimeString"` + Ver string `json:"ver"` + Branch string `json:"branch"` + CommitHash string `json:"commitHash"` + Checks *RuntimeChecks `json:"checks"` + Runnable map[string]*RunnableStatus `json:"runnable,omitempty"` +} + +type RunnableStatus struct { + Running bool `json:"running"` + Restarts int `json:"restarts"` + StartTime time.Time `json:"startTime"` + EndTime *time.Time `json:"endTime"` + LastError interface{} `json:"lastError"` } type RuntimeChecks struct { @@ -313,8 +368,10 @@ type ContractIndex struct { ContentHash uint64 `json:"contentHash,omitempty" db:"content_hash,omitempty"` Deployed bool `json:"deployed" db:"deployed"` BytecodeHash prototyp.Hash `json:"bytecodeHash" db:"bytecode_hash"` - NotFound bool `json:"notFound,omitempty"` + NotFound bool `json:"notFound,omitempty" db:"not_found"` UpdatedAt time.Time `json:"updatedAt" db:"updated_at"` + QueuedAt *time.Time `json:"queuedAt" db:"queued_at"` + Status ResourceStatus `json:"status"` } // TokenIndex is a database type to track the index of token metadata which @@ -329,6 +386,7 @@ type TokenIndex struct { LastFetched *time.Time `json:"lastFetched,omitempty" db:"last_fetched"` FetchCount *uint8 `json:"fetchCount,omitempty" db:"fetch_count"` UpdatedAt time.Time `json:"updatedAt" db:"updated_at"` + QueuedAt *time.Time `json:"queuedAt"` } // ContractInfo is RPC type for responding to clients that represents @@ -346,19 +404,23 @@ type ContractInfo struct { Extensions *ContractInfoExtensions `json:"extensions" cbor:"-"` ContentHash uint64 `json:"-" cbor:"-"` UpdatedAt time.Time `json:"updatedAt" cbor:"-"` + NotFound bool `json:"notFound"` + QueuedAt *time.Time `json:"queuedAt"` + Status ResourceStatus `json:"status"` } type ContractInfoExtensions struct { - Link string `json:"link" cbor:"-"` - Description string `json:"description" cbor:"-"` - OgImage string `json:"ogImage" cbor:"-"` - OgName string `json:"ogName" cbor:"-"` - OriginChainID uint64 `json:"originChainId" cbor:"-"` - OriginAddress string `json:"originAddress" cbor:"-"` - Blacklist bool `json:"blacklist,omitempty" cbor:"-"` - Verified bool `json:"verified" cbor:"-"` - VerifiedBy string `json:"verifiedBy,omitempty" cbor:"-"` - Featured bool `json:"featured,omitempty" cbor:"-"` + Link string `json:"link" cbor:"-"` + Description string `json:"description" cbor:"-"` + Categories []string `json:"categories,omitempty" cbor:"-"` + OgImage string `json:"ogImage" cbor:"-"` + OgName string `json:"ogName" cbor:"-"` + OriginChainID uint64 `json:"originChainId" cbor:"-"` + OriginAddress string `json:"originAddress" cbor:"-"` + Blacklist bool `json:"blacklist,omitempty" cbor:"-"` + Verified bool `json:"verified" cbor:"-"` + VerifiedBy string `json:"verifiedBy,omitempty" cbor:"-"` + Featured bool `json:"featured,omitempty" cbor:"-"` } // TokenMetadata based on 721/1155 standards, as well including some @@ -397,7 +459,10 @@ type TokenMetadata struct { Decimals *uint64 `json:"decimals,omitempty" cbor:"-"` UpdatedAt time.Time `json:"updatedAt" cbor:"-"` // Assets associated to this token metadata - Assets []*Asset `json:"assets,omitempty" cbor:"-"` + Assets []*Asset `json:"assets,omitempty" cbor:"-"` + Status ResourceStatus `json:"status"` + QueuedAt *time.Time `json:"queuedAt"` + LastFetched *time.Time `json:"lastFetched,omitempty"` } // PropertyFilter @@ -584,8 +649,13 @@ var ( Service: "Metadata", Annotations: map[string]string{"internal": ""}, }, - "/rpc/Metadata/GetTokenMetadata": { - Name: "GetTokenMetadata", + "/rpc/Metadata/GetTask": { + Name: "GetTask", + Service: "Metadata", + Annotations: map[string]string{}, + }, + "/rpc/Metadata/GetTaskStatus": { + Name: "GetTaskStatus", Service: "Metadata", Annotations: map[string]string{}, }, @@ -602,17 +672,17 @@ var ( "/rpc/Metadata/GetTokenRefreshStatus": { Name: "GetTokenRefreshStatus", Service: "Metadata", - Annotations: map[string]string{}, + Annotations: map[string]string{"internal": ""}, }, "/rpc/Metadata/GetTokenRefreshResult": { Name: "GetTokenRefreshResult", Service: "Metadata", - Annotations: map[string]string{}, + Annotations: map[string]string{"internal": ""}, }, "/rpc/Metadata/CancelRefreshJob": { Name: "CancelRefreshJob", Service: "Metadata", - Annotations: map[string]string{}, + Annotations: map[string]string{"internal": ""}, }, "/rpc/Metadata/RefreshContractInfo": { Name: "RefreshContractInfo", @@ -629,6 +699,11 @@ var ( Service: "Metadata", Annotations: map[string]string{}, }, + "/rpc/Metadata/GetTokenMetadata": { + Name: "GetTokenMetadata", + Service: "Metadata", + Annotations: map[string]string{}, + }, "/rpc/Metadata/GetTokenMetadataBatch": { Name: "GetTokenMetadataBatch", Service: "Metadata", @@ -687,52 +762,52 @@ var ( "/rpc/Metadata/GetNiftyswapTokenQuantity": { Name: "GetNiftyswapTokenQuantity", Service: "Metadata", - Annotations: map[string]string{}, + Annotations: map[string]string{"internal": ""}, }, "/rpc/Metadata/GetNiftyswapUnitPrices": { Name: "GetNiftyswapUnitPrices", Service: "Metadata", - Annotations: map[string]string{}, + Annotations: map[string]string{"internal": ""}, }, "/rpc/Metadata/GetNiftyswapUnitPricesWithQuantities": { Name: "GetNiftyswapUnitPricesWithQuantities", Service: "Metadata", - Annotations: map[string]string{}, + Annotations: map[string]string{"internal": ""}, }, "/rpc/Metadata/AddContractToMintMonitor": { Name: "AddContractToMintMonitor", Service: "Metadata", - Annotations: map[string]string{}, + Annotations: map[string]string{"internal": ""}, }, "/rpc/Metadata/RemoveContractFromMintMonitor": { Name: "RemoveContractFromMintMonitor", Service: "Metadata", - Annotations: map[string]string{}, + Annotations: map[string]string{"internal": ""}, }, "/rpc/Metadata/MintMonitorJobStatus": { Name: "MintMonitorJobStatus", Service: "Metadata", - Annotations: map[string]string{}, + Annotations: map[string]string{"internal": ""}, }, "/rpc/Metadata/MintMonitorTriggerJob": { Name: "MintMonitorTriggerJob", Service: "Metadata", - Annotations: map[string]string{}, + Annotations: map[string]string{"internal": ""}, }, "/rpc/Metadata/SyncContractTokens": { Name: "SyncContractTokens", Service: "Metadata", - Annotations: map[string]string{}, + Annotations: map[string]string{"internal": ""}, }, "/rpc/Metadata/AbortContractSync": { Name: "AbortContractSync", Service: "Metadata", - Annotations: map[string]string{}, + Annotations: map[string]string{"internal": ""}, }, "/rpc/Metadata/ContractSyncJobStatus": { Name: "ContractSyncJobStatus", Service: "Metadata", - Annotations: map[string]string{}, + Annotations: map[string]string{"internal": ""}, }, "/rpc/Metadata/DirectoryGetNetworks": { Name: "DirectoryGetNetworks", @@ -747,7 +822,7 @@ var ( "/rpc/Metadata/DirectorySearchCollections": { Name: "DirectorySearchCollections", Service: "Metadata", - Annotations: map[string]string{}, + Annotations: map[string]string{"internal": ""}, }, "/rpc/Collections/CreateCollection": { Name: "CreateCollection", @@ -887,7 +962,8 @@ var WebRPCServices = map[string][]string{ "Ping", "Version", "RuntimeStatus", - "GetTokenMetadata", + "GetTask", + "GetTaskStatus", "RefreshTokenMetadata", "EnqueueTokensForRefresh", "GetTokenRefreshStatus", @@ -896,6 +972,7 @@ var WebRPCServices = map[string][]string{ "RefreshContractInfo", "RefreshContractTokens", "RefreshAllContractTokens", + "GetTokenMetadata", "GetTokenMetadataBatch", "SearchTokenMetadata", "SearchTokenIDs", @@ -961,8 +1038,8 @@ type Metadata interface { Ping(ctx context.Context) (bool, error) Version(ctx context.Context) (*Version, error) RuntimeStatus(ctx context.Context) (*RuntimeStatus, error) - // GetTokenMetadata - fetch token metadata for a particular contract and respective tokenIDs - GetTokenMetadata(ctx context.Context, chainID string, contractAddress string, tokenIDs []string) ([]*TokenMetadata, error) + GetTask(ctx context.Context, taskId uint64) (*Task, error) + GetTaskStatus(ctx context.Context, taskId uint64) (*TaskStatus, error) // Deprecated -> Use RefreshContractInfo, RefreshContractTokens or RefreshAllContractTokens // Deprecated: RefreshTokenMetadata(ctx context.Context, chainID string, contractAddress string, tokenIDs []string, refreshAll *bool) (uint64, error) @@ -973,19 +1050,21 @@ type Metadata interface { GetTokenRefreshResult(ctx context.Context, taskId uint64) (*TaskStatus, map[string]bool, map[string]string, error) CancelRefreshJob(ctx context.Context, taskId uint64) (bool, error) RefreshContractInfo(ctx context.Context, chainHandle string, contractAddress string) error - RefreshContractTokens(ctx context.Context, chainHandle string, contractAddress string, tokenIDs []string) (*Task, error) - RefreshAllContractTokens(ctx context.Context, chainHandle string, contractAddress string) (*Task, uint64, error) + RefreshContractTokens(ctx context.Context, chainHandle string, contractAddress string, tokenIDs []string) (*uint64, error) + RefreshAllContractTokens(ctx context.Context, chainHandle string, contractAddress string) (*uint64, uint64, error) + // GetTokenMetadata - fetch token metadata for a particular contract and respective tokenIDs + GetTokenMetadata(ctx context.Context, chainID string, contractAddress string, tokenIDs []string) ([]*TokenMetadata, *uint64, error) // GetTokenMetadataBatch allows you to query the token metadata of a batch of contracts and respective tokenIDs // where map is contractAddress::[]tokenID => contractAddress::[]TokenMetadata // // Note, we limit each request to 50 contracts max and 50 tokens max per contract. - GetTokenMetadataBatch(ctx context.Context, chainID string, contractTokenMap map[string][]string) (map[string][]*TokenMetadata, error) + GetTokenMetadataBatch(ctx context.Context, chainID string, contractTokenMap map[string][]string) (map[string][]*TokenMetadata, *uint64, error) SearchTokenMetadata(ctx context.Context, chainID string, contractAddress string, filter *Filter, page *Page) (*Page, []*TokenMetadata, error) SearchTokenIDs(ctx context.Context, chainID string, contractAddress string, filter *Filter, page *Page) (*Page, []string, error) TokenCollectionFilters(ctx context.Context, chainID string, contractAddress string) ([]*PropertyFilter, error) // Contract Info -- returns contract meta-info for contracts found in registered chain's token-lists - GetContractInfo(ctx context.Context, chainID string, contractAddress string) (*ContractInfo, error) - GetContractInfoBatch(ctx context.Context, chainID string, contractAddresses []string) (map[string]*ContractInfo, error) + GetContractInfo(ctx context.Context, chainID string, contractAddress string) (*ContractInfo, *uint64, error) + GetContractInfoBatch(ctx context.Context, chainID string, contractAddresses []string) (map[string]*ContractInfo, *uint64, error) // Search Contract Info across all chains token-lists. Similar to GetContractInfo above, // but it will traverse all chains and results from all. SearchContractInfo(ctx context.Context, contractAddress string) ([]*ContractInfo, error) @@ -997,10 +1076,10 @@ type Metadata interface { SearchTokens(ctx context.Context, q string, chainID *string, page *Page) ([]*TokenMetadata, *Page, error) SearchContracts(ctx context.Context, q string, chainID *string, chainIDs []string, types []ContractType, page *Page) ([]*ContractInfo, *Page, error) // Niftyswap querying data - // map of tokenID :: quantity GetNiftyswapTokenQuantity(ctx context.Context, chainID string, contractAddress string, tokenIDs []string) (map[string]string, error) - // map of tokenID :: price + // map of tokenID :: quantity GetNiftyswapUnitPrices(ctx context.Context, chainID string, contractAddress string, req *GetNiftyswapUnitPricesRequest, fresh bool) (map[string]string, error) + // map of tokenID :: price GetNiftyswapUnitPricesWithQuantities(ctx context.Context, chainID string, contractAddress string, req *GetNiftyswapUnitPricesRequest, fresh bool) (map[string]*GetNiftyswapUnitPricesResponse, error) AddContractToMintMonitor(ctx context.Context, chainID string, contractAddress string) (bool, error) RemoveContractFromMintMonitor(ctx context.Context, chainID string, contractAddress string) (bool, error) @@ -1056,8 +1135,8 @@ type MetadataClient interface { Ping(ctx context.Context) (bool, error) Version(ctx context.Context) (*Version, error) RuntimeStatus(ctx context.Context) (*RuntimeStatus, error) - // GetTokenMetadata - fetch token metadata for a particular contract and respective tokenIDs - GetTokenMetadata(ctx context.Context, chainID string, contractAddress string, tokenIDs []string) ([]*TokenMetadata, error) + GetTask(ctx context.Context, taskId uint64) (*Task, error) + GetTaskStatus(ctx context.Context, taskId uint64) (*TaskStatus, error) // Deprecated -> Use RefreshContractInfo, RefreshContractTokens or RefreshAllContractTokens // Deprecated: RefreshTokenMetadata(ctx context.Context, chainID string, contractAddress string, tokenIDs []string, refreshAll *bool) (uint64, error) @@ -1068,19 +1147,21 @@ type MetadataClient interface { GetTokenRefreshResult(ctx context.Context, taskId uint64) (*TaskStatus, map[string]bool, map[string]string, error) CancelRefreshJob(ctx context.Context, taskId uint64) (bool, error) RefreshContractInfo(ctx context.Context, chainHandle string, contractAddress string) error - RefreshContractTokens(ctx context.Context, chainHandle string, contractAddress string, tokenIDs []string) (*Task, error) - RefreshAllContractTokens(ctx context.Context, chainHandle string, contractAddress string) (*Task, uint64, error) + RefreshContractTokens(ctx context.Context, chainHandle string, contractAddress string, tokenIDs []string) (*uint64, error) + RefreshAllContractTokens(ctx context.Context, chainHandle string, contractAddress string) (*uint64, uint64, error) + // GetTokenMetadata - fetch token metadata for a particular contract and respective tokenIDs + GetTokenMetadata(ctx context.Context, chainID string, contractAddress string, tokenIDs []string) ([]*TokenMetadata, *uint64, error) // GetTokenMetadataBatch allows you to query the token metadata of a batch of contracts and respective tokenIDs // where map is contractAddress::[]tokenID => contractAddress::[]TokenMetadata // // Note, we limit each request to 50 contracts max and 50 tokens max per contract. - GetTokenMetadataBatch(ctx context.Context, chainID string, contractTokenMap map[string][]string) (map[string][]*TokenMetadata, error) + GetTokenMetadataBatch(ctx context.Context, chainID string, contractTokenMap map[string][]string) (map[string][]*TokenMetadata, *uint64, error) SearchTokenMetadata(ctx context.Context, chainID string, contractAddress string, filter *Filter, page *Page) (*Page, []*TokenMetadata, error) SearchTokenIDs(ctx context.Context, chainID string, contractAddress string, filter *Filter, page *Page) (*Page, []string, error) TokenCollectionFilters(ctx context.Context, chainID string, contractAddress string) ([]*PropertyFilter, error) // Contract Info -- returns contract meta-info for contracts found in registered chain's token-lists - GetContractInfo(ctx context.Context, chainID string, contractAddress string) (*ContractInfo, error) - GetContractInfoBatch(ctx context.Context, chainID string, contractAddresses []string) (map[string]*ContractInfo, error) + GetContractInfo(ctx context.Context, chainID string, contractAddress string) (*ContractInfo, *uint64, error) + GetContractInfoBatch(ctx context.Context, chainID string, contractAddresses []string) (map[string]*ContractInfo, *uint64, error) // Search Contract Info across all chains token-lists. Similar to GetContractInfo above, // but it will traverse all chains and results from all. SearchContractInfo(ctx context.Context, contractAddress string) ([]*ContractInfo, error) @@ -1092,10 +1173,10 @@ type MetadataClient interface { SearchTokens(ctx context.Context, q string, chainID *string, page *Page) ([]*TokenMetadata, *Page, error) SearchContracts(ctx context.Context, q string, chainID *string, chainIDs []string, types []ContractType, page *Page) ([]*ContractInfo, *Page, error) // Niftyswap querying data - // map of tokenID :: quantity GetNiftyswapTokenQuantity(ctx context.Context, chainID string, contractAddress string, tokenIDs []string) (map[string]string, error) - // map of tokenID :: price + // map of tokenID :: quantity GetNiftyswapUnitPrices(ctx context.Context, chainID string, contractAddress string, req *GetNiftyswapUnitPricesRequest, fresh bool) (map[string]string, error) + // map of tokenID :: price GetNiftyswapUnitPricesWithQuantities(ctx context.Context, chainID string, contractAddress string, req *GetNiftyswapUnitPricesRequest, fresh bool) (map[string]*GetNiftyswapUnitPricesResponse, error) AddContractToMintMonitor(ctx context.Context, chainID string, contractAddress string) (bool, error) RemoveContractFromMintMonitor(ctx context.Context, chainID string, contractAddress string) (bool, error) @@ -1153,16 +1234,17 @@ const AdminPathPrefix = "/rpc/Admin/" type metadataClient struct { client HTTPClient - urls [36]string + urls [38]string } func NewMetadataClient(addr string, client HTTPClient) MetadataClient { prefix := urlBase(addr) + MetadataPathPrefix - urls := [36]string{ + urls := [38]string{ prefix + "Ping", prefix + "Version", prefix + "RuntimeStatus", - prefix + "GetTokenMetadata", + prefix + "GetTask", + prefix + "GetTaskStatus", prefix + "RefreshTokenMetadata", prefix + "EnqueueTokensForRefresh", prefix + "GetTokenRefreshStatus", @@ -1171,6 +1253,7 @@ func NewMetadataClient(addr string, client HTTPClient) MetadataClient { prefix + "RefreshContractInfo", prefix + "RefreshContractTokens", prefix + "RefreshAllContractTokens", + prefix + "GetTokenMetadata", prefix + "GetTokenMetadataBatch", prefix + "SearchTokenMetadata", prefix + "SearchTokenIDs", @@ -1250,14 +1333,12 @@ func (c *metadataClient) RuntimeStatus(ctx context.Context) (*RuntimeStatus, err return out.Ret0, err } -func (c *metadataClient) GetTokenMetadata(ctx context.Context, chainID string, contractAddress string, tokenIDs []string) ([]*TokenMetadata, error) { +func (c *metadataClient) GetTask(ctx context.Context, taskId uint64) (*Task, error) { in := struct { - Arg0 string `json:"chainID"` - Arg1 string `json:"contractAddress"` - Arg2 []string `json:"tokenIDs"` - }{chainID, contractAddress, tokenIDs} + Arg0 uint64 `json:"taskId"` + }{taskId} out := struct { - Ret0 []*TokenMetadata `json:"tokenMetadata"` + Ret0 *Task `json:"task"` }{} resp, err := doHTTPRequest(ctx, c.client, c.urls[3], in, &out) @@ -1271,6 +1352,25 @@ func (c *metadataClient) GetTokenMetadata(ctx context.Context, chainID string, c return out.Ret0, err } +func (c *metadataClient) GetTaskStatus(ctx context.Context, taskId uint64) (*TaskStatus, error) { + in := struct { + Arg0 uint64 `json:"taskId"` + }{taskId} + out := struct { + Ret0 *TaskStatus `json:"status"` + }{} + + resp, err := doHTTPRequest(ctx, c.client, c.urls[4], in, &out) + if resp != nil { + cerr := resp.Body.Close() + if err == nil && cerr != nil { + err = ErrWebrpcRequestFailed.WithCausef("failed to close response body: %w", cerr) + } + } + + return out.Ret0, err +} + func (c *metadataClient) RefreshTokenMetadata(ctx context.Context, chainID string, contractAddress string, tokenIDs []string, refreshAll *bool) (uint64, error) { in := struct { Arg0 string `json:"chainID"` @@ -1282,7 +1382,7 @@ func (c *metadataClient) RefreshTokenMetadata(ctx context.Context, chainID strin Ret0 uint64 `json:"taskId"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[4], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[5], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1304,7 +1404,7 @@ func (c *metadataClient) EnqueueTokensForRefresh(ctx context.Context, chainID st Ret0 uint64 `json:"taskId"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[5], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[6], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1323,7 +1423,7 @@ func (c *metadataClient) GetTokenRefreshStatus(ctx context.Context, taskId uint6 Ret0 *TaskStatus `json:"status"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[6], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[7], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1344,7 +1444,7 @@ func (c *metadataClient) GetTokenRefreshResult(ctx context.Context, taskId uint6 Ret2 map[string]string `json:"failureReasons"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[7], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[8], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1363,7 +1463,7 @@ func (c *metadataClient) CancelRefreshJob(ctx context.Context, taskId uint64) (b Ret0 bool `json:"ok"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[8], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[9], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1380,7 +1480,7 @@ func (c *metadataClient) RefreshContractInfo(ctx context.Context, chainHandle st Arg1 string `json:"contractAddress"` }{chainHandle, contractAddress} - resp, err := doHTTPRequest(ctx, c.client, c.urls[9], in, nil) + resp, err := doHTTPRequest(ctx, c.client, c.urls[10], in, nil) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1391,17 +1491,17 @@ func (c *metadataClient) RefreshContractInfo(ctx context.Context, chainHandle st return err } -func (c *metadataClient) RefreshContractTokens(ctx context.Context, chainHandle string, contractAddress string, tokenIDs []string) (*Task, error) { +func (c *metadataClient) RefreshContractTokens(ctx context.Context, chainHandle string, contractAddress string, tokenIDs []string) (*uint64, error) { in := struct { Arg0 string `json:"chainHandle"` Arg1 string `json:"contractAddress"` Arg2 []string `json:"tokenIDs"` }{chainHandle, contractAddress, tokenIDs} out := struct { - Ret0 *Task `json:"task"` + Ret0 *uint64 `json:"taskID"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[10], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[11], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1412,17 +1512,39 @@ func (c *metadataClient) RefreshContractTokens(ctx context.Context, chainHandle return out.Ret0, err } -func (c *metadataClient) RefreshAllContractTokens(ctx context.Context, chainHandle string, contractAddress string) (*Task, uint64, error) { +func (c *metadataClient) RefreshAllContractTokens(ctx context.Context, chainHandle string, contractAddress string) (*uint64, uint64, error) { in := struct { Arg0 string `json:"chainHandle"` Arg1 string `json:"contractAddress"` }{chainHandle, contractAddress} out := struct { - Ret0 *Task `json:"task"` - Ret1 uint64 `json:"retryAfter"` + Ret0 *uint64 `json:"taskID"` + Ret1 uint64 `json:"retryAfter"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[11], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[12], in, &out) + if resp != nil { + cerr := resp.Body.Close() + if err == nil && cerr != nil { + err = ErrWebrpcRequestFailed.WithCausef("failed to close response body: %w", cerr) + } + } + + return out.Ret0, out.Ret1, err +} + +func (c *metadataClient) GetTokenMetadata(ctx context.Context, chainID string, contractAddress string, tokenIDs []string) ([]*TokenMetadata, *uint64, error) { + in := struct { + Arg0 string `json:"chainID"` + Arg1 string `json:"contractAddress"` + Arg2 []string `json:"tokenIDs"` + }{chainID, contractAddress, tokenIDs} + out := struct { + Ret0 []*TokenMetadata `json:"tokenMetadata"` + Ret1 *uint64 `json:"taskID"` + }{} + + resp, err := doHTTPRequest(ctx, c.client, c.urls[13], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1433,16 +1555,17 @@ func (c *metadataClient) RefreshAllContractTokens(ctx context.Context, chainHand return out.Ret0, out.Ret1, err } -func (c *metadataClient) GetTokenMetadataBatch(ctx context.Context, chainID string, contractTokenMap map[string][]string) (map[string][]*TokenMetadata, error) { +func (c *metadataClient) GetTokenMetadataBatch(ctx context.Context, chainID string, contractTokenMap map[string][]string) (map[string][]*TokenMetadata, *uint64, error) { in := struct { Arg0 string `json:"chainID"` Arg1 map[string][]string `json:"contractTokenMap"` }{chainID, contractTokenMap} out := struct { Ret0 map[string][]*TokenMetadata `json:"contractTokenMetadata"` + Ret1 *uint64 `json:"taskID"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[12], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[14], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1450,7 +1573,7 @@ func (c *metadataClient) GetTokenMetadataBatch(ctx context.Context, chainID stri } } - return out.Ret0, err + return out.Ret0, out.Ret1, err } func (c *metadataClient) SearchTokenMetadata(ctx context.Context, chainID string, contractAddress string, filter *Filter, page *Page) (*Page, []*TokenMetadata, error) { @@ -1465,7 +1588,7 @@ func (c *metadataClient) SearchTokenMetadata(ctx context.Context, chainID string Ret1 []*TokenMetadata `json:"tokenMetadata"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[13], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[15], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1488,7 +1611,7 @@ func (c *metadataClient) SearchTokenIDs(ctx context.Context, chainID string, con Ret1 []string `json:"tokenIds"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[14], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[16], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1508,7 +1631,7 @@ func (c *metadataClient) TokenCollectionFilters(ctx context.Context, chainID str Ret0 []*PropertyFilter `json:"filters"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[15], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[17], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1519,16 +1642,17 @@ func (c *metadataClient) TokenCollectionFilters(ctx context.Context, chainID str return out.Ret0, err } -func (c *metadataClient) GetContractInfo(ctx context.Context, chainID string, contractAddress string) (*ContractInfo, error) { +func (c *metadataClient) GetContractInfo(ctx context.Context, chainID string, contractAddress string) (*ContractInfo, *uint64, error) { in := struct { Arg0 string `json:"chainID"` Arg1 string `json:"contractAddress"` }{chainID, contractAddress} out := struct { Ret0 *ContractInfo `json:"contractInfo"` + Ret1 *uint64 `json:"taskID"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[16], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[18], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1536,19 +1660,20 @@ func (c *metadataClient) GetContractInfo(ctx context.Context, chainID string, co } } - return out.Ret0, err + return out.Ret0, out.Ret1, err } -func (c *metadataClient) GetContractInfoBatch(ctx context.Context, chainID string, contractAddresses []string) (map[string]*ContractInfo, error) { +func (c *metadataClient) GetContractInfoBatch(ctx context.Context, chainID string, contractAddresses []string) (map[string]*ContractInfo, *uint64, error) { in := struct { Arg0 string `json:"chainID"` Arg1 []string `json:"contractAddresses"` }{chainID, contractAddresses} out := struct { Ret0 map[string]*ContractInfo `json:"contractInfoMap"` + Ret1 *uint64 `json:"taskID"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[17], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[19], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1556,7 +1681,7 @@ func (c *metadataClient) GetContractInfoBatch(ctx context.Context, chainID strin } } - return out.Ret0, err + return out.Ret0, out.Ret1, err } func (c *metadataClient) SearchContractInfo(ctx context.Context, contractAddress string) ([]*ContractInfo, error) { @@ -1567,7 +1692,7 @@ func (c *metadataClient) SearchContractInfo(ctx context.Context, contractAddress Ret0 []*ContractInfo `json:"contractInfoList"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[18], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[20], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1586,7 +1711,7 @@ func (c *metadataClient) SearchContractInfoBatch(ctx context.Context, contractAd Ret0 map[string][]*ContractInfo `json:"contractInfoByChain"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[19], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[21], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1609,7 +1734,7 @@ func (c *metadataClient) SearchMetadata(ctx context.Context, filter string, chai Ret1 []*ContractInfo `json:"contractInfo"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[20], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[22], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1631,7 +1756,7 @@ func (c *metadataClient) SearchTokens(ctx context.Context, q string, chainID *st Ret1 *Page `json:"nextPage"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[21], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[23], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1655,7 +1780,7 @@ func (c *metadataClient) SearchContracts(ctx context.Context, q string, chainID Ret1 *Page `json:"nextPage"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[22], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[24], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1676,7 +1801,7 @@ func (c *metadataClient) GetNiftyswapTokenQuantity(ctx context.Context, chainID Ret0 map[string]string `json:"quantity"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[23], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[25], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1698,7 +1823,7 @@ func (c *metadataClient) GetNiftyswapUnitPrices(ctx context.Context, chainID str Ret0 map[string]string `json:"prices"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[24], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[26], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1720,7 +1845,7 @@ func (c *metadataClient) GetNiftyswapUnitPricesWithQuantities(ctx context.Contex Ret0 map[string]*GetNiftyswapUnitPricesResponse `json:"prices"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[25], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[27], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1740,7 +1865,7 @@ func (c *metadataClient) AddContractToMintMonitor(ctx context.Context, chainID s Ret0 bool `json:"ok"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[26], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[28], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1760,7 +1885,7 @@ func (c *metadataClient) RemoveContractFromMintMonitor(ctx context.Context, chai Ret0 bool `json:"ok"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[27], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[29], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1780,7 +1905,7 @@ func (c *metadataClient) MintMonitorJobStatus(ctx context.Context, chainID strin Ret0 *Task `json:"task"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[28], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[30], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1800,7 +1925,7 @@ func (c *metadataClient) MintMonitorTriggerJob(ctx context.Context, chainID stri Ret0 bool `json:"ok"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[29], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[31], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1820,7 +1945,7 @@ func (c *metadataClient) SyncContractTokens(ctx context.Context, chainID string, Ret0 uint64 `json:"taskID"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[30], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[32], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1839,7 +1964,7 @@ func (c *metadataClient) AbortContractSync(ctx context.Context, taskID uint64) ( Ret0 bool `json:"ok"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[31], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[33], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1859,7 +1984,7 @@ func (c *metadataClient) ContractSyncJobStatus(ctx context.Context, taskID uint6 Ret1 *Task `json:"syncTask"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[32], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[34], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1879,7 +2004,7 @@ func (c *metadataClient) DirectoryGetNetworks(ctx context.Context, includeTestne Ret0 []uint64 `json:"networks"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[33], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[35], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1902,7 +2027,7 @@ func (c *metadataClient) DirectoryGetCollections(ctx context.Context, chainId *u Ret1 *Page `json:"page"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[34], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[36], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1926,7 +2051,7 @@ func (c *metadataClient) DirectorySearchCollections(ctx context.Context, query s Ret1 *Page `json:"page"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[35], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[37], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil {