Files
motr/internal/sink/network/query.sql.go
Prad Nukala 7fdfd5f570 feat/ui (#11)
* ui: improve visual consistency across components

* feat: simplify task execution with consolidated commands

* feat: enable account registration flow

* feat: integrate price tracking functionality

* feat: add metadata components for improved SEO and web crawling

* refactor: improve code organization and consistency

* fix: update login template package names

* refactor: rename and restructure UI components for clarity

* feat: introduce dynamic asset selection for transfer UI

* chore: update dependencies and build process

* feat: Add KVNamespace interface for Cloudflare KV store operations

* refactor: Update JSON operations to use Golang generics with JSON Marshaller interface

* feat: Add json import for KVNamespace generic JSON operations

* refactor: Update PutJSON method to accept any type for JSON marshaling

* refactor: migrate to modular architecture with domain-driven design

* fix: directory structure for component routing

* refactor: partial routes to htmx

* docs: update documentation to reflect UI structure changes

* refactor: relocate build artifacts for cleaner project structure

* feat: integrate Cloudflare cache for improved performance

* build: update import paths for middleware package

* feat: implement core authentication flows

* refactor: rename view handler to index handler for clarity

* feat: introduce devbox for streamlined development environment

* feat: introduce deployment and build scripts

* feat: introduce radar and worker services with build automation

* feat: introduce WASM-based worker and radar services

* feat: migrate to standard go build process

* fix: correct worker script path in wrangler configuration

* feat: enhance service monitoring capabilities

* refactor: migrate to new database and KV store context pattern

* build: streamline worker builds using devbox scripts

* feat: migrate to D1 database bindings for improved data access

* feat: introduce session ID middleware

* perf: optimize WASM build size by stripping debug information

* feat: introduce process-compose for simplified local development

* feat: enable direct wrangler commands and simplify deployment
2025-05-28 12:50:38 -04:00

3203 lines
96 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.29.0
// source: query.sql
package network
import (
"context"
"database/sql"
"time"
)
const countBlockchainsByChainType = `-- name: CountBlockchainsByChainType :one
SELECT COUNT(*) as count FROM blockchains
WHERE chain_type LIKE '%' || ? || '%' AND deleted_at IS NULL
`
func (q *Queries) CountBlockchainsByChainType(ctx context.Context, dollar_1 sql.NullString) (int64, error) {
row := q.db.QueryRowContext(ctx, countBlockchainsByChainType, dollar_1)
var count int64
err := row.Scan(&count)
return count, err
}
const getAssetByChainAndSymbol = `-- name: GetAssetByChainAndSymbol :one
SELECT id, created_at, updated_at, deleted_at, name, symbol, decimals, chain_id, channel, asset_type, coingecko_id FROM assets
WHERE chain_id = ? AND symbol = ? AND deleted_at IS NULL
LIMIT 1
`
type GetAssetByChainAndSymbolParams struct {
ChainID string `json:"chain_id"`
Symbol string `json:"symbol"`
}
func (q *Queries) GetAssetByChainAndSymbol(ctx context.Context, arg GetAssetByChainAndSymbolParams) (Asset, error) {
row := q.db.QueryRowContext(ctx, getAssetByChainAndSymbol, arg.ChainID, arg.Symbol)
var i Asset
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.Name,
&i.Symbol,
&i.Decimals,
&i.ChainID,
&i.Channel,
&i.AssetType,
&i.CoingeckoID,
)
return i, err
}
const getAssetByID = `-- name: GetAssetByID :one
SELECT id, created_at, updated_at, deleted_at, name, symbol, decimals, chain_id, channel, asset_type, coingecko_id FROM assets
WHERE id = ? AND deleted_at IS NULL
LIMIT 1
`
func (q *Queries) GetAssetByID(ctx context.Context, id string) (Asset, error) {
row := q.db.QueryRowContext(ctx, getAssetByID, id)
var i Asset
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.Name,
&i.Symbol,
&i.Decimals,
&i.ChainID,
&i.Channel,
&i.AssetType,
&i.CoingeckoID,
)
return i, err
}
const getAssetBySymbol = `-- name: GetAssetBySymbol :one
SELECT id, created_at, updated_at, deleted_at, name, symbol, decimals, chain_id, channel, asset_type, coingecko_id FROM assets
WHERE symbol = ? AND deleted_at IS NULL
LIMIT 1
`
func (q *Queries) GetAssetBySymbol(ctx context.Context, symbol string) (Asset, error) {
row := q.db.QueryRowContext(ctx, getAssetBySymbol, symbol)
var i Asset
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.Name,
&i.Symbol,
&i.Decimals,
&i.ChainID,
&i.Channel,
&i.AssetType,
&i.CoingeckoID,
)
return i, err
}
const getAssetWithLatestPrice = `-- name: GetAssetWithLatestPrice :one
SELECT a.id, a.created_at, a.updated_at, a.deleted_at, a.name, a.symbol, a.decimals, a.chain_id, a.channel, a.asset_type, a.coingecko_id, p.price_usd, p.price_btc, p.volume_24h_usd, p.market_cap_usd,
p.available_supply, p.total_supply, p.max_supply,
p.percent_change_1h, p.percent_change_24h, p.percent_change_7d,
p.rank, p.last_updated
FROM assets a
LEFT JOIN (
SELECT p1.id, p1.created_at, p1.updated_at, p1.deleted_at, p1.asset_id, p1.price_usd, p1.price_btc, p1.volume_24h_usd, p1.market_cap_usd, p1.available_supply, p1.total_supply, p1.max_supply, p1.percent_change_1h, p1.percent_change_24h, p1.percent_change_7d, p1.rank, p1.last_updated
FROM prices p1
INNER JOIN (
SELECT asset_id, MAX(last_updated) as max_date
FROM prices
WHERE deleted_at IS NULL
GROUP BY asset_id
) p2 ON p1.asset_id = p2.asset_id AND p1.last_updated = p2.max_date
WHERE p1.deleted_at IS NULL
) p ON a.id = p.asset_id
WHERE a.id = ? AND a.deleted_at IS NULL
LIMIT 1
`
type GetAssetWithLatestPriceRow struct {
ID string `json:"id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DeletedAt sql.NullTime `json:"deleted_at"`
Name string `json:"name"`
Symbol string `json:"symbol"`
Decimals int64 `json:"decimals"`
ChainID string `json:"chain_id"`
Channel string `json:"channel"`
AssetType string `json:"asset_type"`
CoingeckoID sql.NullString `json:"coingecko_id"`
PriceUsd sql.NullFloat64 `json:"price_usd"`
PriceBtc sql.NullFloat64 `json:"price_btc"`
Volume24hUsd sql.NullFloat64 `json:"volume_24h_usd"`
MarketCapUsd sql.NullFloat64 `json:"market_cap_usd"`
AvailableSupply sql.NullFloat64 `json:"available_supply"`
TotalSupply sql.NullFloat64 `json:"total_supply"`
MaxSupply sql.NullFloat64 `json:"max_supply"`
PercentChange1h sql.NullFloat64 `json:"percent_change_1h"`
PercentChange24h sql.NullFloat64 `json:"percent_change_24h"`
PercentChange7d sql.NullFloat64 `json:"percent_change_7d"`
Rank sql.NullInt64 `json:"rank"`
LastUpdated time.Time `json:"last_updated"`
}
func (q *Queries) GetAssetWithLatestPrice(ctx context.Context, id string) (GetAssetWithLatestPriceRow, error) {
row := q.db.QueryRowContext(ctx, getAssetWithLatestPrice, id)
var i GetAssetWithLatestPriceRow
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.Name,
&i.Symbol,
&i.Decimals,
&i.ChainID,
&i.Channel,
&i.AssetType,
&i.CoingeckoID,
&i.PriceUsd,
&i.PriceBtc,
&i.Volume24hUsd,
&i.MarketCapUsd,
&i.AvailableSupply,
&i.TotalSupply,
&i.MaxSupply,
&i.PercentChange1h,
&i.PercentChange24h,
&i.PercentChange7d,
&i.Rank,
&i.LastUpdated,
)
return i, err
}
const getBlockchainByChainName = `-- name: GetBlockchainByChainName :one
SELECT id, created_at, updated_at, deleted_at, chain_name, chain_id_cosmos, chain_id_evm, api_name, bech_account_prefix, bech_validator_prefix, main_asset_symbol, main_asset_denom, staking_asset_symbol, staking_asset_denom, is_stake_enabled, chain_image, main_asset_image, staking_asset_image, chain_type, is_support_mobile_wallet, is_support_extension_wallet, is_support_erc20, description_en, description_ko, description_ja, origin_genesis_time, account_type, btc_staking, cosmos_fee_info, evm_fee_info, lcd_endpoint, grpc_endpoint, evm_rpc_endpoint, explorer, about, forum FROM blockchains
WHERE chain_name = ? AND deleted_at IS NULL
LIMIT 1
`
func (q *Queries) GetBlockchainByChainName(ctx context.Context, chainName string) (Blockchain, error) {
row := q.db.QueryRowContext(ctx, getBlockchainByChainName, chainName)
var i Blockchain
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ChainName,
&i.ChainIDCosmos,
&i.ChainIDEvm,
&i.ApiName,
&i.BechAccountPrefix,
&i.BechValidatorPrefix,
&i.MainAssetSymbol,
&i.MainAssetDenom,
&i.StakingAssetSymbol,
&i.StakingAssetDenom,
&i.IsStakeEnabled,
&i.ChainImage,
&i.MainAssetImage,
&i.StakingAssetImage,
&i.ChainType,
&i.IsSupportMobileWallet,
&i.IsSupportExtensionWallet,
&i.IsSupportErc20,
&i.DescriptionEn,
&i.DescriptionKo,
&i.DescriptionJa,
&i.OriginGenesisTime,
&i.AccountType,
&i.BtcStaking,
&i.CosmosFeeInfo,
&i.EvmFeeInfo,
&i.LcdEndpoint,
&i.GrpcEndpoint,
&i.EvmRpcEndpoint,
&i.Explorer,
&i.About,
&i.Forum,
)
return i, err
}
const getBlockchainByCosmosChainID = `-- name: GetBlockchainByCosmosChainID :one
SELECT id, created_at, updated_at, deleted_at, chain_name, chain_id_cosmos, chain_id_evm, api_name, bech_account_prefix, bech_validator_prefix, main_asset_symbol, main_asset_denom, staking_asset_symbol, staking_asset_denom, is_stake_enabled, chain_image, main_asset_image, staking_asset_image, chain_type, is_support_mobile_wallet, is_support_extension_wallet, is_support_erc20, description_en, description_ko, description_ja, origin_genesis_time, account_type, btc_staking, cosmos_fee_info, evm_fee_info, lcd_endpoint, grpc_endpoint, evm_rpc_endpoint, explorer, about, forum FROM blockchains
WHERE chain_id_cosmos = ? AND deleted_at IS NULL
LIMIT 1
`
func (q *Queries) GetBlockchainByCosmosChainID(ctx context.Context, chainIDCosmos sql.NullString) (Blockchain, error) {
row := q.db.QueryRowContext(ctx, getBlockchainByCosmosChainID, chainIDCosmos)
var i Blockchain
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ChainName,
&i.ChainIDCosmos,
&i.ChainIDEvm,
&i.ApiName,
&i.BechAccountPrefix,
&i.BechValidatorPrefix,
&i.MainAssetSymbol,
&i.MainAssetDenom,
&i.StakingAssetSymbol,
&i.StakingAssetDenom,
&i.IsStakeEnabled,
&i.ChainImage,
&i.MainAssetImage,
&i.StakingAssetImage,
&i.ChainType,
&i.IsSupportMobileWallet,
&i.IsSupportExtensionWallet,
&i.IsSupportErc20,
&i.DescriptionEn,
&i.DescriptionKo,
&i.DescriptionJa,
&i.OriginGenesisTime,
&i.AccountType,
&i.BtcStaking,
&i.CosmosFeeInfo,
&i.EvmFeeInfo,
&i.LcdEndpoint,
&i.GrpcEndpoint,
&i.EvmRpcEndpoint,
&i.Explorer,
&i.About,
&i.Forum,
)
return i, err
}
const getBlockchainByEvmChainID = `-- name: GetBlockchainByEvmChainID :one
SELECT id, created_at, updated_at, deleted_at, chain_name, chain_id_cosmos, chain_id_evm, api_name, bech_account_prefix, bech_validator_prefix, main_asset_symbol, main_asset_denom, staking_asset_symbol, staking_asset_denom, is_stake_enabled, chain_image, main_asset_image, staking_asset_image, chain_type, is_support_mobile_wallet, is_support_extension_wallet, is_support_erc20, description_en, description_ko, description_ja, origin_genesis_time, account_type, btc_staking, cosmos_fee_info, evm_fee_info, lcd_endpoint, grpc_endpoint, evm_rpc_endpoint, explorer, about, forum FROM blockchains
WHERE chain_id_evm = ? AND deleted_at IS NULL
LIMIT 1
`
func (q *Queries) GetBlockchainByEvmChainID(ctx context.Context, chainIDEvm sql.NullString) (Blockchain, error) {
row := q.db.QueryRowContext(ctx, getBlockchainByEvmChainID, chainIDEvm)
var i Blockchain
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ChainName,
&i.ChainIDCosmos,
&i.ChainIDEvm,
&i.ApiName,
&i.BechAccountPrefix,
&i.BechValidatorPrefix,
&i.MainAssetSymbol,
&i.MainAssetDenom,
&i.StakingAssetSymbol,
&i.StakingAssetDenom,
&i.IsStakeEnabled,
&i.ChainImage,
&i.MainAssetImage,
&i.StakingAssetImage,
&i.ChainType,
&i.IsSupportMobileWallet,
&i.IsSupportExtensionWallet,
&i.IsSupportErc20,
&i.DescriptionEn,
&i.DescriptionKo,
&i.DescriptionJa,
&i.OriginGenesisTime,
&i.AccountType,
&i.BtcStaking,
&i.CosmosFeeInfo,
&i.EvmFeeInfo,
&i.LcdEndpoint,
&i.GrpcEndpoint,
&i.EvmRpcEndpoint,
&i.Explorer,
&i.About,
&i.Forum,
)
return i, err
}
const getBlockchainByID = `-- name: GetBlockchainByID :one
SELECT id, created_at, updated_at, deleted_at, chain_name, chain_id_cosmos, chain_id_evm, api_name, bech_account_prefix, bech_validator_prefix, main_asset_symbol, main_asset_denom, staking_asset_symbol, staking_asset_denom, is_stake_enabled, chain_image, main_asset_image, staking_asset_image, chain_type, is_support_mobile_wallet, is_support_extension_wallet, is_support_erc20, description_en, description_ko, description_ja, origin_genesis_time, account_type, btc_staking, cosmos_fee_info, evm_fee_info, lcd_endpoint, grpc_endpoint, evm_rpc_endpoint, explorer, about, forum FROM blockchains
WHERE id = ? AND deleted_at IS NULL
LIMIT 1
`
func (q *Queries) GetBlockchainByID(ctx context.Context, id string) (Blockchain, error) {
row := q.db.QueryRowContext(ctx, getBlockchainByID, id)
var i Blockchain
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ChainName,
&i.ChainIDCosmos,
&i.ChainIDEvm,
&i.ApiName,
&i.BechAccountPrefix,
&i.BechValidatorPrefix,
&i.MainAssetSymbol,
&i.MainAssetDenom,
&i.StakingAssetSymbol,
&i.StakingAssetDenom,
&i.IsStakeEnabled,
&i.ChainImage,
&i.MainAssetImage,
&i.StakingAssetImage,
&i.ChainType,
&i.IsSupportMobileWallet,
&i.IsSupportExtensionWallet,
&i.IsSupportErc20,
&i.DescriptionEn,
&i.DescriptionKo,
&i.DescriptionJa,
&i.OriginGenesisTime,
&i.AccountType,
&i.BtcStaking,
&i.CosmosFeeInfo,
&i.EvmFeeInfo,
&i.LcdEndpoint,
&i.GrpcEndpoint,
&i.EvmRpcEndpoint,
&i.Explorer,
&i.About,
&i.Forum,
)
return i, err
}
const getBlockchainEndpoints = `-- name: GetBlockchainEndpoints :one
SELECT id, chain_name, lcd_endpoint, grpc_endpoint, evm_rpc_endpoint
FROM blockchains
WHERE id = ? AND deleted_at IS NULL
LIMIT 1
`
type GetBlockchainEndpointsRow struct {
ID string `json:"id"`
ChainName string `json:"chain_name"`
LcdEndpoint sql.NullString `json:"lcd_endpoint"`
GrpcEndpoint sql.NullString `json:"grpc_endpoint"`
EvmRpcEndpoint sql.NullString `json:"evm_rpc_endpoint"`
}
func (q *Queries) GetBlockchainEndpoints(ctx context.Context, id string) (GetBlockchainEndpointsRow, error) {
row := q.db.QueryRowContext(ctx, getBlockchainEndpoints, id)
var i GetBlockchainEndpointsRow
err := row.Scan(
&i.ID,
&i.ChainName,
&i.LcdEndpoint,
&i.GrpcEndpoint,
&i.EvmRpcEndpoint,
)
return i, err
}
const getBlockchainExplorer = `-- name: GetBlockchainExplorer :one
SELECT id, chain_name, explorer
FROM blockchains
WHERE id = ? AND deleted_at IS NULL
LIMIT 1
`
type GetBlockchainExplorerRow struct {
ID string `json:"id"`
ChainName string `json:"chain_name"`
Explorer sql.NullString `json:"explorer"`
}
func (q *Queries) GetBlockchainExplorer(ctx context.Context, id string) (GetBlockchainExplorerRow, error) {
row := q.db.QueryRowContext(ctx, getBlockchainExplorer, id)
var i GetBlockchainExplorerRow
err := row.Scan(&i.ID, &i.ChainName, &i.Explorer)
return i, err
}
const getBlockchainWithAssetInfo = `-- name: GetBlockchainWithAssetInfo :one
SELECT b.id, b.created_at, b.updated_at, b.deleted_at, b.chain_name, b.chain_id_cosmos, b.chain_id_evm, b.api_name, b.bech_account_prefix, b.bech_validator_prefix, b.main_asset_symbol, b.main_asset_denom, b.staking_asset_symbol, b.staking_asset_denom, b.is_stake_enabled, b.chain_image, b.main_asset_image, b.staking_asset_image, b.chain_type, b.is_support_mobile_wallet, b.is_support_extension_wallet, b.is_support_erc20, b.description_en, b.description_ko, b.description_ja, b.origin_genesis_time, b.account_type, b.btc_staking, b.cosmos_fee_info, b.evm_fee_info, b.lcd_endpoint, b.grpc_endpoint, b.evm_rpc_endpoint, b.explorer, b.about, b.forum, a.id as asset_id, a.symbol, a.decimals, p.price_usd, p.price_btc
FROM blockchains b
LEFT JOIN assets a ON b.main_asset_symbol = a.symbol
LEFT JOIN (
SELECT p1.id, p1.created_at, p1.updated_at, p1.deleted_at, p1.asset_id, p1.price_usd, p1.price_btc, p1.volume_24h_usd, p1.market_cap_usd, p1.available_supply, p1.total_supply, p1.max_supply, p1.percent_change_1h, p1.percent_change_24h, p1.percent_change_7d, p1.rank, p1.last_updated
FROM prices p1
INNER JOIN (
SELECT asset_id, MAX(last_updated) as max_date
FROM prices
WHERE deleted_at IS NULL
GROUP BY asset_id
) p2 ON p1.asset_id = p2.asset_id AND p1.last_updated = p2.max_date
WHERE p1.deleted_at IS NULL
) p ON a.id = p.asset_id
WHERE b.id = ? AND b.deleted_at IS NULL
LIMIT 1
`
type GetBlockchainWithAssetInfoRow struct {
ID string `json:"id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DeletedAt sql.NullTime `json:"deleted_at"`
ChainName string `json:"chain_name"`
ChainIDCosmos sql.NullString `json:"chain_id_cosmos"`
ChainIDEvm sql.NullString `json:"chain_id_evm"`
ApiName sql.NullString `json:"api_name"`
BechAccountPrefix sql.NullString `json:"bech_account_prefix"`
BechValidatorPrefix sql.NullString `json:"bech_validator_prefix"`
MainAssetSymbol sql.NullString `json:"main_asset_symbol"`
MainAssetDenom sql.NullString `json:"main_asset_denom"`
StakingAssetSymbol sql.NullString `json:"staking_asset_symbol"`
StakingAssetDenom sql.NullString `json:"staking_asset_denom"`
IsStakeEnabled bool `json:"is_stake_enabled"`
ChainImage sql.NullString `json:"chain_image"`
MainAssetImage sql.NullString `json:"main_asset_image"`
StakingAssetImage sql.NullString `json:"staking_asset_image"`
ChainType string `json:"chain_type"`
IsSupportMobileWallet bool `json:"is_support_mobile_wallet"`
IsSupportExtensionWallet bool `json:"is_support_extension_wallet"`
IsSupportErc20 bool `json:"is_support_erc20"`
DescriptionEn sql.NullString `json:"description_en"`
DescriptionKo sql.NullString `json:"description_ko"`
DescriptionJa sql.NullString `json:"description_ja"`
OriginGenesisTime sql.NullTime `json:"origin_genesis_time"`
AccountType string `json:"account_type"`
BtcStaking sql.NullString `json:"btc_staking"`
CosmosFeeInfo sql.NullString `json:"cosmos_fee_info"`
EvmFeeInfo sql.NullString `json:"evm_fee_info"`
LcdEndpoint sql.NullString `json:"lcd_endpoint"`
GrpcEndpoint sql.NullString `json:"grpc_endpoint"`
EvmRpcEndpoint sql.NullString `json:"evm_rpc_endpoint"`
Explorer sql.NullString `json:"explorer"`
About sql.NullString `json:"about"`
Forum sql.NullString `json:"forum"`
AssetID sql.NullString `json:"asset_id"`
Symbol sql.NullString `json:"symbol"`
Decimals sql.NullInt64 `json:"decimals"`
PriceUsd sql.NullFloat64 `json:"price_usd"`
PriceBtc sql.NullFloat64 `json:"price_btc"`
}
func (q *Queries) GetBlockchainWithAssetInfo(ctx context.Context, id string) (GetBlockchainWithAssetInfoRow, error) {
row := q.db.QueryRowContext(ctx, getBlockchainWithAssetInfo, id)
var i GetBlockchainWithAssetInfoRow
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ChainName,
&i.ChainIDCosmos,
&i.ChainIDEvm,
&i.ApiName,
&i.BechAccountPrefix,
&i.BechValidatorPrefix,
&i.MainAssetSymbol,
&i.MainAssetDenom,
&i.StakingAssetSymbol,
&i.StakingAssetDenom,
&i.IsStakeEnabled,
&i.ChainImage,
&i.MainAssetImage,
&i.StakingAssetImage,
&i.ChainType,
&i.IsSupportMobileWallet,
&i.IsSupportExtensionWallet,
&i.IsSupportErc20,
&i.DescriptionEn,
&i.DescriptionKo,
&i.DescriptionJa,
&i.OriginGenesisTime,
&i.AccountType,
&i.BtcStaking,
&i.CosmosFeeInfo,
&i.EvmFeeInfo,
&i.LcdEndpoint,
&i.GrpcEndpoint,
&i.EvmRpcEndpoint,
&i.Explorer,
&i.About,
&i.Forum,
&i.AssetID,
&i.Symbol,
&i.Decimals,
&i.PriceUsd,
&i.PriceBtc,
)
return i, err
}
const getCryptoListingByApiID = `-- name: GetCryptoListingByApiID :one
SELECT id, created_at, updated_at, deleted_at, api_id, name, symbol, website_slug FROM crypto_listings
WHERE api_id = ? AND deleted_at IS NULL
LIMIT 1
`
func (q *Queries) GetCryptoListingByApiID(ctx context.Context, apiID string) (CryptoListing, error) {
row := q.db.QueryRowContext(ctx, getCryptoListingByApiID, apiID)
var i CryptoListing
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ApiID,
&i.Name,
&i.Symbol,
&i.WebsiteSlug,
)
return i, err
}
const getCryptoListingByID = `-- name: GetCryptoListingByID :one
SELECT id, created_at, updated_at, deleted_at, api_id, name, symbol, website_slug FROM crypto_listings
WHERE id = ? AND deleted_at IS NULL
LIMIT 1
`
func (q *Queries) GetCryptoListingByID(ctx context.Context, id string) (CryptoListing, error) {
row := q.db.QueryRowContext(ctx, getCryptoListingByID, id)
var i CryptoListing
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ApiID,
&i.Name,
&i.Symbol,
&i.WebsiteSlug,
)
return i, err
}
const getCryptoListingBySymbol = `-- name: GetCryptoListingBySymbol :one
SELECT id, created_at, updated_at, deleted_at, api_id, name, symbol, website_slug FROM crypto_listings
WHERE symbol = ? AND deleted_at IS NULL
LIMIT 1
`
func (q *Queries) GetCryptoListingBySymbol(ctx context.Context, symbol string) (CryptoListing, error) {
row := q.db.QueryRowContext(ctx, getCryptoListingBySymbol, symbol)
var i CryptoListing
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ApiID,
&i.Name,
&i.Symbol,
&i.WebsiteSlug,
)
return i, err
}
const getCryptoListingByWebsiteSlug = `-- name: GetCryptoListingByWebsiteSlug :one
SELECT id, created_at, updated_at, deleted_at, api_id, name, symbol, website_slug FROM crypto_listings
WHERE website_slug = ? AND deleted_at IS NULL
LIMIT 1
`
func (q *Queries) GetCryptoListingByWebsiteSlug(ctx context.Context, websiteSlug string) (CryptoListing, error) {
row := q.db.QueryRowContext(ctx, getCryptoListingByWebsiteSlug, websiteSlug)
var i CryptoListing
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ApiID,
&i.Name,
&i.Symbol,
&i.WebsiteSlug,
)
return i, err
}
const getFearGreedIndexByID = `-- name: GetFearGreedIndexByID :one
SELECT id, created_at, updated_at, deleted_at, value, value_classification, timestamp, time_until_update FROM fear_greed_index
WHERE id = ? AND deleted_at IS NULL
LIMIT 1
`
func (q *Queries) GetFearGreedIndexByID(ctx context.Context, id string) (FearGreedIndex, error) {
row := q.db.QueryRowContext(ctx, getFearGreedIndexByID, id)
var i FearGreedIndex
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.Value,
&i.ValueClassification,
&i.Timestamp,
&i.TimeUntilUpdate,
)
return i, err
}
const getGlobalMarketByID = `-- name: GetGlobalMarketByID :one
SELECT id, created_at, updated_at, deleted_at, total_market_cap_usd, total_24h_volume_usd, bitcoin_percentage_of_market_cap, active_currencies, active_assets, active_markets, last_updated FROM global_market
WHERE id = ? AND deleted_at IS NULL
LIMIT 1
`
func (q *Queries) GetGlobalMarketByID(ctx context.Context, id string) (GlobalMarket, error) {
row := q.db.QueryRowContext(ctx, getGlobalMarketByID, id)
var i GlobalMarket
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.TotalMarketCapUsd,
&i.Total24hVolumeUsd,
&i.BitcoinPercentageOfMarketCap,
&i.ActiveCurrencies,
&i.ActiveAssets,
&i.ActiveMarkets,
&i.LastUpdated,
)
return i, err
}
const getLatestFearGreedIndex = `-- name: GetLatestFearGreedIndex :one
SELECT id, created_at, updated_at, deleted_at, value, value_classification, timestamp, time_until_update FROM fear_greed_index
WHERE deleted_at IS NULL
ORDER BY timestamp DESC
LIMIT 1
`
func (q *Queries) GetLatestFearGreedIndex(ctx context.Context) (FearGreedIndex, error) {
row := q.db.QueryRowContext(ctx, getLatestFearGreedIndex)
var i FearGreedIndex
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.Value,
&i.ValueClassification,
&i.Timestamp,
&i.TimeUntilUpdate,
)
return i, err
}
const getLatestGlobalMarket = `-- name: GetLatestGlobalMarket :one
SELECT id, created_at, updated_at, deleted_at, total_market_cap_usd, total_24h_volume_usd, bitcoin_percentage_of_market_cap, active_currencies, active_assets, active_markets, last_updated FROM global_market
WHERE deleted_at IS NULL
ORDER BY last_updated DESC
LIMIT 1
`
func (q *Queries) GetLatestGlobalMarket(ctx context.Context) (GlobalMarket, error) {
row := q.db.QueryRowContext(ctx, getLatestGlobalMarket)
var i GlobalMarket
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.TotalMarketCapUsd,
&i.Total24hVolumeUsd,
&i.BitcoinPercentageOfMarketCap,
&i.ActiveCurrencies,
&i.ActiveAssets,
&i.ActiveMarkets,
&i.LastUpdated,
)
return i, err
}
const getPriceByAssetID = `-- name: GetPriceByAssetID :one
SELECT id, created_at, updated_at, deleted_at, asset_id, price_usd, price_btc, volume_24h_usd, market_cap_usd, available_supply, total_supply, max_supply, percent_change_1h, percent_change_24h, percent_change_7d, rank, last_updated FROM prices
WHERE asset_id = ? AND deleted_at IS NULL
ORDER BY last_updated DESC
LIMIT 1
`
func (q *Queries) GetPriceByAssetID(ctx context.Context, assetID string) (Price, error) {
row := q.db.QueryRowContext(ctx, getPriceByAssetID, assetID)
var i Price
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.AssetID,
&i.PriceUsd,
&i.PriceBtc,
&i.Volume24hUsd,
&i.MarketCapUsd,
&i.AvailableSupply,
&i.TotalSupply,
&i.MaxSupply,
&i.PercentChange1h,
&i.PercentChange24h,
&i.PercentChange7d,
&i.Rank,
&i.LastUpdated,
)
return i, err
}
const getPriceByID = `-- name: GetPriceByID :one
SELECT id, created_at, updated_at, deleted_at, asset_id, price_usd, price_btc, volume_24h_usd, market_cap_usd, available_supply, total_supply, max_supply, percent_change_1h, percent_change_24h, percent_change_7d, rank, last_updated FROM prices
WHERE id = ? AND deleted_at IS NULL
LIMIT 1
`
func (q *Queries) GetPriceByID(ctx context.Context, id string) (Price, error) {
row := q.db.QueryRowContext(ctx, getPriceByID, id)
var i Price
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.AssetID,
&i.PriceUsd,
&i.PriceBtc,
&i.Volume24hUsd,
&i.MarketCapUsd,
&i.AvailableSupply,
&i.TotalSupply,
&i.MaxSupply,
&i.PercentChange1h,
&i.PercentChange24h,
&i.PercentChange7d,
&i.Rank,
&i.LastUpdated,
)
return i, err
}
const getPriceConversionByCurrency = `-- name: GetPriceConversionByCurrency :one
SELECT id, created_at, updated_at, deleted_at, price_id, currency_code, price, volume_24h, market_cap, last_updated FROM price_conversions
WHERE price_id = ? AND currency_code = ? AND deleted_at IS NULL
LIMIT 1
`
type GetPriceConversionByCurrencyParams struct {
PriceID string `json:"price_id"`
CurrencyCode string `json:"currency_code"`
}
func (q *Queries) GetPriceConversionByCurrency(ctx context.Context, arg GetPriceConversionByCurrencyParams) (PriceConversion, error) {
row := q.db.QueryRowContext(ctx, getPriceConversionByCurrency, arg.PriceID, arg.CurrencyCode)
var i PriceConversion
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.PriceID,
&i.CurrencyCode,
&i.Price,
&i.Volume24h,
&i.MarketCap,
&i.LastUpdated,
)
return i, err
}
const getPriceConversionByID = `-- name: GetPriceConversionByID :one
SELECT id, created_at, updated_at, deleted_at, price_id, currency_code, price, volume_24h, market_cap, last_updated FROM price_conversions
WHERE id = ? AND deleted_at IS NULL
LIMIT 1
`
func (q *Queries) GetPriceConversionByID(ctx context.Context, id string) (PriceConversion, error) {
row := q.db.QueryRowContext(ctx, getPriceConversionByID, id)
var i PriceConversion
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.PriceID,
&i.CurrencyCode,
&i.Price,
&i.Volume24h,
&i.MarketCap,
&i.LastUpdated,
)
return i, err
}
const getPriceConversionsByPriceID = `-- name: GetPriceConversionsByPriceID :many
SELECT id, created_at, updated_at, deleted_at, price_id, currency_code, price, volume_24h, market_cap, last_updated FROM price_conversions
WHERE price_id = ? AND deleted_at IS NULL
ORDER BY currency_code ASC
`
func (q *Queries) GetPriceConversionsByPriceID(ctx context.Context, priceID string) ([]PriceConversion, error) {
rows, err := q.db.QueryContext(ctx, getPriceConversionsByPriceID, priceID)
if err != nil {
return nil, err
}
defer rows.Close()
var items []PriceConversion
for rows.Next() {
var i PriceConversion
if err := rows.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.PriceID,
&i.CurrencyCode,
&i.Price,
&i.Volume24h,
&i.MarketCap,
&i.LastUpdated,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const insertAsset = `-- name: InsertAsset :one
INSERT INTO assets (
name,
symbol,
decimals,
chain_id,
channel,
asset_type,
coingecko_id
) VALUES (?, ?, ?, ?, ?, ?, ?)
RETURNING id, created_at, updated_at, deleted_at, name, symbol, decimals, chain_id, channel, asset_type, coingecko_id
`
type InsertAssetParams struct {
Name string `json:"name"`
Symbol string `json:"symbol"`
Decimals int64 `json:"decimals"`
ChainID string `json:"chain_id"`
Channel string `json:"channel"`
AssetType string `json:"asset_type"`
CoingeckoID sql.NullString `json:"coingecko_id"`
}
// ASSET QUERIES
func (q *Queries) InsertAsset(ctx context.Context, arg InsertAssetParams) (Asset, error) {
row := q.db.QueryRowContext(ctx, insertAsset,
arg.Name,
arg.Symbol,
arg.Decimals,
arg.ChainID,
arg.Channel,
arg.AssetType,
arg.CoingeckoID,
)
var i Asset
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.Name,
&i.Symbol,
&i.Decimals,
&i.ChainID,
&i.Channel,
&i.AssetType,
&i.CoingeckoID,
)
return i, err
}
const insertBlockchain = `-- name: InsertBlockchain :one
INSERT INTO blockchains (
id,
chain_name,
chain_id_cosmos,
chain_id_evm,
api_name,
bech_account_prefix,
bech_validator_prefix,
main_asset_symbol,
main_asset_denom,
staking_asset_symbol,
staking_asset_denom,
is_stake_enabled,
chain_image,
main_asset_image,
staking_asset_image,
chain_type,
is_support_mobile_wallet,
is_support_extension_wallet,
is_support_erc20,
description_en,
description_ko,
description_ja,
origin_genesis_time,
account_type,
btc_staking,
cosmos_fee_info,
evm_fee_info,
lcd_endpoint,
grpc_endpoint,
evm_rpc_endpoint,
explorer,
about,
forum
) VALUES (
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?
)
RETURNING id, created_at, updated_at, deleted_at, chain_name, chain_id_cosmos, chain_id_evm, api_name, bech_account_prefix, bech_validator_prefix, main_asset_symbol, main_asset_denom, staking_asset_symbol, staking_asset_denom, is_stake_enabled, chain_image, main_asset_image, staking_asset_image, chain_type, is_support_mobile_wallet, is_support_extension_wallet, is_support_erc20, description_en, description_ko, description_ja, origin_genesis_time, account_type, btc_staking, cosmos_fee_info, evm_fee_info, lcd_endpoint, grpc_endpoint, evm_rpc_endpoint, explorer, about, forum
`
type InsertBlockchainParams struct {
ID string `json:"id"`
ChainName string `json:"chain_name"`
ChainIDCosmos sql.NullString `json:"chain_id_cosmos"`
ChainIDEvm sql.NullString `json:"chain_id_evm"`
ApiName sql.NullString `json:"api_name"`
BechAccountPrefix sql.NullString `json:"bech_account_prefix"`
BechValidatorPrefix sql.NullString `json:"bech_validator_prefix"`
MainAssetSymbol sql.NullString `json:"main_asset_symbol"`
MainAssetDenom sql.NullString `json:"main_asset_denom"`
StakingAssetSymbol sql.NullString `json:"staking_asset_symbol"`
StakingAssetDenom sql.NullString `json:"staking_asset_denom"`
IsStakeEnabled bool `json:"is_stake_enabled"`
ChainImage sql.NullString `json:"chain_image"`
MainAssetImage sql.NullString `json:"main_asset_image"`
StakingAssetImage sql.NullString `json:"staking_asset_image"`
ChainType string `json:"chain_type"`
IsSupportMobileWallet bool `json:"is_support_mobile_wallet"`
IsSupportExtensionWallet bool `json:"is_support_extension_wallet"`
IsSupportErc20 bool `json:"is_support_erc20"`
DescriptionEn sql.NullString `json:"description_en"`
DescriptionKo sql.NullString `json:"description_ko"`
DescriptionJa sql.NullString `json:"description_ja"`
OriginGenesisTime sql.NullTime `json:"origin_genesis_time"`
AccountType string `json:"account_type"`
BtcStaking sql.NullString `json:"btc_staking"`
CosmosFeeInfo sql.NullString `json:"cosmos_fee_info"`
EvmFeeInfo sql.NullString `json:"evm_fee_info"`
LcdEndpoint sql.NullString `json:"lcd_endpoint"`
GrpcEndpoint sql.NullString `json:"grpc_endpoint"`
EvmRpcEndpoint sql.NullString `json:"evm_rpc_endpoint"`
Explorer sql.NullString `json:"explorer"`
About sql.NullString `json:"about"`
Forum sql.NullString `json:"forum"`
}
// BLOCKCHAIN QUERIES
func (q *Queries) InsertBlockchain(ctx context.Context, arg InsertBlockchainParams) (Blockchain, error) {
row := q.db.QueryRowContext(ctx, insertBlockchain,
arg.ID,
arg.ChainName,
arg.ChainIDCosmos,
arg.ChainIDEvm,
arg.ApiName,
arg.BechAccountPrefix,
arg.BechValidatorPrefix,
arg.MainAssetSymbol,
arg.MainAssetDenom,
arg.StakingAssetSymbol,
arg.StakingAssetDenom,
arg.IsStakeEnabled,
arg.ChainImage,
arg.MainAssetImage,
arg.StakingAssetImage,
arg.ChainType,
arg.IsSupportMobileWallet,
arg.IsSupportExtensionWallet,
arg.IsSupportErc20,
arg.DescriptionEn,
arg.DescriptionKo,
arg.DescriptionJa,
arg.OriginGenesisTime,
arg.AccountType,
arg.BtcStaking,
arg.CosmosFeeInfo,
arg.EvmFeeInfo,
arg.LcdEndpoint,
arg.GrpcEndpoint,
arg.EvmRpcEndpoint,
arg.Explorer,
arg.About,
arg.Forum,
)
var i Blockchain
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ChainName,
&i.ChainIDCosmos,
&i.ChainIDEvm,
&i.ApiName,
&i.BechAccountPrefix,
&i.BechValidatorPrefix,
&i.MainAssetSymbol,
&i.MainAssetDenom,
&i.StakingAssetSymbol,
&i.StakingAssetDenom,
&i.IsStakeEnabled,
&i.ChainImage,
&i.MainAssetImage,
&i.StakingAssetImage,
&i.ChainType,
&i.IsSupportMobileWallet,
&i.IsSupportExtensionWallet,
&i.IsSupportErc20,
&i.DescriptionEn,
&i.DescriptionKo,
&i.DescriptionJa,
&i.OriginGenesisTime,
&i.AccountType,
&i.BtcStaking,
&i.CosmosFeeInfo,
&i.EvmFeeInfo,
&i.LcdEndpoint,
&i.GrpcEndpoint,
&i.EvmRpcEndpoint,
&i.Explorer,
&i.About,
&i.Forum,
)
return i, err
}
const insertCryptoListing = `-- name: InsertCryptoListing :one
INSERT INTO crypto_listings (
api_id,
name,
symbol,
website_slug
) VALUES (?, ?, ?, ?)
RETURNING id, created_at, updated_at, deleted_at, api_id, name, symbol, website_slug
`
type InsertCryptoListingParams struct {
ApiID string `json:"api_id"`
Name string `json:"name"`
Symbol string `json:"symbol"`
WebsiteSlug string `json:"website_slug"`
}
// CRYPTO LISTINGS QUERIES (NEW)
func (q *Queries) InsertCryptoListing(ctx context.Context, arg InsertCryptoListingParams) (CryptoListing, error) {
row := q.db.QueryRowContext(ctx, insertCryptoListing,
arg.ApiID,
arg.Name,
arg.Symbol,
arg.WebsiteSlug,
)
var i CryptoListing
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ApiID,
&i.Name,
&i.Symbol,
&i.WebsiteSlug,
)
return i, err
}
const insertFearGreedIndex = `-- name: InsertFearGreedIndex :one
INSERT INTO fear_greed_index (
value,
value_classification,
timestamp,
time_until_update
) VALUES (?, ?, ?, ?)
RETURNING id, created_at, updated_at, deleted_at, value, value_classification, timestamp, time_until_update
`
type InsertFearGreedIndexParams struct {
Value int64 `json:"value"`
ValueClassification string `json:"value_classification"`
Timestamp time.Time `json:"timestamp"`
TimeUntilUpdate sql.NullString `json:"time_until_update"`
}
// FEAR AND GREED INDEX QUERIES (NEW)
func (q *Queries) InsertFearGreedIndex(ctx context.Context, arg InsertFearGreedIndexParams) (FearGreedIndex, error) {
row := q.db.QueryRowContext(ctx, insertFearGreedIndex,
arg.Value,
arg.ValueClassification,
arg.Timestamp,
arg.TimeUntilUpdate,
)
var i FearGreedIndex
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.Value,
&i.ValueClassification,
&i.Timestamp,
&i.TimeUntilUpdate,
)
return i, err
}
const insertGlobalMarket = `-- name: InsertGlobalMarket :one
INSERT INTO global_market (
total_market_cap_usd,
total_24h_volume_usd,
bitcoin_percentage_of_market_cap,
active_currencies,
active_assets,
active_markets,
last_updated
) VALUES (?, ?, ?, ?, ?, ?, ?)
RETURNING id, created_at, updated_at, deleted_at, total_market_cap_usd, total_24h_volume_usd, bitcoin_percentage_of_market_cap, active_currencies, active_assets, active_markets, last_updated
`
type InsertGlobalMarketParams struct {
TotalMarketCapUsd sql.NullFloat64 `json:"total_market_cap_usd"`
Total24hVolumeUsd sql.NullFloat64 `json:"total_24h_volume_usd"`
BitcoinPercentageOfMarketCap sql.NullFloat64 `json:"bitcoin_percentage_of_market_cap"`
ActiveCurrencies sql.NullInt64 `json:"active_currencies"`
ActiveAssets sql.NullInt64 `json:"active_assets"`
ActiveMarkets sql.NullInt64 `json:"active_markets"`
LastUpdated time.Time `json:"last_updated"`
}
// GLOBAL MARKET QUERIES (NEW)
func (q *Queries) InsertGlobalMarket(ctx context.Context, arg InsertGlobalMarketParams) (GlobalMarket, error) {
row := q.db.QueryRowContext(ctx, insertGlobalMarket,
arg.TotalMarketCapUsd,
arg.Total24hVolumeUsd,
arg.BitcoinPercentageOfMarketCap,
arg.ActiveCurrencies,
arg.ActiveAssets,
arg.ActiveMarkets,
arg.LastUpdated,
)
var i GlobalMarket
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.TotalMarketCapUsd,
&i.Total24hVolumeUsd,
&i.BitcoinPercentageOfMarketCap,
&i.ActiveCurrencies,
&i.ActiveAssets,
&i.ActiveMarkets,
&i.LastUpdated,
)
return i, err
}
const insertPrice = `-- name: InsertPrice :one
INSERT INTO prices (
asset_id,
price_usd,
price_btc,
volume_24h_usd,
market_cap_usd,
available_supply,
total_supply,
max_supply,
percent_change_1h,
percent_change_24h,
percent_change_7d,
rank,
last_updated
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
RETURNING id, created_at, updated_at, deleted_at, asset_id, price_usd, price_btc, volume_24h_usd, market_cap_usd, available_supply, total_supply, max_supply, percent_change_1h, percent_change_24h, percent_change_7d, rank, last_updated
`
type InsertPriceParams struct {
AssetID string `json:"asset_id"`
PriceUsd sql.NullFloat64 `json:"price_usd"`
PriceBtc sql.NullFloat64 `json:"price_btc"`
Volume24hUsd sql.NullFloat64 `json:"volume_24h_usd"`
MarketCapUsd sql.NullFloat64 `json:"market_cap_usd"`
AvailableSupply sql.NullFloat64 `json:"available_supply"`
TotalSupply sql.NullFloat64 `json:"total_supply"`
MaxSupply sql.NullFloat64 `json:"max_supply"`
PercentChange1h sql.NullFloat64 `json:"percent_change_1h"`
PercentChange24h sql.NullFloat64 `json:"percent_change_24h"`
PercentChange7d sql.NullFloat64 `json:"percent_change_7d"`
Rank sql.NullInt64 `json:"rank"`
LastUpdated time.Time `json:"last_updated"`
}
// PRICE QUERIES (UPDATED)
func (q *Queries) InsertPrice(ctx context.Context, arg InsertPriceParams) (Price, error) {
row := q.db.QueryRowContext(ctx, insertPrice,
arg.AssetID,
arg.PriceUsd,
arg.PriceBtc,
arg.Volume24hUsd,
arg.MarketCapUsd,
arg.AvailableSupply,
arg.TotalSupply,
arg.MaxSupply,
arg.PercentChange1h,
arg.PercentChange24h,
arg.PercentChange7d,
arg.Rank,
arg.LastUpdated,
)
var i Price
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.AssetID,
&i.PriceUsd,
&i.PriceBtc,
&i.Volume24hUsd,
&i.MarketCapUsd,
&i.AvailableSupply,
&i.TotalSupply,
&i.MaxSupply,
&i.PercentChange1h,
&i.PercentChange24h,
&i.PercentChange7d,
&i.Rank,
&i.LastUpdated,
)
return i, err
}
const insertPriceConversion = `-- name: InsertPriceConversion :one
INSERT INTO price_conversions (
price_id,
currency_code,
price,
volume_24h,
market_cap,
last_updated
) VALUES (?, ?, ?, ?, ?, ?)
RETURNING id, created_at, updated_at, deleted_at, price_id, currency_code, price, volume_24h, market_cap, last_updated
`
type InsertPriceConversionParams struct {
PriceID string `json:"price_id"`
CurrencyCode string `json:"currency_code"`
Price sql.NullFloat64 `json:"price"`
Volume24h sql.NullFloat64 `json:"volume_24h"`
MarketCap sql.NullFloat64 `json:"market_cap"`
LastUpdated time.Time `json:"last_updated"`
}
// PRICE CONVERSION QUERIES (NEW)
func (q *Queries) InsertPriceConversion(ctx context.Context, arg InsertPriceConversionParams) (PriceConversion, error) {
row := q.db.QueryRowContext(ctx, insertPriceConversion,
arg.PriceID,
arg.CurrencyCode,
arg.Price,
arg.Volume24h,
arg.MarketCap,
arg.LastUpdated,
)
var i PriceConversion
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.PriceID,
&i.CurrencyCode,
&i.Price,
&i.Volume24h,
&i.MarketCap,
&i.LastUpdated,
)
return i, err
}
const listAllBlockchains = `-- name: ListAllBlockchains :many
SELECT id, created_at, updated_at, deleted_at, chain_name, chain_id_cosmos, chain_id_evm, api_name, bech_account_prefix, bech_validator_prefix, main_asset_symbol, main_asset_denom, staking_asset_symbol, staking_asset_denom, is_stake_enabled, chain_image, main_asset_image, staking_asset_image, chain_type, is_support_mobile_wallet, is_support_extension_wallet, is_support_erc20, description_en, description_ko, description_ja, origin_genesis_time, account_type, btc_staking, cosmos_fee_info, evm_fee_info, lcd_endpoint, grpc_endpoint, evm_rpc_endpoint, explorer, about, forum FROM blockchains
WHERE deleted_at IS NULL
ORDER BY chain_name ASC
`
func (q *Queries) ListAllBlockchains(ctx context.Context) ([]Blockchain, error) {
rows, err := q.db.QueryContext(ctx, listAllBlockchains)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Blockchain
for rows.Next() {
var i Blockchain
if err := rows.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ChainName,
&i.ChainIDCosmos,
&i.ChainIDEvm,
&i.ApiName,
&i.BechAccountPrefix,
&i.BechValidatorPrefix,
&i.MainAssetSymbol,
&i.MainAssetDenom,
&i.StakingAssetSymbol,
&i.StakingAssetDenom,
&i.IsStakeEnabled,
&i.ChainImage,
&i.MainAssetImage,
&i.StakingAssetImage,
&i.ChainType,
&i.IsSupportMobileWallet,
&i.IsSupportExtensionWallet,
&i.IsSupportErc20,
&i.DescriptionEn,
&i.DescriptionKo,
&i.DescriptionJa,
&i.OriginGenesisTime,
&i.AccountType,
&i.BtcStaking,
&i.CosmosFeeInfo,
&i.EvmFeeInfo,
&i.LcdEndpoint,
&i.GrpcEndpoint,
&i.EvmRpcEndpoint,
&i.Explorer,
&i.About,
&i.Forum,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const listAssetsByChain = `-- name: ListAssetsByChain :many
SELECT id, created_at, updated_at, deleted_at, name, symbol, decimals, chain_id, channel, asset_type, coingecko_id FROM assets
WHERE chain_id = ? AND deleted_at IS NULL
ORDER BY symbol ASC
`
func (q *Queries) ListAssetsByChain(ctx context.Context, chainID string) ([]Asset, error) {
rows, err := q.db.QueryContext(ctx, listAssetsByChain, chainID)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Asset
for rows.Next() {
var i Asset
if err := rows.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.Name,
&i.Symbol,
&i.Decimals,
&i.ChainID,
&i.Channel,
&i.AssetType,
&i.CoingeckoID,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const listAssetsWithLatestPrices = `-- name: ListAssetsWithLatestPrices :many
SELECT a.id, a.created_at, a.updated_at, a.deleted_at, a.name, a.symbol, a.decimals, a.chain_id, a.channel, a.asset_type, a.coingecko_id, p.price_usd, p.price_btc, p.volume_24h_usd, p.market_cap_usd,
p.available_supply, p.total_supply, p.max_supply,
p.percent_change_1h, p.percent_change_24h, p.percent_change_7d,
p.rank, p.last_updated
FROM assets a
LEFT JOIN (
SELECT p1.id, p1.created_at, p1.updated_at, p1.deleted_at, p1.asset_id, p1.price_usd, p1.price_btc, p1.volume_24h_usd, p1.market_cap_usd, p1.available_supply, p1.total_supply, p1.max_supply, p1.percent_change_1h, p1.percent_change_24h, p1.percent_change_7d, p1.rank, p1.last_updated
FROM prices p1
INNER JOIN (
SELECT asset_id, MAX(last_updated) as max_date
FROM prices
WHERE deleted_at IS NULL
GROUP BY asset_id
) p2 ON p1.asset_id = p2.asset_id AND p1.last_updated = p2.max_date
WHERE p1.deleted_at IS NULL
) p ON a.id = p.asset_id
WHERE a.deleted_at IS NULL
ORDER BY p.rank ASC, a.symbol ASC
LIMIT ? OFFSET ?
`
type ListAssetsWithLatestPricesParams struct {
Limit int64 `json:"limit"`
Offset int64 `json:"offset"`
}
type ListAssetsWithLatestPricesRow struct {
ID string `json:"id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DeletedAt sql.NullTime `json:"deleted_at"`
Name string `json:"name"`
Symbol string `json:"symbol"`
Decimals int64 `json:"decimals"`
ChainID string `json:"chain_id"`
Channel string `json:"channel"`
AssetType string `json:"asset_type"`
CoingeckoID sql.NullString `json:"coingecko_id"`
PriceUsd sql.NullFloat64 `json:"price_usd"`
PriceBtc sql.NullFloat64 `json:"price_btc"`
Volume24hUsd sql.NullFloat64 `json:"volume_24h_usd"`
MarketCapUsd sql.NullFloat64 `json:"market_cap_usd"`
AvailableSupply sql.NullFloat64 `json:"available_supply"`
TotalSupply sql.NullFloat64 `json:"total_supply"`
MaxSupply sql.NullFloat64 `json:"max_supply"`
PercentChange1h sql.NullFloat64 `json:"percent_change_1h"`
PercentChange24h sql.NullFloat64 `json:"percent_change_24h"`
PercentChange7d sql.NullFloat64 `json:"percent_change_7d"`
Rank sql.NullInt64 `json:"rank"`
LastUpdated time.Time `json:"last_updated"`
}
func (q *Queries) ListAssetsWithLatestPrices(ctx context.Context, arg ListAssetsWithLatestPricesParams) ([]ListAssetsWithLatestPricesRow, error) {
rows, err := q.db.QueryContext(ctx, listAssetsWithLatestPrices, arg.Limit, arg.Offset)
if err != nil {
return nil, err
}
defer rows.Close()
var items []ListAssetsWithLatestPricesRow
for rows.Next() {
var i ListAssetsWithLatestPricesRow
if err := rows.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.Name,
&i.Symbol,
&i.Decimals,
&i.ChainID,
&i.Channel,
&i.AssetType,
&i.CoingeckoID,
&i.PriceUsd,
&i.PriceBtc,
&i.Volume24hUsd,
&i.MarketCapUsd,
&i.AvailableSupply,
&i.TotalSupply,
&i.MaxSupply,
&i.PercentChange1h,
&i.PercentChange24h,
&i.PercentChange7d,
&i.Rank,
&i.LastUpdated,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const listBlockchainsByChainType = `-- name: ListBlockchainsByChainType :many
SELECT id, created_at, updated_at, deleted_at, chain_name, chain_id_cosmos, chain_id_evm, api_name, bech_account_prefix, bech_validator_prefix, main_asset_symbol, main_asset_denom, staking_asset_symbol, staking_asset_denom, is_stake_enabled, chain_image, main_asset_image, staking_asset_image, chain_type, is_support_mobile_wallet, is_support_extension_wallet, is_support_erc20, description_en, description_ko, description_ja, origin_genesis_time, account_type, btc_staking, cosmos_fee_info, evm_fee_info, lcd_endpoint, grpc_endpoint, evm_rpc_endpoint, explorer, about, forum FROM blockchains
WHERE chain_type LIKE '%' || ? || '%' AND deleted_at IS NULL
ORDER BY chain_name ASC
`
func (q *Queries) ListBlockchainsByChainType(ctx context.Context, dollar_1 sql.NullString) ([]Blockchain, error) {
rows, err := q.db.QueryContext(ctx, listBlockchainsByChainType, dollar_1)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Blockchain
for rows.Next() {
var i Blockchain
if err := rows.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ChainName,
&i.ChainIDCosmos,
&i.ChainIDEvm,
&i.ApiName,
&i.BechAccountPrefix,
&i.BechValidatorPrefix,
&i.MainAssetSymbol,
&i.MainAssetDenom,
&i.StakingAssetSymbol,
&i.StakingAssetDenom,
&i.IsStakeEnabled,
&i.ChainImage,
&i.MainAssetImage,
&i.StakingAssetImage,
&i.ChainType,
&i.IsSupportMobileWallet,
&i.IsSupportExtensionWallet,
&i.IsSupportErc20,
&i.DescriptionEn,
&i.DescriptionKo,
&i.DescriptionJa,
&i.OriginGenesisTime,
&i.AccountType,
&i.BtcStaking,
&i.CosmosFeeInfo,
&i.EvmFeeInfo,
&i.LcdEndpoint,
&i.GrpcEndpoint,
&i.EvmRpcEndpoint,
&i.Explorer,
&i.About,
&i.Forum,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const listBlockchainsWithAssetInfo = `-- name: ListBlockchainsWithAssetInfo :many
SELECT b.id, b.created_at, b.updated_at, b.deleted_at, b.chain_name, b.chain_id_cosmos, b.chain_id_evm, b.api_name, b.bech_account_prefix, b.bech_validator_prefix, b.main_asset_symbol, b.main_asset_denom, b.staking_asset_symbol, b.staking_asset_denom, b.is_stake_enabled, b.chain_image, b.main_asset_image, b.staking_asset_image, b.chain_type, b.is_support_mobile_wallet, b.is_support_extension_wallet, b.is_support_erc20, b.description_en, b.description_ko, b.description_ja, b.origin_genesis_time, b.account_type, b.btc_staking, b.cosmos_fee_info, b.evm_fee_info, b.lcd_endpoint, b.grpc_endpoint, b.evm_rpc_endpoint, b.explorer, b.about, b.forum, a.id as asset_id, a.symbol, a.decimals, p.price_usd, p.price_btc
FROM blockchains b
LEFT JOIN assets a ON b.main_asset_symbol = a.symbol
LEFT JOIN (
SELECT p1.id, p1.created_at, p1.updated_at, p1.deleted_at, p1.asset_id, p1.price_usd, p1.price_btc, p1.volume_24h_usd, p1.market_cap_usd, p1.available_supply, p1.total_supply, p1.max_supply, p1.percent_change_1h, p1.percent_change_24h, p1.percent_change_7d, p1.rank, p1.last_updated
FROM prices p1
INNER JOIN (
SELECT asset_id, MAX(last_updated) as max_date
FROM prices
WHERE deleted_at IS NULL
GROUP BY asset_id
) p2 ON p1.asset_id = p2.asset_id AND p1.last_updated = p2.max_date
WHERE p1.deleted_at IS NULL
) p ON a.id = p.asset_id
WHERE b.deleted_at IS NULL
ORDER BY b.chain_name ASC
LIMIT ? OFFSET ?
`
type ListBlockchainsWithAssetInfoParams struct {
Limit int64 `json:"limit"`
Offset int64 `json:"offset"`
}
type ListBlockchainsWithAssetInfoRow struct {
ID string `json:"id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DeletedAt sql.NullTime `json:"deleted_at"`
ChainName string `json:"chain_name"`
ChainIDCosmos sql.NullString `json:"chain_id_cosmos"`
ChainIDEvm sql.NullString `json:"chain_id_evm"`
ApiName sql.NullString `json:"api_name"`
BechAccountPrefix sql.NullString `json:"bech_account_prefix"`
BechValidatorPrefix sql.NullString `json:"bech_validator_prefix"`
MainAssetSymbol sql.NullString `json:"main_asset_symbol"`
MainAssetDenom sql.NullString `json:"main_asset_denom"`
StakingAssetSymbol sql.NullString `json:"staking_asset_symbol"`
StakingAssetDenom sql.NullString `json:"staking_asset_denom"`
IsStakeEnabled bool `json:"is_stake_enabled"`
ChainImage sql.NullString `json:"chain_image"`
MainAssetImage sql.NullString `json:"main_asset_image"`
StakingAssetImage sql.NullString `json:"staking_asset_image"`
ChainType string `json:"chain_type"`
IsSupportMobileWallet bool `json:"is_support_mobile_wallet"`
IsSupportExtensionWallet bool `json:"is_support_extension_wallet"`
IsSupportErc20 bool `json:"is_support_erc20"`
DescriptionEn sql.NullString `json:"description_en"`
DescriptionKo sql.NullString `json:"description_ko"`
DescriptionJa sql.NullString `json:"description_ja"`
OriginGenesisTime sql.NullTime `json:"origin_genesis_time"`
AccountType string `json:"account_type"`
BtcStaking sql.NullString `json:"btc_staking"`
CosmosFeeInfo sql.NullString `json:"cosmos_fee_info"`
EvmFeeInfo sql.NullString `json:"evm_fee_info"`
LcdEndpoint sql.NullString `json:"lcd_endpoint"`
GrpcEndpoint sql.NullString `json:"grpc_endpoint"`
EvmRpcEndpoint sql.NullString `json:"evm_rpc_endpoint"`
Explorer sql.NullString `json:"explorer"`
About sql.NullString `json:"about"`
Forum sql.NullString `json:"forum"`
AssetID sql.NullString `json:"asset_id"`
Symbol sql.NullString `json:"symbol"`
Decimals sql.NullInt64 `json:"decimals"`
PriceUsd sql.NullFloat64 `json:"price_usd"`
PriceBtc sql.NullFloat64 `json:"price_btc"`
}
func (q *Queries) ListBlockchainsWithAssetInfo(ctx context.Context, arg ListBlockchainsWithAssetInfoParams) ([]ListBlockchainsWithAssetInfoRow, error) {
rows, err := q.db.QueryContext(ctx, listBlockchainsWithAssetInfo, arg.Limit, arg.Offset)
if err != nil {
return nil, err
}
defer rows.Close()
var items []ListBlockchainsWithAssetInfoRow
for rows.Next() {
var i ListBlockchainsWithAssetInfoRow
if err := rows.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ChainName,
&i.ChainIDCosmos,
&i.ChainIDEvm,
&i.ApiName,
&i.BechAccountPrefix,
&i.BechValidatorPrefix,
&i.MainAssetSymbol,
&i.MainAssetDenom,
&i.StakingAssetSymbol,
&i.StakingAssetDenom,
&i.IsStakeEnabled,
&i.ChainImage,
&i.MainAssetImage,
&i.StakingAssetImage,
&i.ChainType,
&i.IsSupportMobileWallet,
&i.IsSupportExtensionWallet,
&i.IsSupportErc20,
&i.DescriptionEn,
&i.DescriptionKo,
&i.DescriptionJa,
&i.OriginGenesisTime,
&i.AccountType,
&i.BtcStaking,
&i.CosmosFeeInfo,
&i.EvmFeeInfo,
&i.LcdEndpoint,
&i.GrpcEndpoint,
&i.EvmRpcEndpoint,
&i.Explorer,
&i.About,
&i.Forum,
&i.AssetID,
&i.Symbol,
&i.Decimals,
&i.PriceUsd,
&i.PriceBtc,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const listBlockchainsWithERC20Support = `-- name: ListBlockchainsWithERC20Support :many
SELECT id, created_at, updated_at, deleted_at, chain_name, chain_id_cosmos, chain_id_evm, api_name, bech_account_prefix, bech_validator_prefix, main_asset_symbol, main_asset_denom, staking_asset_symbol, staking_asset_denom, is_stake_enabled, chain_image, main_asset_image, staking_asset_image, chain_type, is_support_mobile_wallet, is_support_extension_wallet, is_support_erc20, description_en, description_ko, description_ja, origin_genesis_time, account_type, btc_staking, cosmos_fee_info, evm_fee_info, lcd_endpoint, grpc_endpoint, evm_rpc_endpoint, explorer, about, forum FROM blockchains
WHERE is_support_erc20 = 1 AND deleted_at IS NULL
ORDER BY chain_name ASC
`
func (q *Queries) ListBlockchainsWithERC20Support(ctx context.Context) ([]Blockchain, error) {
rows, err := q.db.QueryContext(ctx, listBlockchainsWithERC20Support)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Blockchain
for rows.Next() {
var i Blockchain
if err := rows.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ChainName,
&i.ChainIDCosmos,
&i.ChainIDEvm,
&i.ApiName,
&i.BechAccountPrefix,
&i.BechValidatorPrefix,
&i.MainAssetSymbol,
&i.MainAssetDenom,
&i.StakingAssetSymbol,
&i.StakingAssetDenom,
&i.IsStakeEnabled,
&i.ChainImage,
&i.MainAssetImage,
&i.StakingAssetImage,
&i.ChainType,
&i.IsSupportMobileWallet,
&i.IsSupportExtensionWallet,
&i.IsSupportErc20,
&i.DescriptionEn,
&i.DescriptionKo,
&i.DescriptionJa,
&i.OriginGenesisTime,
&i.AccountType,
&i.BtcStaking,
&i.CosmosFeeInfo,
&i.EvmFeeInfo,
&i.LcdEndpoint,
&i.GrpcEndpoint,
&i.EvmRpcEndpoint,
&i.Explorer,
&i.About,
&i.Forum,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const listBlockchainsWithExtensionSupport = `-- name: ListBlockchainsWithExtensionSupport :many
SELECT id, created_at, updated_at, deleted_at, chain_name, chain_id_cosmos, chain_id_evm, api_name, bech_account_prefix, bech_validator_prefix, main_asset_symbol, main_asset_denom, staking_asset_symbol, staking_asset_denom, is_stake_enabled, chain_image, main_asset_image, staking_asset_image, chain_type, is_support_mobile_wallet, is_support_extension_wallet, is_support_erc20, description_en, description_ko, description_ja, origin_genesis_time, account_type, btc_staking, cosmos_fee_info, evm_fee_info, lcd_endpoint, grpc_endpoint, evm_rpc_endpoint, explorer, about, forum FROM blockchains
WHERE is_support_extension_wallet = 1 AND deleted_at IS NULL
ORDER BY chain_name ASC
`
func (q *Queries) ListBlockchainsWithExtensionSupport(ctx context.Context) ([]Blockchain, error) {
rows, err := q.db.QueryContext(ctx, listBlockchainsWithExtensionSupport)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Blockchain
for rows.Next() {
var i Blockchain
if err := rows.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ChainName,
&i.ChainIDCosmos,
&i.ChainIDEvm,
&i.ApiName,
&i.BechAccountPrefix,
&i.BechValidatorPrefix,
&i.MainAssetSymbol,
&i.MainAssetDenom,
&i.StakingAssetSymbol,
&i.StakingAssetDenom,
&i.IsStakeEnabled,
&i.ChainImage,
&i.MainAssetImage,
&i.StakingAssetImage,
&i.ChainType,
&i.IsSupportMobileWallet,
&i.IsSupportExtensionWallet,
&i.IsSupportErc20,
&i.DescriptionEn,
&i.DescriptionKo,
&i.DescriptionJa,
&i.OriginGenesisTime,
&i.AccountType,
&i.BtcStaking,
&i.CosmosFeeInfo,
&i.EvmFeeInfo,
&i.LcdEndpoint,
&i.GrpcEndpoint,
&i.EvmRpcEndpoint,
&i.Explorer,
&i.About,
&i.Forum,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const listBlockchainsWithMobileSupport = `-- name: ListBlockchainsWithMobileSupport :many
SELECT id, created_at, updated_at, deleted_at, chain_name, chain_id_cosmos, chain_id_evm, api_name, bech_account_prefix, bech_validator_prefix, main_asset_symbol, main_asset_denom, staking_asset_symbol, staking_asset_denom, is_stake_enabled, chain_image, main_asset_image, staking_asset_image, chain_type, is_support_mobile_wallet, is_support_extension_wallet, is_support_erc20, description_en, description_ko, description_ja, origin_genesis_time, account_type, btc_staking, cosmos_fee_info, evm_fee_info, lcd_endpoint, grpc_endpoint, evm_rpc_endpoint, explorer, about, forum FROM blockchains
WHERE is_support_mobile_wallet = 1 AND deleted_at IS NULL
ORDER BY chain_name ASC
`
func (q *Queries) ListBlockchainsWithMobileSupport(ctx context.Context) ([]Blockchain, error) {
rows, err := q.db.QueryContext(ctx, listBlockchainsWithMobileSupport)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Blockchain
for rows.Next() {
var i Blockchain
if err := rows.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ChainName,
&i.ChainIDCosmos,
&i.ChainIDEvm,
&i.ApiName,
&i.BechAccountPrefix,
&i.BechValidatorPrefix,
&i.MainAssetSymbol,
&i.MainAssetDenom,
&i.StakingAssetSymbol,
&i.StakingAssetDenom,
&i.IsStakeEnabled,
&i.ChainImage,
&i.MainAssetImage,
&i.StakingAssetImage,
&i.ChainType,
&i.IsSupportMobileWallet,
&i.IsSupportExtensionWallet,
&i.IsSupportErc20,
&i.DescriptionEn,
&i.DescriptionKo,
&i.DescriptionJa,
&i.OriginGenesisTime,
&i.AccountType,
&i.BtcStaking,
&i.CosmosFeeInfo,
&i.EvmFeeInfo,
&i.LcdEndpoint,
&i.GrpcEndpoint,
&i.EvmRpcEndpoint,
&i.Explorer,
&i.About,
&i.Forum,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const listBlockchainsWithStaking = `-- name: ListBlockchainsWithStaking :many
SELECT id, created_at, updated_at, deleted_at, chain_name, chain_id_cosmos, chain_id_evm, api_name, bech_account_prefix, bech_validator_prefix, main_asset_symbol, main_asset_denom, staking_asset_symbol, staking_asset_denom, is_stake_enabled, chain_image, main_asset_image, staking_asset_image, chain_type, is_support_mobile_wallet, is_support_extension_wallet, is_support_erc20, description_en, description_ko, description_ja, origin_genesis_time, account_type, btc_staking, cosmos_fee_info, evm_fee_info, lcd_endpoint, grpc_endpoint, evm_rpc_endpoint, explorer, about, forum FROM blockchains
WHERE is_stake_enabled = 1 AND deleted_at IS NULL
ORDER BY chain_name ASC
`
func (q *Queries) ListBlockchainsWithStaking(ctx context.Context) ([]Blockchain, error) {
rows, err := q.db.QueryContext(ctx, listBlockchainsWithStaking)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Blockchain
for rows.Next() {
var i Blockchain
if err := rows.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ChainName,
&i.ChainIDCosmos,
&i.ChainIDEvm,
&i.ApiName,
&i.BechAccountPrefix,
&i.BechValidatorPrefix,
&i.MainAssetSymbol,
&i.MainAssetDenom,
&i.StakingAssetSymbol,
&i.StakingAssetDenom,
&i.IsStakeEnabled,
&i.ChainImage,
&i.MainAssetImage,
&i.StakingAssetImage,
&i.ChainType,
&i.IsSupportMobileWallet,
&i.IsSupportExtensionWallet,
&i.IsSupportErc20,
&i.DescriptionEn,
&i.DescriptionKo,
&i.DescriptionJa,
&i.OriginGenesisTime,
&i.AccountType,
&i.BtcStaking,
&i.CosmosFeeInfo,
&i.EvmFeeInfo,
&i.LcdEndpoint,
&i.GrpcEndpoint,
&i.EvmRpcEndpoint,
&i.Explorer,
&i.About,
&i.Forum,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const listCryptoListings = `-- name: ListCryptoListings :many
SELECT id, created_at, updated_at, deleted_at, api_id, name, symbol, website_slug FROM crypto_listings
WHERE deleted_at IS NULL
ORDER BY name ASC
LIMIT ? OFFSET ?
`
type ListCryptoListingsParams struct {
Limit int64 `json:"limit"`
Offset int64 `json:"offset"`
}
func (q *Queries) ListCryptoListings(ctx context.Context, arg ListCryptoListingsParams) ([]CryptoListing, error) {
rows, err := q.db.QueryContext(ctx, listCryptoListings, arg.Limit, arg.Offset)
if err != nil {
return nil, err
}
defer rows.Close()
var items []CryptoListing
for rows.Next() {
var i CryptoListing
if err := rows.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ApiID,
&i.Name,
&i.Symbol,
&i.WebsiteSlug,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const listFearGreedIndexHistory = `-- name: ListFearGreedIndexHistory :many
SELECT id, created_at, updated_at, deleted_at, value, value_classification, timestamp, time_until_update FROM fear_greed_index
WHERE deleted_at IS NULL
ORDER BY timestamp DESC
LIMIT ? OFFSET ?
`
type ListFearGreedIndexHistoryParams struct {
Limit int64 `json:"limit"`
Offset int64 `json:"offset"`
}
func (q *Queries) ListFearGreedIndexHistory(ctx context.Context, arg ListFearGreedIndexHistoryParams) ([]FearGreedIndex, error) {
rows, err := q.db.QueryContext(ctx, listFearGreedIndexHistory, arg.Limit, arg.Offset)
if err != nil {
return nil, err
}
defer rows.Close()
var items []FearGreedIndex
for rows.Next() {
var i FearGreedIndex
if err := rows.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.Value,
&i.ValueClassification,
&i.Timestamp,
&i.TimeUntilUpdate,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const listGlobalMarketHistory = `-- name: ListGlobalMarketHistory :many
SELECT id, created_at, updated_at, deleted_at, total_market_cap_usd, total_24h_volume_usd, bitcoin_percentage_of_market_cap, active_currencies, active_assets, active_markets, last_updated FROM global_market
WHERE deleted_at IS NULL
ORDER BY last_updated DESC
LIMIT ? OFFSET ?
`
type ListGlobalMarketHistoryParams struct {
Limit int64 `json:"limit"`
Offset int64 `json:"offset"`
}
func (q *Queries) ListGlobalMarketHistory(ctx context.Context, arg ListGlobalMarketHistoryParams) ([]GlobalMarket, error) {
rows, err := q.db.QueryContext(ctx, listGlobalMarketHistory, arg.Limit, arg.Offset)
if err != nil {
return nil, err
}
defer rows.Close()
var items []GlobalMarket
for rows.Next() {
var i GlobalMarket
if err := rows.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.TotalMarketCapUsd,
&i.Total24hVolumeUsd,
&i.BitcoinPercentageOfMarketCap,
&i.ActiveCurrencies,
&i.ActiveAssets,
&i.ActiveMarkets,
&i.LastUpdated,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const listPriceHistoryByAssetID = `-- name: ListPriceHistoryByAssetID :many
SELECT id, created_at, updated_at, deleted_at, asset_id, price_usd, price_btc, volume_24h_usd, market_cap_usd, available_supply, total_supply, max_supply, percent_change_1h, percent_change_24h, percent_change_7d, rank, last_updated FROM prices
WHERE asset_id = ? AND deleted_at IS NULL
ORDER BY last_updated DESC
LIMIT ? OFFSET ?
`
type ListPriceHistoryByAssetIDParams struct {
AssetID string `json:"asset_id"`
Limit int64 `json:"limit"`
Offset int64 `json:"offset"`
}
func (q *Queries) ListPriceHistoryByAssetID(ctx context.Context, arg ListPriceHistoryByAssetIDParams) ([]Price, error) {
rows, err := q.db.QueryContext(ctx, listPriceHistoryByAssetID, arg.AssetID, arg.Limit, arg.Offset)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Price
for rows.Next() {
var i Price
if err := rows.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.AssetID,
&i.PriceUsd,
&i.PriceBtc,
&i.Volume24hUsd,
&i.MarketCapUsd,
&i.AvailableSupply,
&i.TotalSupply,
&i.MaxSupply,
&i.PercentChange1h,
&i.PercentChange24h,
&i.PercentChange7d,
&i.Rank,
&i.LastUpdated,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const searchBlockchains = `-- name: SearchBlockchains :many
SELECT id, created_at, updated_at, deleted_at, chain_name, chain_id_cosmos, chain_id_evm, api_name, bech_account_prefix, bech_validator_prefix, main_asset_symbol, main_asset_denom, staking_asset_symbol, staking_asset_denom, is_stake_enabled, chain_image, main_asset_image, staking_asset_image, chain_type, is_support_mobile_wallet, is_support_extension_wallet, is_support_erc20, description_en, description_ko, description_ja, origin_genesis_time, account_type, btc_staking, cosmos_fee_info, evm_fee_info, lcd_endpoint, grpc_endpoint, evm_rpc_endpoint, explorer, about, forum FROM blockchains
WHERE (
chain_name LIKE '%' || ? || '%' OR
main_asset_symbol LIKE '%' || ? || '%' OR
staking_asset_symbol LIKE '%' || ? || '%' OR
description_en LIKE '%' || ? || '%'
) AND deleted_at IS NULL
ORDER BY chain_name ASC
LIMIT ? OFFSET ?
`
type SearchBlockchainsParams struct {
Column1 sql.NullString `json:"column_1"`
Column2 sql.NullString `json:"column_2"`
Column3 sql.NullString `json:"column_3"`
Column4 sql.NullString `json:"column_4"`
Limit int64 `json:"limit"`
Offset int64 `json:"offset"`
}
func (q *Queries) SearchBlockchains(ctx context.Context, arg SearchBlockchainsParams) ([]Blockchain, error) {
rows, err := q.db.QueryContext(ctx, searchBlockchains,
arg.Column1,
arg.Column2,
arg.Column3,
arg.Column4,
arg.Limit,
arg.Offset,
)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Blockchain
for rows.Next() {
var i Blockchain
if err := rows.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ChainName,
&i.ChainIDCosmos,
&i.ChainIDEvm,
&i.ApiName,
&i.BechAccountPrefix,
&i.BechValidatorPrefix,
&i.MainAssetSymbol,
&i.MainAssetDenom,
&i.StakingAssetSymbol,
&i.StakingAssetDenom,
&i.IsStakeEnabled,
&i.ChainImage,
&i.MainAssetImage,
&i.StakingAssetImage,
&i.ChainType,
&i.IsSupportMobileWallet,
&i.IsSupportExtensionWallet,
&i.IsSupportErc20,
&i.DescriptionEn,
&i.DescriptionKo,
&i.DescriptionJa,
&i.OriginGenesisTime,
&i.AccountType,
&i.BtcStaking,
&i.CosmosFeeInfo,
&i.EvmFeeInfo,
&i.LcdEndpoint,
&i.GrpcEndpoint,
&i.EvmRpcEndpoint,
&i.Explorer,
&i.About,
&i.Forum,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const softDeleteAsset = `-- name: SoftDeleteAsset :exec
UPDATE assets
SET deleted_at = CURRENT_TIMESTAMP
WHERE id = ?
`
func (q *Queries) SoftDeleteAsset(ctx context.Context, id string) error {
_, err := q.db.ExecContext(ctx, softDeleteAsset, id)
return err
}
const softDeleteBlockchain = `-- name: SoftDeleteBlockchain :exec
UPDATE blockchains
SET deleted_at = CURRENT_TIMESTAMP
WHERE id = ?
`
func (q *Queries) SoftDeleteBlockchain(ctx context.Context, id string) error {
_, err := q.db.ExecContext(ctx, softDeleteBlockchain, id)
return err
}
const softDeleteCryptoListing = `-- name: SoftDeleteCryptoListing :exec
UPDATE crypto_listings
SET deleted_at = CURRENT_TIMESTAMP
WHERE id = ?
`
func (q *Queries) SoftDeleteCryptoListing(ctx context.Context, id string) error {
_, err := q.db.ExecContext(ctx, softDeleteCryptoListing, id)
return err
}
const softDeleteFearGreedIndex = `-- name: SoftDeleteFearGreedIndex :exec
UPDATE fear_greed_index
SET deleted_at = CURRENT_TIMESTAMP
WHERE id = ?
`
func (q *Queries) SoftDeleteFearGreedIndex(ctx context.Context, id string) error {
_, err := q.db.ExecContext(ctx, softDeleteFearGreedIndex, id)
return err
}
const softDeleteGlobalMarket = `-- name: SoftDeleteGlobalMarket :exec
UPDATE global_market
SET deleted_at = CURRENT_TIMESTAMP
WHERE id = ?
`
func (q *Queries) SoftDeleteGlobalMarket(ctx context.Context, id string) error {
_, err := q.db.ExecContext(ctx, softDeleteGlobalMarket, id)
return err
}
const softDeletePriceConversion = `-- name: SoftDeletePriceConversion :exec
UPDATE price_conversions
SET deleted_at = CURRENT_TIMESTAMP
WHERE id = ?
`
func (q *Queries) SoftDeletePriceConversion(ctx context.Context, id string) error {
_, err := q.db.ExecContext(ctx, softDeletePriceConversion, id)
return err
}
const updateAsset = `-- name: UpdateAsset :one
UPDATE assets
SET
name = ?,
decimals = ?,
channel = ?,
asset_type = ?,
coingecko_id = ?,
updated_at = CURRENT_TIMESTAMP
WHERE id = ?
AND deleted_at IS NULL
RETURNING id, created_at, updated_at, deleted_at, name, symbol, decimals, chain_id, channel, asset_type, coingecko_id
`
type UpdateAssetParams struct {
Name string `json:"name"`
Decimals int64 `json:"decimals"`
Channel string `json:"channel"`
AssetType string `json:"asset_type"`
CoingeckoID sql.NullString `json:"coingecko_id"`
ID string `json:"id"`
}
func (q *Queries) UpdateAsset(ctx context.Context, arg UpdateAssetParams) (Asset, error) {
row := q.db.QueryRowContext(ctx, updateAsset,
arg.Name,
arg.Decimals,
arg.Channel,
arg.AssetType,
arg.CoingeckoID,
arg.ID,
)
var i Asset
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.Name,
&i.Symbol,
&i.Decimals,
&i.ChainID,
&i.Channel,
&i.AssetType,
&i.CoingeckoID,
)
return i, err
}
const updateBlockchain = `-- name: UpdateBlockchain :one
UPDATE blockchains
SET
chain_name = ?,
chain_id_cosmos = ?,
chain_id_evm = ?,
api_name = ?,
bech_account_prefix = ?,
bech_validator_prefix = ?,
main_asset_symbol = ?,
main_asset_denom = ?,
staking_asset_symbol = ?,
staking_asset_denom = ?,
is_stake_enabled = ?,
chain_image = ?,
main_asset_image = ?,
staking_asset_image = ?,
chain_type = ?,
is_support_mobile_wallet = ?,
is_support_extension_wallet = ?,
is_support_erc20 = ?,
description_en = ?,
description_ko = ?,
description_ja = ?,
origin_genesis_time = ?,
account_type = ?,
btc_staking = ?,
cosmos_fee_info = ?,
evm_fee_info = ?,
lcd_endpoint = ?,
grpc_endpoint = ?,
evm_rpc_endpoint = ?,
explorer = ?,
about = ?,
forum = ?,
updated_at = CURRENT_TIMESTAMP
WHERE id = ?
AND deleted_at IS NULL
RETURNING id, created_at, updated_at, deleted_at, chain_name, chain_id_cosmos, chain_id_evm, api_name, bech_account_prefix, bech_validator_prefix, main_asset_symbol, main_asset_denom, staking_asset_symbol, staking_asset_denom, is_stake_enabled, chain_image, main_asset_image, staking_asset_image, chain_type, is_support_mobile_wallet, is_support_extension_wallet, is_support_erc20, description_en, description_ko, description_ja, origin_genesis_time, account_type, btc_staking, cosmos_fee_info, evm_fee_info, lcd_endpoint, grpc_endpoint, evm_rpc_endpoint, explorer, about, forum
`
type UpdateBlockchainParams struct {
ChainName string `json:"chain_name"`
ChainIDCosmos sql.NullString `json:"chain_id_cosmos"`
ChainIDEvm sql.NullString `json:"chain_id_evm"`
ApiName sql.NullString `json:"api_name"`
BechAccountPrefix sql.NullString `json:"bech_account_prefix"`
BechValidatorPrefix sql.NullString `json:"bech_validator_prefix"`
MainAssetSymbol sql.NullString `json:"main_asset_symbol"`
MainAssetDenom sql.NullString `json:"main_asset_denom"`
StakingAssetSymbol sql.NullString `json:"staking_asset_symbol"`
StakingAssetDenom sql.NullString `json:"staking_asset_denom"`
IsStakeEnabled bool `json:"is_stake_enabled"`
ChainImage sql.NullString `json:"chain_image"`
MainAssetImage sql.NullString `json:"main_asset_image"`
StakingAssetImage sql.NullString `json:"staking_asset_image"`
ChainType string `json:"chain_type"`
IsSupportMobileWallet bool `json:"is_support_mobile_wallet"`
IsSupportExtensionWallet bool `json:"is_support_extension_wallet"`
IsSupportErc20 bool `json:"is_support_erc20"`
DescriptionEn sql.NullString `json:"description_en"`
DescriptionKo sql.NullString `json:"description_ko"`
DescriptionJa sql.NullString `json:"description_ja"`
OriginGenesisTime sql.NullTime `json:"origin_genesis_time"`
AccountType string `json:"account_type"`
BtcStaking sql.NullString `json:"btc_staking"`
CosmosFeeInfo sql.NullString `json:"cosmos_fee_info"`
EvmFeeInfo sql.NullString `json:"evm_fee_info"`
LcdEndpoint sql.NullString `json:"lcd_endpoint"`
GrpcEndpoint sql.NullString `json:"grpc_endpoint"`
EvmRpcEndpoint sql.NullString `json:"evm_rpc_endpoint"`
Explorer sql.NullString `json:"explorer"`
About sql.NullString `json:"about"`
Forum sql.NullString `json:"forum"`
ID string `json:"id"`
}
func (q *Queries) UpdateBlockchain(ctx context.Context, arg UpdateBlockchainParams) (Blockchain, error) {
row := q.db.QueryRowContext(ctx, updateBlockchain,
arg.ChainName,
arg.ChainIDCosmos,
arg.ChainIDEvm,
arg.ApiName,
arg.BechAccountPrefix,
arg.BechValidatorPrefix,
arg.MainAssetSymbol,
arg.MainAssetDenom,
arg.StakingAssetSymbol,
arg.StakingAssetDenom,
arg.IsStakeEnabled,
arg.ChainImage,
arg.MainAssetImage,
arg.StakingAssetImage,
arg.ChainType,
arg.IsSupportMobileWallet,
arg.IsSupportExtensionWallet,
arg.IsSupportErc20,
arg.DescriptionEn,
arg.DescriptionKo,
arg.DescriptionJa,
arg.OriginGenesisTime,
arg.AccountType,
arg.BtcStaking,
arg.CosmosFeeInfo,
arg.EvmFeeInfo,
arg.LcdEndpoint,
arg.GrpcEndpoint,
arg.EvmRpcEndpoint,
arg.Explorer,
arg.About,
arg.Forum,
arg.ID,
)
var i Blockchain
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ChainName,
&i.ChainIDCosmos,
&i.ChainIDEvm,
&i.ApiName,
&i.BechAccountPrefix,
&i.BechValidatorPrefix,
&i.MainAssetSymbol,
&i.MainAssetDenom,
&i.StakingAssetSymbol,
&i.StakingAssetDenom,
&i.IsStakeEnabled,
&i.ChainImage,
&i.MainAssetImage,
&i.StakingAssetImage,
&i.ChainType,
&i.IsSupportMobileWallet,
&i.IsSupportExtensionWallet,
&i.IsSupportErc20,
&i.DescriptionEn,
&i.DescriptionKo,
&i.DescriptionJa,
&i.OriginGenesisTime,
&i.AccountType,
&i.BtcStaking,
&i.CosmosFeeInfo,
&i.EvmFeeInfo,
&i.LcdEndpoint,
&i.GrpcEndpoint,
&i.EvmRpcEndpoint,
&i.Explorer,
&i.About,
&i.Forum,
)
return i, err
}
const updateBlockchainDescriptions = `-- name: UpdateBlockchainDescriptions :one
UPDATE blockchains
SET
description_en = ?,
description_ko = ?,
description_ja = ?,
updated_at = CURRENT_TIMESTAMP
WHERE id = ?
AND deleted_at IS NULL
RETURNING id, created_at, updated_at, deleted_at, chain_name, chain_id_cosmos, chain_id_evm, api_name, bech_account_prefix, bech_validator_prefix, main_asset_symbol, main_asset_denom, staking_asset_symbol, staking_asset_denom, is_stake_enabled, chain_image, main_asset_image, staking_asset_image, chain_type, is_support_mobile_wallet, is_support_extension_wallet, is_support_erc20, description_en, description_ko, description_ja, origin_genesis_time, account_type, btc_staking, cosmos_fee_info, evm_fee_info, lcd_endpoint, grpc_endpoint, evm_rpc_endpoint, explorer, about, forum
`
type UpdateBlockchainDescriptionsParams struct {
DescriptionEn sql.NullString `json:"description_en"`
DescriptionKo sql.NullString `json:"description_ko"`
DescriptionJa sql.NullString `json:"description_ja"`
ID string `json:"id"`
}
func (q *Queries) UpdateBlockchainDescriptions(ctx context.Context, arg UpdateBlockchainDescriptionsParams) (Blockchain, error) {
row := q.db.QueryRowContext(ctx, updateBlockchainDescriptions,
arg.DescriptionEn,
arg.DescriptionKo,
arg.DescriptionJa,
arg.ID,
)
var i Blockchain
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ChainName,
&i.ChainIDCosmos,
&i.ChainIDEvm,
&i.ApiName,
&i.BechAccountPrefix,
&i.BechValidatorPrefix,
&i.MainAssetSymbol,
&i.MainAssetDenom,
&i.StakingAssetSymbol,
&i.StakingAssetDenom,
&i.IsStakeEnabled,
&i.ChainImage,
&i.MainAssetImage,
&i.StakingAssetImage,
&i.ChainType,
&i.IsSupportMobileWallet,
&i.IsSupportExtensionWallet,
&i.IsSupportErc20,
&i.DescriptionEn,
&i.DescriptionKo,
&i.DescriptionJa,
&i.OriginGenesisTime,
&i.AccountType,
&i.BtcStaking,
&i.CosmosFeeInfo,
&i.EvmFeeInfo,
&i.LcdEndpoint,
&i.GrpcEndpoint,
&i.EvmRpcEndpoint,
&i.Explorer,
&i.About,
&i.Forum,
)
return i, err
}
const updateBlockchainEndpoints = `-- name: UpdateBlockchainEndpoints :one
UPDATE blockchains
SET
lcd_endpoint = ?,
grpc_endpoint = ?,
evm_rpc_endpoint = ?,
updated_at = CURRENT_TIMESTAMP
WHERE id = ?
AND deleted_at IS NULL
RETURNING id, created_at, updated_at, deleted_at, chain_name, chain_id_cosmos, chain_id_evm, api_name, bech_account_prefix, bech_validator_prefix, main_asset_symbol, main_asset_denom, staking_asset_symbol, staking_asset_denom, is_stake_enabled, chain_image, main_asset_image, staking_asset_image, chain_type, is_support_mobile_wallet, is_support_extension_wallet, is_support_erc20, description_en, description_ko, description_ja, origin_genesis_time, account_type, btc_staking, cosmos_fee_info, evm_fee_info, lcd_endpoint, grpc_endpoint, evm_rpc_endpoint, explorer, about, forum
`
type UpdateBlockchainEndpointsParams struct {
LcdEndpoint sql.NullString `json:"lcd_endpoint"`
GrpcEndpoint sql.NullString `json:"grpc_endpoint"`
EvmRpcEndpoint sql.NullString `json:"evm_rpc_endpoint"`
ID string `json:"id"`
}
func (q *Queries) UpdateBlockchainEndpoints(ctx context.Context, arg UpdateBlockchainEndpointsParams) (Blockchain, error) {
row := q.db.QueryRowContext(ctx, updateBlockchainEndpoints,
arg.LcdEndpoint,
arg.GrpcEndpoint,
arg.EvmRpcEndpoint,
arg.ID,
)
var i Blockchain
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ChainName,
&i.ChainIDCosmos,
&i.ChainIDEvm,
&i.ApiName,
&i.BechAccountPrefix,
&i.BechValidatorPrefix,
&i.MainAssetSymbol,
&i.MainAssetDenom,
&i.StakingAssetSymbol,
&i.StakingAssetDenom,
&i.IsStakeEnabled,
&i.ChainImage,
&i.MainAssetImage,
&i.StakingAssetImage,
&i.ChainType,
&i.IsSupportMobileWallet,
&i.IsSupportExtensionWallet,
&i.IsSupportErc20,
&i.DescriptionEn,
&i.DescriptionKo,
&i.DescriptionJa,
&i.OriginGenesisTime,
&i.AccountType,
&i.BtcStaking,
&i.CosmosFeeInfo,
&i.EvmFeeInfo,
&i.LcdEndpoint,
&i.GrpcEndpoint,
&i.EvmRpcEndpoint,
&i.Explorer,
&i.About,
&i.Forum,
)
return i, err
}
const updateBlockchainExplorer = `-- name: UpdateBlockchainExplorer :one
UPDATE blockchains
SET
explorer = ?,
updated_at = CURRENT_TIMESTAMP
WHERE id = ?
AND deleted_at IS NULL
RETURNING id, created_at, updated_at, deleted_at, chain_name, chain_id_cosmos, chain_id_evm, api_name, bech_account_prefix, bech_validator_prefix, main_asset_symbol, main_asset_denom, staking_asset_symbol, staking_asset_denom, is_stake_enabled, chain_image, main_asset_image, staking_asset_image, chain_type, is_support_mobile_wallet, is_support_extension_wallet, is_support_erc20, description_en, description_ko, description_ja, origin_genesis_time, account_type, btc_staking, cosmos_fee_info, evm_fee_info, lcd_endpoint, grpc_endpoint, evm_rpc_endpoint, explorer, about, forum
`
type UpdateBlockchainExplorerParams struct {
Explorer sql.NullString `json:"explorer"`
ID string `json:"id"`
}
func (q *Queries) UpdateBlockchainExplorer(ctx context.Context, arg UpdateBlockchainExplorerParams) (Blockchain, error) {
row := q.db.QueryRowContext(ctx, updateBlockchainExplorer, arg.Explorer, arg.ID)
var i Blockchain
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ChainName,
&i.ChainIDCosmos,
&i.ChainIDEvm,
&i.ApiName,
&i.BechAccountPrefix,
&i.BechValidatorPrefix,
&i.MainAssetSymbol,
&i.MainAssetDenom,
&i.StakingAssetSymbol,
&i.StakingAssetDenom,
&i.IsStakeEnabled,
&i.ChainImage,
&i.MainAssetImage,
&i.StakingAssetImage,
&i.ChainType,
&i.IsSupportMobileWallet,
&i.IsSupportExtensionWallet,
&i.IsSupportErc20,
&i.DescriptionEn,
&i.DescriptionKo,
&i.DescriptionJa,
&i.OriginGenesisTime,
&i.AccountType,
&i.BtcStaking,
&i.CosmosFeeInfo,
&i.EvmFeeInfo,
&i.LcdEndpoint,
&i.GrpcEndpoint,
&i.EvmRpcEndpoint,
&i.Explorer,
&i.About,
&i.Forum,
)
return i, err
}
const updateBlockchainFeeInfo = `-- name: UpdateBlockchainFeeInfo :one
UPDATE blockchains
SET
cosmos_fee_info = ?,
evm_fee_info = ?,
updated_at = CURRENT_TIMESTAMP
WHERE id = ?
AND deleted_at IS NULL
RETURNING id, created_at, updated_at, deleted_at, chain_name, chain_id_cosmos, chain_id_evm, api_name, bech_account_prefix, bech_validator_prefix, main_asset_symbol, main_asset_denom, staking_asset_symbol, staking_asset_denom, is_stake_enabled, chain_image, main_asset_image, staking_asset_image, chain_type, is_support_mobile_wallet, is_support_extension_wallet, is_support_erc20, description_en, description_ko, description_ja, origin_genesis_time, account_type, btc_staking, cosmos_fee_info, evm_fee_info, lcd_endpoint, grpc_endpoint, evm_rpc_endpoint, explorer, about, forum
`
type UpdateBlockchainFeeInfoParams struct {
CosmosFeeInfo sql.NullString `json:"cosmos_fee_info"`
EvmFeeInfo sql.NullString `json:"evm_fee_info"`
ID string `json:"id"`
}
func (q *Queries) UpdateBlockchainFeeInfo(ctx context.Context, arg UpdateBlockchainFeeInfoParams) (Blockchain, error) {
row := q.db.QueryRowContext(ctx, updateBlockchainFeeInfo, arg.CosmosFeeInfo, arg.EvmFeeInfo, arg.ID)
var i Blockchain
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ChainName,
&i.ChainIDCosmos,
&i.ChainIDEvm,
&i.ApiName,
&i.BechAccountPrefix,
&i.BechValidatorPrefix,
&i.MainAssetSymbol,
&i.MainAssetDenom,
&i.StakingAssetSymbol,
&i.StakingAssetDenom,
&i.IsStakeEnabled,
&i.ChainImage,
&i.MainAssetImage,
&i.StakingAssetImage,
&i.ChainType,
&i.IsSupportMobileWallet,
&i.IsSupportExtensionWallet,
&i.IsSupportErc20,
&i.DescriptionEn,
&i.DescriptionKo,
&i.DescriptionJa,
&i.OriginGenesisTime,
&i.AccountType,
&i.BtcStaking,
&i.CosmosFeeInfo,
&i.EvmFeeInfo,
&i.LcdEndpoint,
&i.GrpcEndpoint,
&i.EvmRpcEndpoint,
&i.Explorer,
&i.About,
&i.Forum,
)
return i, err
}
const updateBlockchainImages = `-- name: UpdateBlockchainImages :one
UPDATE blockchains
SET
chain_image = ?,
main_asset_image = ?,
staking_asset_image = ?,
updated_at = CURRENT_TIMESTAMP
WHERE id = ?
AND deleted_at IS NULL
RETURNING id, created_at, updated_at, deleted_at, chain_name, chain_id_cosmos, chain_id_evm, api_name, bech_account_prefix, bech_validator_prefix, main_asset_symbol, main_asset_denom, staking_asset_symbol, staking_asset_denom, is_stake_enabled, chain_image, main_asset_image, staking_asset_image, chain_type, is_support_mobile_wallet, is_support_extension_wallet, is_support_erc20, description_en, description_ko, description_ja, origin_genesis_time, account_type, btc_staking, cosmos_fee_info, evm_fee_info, lcd_endpoint, grpc_endpoint, evm_rpc_endpoint, explorer, about, forum
`
type UpdateBlockchainImagesParams struct {
ChainImage sql.NullString `json:"chain_image"`
MainAssetImage sql.NullString `json:"main_asset_image"`
StakingAssetImage sql.NullString `json:"staking_asset_image"`
ID string `json:"id"`
}
func (q *Queries) UpdateBlockchainImages(ctx context.Context, arg UpdateBlockchainImagesParams) (Blockchain, error) {
row := q.db.QueryRowContext(ctx, updateBlockchainImages,
arg.ChainImage,
arg.MainAssetImage,
arg.StakingAssetImage,
arg.ID,
)
var i Blockchain
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ChainName,
&i.ChainIDCosmos,
&i.ChainIDEvm,
&i.ApiName,
&i.BechAccountPrefix,
&i.BechValidatorPrefix,
&i.MainAssetSymbol,
&i.MainAssetDenom,
&i.StakingAssetSymbol,
&i.StakingAssetDenom,
&i.IsStakeEnabled,
&i.ChainImage,
&i.MainAssetImage,
&i.StakingAssetImage,
&i.ChainType,
&i.IsSupportMobileWallet,
&i.IsSupportExtensionWallet,
&i.IsSupportErc20,
&i.DescriptionEn,
&i.DescriptionKo,
&i.DescriptionJa,
&i.OriginGenesisTime,
&i.AccountType,
&i.BtcStaking,
&i.CosmosFeeInfo,
&i.EvmFeeInfo,
&i.LcdEndpoint,
&i.GrpcEndpoint,
&i.EvmRpcEndpoint,
&i.Explorer,
&i.About,
&i.Forum,
)
return i, err
}
const updateBlockchainSocialLinks = `-- name: UpdateBlockchainSocialLinks :one
UPDATE blockchains
SET
about = ?,
forum = ?,
updated_at = CURRENT_TIMESTAMP
WHERE id = ?
AND deleted_at IS NULL
RETURNING id, created_at, updated_at, deleted_at, chain_name, chain_id_cosmos, chain_id_evm, api_name, bech_account_prefix, bech_validator_prefix, main_asset_symbol, main_asset_denom, staking_asset_symbol, staking_asset_denom, is_stake_enabled, chain_image, main_asset_image, staking_asset_image, chain_type, is_support_mobile_wallet, is_support_extension_wallet, is_support_erc20, description_en, description_ko, description_ja, origin_genesis_time, account_type, btc_staking, cosmos_fee_info, evm_fee_info, lcd_endpoint, grpc_endpoint, evm_rpc_endpoint, explorer, about, forum
`
type UpdateBlockchainSocialLinksParams struct {
About sql.NullString `json:"about"`
Forum sql.NullString `json:"forum"`
ID string `json:"id"`
}
func (q *Queries) UpdateBlockchainSocialLinks(ctx context.Context, arg UpdateBlockchainSocialLinksParams) (Blockchain, error) {
row := q.db.QueryRowContext(ctx, updateBlockchainSocialLinks, arg.About, arg.Forum, arg.ID)
var i Blockchain
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ChainName,
&i.ChainIDCosmos,
&i.ChainIDEvm,
&i.ApiName,
&i.BechAccountPrefix,
&i.BechValidatorPrefix,
&i.MainAssetSymbol,
&i.MainAssetDenom,
&i.StakingAssetSymbol,
&i.StakingAssetDenom,
&i.IsStakeEnabled,
&i.ChainImage,
&i.MainAssetImage,
&i.StakingAssetImage,
&i.ChainType,
&i.IsSupportMobileWallet,
&i.IsSupportExtensionWallet,
&i.IsSupportErc20,
&i.DescriptionEn,
&i.DescriptionKo,
&i.DescriptionJa,
&i.OriginGenesisTime,
&i.AccountType,
&i.BtcStaking,
&i.CosmosFeeInfo,
&i.EvmFeeInfo,
&i.LcdEndpoint,
&i.GrpcEndpoint,
&i.EvmRpcEndpoint,
&i.Explorer,
&i.About,
&i.Forum,
)
return i, err
}
const updateCryptoListing = `-- name: UpdateCryptoListing :one
UPDATE crypto_listings
SET
name = ?,
symbol = ?,
website_slug = ?,
updated_at = CURRENT_TIMESTAMP
WHERE id = ?
AND deleted_at IS NULL
RETURNING id, created_at, updated_at, deleted_at, api_id, name, symbol, website_slug
`
type UpdateCryptoListingParams struct {
Name string `json:"name"`
Symbol string `json:"symbol"`
WebsiteSlug string `json:"website_slug"`
ID string `json:"id"`
}
func (q *Queries) UpdateCryptoListing(ctx context.Context, arg UpdateCryptoListingParams) (CryptoListing, error) {
row := q.db.QueryRowContext(ctx, updateCryptoListing,
arg.Name,
arg.Symbol,
arg.WebsiteSlug,
arg.ID,
)
var i CryptoListing
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.ApiID,
&i.Name,
&i.Symbol,
&i.WebsiteSlug,
)
return i, err
}
const updateFearGreedIndex = `-- name: UpdateFearGreedIndex :one
UPDATE fear_greed_index
SET
value = ?,
value_classification = ?,
timestamp = ?,
time_until_update = ?,
updated_at = CURRENT_TIMESTAMP
WHERE id = ?
AND deleted_at IS NULL
RETURNING id, created_at, updated_at, deleted_at, value, value_classification, timestamp, time_until_update
`
type UpdateFearGreedIndexParams struct {
Value int64 `json:"value"`
ValueClassification string `json:"value_classification"`
Timestamp time.Time `json:"timestamp"`
TimeUntilUpdate sql.NullString `json:"time_until_update"`
ID string `json:"id"`
}
func (q *Queries) UpdateFearGreedIndex(ctx context.Context, arg UpdateFearGreedIndexParams) (FearGreedIndex, error) {
row := q.db.QueryRowContext(ctx, updateFearGreedIndex,
arg.Value,
arg.ValueClassification,
arg.Timestamp,
arg.TimeUntilUpdate,
arg.ID,
)
var i FearGreedIndex
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.Value,
&i.ValueClassification,
&i.Timestamp,
&i.TimeUntilUpdate,
)
return i, err
}
const updateGlobalMarket = `-- name: UpdateGlobalMarket :one
UPDATE global_market
SET
total_market_cap_usd = ?,
total_24h_volume_usd = ?,
bitcoin_percentage_of_market_cap = ?,
active_currencies = ?,
active_assets = ?,
active_markets = ?,
last_updated = ?,
updated_at = CURRENT_TIMESTAMP
WHERE id = ?
AND deleted_at IS NULL
RETURNING id, created_at, updated_at, deleted_at, total_market_cap_usd, total_24h_volume_usd, bitcoin_percentage_of_market_cap, active_currencies, active_assets, active_markets, last_updated
`
type UpdateGlobalMarketParams struct {
TotalMarketCapUsd sql.NullFloat64 `json:"total_market_cap_usd"`
Total24hVolumeUsd sql.NullFloat64 `json:"total_24h_volume_usd"`
BitcoinPercentageOfMarketCap sql.NullFloat64 `json:"bitcoin_percentage_of_market_cap"`
ActiveCurrencies sql.NullInt64 `json:"active_currencies"`
ActiveAssets sql.NullInt64 `json:"active_assets"`
ActiveMarkets sql.NullInt64 `json:"active_markets"`
LastUpdated time.Time `json:"last_updated"`
ID string `json:"id"`
}
func (q *Queries) UpdateGlobalMarket(ctx context.Context, arg UpdateGlobalMarketParams) (GlobalMarket, error) {
row := q.db.QueryRowContext(ctx, updateGlobalMarket,
arg.TotalMarketCapUsd,
arg.Total24hVolumeUsd,
arg.BitcoinPercentageOfMarketCap,
arg.ActiveCurrencies,
arg.ActiveAssets,
arg.ActiveMarkets,
arg.LastUpdated,
arg.ID,
)
var i GlobalMarket
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.TotalMarketCapUsd,
&i.Total24hVolumeUsd,
&i.BitcoinPercentageOfMarketCap,
&i.ActiveCurrencies,
&i.ActiveAssets,
&i.ActiveMarkets,
&i.LastUpdated,
)
return i, err
}
const updatePrice = `-- name: UpdatePrice :one
UPDATE prices
SET
price_usd = ?,
price_btc = ?,
volume_24h_usd = ?,
market_cap_usd = ?,
available_supply = ?,
total_supply = ?,
max_supply = ?,
percent_change_1h = ?,
percent_change_24h = ?,
percent_change_7d = ?,
rank = ?,
last_updated = ?,
updated_at = CURRENT_TIMESTAMP
WHERE id = ?
AND deleted_at IS NULL
RETURNING id, created_at, updated_at, deleted_at, asset_id, price_usd, price_btc, volume_24h_usd, market_cap_usd, available_supply, total_supply, max_supply, percent_change_1h, percent_change_24h, percent_change_7d, rank, last_updated
`
type UpdatePriceParams struct {
PriceUsd sql.NullFloat64 `json:"price_usd"`
PriceBtc sql.NullFloat64 `json:"price_btc"`
Volume24hUsd sql.NullFloat64 `json:"volume_24h_usd"`
MarketCapUsd sql.NullFloat64 `json:"market_cap_usd"`
AvailableSupply sql.NullFloat64 `json:"available_supply"`
TotalSupply sql.NullFloat64 `json:"total_supply"`
MaxSupply sql.NullFloat64 `json:"max_supply"`
PercentChange1h sql.NullFloat64 `json:"percent_change_1h"`
PercentChange24h sql.NullFloat64 `json:"percent_change_24h"`
PercentChange7d sql.NullFloat64 `json:"percent_change_7d"`
Rank sql.NullInt64 `json:"rank"`
LastUpdated time.Time `json:"last_updated"`
ID string `json:"id"`
}
func (q *Queries) UpdatePrice(ctx context.Context, arg UpdatePriceParams) (Price, error) {
row := q.db.QueryRowContext(ctx, updatePrice,
arg.PriceUsd,
arg.PriceBtc,
arg.Volume24hUsd,
arg.MarketCapUsd,
arg.AvailableSupply,
arg.TotalSupply,
arg.MaxSupply,
arg.PercentChange1h,
arg.PercentChange24h,
arg.PercentChange7d,
arg.Rank,
arg.LastUpdated,
arg.ID,
)
var i Price
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.AssetID,
&i.PriceUsd,
&i.PriceBtc,
&i.Volume24hUsd,
&i.MarketCapUsd,
&i.AvailableSupply,
&i.TotalSupply,
&i.MaxSupply,
&i.PercentChange1h,
&i.PercentChange24h,
&i.PercentChange7d,
&i.Rank,
&i.LastUpdated,
)
return i, err
}
const updatePriceConversion = `-- name: UpdatePriceConversion :one
UPDATE price_conversions
SET
price = ?,
volume_24h = ?,
market_cap = ?,
last_updated = ?,
updated_at = CURRENT_TIMESTAMP
WHERE id = ?
AND deleted_at IS NULL
RETURNING id, created_at, updated_at, deleted_at, price_id, currency_code, price, volume_24h, market_cap, last_updated
`
type UpdatePriceConversionParams struct {
Price sql.NullFloat64 `json:"price"`
Volume24h sql.NullFloat64 `json:"volume_24h"`
MarketCap sql.NullFloat64 `json:"market_cap"`
LastUpdated time.Time `json:"last_updated"`
ID string `json:"id"`
}
func (q *Queries) UpdatePriceConversion(ctx context.Context, arg UpdatePriceConversionParams) (PriceConversion, error) {
row := q.db.QueryRowContext(ctx, updatePriceConversion,
arg.Price,
arg.Volume24h,
arg.MarketCap,
arg.LastUpdated,
arg.ID,
)
var i PriceConversion
err := row.Scan(
&i.ID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
&i.PriceID,
&i.CurrencyCode,
&i.Price,
&i.Volume24h,
&i.MarketCap,
&i.LastUpdated,
)
return i, err
}