Documentation ¶
Index ¶
- Variables
- func AssetFromContractData(ledgerEntry xdr.LedgerEntry, passphrase string) *xdr.Asset
- func ContractBalanceFromContractData(ledgerEntry xdr.LedgerEntry, passphrase string) ([32]byte, *big.Int, bool)
- func FarmHashAsset(assetCode, assetIssuer, assetType string) int64
- func GetTransactionSet(transactionEntry historyarchive.Ledger) (transactionProcessing []xdr.TransactionEnvelope)
- func PoolIDToString(id xdr.PoolId) string
- func TransactionProcessing(l xdr.LedgerCloseMeta) []xdr.TransactionResultMeta
- type AccountOutput
- type AccountSignerOutput
- type AssetFromContractDataFunc
- type AssetOutput
- type ClaimableBalanceOutput
- type Claimant
- type ConfigSettingOutput
- type ContractBalanceFromContractDataFunc
- type ContractCodeOutput
- type ContractDataOutput
- type DiagnosticEventOutput
- type DimAccount
- type DimMarket
- type DimOffer
- type EffectOutput
- type EffectType
- type FactOfferEvent
- type LedgerOutput
- type LedgerTransactionOutput
- type LiquidityPoolAsset
- type NormalizedOfferOutput
- type OfferOutput
- type OperationOutput
- type Path
- type PoolOutput
- type Price
- type SponsorshipOutput
- type TestTransaction
- type TradeEffectDetails
- type TradeOutput
- type TransactionOutput
- type TransformContractDataStruct
- type TrustlineOutput
- type TtlOutput
Constants ¶
This section is empty.
Variables ¶
var EffectTypeNames = map[EffectType]string{ EffectAccountCreated: "account_created", EffectAccountRemoved: "account_removed", EffectAccountCredited: "account_credited", EffectAccountDebited: "account_debited", EffectAccountThresholdsUpdated: "account_thresholds_updated", EffectAccountHomeDomainUpdated: "account_home_domain_updated", EffectAccountFlagsUpdated: "account_flags_updated", EffectAccountInflationDestinationUpdated: "account_inflation_destination_updated", EffectSignerCreated: "signer_created", EffectSignerRemoved: "signer_removed", EffectSignerUpdated: "signer_updated", EffectTrustlineCreated: "trustline_created", EffectTrustlineRemoved: "trustline_removed", EffectTrustlineUpdated: "trustline_updated", EffectTrustlineFlagsUpdated: "trustline_flags_updated", EffectOfferCreated: "offer_created", EffectOfferRemoved: "offer_removed", EffectOfferUpdated: "offer_updated", EffectTrade: "trade", EffectDataCreated: "data_created", EffectDataRemoved: "data_removed", EffectDataUpdated: "data_updated", EffectSequenceBumped: "sequence_bumped", EffectClaimableBalanceCreated: "claimable_balance_created", EffectClaimableBalanceClaimed: "claimable_balance_claimed", EffectClaimableBalanceClaimantCreated: "claimable_balance_claimant_created", EffectAccountSponsorshipCreated: "account_sponsorship_created", EffectAccountSponsorshipUpdated: "account_sponsorship_updated", EffectAccountSponsorshipRemoved: "account_sponsorship_removed", EffectTrustlineSponsorshipCreated: "trustline_sponsorship_created", EffectTrustlineSponsorshipUpdated: "trustline_sponsorship_updated", EffectTrustlineSponsorshipRemoved: "trustline_sponsorship_removed", EffectDataSponsorshipCreated: "data_sponsorship_created", EffectDataSponsorshipUpdated: "data_sponsorship_updated", EffectDataSponsorshipRemoved: "data_sponsorship_removed", EffectClaimableBalanceSponsorshipCreated: "claimable_balance_sponsorship_created", EffectClaimableBalanceSponsorshipUpdated: "claimable_balance_sponsorship_updated", EffectClaimableBalanceSponsorshipRemoved: "claimable_balance_sponsorship_removed", EffectSignerSponsorshipCreated: "signer_sponsorship_created", EffectSignerSponsorshipUpdated: "signer_sponsorship_updated", EffectSignerSponsorshipRemoved: "signer_sponsorship_removed", EffectClaimableBalanceClawedBack: "claimable_balance_clawed_back", EffectLiquidityPoolDeposited: "liquidity_pool_deposited", EffectLiquidityPoolWithdrew: "liquidity_pool_withdrew", EffectLiquidityPoolTrade: "liquidity_pool_trade", EffectLiquidityPoolCreated: "liquidity_pool_created", EffectLiquidityPoolRemoved: "liquidity_pool_removed", EffectLiquidityPoolRevoked: "liquidity_pool_revoked", EffectContractCredited: "contract_credited", EffectContractDebited: "contract_debited", EffectExtendFootprintTtl: "extend_footprint_ttl", EffectRestoreFootprint: "restore_footprint", }
EffectTypeNames stores a map of effect type ID and names
Functions ¶
func AssetFromContractData ¶
func AssetFromContractData(ledgerEntry xdr.LedgerEntry, passphrase string) *xdr.Asset
AssetFromContractData takes a ledger entry and verifies if the ledger entry corresponds to the asset info entry written to contract storage by the Stellar Asset Contract upon initialization.
Note that AssetFromContractData will ignore forged asset info entries by deriving the Stellar Asset Contract ID from the asset info entry and comparing it to the contract ID found in the ledger entry.
If the given ledger entry is a verified asset info entry, AssetFromContractData will return the corresponding Stellar asset. Otherwise, it returns nil.
References: https://github.com/stellar/rs-soroban-env/blob/v0.0.16/soroban-env-host/src/native_contract/token/public_types.rs#L21 https://github.com/stellar/rs-soroban-env/blob/v0.0.16/soroban-env-host/src/native_contract/token/asset_info.rs#L6 https://github.com/stellar/rs-soroban-env/blob/v0.0.16/soroban-env-host/src/native_contract/token/contract.rs#L115
The asset info in `ContractData` entry takes the following form:
Instance storage - it's part of contract instance data storage
Key: a vector with one element, which is the symbol "AssetInfo"
ScVal{ Vec: ScVec({ ScVal{ Sym: ScSymbol("AssetInfo") }})}
Value: a map with two key-value pairs: code and issuer
ScVal{ Map: ScMap( { ScVal{ Sym: ScSymbol("asset_code") } -> ScVal{ Str: ScString(...) } }, { ScVal{ Sym: ScSymbol("issuer") } -> ScVal{ Bytes: ScBytes(...) } } )}
func ContractBalanceFromContractData ¶
func ContractBalanceFromContractData(ledgerEntry xdr.LedgerEntry, passphrase string) ([32]byte, *big.Int, bool)
ContractBalanceFromContractData takes a ledger entry and verifies that the ledger entry corresponds to the balance entry written to contract storage by the Stellar Asset Contract.
Reference:
https://github.com/stellar/rs-soroban-env/blob/da325551829d31dcbfa71427d51c18e71a121c5f/soroban-env-host/src/native_contract/token/storage_types.rs#L11-L24
func FarmHashAsset ¶
func GetTransactionSet ¶
func GetTransactionSet(transactionEntry historyarchive.Ledger) (transactionProcessing []xdr.TransactionEnvelope)
func PoolIDToString ¶
func TransactionProcessing ¶
func TransactionProcessing(l xdr.LedgerCloseMeta) []xdr.TransactionResultMeta
Types ¶
type AccountOutput ¶
type AccountOutput struct { AccountID string `json:"account_id"` // account address Balance float64 `json:"balance"` BuyingLiabilities float64 `json:"buying_liabilities"` SellingLiabilities float64 `json:"selling_liabilities"` SequenceNumber int64 `json:"sequence_number"` SequenceLedger zero.Int `json:"sequence_ledger"` SequenceTime zero.Int `json:"sequence_time"` NumSubentries uint32 `json:"num_subentries"` InflationDestination string `json:"inflation_destination"` Flags uint32 `json:"flags"` HomeDomain string `json:"home_domain"` MasterWeight int32 `json:"master_weight"` ThresholdLow int32 `json:"threshold_low"` ThresholdMedium int32 `json:"threshold_medium"` ThresholdHigh int32 `json:"threshold_high"` Sponsor null.String `json:"sponsor"` NumSponsored uint32 `json:"num_sponsored"` NumSponsoring uint32 `json:"num_sponsoring"` LastModifiedLedger uint32 `json:"last_modified_ledger"` LedgerEntryChange uint32 `json:"ledger_entry_change"` Deleted bool `json:"deleted"` ClosedAt time.Time `json:"closed_at"` LedgerSequence uint32 `json:"ledger_sequence"` }
AccountOutput is a representation of an account that aligns with the BigQuery table accounts
func TransformAccount ¶
func TransformAccount(ledgerChange ingest.Change, header xdr.LedgerHeaderHistoryEntry) (AccountOutput, error)
TransformAccount converts an account from the history archive ingestion system into a form suitable for BigQuery
type AccountSignerOutput ¶
type AccountSignerOutput struct { AccountID string `json:"account_id"` Signer string `json:"signer"` Weight int32 `json:"weight"` Sponsor null.String `json:"sponsor"` LastModifiedLedger uint32 `json:"last_modified_ledger"` LedgerEntryChange uint32 `json:"ledger_entry_change"` Deleted bool `json:"deleted"` ClosedAt time.Time `json:"closed_at"` LedgerSequence uint32 `json:"ledger_sequence"` }
AccountSignerOutput is a representation of an account signer that aligns with the BigQuery table account_signers
func TransformSigners ¶
func TransformSigners(ledgerChange ingest.Change, header xdr.LedgerHeaderHistoryEntry) ([]AccountSignerOutput, error)
TransformSigners converts account signers from the history archive ingestion system into a form suitable for BigQuery
type AssetFromContractDataFunc ¶
type AssetFromContractDataFunc func(ledgerEntry xdr.LedgerEntry, passphrase string) *xdr.Asset
type AssetOutput ¶
type AssetOutput struct { AssetCode string `json:"asset_code"` AssetIssuer string `json:"asset_issuer"` AssetType string `json:"asset_type"` AssetID uint64 `json:"id"` ID int64 `json:"asset_id"` }
AssetOutput is a representation of an asset that aligns with the BigQuery table history_assets
func TransformAsset ¶
func TransformAsset(operation xdr.Operation, operationIndex int32, transactionIndex int32, ledgerSeq int32) (AssetOutput, error)
TransformAsset converts an asset from a payment operation into a form suitable for BigQuery
type ClaimableBalanceOutput ¶
type ClaimableBalanceOutput struct { BalanceID string `json:"balance_id"` Claimants []Claimant `json:"claimants"` AssetCode string `json:"asset_code"` AssetIssuer string `json:"asset_issuer"` AssetType string `json:"asset_type"` AssetID int64 `json:"asset_id"` AssetAmount float64 `json:"asset_amount"` Sponsor null.String `json:"sponsor"` Flags uint32 `json:"flags"` LastModifiedLedger uint32 `json:"last_modified_ledger"` LedgerEntryChange uint32 `json:"ledger_entry_change"` Deleted bool `json:"deleted"` ClosedAt time.Time `json:"closed_at"` LedgerSequence uint32 `json:"ledger_sequence"` }
ClaimableBalanceOutput is a representation of a claimable balances that aligns with the BigQuery table claimable_balances
func TransformClaimableBalance ¶
func TransformClaimableBalance(ledgerChange ingest.Change, header xdr.LedgerHeaderHistoryEntry) (ClaimableBalanceOutput, error)
TransformClaimableBalance converts a claimable balance from the history archive ingestion system into a form suitable for BigQuery
type Claimant ¶
type Claimant struct { Destination string `json:"destination"` Predicate xdr.ClaimPredicate `json:"predicate"` }
Claimants
type ConfigSettingOutput ¶
type ConfigSettingOutput struct { ConfigSettingId int32 `json:"config_setting_id"` ContractMaxSizeBytes uint32 `json:"contract_max_size_bytes"` LedgerMaxInstructions int64 `json:"ledger_max_instructions"` TxMaxInstructions int64 `json:"tx_max_instructions"` FeeRatePerInstructionsIncrement int64 `json:"fee_rate_per_instructions_increment"` TxMemoryLimit uint32 `json:"tx_memory_limit"` LedgerMaxReadLedgerEntries uint32 `json:"ledger_max_read_ledger_entries"` LedgerMaxReadBytes uint32 `json:"ledger_max_read_bytes"` LedgerMaxWriteLedgerEntries uint32 `json:"ledger_max_write_ledger_entries"` LedgerMaxWriteBytes uint32 `json:"ledger_max_write_bytes"` TxMaxReadLedgerEntries uint32 `json:"tx_max_read_ledger_entries"` TxMaxReadBytes uint32 `json:"tx_max_read_bytes"` TxMaxWriteLedgerEntries uint32 `json:"tx_max_write_ledger_entries"` TxMaxWriteBytes uint32 `json:"tx_max_write_bytes"` FeeReadLedgerEntry int64 `json:"fee_read_ledger_entry"` FeeWriteLedgerEntry int64 `json:"fee_write_ledger_entry"` FeeRead1Kb int64 `json:"fee_read_1kb"` BucketListTargetSizeBytes int64 `json:"bucket_list_target_size_bytes"` WriteFee1KbBucketListLow int64 `json:"write_fee_1kb_bucket_list_low"` WriteFee1KbBucketListHigh int64 `json:"write_fee_1kb_bucket_list_high"` BucketListWriteFeeGrowthFactor uint32 `json:"bucket_list_write_fee_growth_factor"` FeeHistorical1Kb int64 `json:"fee_historical_1kb"` TxMaxContractEventsSizeBytes uint32 `json:"tx_max_contract_events_size_bytes"` FeeContractEvents1Kb int64 `json:"fee_contract_events_1kb"` LedgerMaxTxsSizeBytes uint32 `json:"ledger_max_txs_size_bytes"` TxMaxSizeBytes uint32 `json:"tx_max_size_bytes"` FeeTxSize1Kb int64 `json:"fee_tx_size_1kb"` ContractCostParamsCpuInsns []map[string]string `json:"contract_cost_params_cpu_insns"` ContractCostParamsMemBytes []map[string]string `json:"contract_cost_params_mem_bytes"` ContractDataKeySizeBytes uint32 `json:"contract_data_key_size_bytes"` ContractDataEntrySizeBytes uint32 `json:"contract_data_entry_size_bytes"` MaxEntryTtl uint32 `json:"max_entry_ttl"` MinTemporaryTtl uint32 `json:"min_temporary_ttl"` MinPersistentTtl uint32 `json:"min_persistent_ttl"` AutoBumpLedgers uint32 `json:"auto_bump_ledgers"` PersistentRentRateDenominator int64 `json:"persistent_rent_rate_denominator"` TempRentRateDenominator int64 `json:"temp_rent_rate_denominator"` MaxEntriesToArchive uint32 `json:"max_entries_to_archive"` BucketListSizeWindowSampleSize uint32 `json:"bucket_list_size_window_sample_size"` EvictionScanSize uint64 `json:"eviction_scan_size"` StartingEvictionScanLevel uint32 `json:"starting_eviction_scan_level"` LedgerMaxTxCount uint32 `json:"ledger_max_tx_count"` BucketListSizeWindow []uint64 `json:"bucket_list_size_window"` LastModifiedLedger uint32 `json:"last_modified_ledger"` LedgerEntryChange uint32 `json:"ledger_entry_change"` Deleted bool `json:"deleted"` ClosedAt time.Time `json:"closed_at"` LedgerSequence uint32 `json:"ledger_sequence"` }
ConfigSettingOutput is a representation of soroban config settings that aligns with the Bigquery table config_settings
func TransformConfigSetting ¶
func TransformConfigSetting(ledgerChange ingest.Change, header xdr.LedgerHeaderHistoryEntry) (ConfigSettingOutput, error)
TransformConfigSetting converts an config setting ledger change entry into a form suitable for BigQuery
type ContractCodeOutput ¶
type ContractCodeOutput struct { ContractCodeHash string `json:"contract_code_hash"` ContractCodeExtV int32 `json:"contract_code_ext_v"` LastModifiedLedger uint32 `json:"last_modified_ledger"` LedgerEntryChange uint32 `json:"ledger_entry_change"` Deleted bool `json:"deleted"` ClosedAt time.Time `json:"closed_at"` LedgerSequence uint32 `json:"ledger_sequence"` LedgerKeyHash string `json:"ledger_key_hash"` }
ContractCodeOutput is a representation of contract code that aligns with the Bigquery table soroban_contract_code
func TransformContractCode ¶
func TransformContractCode(ledgerChange ingest.Change, header xdr.LedgerHeaderHistoryEntry) (ContractCodeOutput, error)
TransformContractCode converts a contract code ledger change entry into a form suitable for BigQuery
type ContractDataOutput ¶
type ContractDataOutput struct { ContractId string `json:"contract_id"` ContractKeyType string `json:"contract_key_type"` ContractDurability string `json:"contract_durability"` ContractDataAssetCode string `json:"asset_code"` ContractDataAssetIssuer string `json:"asset_issuer"` ContractDataAssetType string `json:"asset_type"` ContractDataBalanceHolder string `json:"balance_holder"` ContractDataBalance string `json:"balance"` // balance is a string because it is go type big.Int LastModifiedLedger uint32 `json:"last_modified_ledger"` LedgerEntryChange uint32 `json:"ledger_entry_change"` Deleted bool `json:"deleted"` ClosedAt time.Time `json:"closed_at"` LedgerSequence uint32 `json:"ledger_sequence"` LedgerKeyHash string `json:"ledger_key_hash"` }
ContractDataOutput is a representation of contract data that aligns with the Bigquery table soroban_contract_data
type DiagnosticEventOutput ¶
type DiagnosticEventOutput struct { TransactionHash string `json:"transaction_hash"` LedgerSequence uint32 `json:"ledger_sequence"` TransactionID int64 `json:"transaction_id"` ClosedAt time.Time `json:"closed_at"` InSuccessfulContractCall bool `json:"in_successful_contract_call"` ExtV int32 `json:"ext_v"` ContractId string `json:"contract_id"` Type string `json:"type"` BodyV int32 `json:"body_v"` Body string `json:"body"` }
DiagnosticEventOutput is a representation of soroban diagnostic events that currently are not stored in a BQ table
func TransformDiagnosticEvent ¶
func TransformDiagnosticEvent(transaction ingest.LedgerTransaction, lhe xdr.LedgerHeaderHistoryEntry) ([]DiagnosticEventOutput, error, bool)
TransformDiagnosticEvent converts a transaction's diagnostic events from the history archive ingestion system into a form suitable for BigQuery
type DimAccount ¶
DimAccount is a representation of an account that aligns with the BigQuery table dim_accounts
type DimMarket ¶
type DimMarket struct { ID uint64 `json:"market_id"` BaseCode string `json:"base_code"` BaseIssuer string `json:"base_issuer"` CounterCode string `json:"counter_code"` CounterIssuer string `json:"counter_issuer"` }
DimMarket is a representation of an account that aligns with the BigQuery table dim_markets
type DimOffer ¶
type DimOffer struct { HorizonID int64 `json:"horizon_offer_id"` DimOfferID uint64 `json:"dim_offer_id"` MarketID uint64 `json:"market_id"` MakerID uint64 `json:"maker_id"` Action string `json:"action"` BaseAmount float64 `json:"base_amount"` CounterAmount float64 `json:"counter_amount"` Price float64 `json:"price"` }
DimOffer is a representation of an account that aligns with the BigQuery table dim_offers
type EffectOutput ¶
type EffectOutput struct { Address string `json:"address"` AddressMuxed null.String `json:"address_muxed,omitempty"` OperationID int64 `json:"operation_id"` Details map[string]interface{} `json:"details"` Type int32 `json:"type"` TypeString string `json:"type_string"` LedgerClosed time.Time `json:"closed_at"` }
EffectOutput is a representation of an operation that aligns with the BigQuery table history_effects
func TransformEffect ¶
func TransformEffect(transaction ingest.LedgerTransaction, ledgerSeq uint32, ledgerCloseMeta xdr.LedgerCloseMeta, networkPassphrase string) ([]EffectOutput, error)
type EffectType ¶
type EffectType int
EffectType is the numeric type for an effect
const ( EffectAccountCreated EffectType = 0 EffectAccountRemoved EffectType = 1 EffectAccountCredited EffectType = 2 EffectAccountDebited EffectType = 3 EffectAccountThresholdsUpdated EffectType = 4 EffectAccountHomeDomainUpdated EffectType = 5 EffectAccountFlagsUpdated EffectType = 6 EffectAccountInflationDestinationUpdated EffectType = 7 EffectSignerCreated EffectType = 10 EffectSignerRemoved EffectType = 11 EffectSignerUpdated EffectType = 12 EffectTrustlineCreated EffectType = 20 EffectTrustlineRemoved EffectType = 21 EffectTrustlineUpdated EffectType = 22 EffectTrustlineFlagsUpdated EffectType = 26 EffectOfferCreated EffectType = 30 EffectOfferRemoved EffectType = 31 EffectOfferUpdated EffectType = 32 EffectTrade EffectType = 33 EffectDataCreated EffectType = 40 EffectDataRemoved EffectType = 41 EffectDataUpdated EffectType = 42 EffectSequenceBumped EffectType = 43 EffectClaimableBalanceCreated EffectType = 50 EffectClaimableBalanceClaimantCreated EffectType = 51 EffectClaimableBalanceClaimed EffectType = 52 EffectAccountSponsorshipCreated EffectType = 60 EffectAccountSponsorshipUpdated EffectType = 61 EffectAccountSponsorshipRemoved EffectType = 62 EffectTrustlineSponsorshipCreated EffectType = 63 EffectTrustlineSponsorshipUpdated EffectType = 64 EffectTrustlineSponsorshipRemoved EffectType = 65 EffectDataSponsorshipCreated EffectType = 66 EffectDataSponsorshipUpdated EffectType = 67 EffectDataSponsorshipRemoved EffectType = 68 EffectClaimableBalanceSponsorshipCreated EffectType = 69 EffectClaimableBalanceSponsorshipUpdated EffectType = 70 EffectClaimableBalanceSponsorshipRemoved EffectType = 71 EffectSignerSponsorshipCreated EffectType = 72 EffectSignerSponsorshipUpdated EffectType = 73 EffectSignerSponsorshipRemoved EffectType = 74 EffectClaimableBalanceClawedBack EffectType = 80 EffectLiquidityPoolDeposited EffectType = 90 EffectLiquidityPoolWithdrew EffectType = 91 EffectLiquidityPoolTrade EffectType = 92 EffectLiquidityPoolCreated EffectType = 93 EffectLiquidityPoolRemoved EffectType = 94 EffectLiquidityPoolRevoked EffectType = 95 EffectContractCredited EffectType = 96 EffectContractDebited EffectType = 97 EffectExtendFootprintTtl EffectType = 98 EffectRestoreFootprint EffectType = 99 )
type FactOfferEvent ¶
type FactOfferEvent struct { LedgerSeq uint32 `json:"ledger_id"` OfferInstanceID uint64 `json:"offer_instance_id"` }
FactOfferEvent is a representation of an offer event that aligns with the BigQuery table fact_offer_events
type LedgerOutput ¶
type LedgerOutput struct { Sequence uint32 `json:"sequence"` // sequence number of the ledger LedgerHash string `json:"ledger_hash"` PreviousLedgerHash string `json:"previous_ledger_hash"` LedgerHeader string `json:"ledger_header"` // base 64 encoding of the ledger header TransactionCount int32 `json:"transaction_count"` OperationCount int32 `json:"operation_count"` // counts only operations that were a part of successful transactions SuccessfulTransactionCount int32 `json:"successful_transaction_count"` FailedTransactionCount int32 `json:"failed_transaction_count"` TxSetOperationCount string `json:"tx_set_operation_count"` // counts all operations, even those that are part of failed transactions ClosedAt time.Time `json:"closed_at"` // UTC timestamp TotalCoins int64 `json:"total_coins"` FeePool int64 `json:"fee_pool"` BaseFee uint32 `json:"base_fee"` BaseReserve uint32 `json:"base_reserve"` MaxTxSetSize uint32 `json:"max_tx_set_size"` ProtocolVersion uint32 `json:"protocol_version"` LedgerID int64 `json:"id"` }
LedgerOutput is a representation of a ledger that aligns with the BigQuery table history_ledgers
func TransformLedger ¶
func TransformLedger(inputLedger historyarchive.Ledger) (LedgerOutput, error)
TransformLedger converts a ledger from the history archive ingestion system into a form suitable for BigQuery
type LedgerTransactionOutput ¶
type LedgerTransactionOutput struct { LedgerSequence uint32 `json:"ledger_sequence"` TxEnvelope string `json:"tx_envelope"` TxResult string `json:"tx_result"` TxMeta string `json:"tx_meta"` TxFeeMeta string `json:"tx_fee_meta"` TxLedgerHistory string `json:"tx_ledger_history"` ClosedAt time.Time `json:"closed_at"` }
func TransformLedgerTransaction ¶
func TransformLedgerTransaction(transaction ingest.LedgerTransaction, lhe xdr.LedgerHeaderHistoryEntry) (LedgerTransactionOutput, error)
TransformTransaction converts a transaction from the history archive ingestion system into a form suitable for BigQuery
type LiquidityPoolAsset ¶
type LiquidityPoolAsset struct { AssetAType string AssetACode string AssetAIssuer string AssetAAmount float64 AssetBType string AssetBCode string AssetBIssuer string AssetBAmount float64 }
LiquidityPoolAsset represents the asset pairs in a liquidity pool
type NormalizedOfferOutput ¶
type NormalizedOfferOutput struct { Market DimMarket Offer DimOffer Account DimAccount Event FactOfferEvent }
NormalizedOfferOutput ties together the information for dim_markets, dim_offers, dim_accounts, and fact_offer-events
func TransformOfferNormalized ¶
func TransformOfferNormalized(ledgerChange ingest.Change, ledgerSeq uint32) (NormalizedOfferOutput, error)
TransformOfferNormalized converts an offer into a normalized form, allowing it to be stored as part of the historical orderbook dataset
type OfferOutput ¶
type OfferOutput struct { SellerID string `json:"seller_id"` // Account address of the seller OfferID int64 `json:"offer_id"` SellingAssetType string `json:"selling_asset_type"` SellingAssetCode string `json:"selling_asset_code"` SellingAssetIssuer string `json:"selling_asset_issuer"` SellingAssetID int64 `json:"selling_asset_id"` BuyingAssetType string `json:"buying_asset_type"` BuyingAssetCode string `json:"buying_asset_code"` BuyingAssetIssuer string `json:"buying_asset_issuer"` BuyingAssetID int64 `json:"buying_asset_id"` Amount float64 `json:"amount"` PriceN int32 `json:"pricen"` PriceD int32 `json:"priced"` Price float64 `json:"price"` Flags uint32 `json:"flags"` LastModifiedLedger uint32 `json:"last_modified_ledger"` LedgerEntryChange uint32 `json:"ledger_entry_change"` Deleted bool `json:"deleted"` Sponsor null.String `json:"sponsor"` ClosedAt time.Time `json:"closed_at"` LedgerSequence uint32 `json:"ledger_sequence"` }
OfferOutput is a representation of an offer that aligns with the BigQuery table offers
func TransformOffer ¶
func TransformOffer(ledgerChange ingest.Change, header xdr.LedgerHeaderHistoryEntry) (OfferOutput, error)
TransformOffer converts an account from the history archive ingestion system into a form suitable for BigQuery
type OperationOutput ¶
type OperationOutput struct { SourceAccount string `json:"source_account"` SourceAccountMuxed string `json:"source_account_muxed,omitempty"` Type int32 `json:"type"` TypeString string `json:"type_string"` OperationDetails map[string]interface{} `json:"details"` //Details is a JSON object that varies based on operation type TransactionID int64 `json:"transaction_id"` OperationID int64 `json:"id"` ClosedAt time.Time `json:"closed_at"` }
OperationOutput is a representation of an operation that aligns with the BigQuery table history_operations
func TransformOperation ¶
func TransformOperation(operation xdr.Operation, operationIndex int32, transaction ingest.LedgerTransaction, ledgerSeq int32, ledgerCloseMeta xdr.LedgerCloseMeta, network string) (OperationOutput, error)
TransformOperation converts an operation from the history archive ingestion system into a form suitable for BigQuery
type Path ¶
type Path struct { AssetCode string `json:"asset_code"` AssetIssuer string `json:"asset_issuer"` AssetType string `json:"asset_type"` }
Path is a representation of an asset without an ID that forms part of a path in a path payment
type PoolOutput ¶
type PoolOutput struct { PoolID string `json:"liquidity_pool_id"` PoolType string `json:"type"` PoolFee uint32 `json:"fee"` TrustlineCount uint64 `json:"trustline_count"` AssetAType string `json:"asset_a_type"` AssetACode string `json:"asset_a_code"` AssetAIssuer string `json:"asset_a_issuer"` AssetAReserve float64 `json:"asset_a_amount"` AssetAID int64 `json:"asset_a_id"` AssetBType string `json:"asset_b_type"` AssetBCode string `json:"asset_b_code"` AssetBIssuer string `json:"asset_b_issuer"` AssetBReserve float64 `json:"asset_b_amount"` AssetBID int64 `json:"asset_b_id"` LastModifiedLedger uint32 `json:"last_modified_ledger"` LedgerEntryChange uint32 `json:"ledger_entry_change"` Deleted bool `json:"deleted"` ClosedAt time.Time `json:"closed_at"` LedgerSequence uint32 `json:"ledger_sequence"` }
PoolOutput is a representation of a liquidity pool that aligns with the Bigquery table liquidity_pools
func TransformPool ¶
func TransformPool(ledgerChange ingest.Change, header xdr.LedgerHeaderHistoryEntry) (PoolOutput, error)
TransformPool converts an liquidity pool ledger change entry into a form suitable for BigQuery
type SponsorshipOutput ¶
type TestTransaction ¶
type TestTransaction struct { Index uint32 EnvelopeXDR string ResultXDR string FeeChangesXDR string MetaXDR string Hash string }
TestTransaction transaction meta
type TradeEffectDetails ¶
type TradeEffectDetails struct { Seller string `json:"seller"` SellerMuxed string `json:"seller_muxed,omitempty"` SellerMuxedID uint64 `json:"seller_muxed_id,omitempty"` OfferID int64 `json:"offer_id"` SoldAmount string `json:"sold_amount"` SoldAssetType string `json:"sold_asset_type"` SoldAssetCode string `json:"sold_asset_code,omitempty"` SoldAssetIssuer string `json:"sold_asset_issuer,omitempty"` BoughtAmount string `json:"bought_amount"` BoughtAssetType string `json:"bought_asset_type"` BoughtAssetCode string `json:"bought_asset_code,omitempty"` BoughtAssetIssuer string `json:"bought_asset_issuer,omitempty"` }
TradeEffectDetails is a struct of data from `effects.DetailsString` when the effect type is trade
type TradeOutput ¶
type TradeOutput struct { Order int32 `json:"order"` LedgerClosedAt time.Time `json:"ledger_closed_at"` SellingAccountAddress string `json:"selling_account_address"` SellingAssetCode string `json:"selling_asset_code"` SellingAssetIssuer string `json:"selling_asset_issuer"` SellingAssetType string `json:"selling_asset_type"` SellingAssetID int64 `json:"selling_asset_id"` SellingAmount float64 `json:"selling_amount"` BuyingAccountAddress string `json:"buying_account_address"` BuyingAssetCode string `json:"buying_asset_code"` BuyingAssetIssuer string `json:"buying_asset_issuer"` BuyingAssetType string `json:"buying_asset_type"` BuyingAssetID int64 `json:"buying_asset_id"` BuyingAmount float64 `json:"buying_amount"` PriceN int64 `json:"price_n"` PriceD int64 `json:"price_d"` SellingOfferID null.Int `json:"selling_offer_id"` BuyingOfferID null.Int `json:"buying_offer_id"` SellingLiquidityPoolID null.String `json:"selling_liquidity_pool_id"` LiquidityPoolFee null.Int `json:"liquidity_pool_fee"` HistoryOperationID int64 `json:"history_operation_id"` TradeType int32 `json:"trade_type"` RoundingSlippage null.Int `json:"rounding_slippage"` SellerIsExact null.Bool `json:"seller_is_exact"` }
TradeOutput is a representation of a trade that aligns with the BigQuery table history_trades
func TransformTrade ¶
func TransformTrade(operationIndex int32, operationID int64, transaction ingest.LedgerTransaction, ledgerCloseTime time.Time) ([]TradeOutput, error)
TransformTrade converts a relevant operation from the history archive ingestion system into a form suitable for BigQuery
type TransactionOutput ¶
type TransactionOutput struct { TransactionHash string `json:"transaction_hash"` LedgerSequence uint32 `json:"ledger_sequence"` Account string `json:"account"` AccountMuxed string `json:"account_muxed,omitempty"` AccountSequence int64 `json:"account_sequence"` MaxFee uint32 `json:"max_fee"` FeeCharged int64 `json:"fee_charged"` OperationCount int32 `json:"operation_count"` TxEnvelope string `json:"tx_envelope"` TxResult string `json:"tx_result"` TxMeta string `json:"tx_meta"` TxFeeMeta string `json:"tx_fee_meta"` CreatedAt time.Time `json:"created_at"` MemoType string `json:"memo_type"` Memo string `json:"memo"` TimeBounds string `json:"time_bounds"` Successful bool `json:"successful"` TransactionID int64 `json:"id"` FeeAccount string `json:"fee_account,omitempty"` FeeAccountMuxed string `json:"fee_account_muxed,omitempty"` InnerTransactionHash string `json:"inner_transaction_hash,omitempty"` NewMaxFee uint32 `json:"new_max_fee,omitempty"` LedgerBounds string `json:"ledger_bounds"` MinAccountSequence null.Int `json:"min_account_sequence"` MinAccountSequenceAge null.Int `json:"min_account_sequence_age"` MinAccountSequenceLedgerGap null.Int `json:"min_account_sequence_ledger_gap"` ExtraSigners pq.StringArray `json:"extra_signers"` ClosedAt time.Time `json:"closed_at"` ResourceFee int64 `json:"resource_fee"` SorobanResourcesInstructions uint32 `json:"soroban_resources_instructions"` SorobanResourcesReadBytes uint32 `json:"soroban_resources_read_bytes"` SorobanResourcesWriteBytes uint32 `json:"soroban_resources_write_bytes"` }
TransactionOutput is a representation of a transaction that aligns with the BigQuery table history_transactions
func TransformTransaction ¶
func TransformTransaction(transaction ingest.LedgerTransaction, lhe xdr.LedgerHeaderHistoryEntry) (TransactionOutput, error)
TransformTransaction converts a transaction from the history archive ingestion system into a form suitable for BigQuery
type TransformContractDataStruct ¶
type TransformContractDataStruct struct { AssetFromContractData AssetFromContractDataFunc ContractBalanceFromContractData ContractBalanceFromContractDataFunc }
func NewTransformContractDataStruct ¶
func NewTransformContractDataStruct(assetFrom AssetFromContractDataFunc, contractBalance ContractBalanceFromContractDataFunc) *TransformContractDataStruct
func (*TransformContractDataStruct) TransformContractData ¶
func (t *TransformContractDataStruct) TransformContractData(ledgerChange ingest.Change, passphrase string, header xdr.LedgerHeaderHistoryEntry) (ContractDataOutput, error, bool)
TransformContractData converts a contract data ledger change entry into a form suitable for BigQuery
type TrustlineOutput ¶
type TrustlineOutput struct { LedgerKey string `json:"ledger_key"` AccountID string `json:"account_id"` AssetCode string `json:"asset_code"` AssetIssuer string `json:"asset_issuer"` AssetType int32 `json:"asset_type"` AssetID int64 `json:"asset_id"` Balance float64 `json:"balance"` TrustlineLimit int64 `json:"trust_line_limit"` LiquidityPoolID string `json:"liquidity_pool_id"` BuyingLiabilities float64 `json:"buying_liabilities"` SellingLiabilities float64 `json:"selling_liabilities"` Flags uint32 `json:"flags"` LastModifiedLedger uint32 `json:"last_modified_ledger"` LedgerEntryChange uint32 `json:"ledger_entry_change"` Sponsor null.String `json:"sponsor"` Deleted bool `json:"deleted"` ClosedAt time.Time `json:"closed_at"` LedgerSequence uint32 `json:"ledger_sequence"` }
TrustlineOutput is a representation of a trustline that aligns with the BigQuery table trust_lines
func TransformTrustline ¶
func TransformTrustline(ledgerChange ingest.Change, header xdr.LedgerHeaderHistoryEntry) (TrustlineOutput, error)
TransformTrustline converts a trustline from the history archive ingestion system into a form suitable for BigQuery
type TtlOutput ¶
type TtlOutput struct { KeyHash string `json:"key_hash"` // key_hash is contract_code_hash or contract_id LiveUntilLedgerSeq uint32 `json:"live_until_ledger_seq"` LastModifiedLedger uint32 `json:"last_modified_ledger"` LedgerEntryChange uint32 `json:"ledger_entry_change"` Deleted bool `json:"deleted"` ClosedAt time.Time `json:"closed_at"` LedgerSequence uint32 `json:"ledger_sequence"` }
TtlOutput is a representation of soroban ttl that aligns with the Bigquery table ttls
func TransformTtl ¶
func TransformTtl(ledgerChange ingest.Change, header xdr.LedgerHeaderHistoryEntry) (TtlOutput, error)
TransformTtl converts an ttl ledger change entry into a form suitable for BigQuery