From 1e85b9898ccfbb5155749d549bfcfef73d34f4e9 Mon Sep 17 00:00:00 2001 From: Jonathan Downing Date: Mon, 21 Oct 2024 17:38:39 -0500 Subject: [PATCH] Fixed UTXO indexer and organized index by address and block height --- common/proto_common.pb.go | 136 +- consensus/blake3pow/consensus.go | 2 +- consensus/consensus.go | 2 +- consensus/progpow/consensus.go | 2 +- core/chain_indexer.go | 242 ++-- core/core.go | 28 +- core/genesis.go | 11 +- core/headerchain.go | 2 +- core/rawdb/accessors_chain.go | 85 +- core/rawdb/db.pb.go | 48 +- core/rawdb/schema.go | 11 +- core/types/proto_block.pb.go | 1245 +++++-------------- core/types/proto_block.proto | 6 +- internal/quaiapi/api.go | 10 +- internal/quaiapi/backend.go | 6 +- internal/quaiapi/quai_api.go | 36 +- p2p/node/peerManager/peerdb/peer_info.pb.go | 48 +- p2p/pb/quai_messages.pb.go | 114 +- quai/api_backend.go | 20 +- 19 files changed, 667 insertions(+), 1387 deletions(-) diff --git a/common/proto_common.pb.go b/common/proto_common.pb.go index 9ffbc5669f..cfb940a644 100644 --- a/common/proto_common.pb.go +++ b/common/proto_common.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v5.28.2 // source: common/proto_common.proto @@ -30,11 +30,9 @@ type ProtoLocation struct { func (x *ProtoLocation) Reset() { *x = ProtoLocation{} - if protoimpl.UnsafeEnabled { - mi := &file_common_proto_common_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_common_proto_common_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoLocation) String() string { @@ -45,7 +43,7 @@ func (*ProtoLocation) ProtoMessage() {} func (x *ProtoLocation) ProtoReflect() protoreflect.Message { mi := &file_common_proto_common_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -77,11 +75,9 @@ type ProtoHash struct { func (x *ProtoHash) Reset() { *x = ProtoHash{} - if protoimpl.UnsafeEnabled { - mi := &file_common_proto_common_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_common_proto_common_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoHash) String() string { @@ -92,7 +88,7 @@ func (*ProtoHash) ProtoMessage() {} func (x *ProtoHash) ProtoReflect() protoreflect.Message { mi := &file_common_proto_common_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -124,11 +120,9 @@ type ProtoHashes struct { func (x *ProtoHashes) Reset() { *x = ProtoHashes{} - if protoimpl.UnsafeEnabled { - mi := &file_common_proto_common_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_common_proto_common_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoHashes) String() string { @@ -139,7 +133,7 @@ func (*ProtoHashes) ProtoMessage() {} func (x *ProtoHashes) ProtoReflect() protoreflect.Message { mi := &file_common_proto_common_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -171,11 +165,9 @@ type ProtoAddress struct { func (x *ProtoAddress) Reset() { *x = ProtoAddress{} - if protoimpl.UnsafeEnabled { - mi := &file_common_proto_common_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_common_proto_common_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoAddress) String() string { @@ -186,7 +178,7 @@ func (*ProtoAddress) ProtoMessage() {} func (x *ProtoAddress) ProtoReflect() protoreflect.Message { mi := &file_common_proto_common_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -218,11 +210,9 @@ type ProtoNumber struct { func (x *ProtoNumber) Reset() { *x = ProtoNumber{} - if protoimpl.UnsafeEnabled { - mi := &file_common_proto_common_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_common_proto_common_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoNumber) String() string { @@ -233,7 +223,7 @@ func (*ProtoNumber) ProtoMessage() {} func (x *ProtoNumber) ProtoReflect() protoreflect.Message { mi := &file_common_proto_common_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -265,11 +255,9 @@ type ProtoLocations struct { func (x *ProtoLocations) Reset() { *x = ProtoLocations{} - if protoimpl.UnsafeEnabled { - mi := &file_common_proto_common_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_common_proto_common_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoLocations) String() string { @@ -280,7 +268,7 @@ func (*ProtoLocations) ProtoMessage() {} func (x *ProtoLocations) ProtoReflect() protoreflect.Message { mi := &file_common_proto_common_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -367,80 +355,6 @@ func file_common_proto_common_proto_init() { if File_common_proto_common_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_common_proto_common_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*ProtoLocation); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_common_proto_common_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*ProtoHash); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_common_proto_common_proto_msgTypes[2].Exporter = func(v any, i int) any { - switch v := v.(*ProtoHashes); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_common_proto_common_proto_msgTypes[3].Exporter = func(v any, i int) any { - switch v := v.(*ProtoAddress); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_common_proto_common_proto_msgTypes[4].Exporter = func(v any, i int) any { - switch v := v.(*ProtoNumber); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_common_proto_common_proto_msgTypes[5].Exporter = func(v any, i int) any { - switch v := v.(*ProtoLocations); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/consensus/blake3pow/consensus.go b/consensus/blake3pow/consensus.go index e77998795e..b33cc81b38 100644 --- a/consensus/blake3pow/consensus.go +++ b/consensus/blake3pow/consensus.go @@ -638,7 +638,7 @@ func (blake3pow *Blake3pow) Finalize(chain consensus.ChainHeaderReader, batch et continue } } - addressOutpointMap := make(map[string]map[string]*types.OutpointAndDenomination) + addressOutpointMap := make(map[[20]byte][]*types.OutpointAndDenomination) core.AddGenesisUtxos(chain.Database(), &utxosCreate, nodeLocation, addressOutpointMap, blake3pow.logger) if chain.Config().IndexAddressUtxos { chain.WriteAddressOutpoints(addressOutpointMap) diff --git a/consensus/consensus.go b/consensus/consensus.go index 5d4e211786..6e111336b5 100644 --- a/consensus/consensus.go +++ b/consensus/consensus.go @@ -105,7 +105,7 @@ type ChainHeaderReader interface { UpdateEtxEligibleSlices(header *types.WorkObject, location common.Location) common.Hash // WriteAddressOutpoints writes the address outpoints to the database - WriteAddressOutpoints(outpointsMap map[string]map[string]*types.OutpointAndDenomination) error + WriteAddressOutpoints(outpointsMap map[[20]byte][]*types.OutpointAndDenomination) error // WorkShareDistance calculates the geodesic distance between the // workshare and the workobject in which that workshare is included. diff --git a/consensus/progpow/consensus.go b/consensus/progpow/consensus.go index dd4bb94c77..8f2627d94c 100644 --- a/consensus/progpow/consensus.go +++ b/consensus/progpow/consensus.go @@ -696,7 +696,7 @@ func (progpow *Progpow) Finalize(chain consensus.ChainHeaderReader, batch ethdb. continue } } - addressOutpointMap := make(map[string]map[string]*types.OutpointAndDenomination) + addressOutpointMap := make(map[[20]byte][]*types.OutpointAndDenomination) core.AddGenesisUtxos(chain.Database(), &utxosCreate, nodeLocation, addressOutpointMap, progpow.logger) if chain.Config().IndexAddressUtxos { chain.WriteAddressOutpoints(addressOutpointMap) diff --git a/core/chain_indexer.go b/core/chain_indexer.go index c8ae40e061..322be41491 100644 --- a/core/chain_indexer.go +++ b/core/chain_indexer.go @@ -263,81 +263,80 @@ func (c *ChainIndexer) indexerLoop(currentHeader *types.WorkObject, qiIndexerCh } time1 := time.Since(start) var validUtxoIndex bool - var addressOutpoints map[string]map[string]*types.OutpointAndDenomination + var addressOutpoints map[[20]byte][]*types.OutpointAndDenomination if c.indexAddressUtxos { validUtxoIndex = true - addressOutpoints = make(map[string]map[string]*types.OutpointAndDenomination) + addressOutpoints = make(map[[20]byte][]*types.OutpointAndDenomination) } time2 := time.Since(start) var time3, time4, time5 time.Duration - if block.ParentHash(nodeCtx) != prevHash { + if block.ParentHash(nodeCtx) != prevHash && rawdb.ReadCanonicalHash(c.chainDb, prevHeader.NumberU64(nodeCtx)) != prevHash { // Reorg to the common ancestor if needed (might not exist in light sync mode, skip reorg then) // TODO: This seems a bit brittle, can we detect this case explicitly? + commonHeader, err := rawdb.FindCommonAncestor(c.chainDb, prevHeader, block, nodeCtx) + if commonHeader == nil || err != nil { + c.logger.WithField("err", err).Error("Failed to index: failed to find common ancestor") + continue + } + // If indexAddressUtxos flag is enabled, update the address utxo map + // TODO: Need to be able to turn on/off indexer and fix corrupted state + if c.indexAddressUtxos { + reorgHeaders := make([]*types.WorkObject, 0) + for prev := prevHeader; prev.Hash() != commonHeader.Hash(); { + + reorgHeaders = append(reorgHeaders, prev) - if rawdb.ReadCanonicalHash(c.chainDb, prevHeader.NumberU64(nodeCtx)) != prevHash { - h, err := rawdb.FindCommonAncestor(c.chainDb, prevHeader, block, nodeCtx) - if h != nil { - - // If indexAddressUtxos flag is enabled, update the address utxo map - // TODO: Need to be able to turn on/off indexer and fix corrupted state - if c.indexAddressUtxos { - reorgHeaders := make([]*types.WorkObject, 0) - for prev := prevHeader; prev.Hash() != h.Hash(); { - prevNumber := rawdb.ReadHeaderNumber(c.chainDb, prev.ParentHash(nodeCtx)) - if prevNumber == nil { - break - } - prev = rawdb.ReadHeader(c.chainDb, *prevNumber, prev.ParentHash(nodeCtx)) - reorgHeaders = append(reorgHeaders, h) - } - - c.logger.Warn("ChainIndexer: Reorging the utxo indexer of len", len(reorgHeaders)) - - time3 = time.Since(start) - - // Reorg out all outpoints of the reorg headers - err := c.reorgUtxoIndexer(reorgHeaders, addressOutpoints, nodeCtx, config) - if err != nil { - c.logger.Error("Failed to reorg utxo indexer", "err", err) - validUtxoIndex = false - } - - time4 = time.Since(start) - - // Add new blocks from current hash back to common ancestor - for curr := block; curr.Hash() != h.Hash(); { - prevNumber := rawdb.ReadHeaderNumber(c.chainDb, curr.ParentHash(nodeCtx)) - if prevNumber == nil { - break - } - curr = rawdb.ReadHeader(c.chainDb, *prevNumber, curr.ParentHash(nodeCtx)) - block := rawdb.ReadWorkObject(c.chainDb, *prevNumber, curr.Hash(), types.BlockObject) - c.addOutpointsToIndexer(addressOutpoints, nodeCtx, config, block) - } + prevNumber := rawdb.ReadHeaderNumber(c.chainDb, prev.ParentHash(nodeCtx)) + if prevNumber == nil { + break } + prev = rawdb.ReadHeader(c.chainDb, *prevNumber, prev.ParentHash(nodeCtx)) + + } + + c.logger.Warn("ChainIndexer: Reorging the utxo indexer of len", len(reorgHeaders)) - time5 = time.Since(start) + time3 = time.Since(start) - c.newHead(h.NumberU64(nodeCtx), true) - } else if err != nil { - c.logger.WithField("err", err).Error("Failed to index: failed to find common ancestor") - continue + // Reorg out all outpoints of the reorg headers + err := c.reorgUtxoIndexer(reorgHeaders, addressOutpoints, nodeCtx, config) + if err != nil { + c.logger.Error("Failed to reorg utxo indexer", "err", err) + validUtxoIndex = false } - } - } - time6 := time.Since(start) + time4 = time.Since(start) - if c.indexAddressUtxos { - c.addOutpointsToIndexer(addressOutpoints, nodeCtx, config, block) - } + // Roll backwards to common header to grab the new canonical chain + rollForwardHeaders := make([]*types.WorkObject, 0) + for curr := block; curr.Hash() != commonHeader.Hash(); { + rollForwardHeaders = append(rollForwardHeaders, curr) + prevNumber := rawdb.ReadHeaderNumber(c.chainDb, block.ParentHash(nodeCtx)) + if prevNumber == nil { + break + } + curr = rawdb.ReadWorkObject(c.chainDb, *prevNumber, block.ParentHash(nodeCtx), types.BlockObject) + } - time7 := time.Since(start) + // Add new blocks from common ancestor to new head + for i := len(rollForwardHeaders) - 1; i >= 0; i-- { + c.addOutpointsToIndexer(addressOutpoints, nodeCtx, config, block) + } + } - c.newHead(block.NumberU64(nodeCtx), false) + time5 = time.Since(start) - time8 := time.Since(start) + c.newHead(block.NumberU64(nodeCtx), true) + } else { + time3 = time.Since(start) + if c.indexAddressUtxos { + c.addOutpointsToIndexer(addressOutpoints, nodeCtx, config, block) + } + time4 = time.Since(start) + c.newHead(block.NumberU64(nodeCtx), false) + time5 = time.Since(start) + } if c.indexAddressUtxos && validUtxoIndex { err := rawdb.WriteAddressOutpoints(c.chainDb, addressOutpoints) @@ -349,7 +348,7 @@ func (c *ChainIndexer) indexerLoop(currentHeader *types.WorkObject, qiIndexerCh time9 := time.Since(start) for key, _ := range addressOutpoints { - addressOutpoints[key] = nil + delete(addressOutpoints, key) } addressOutpoints = nil @@ -363,9 +362,6 @@ func (c *ChainIndexer) indexerLoop(currentHeader *types.WorkObject, qiIndexerCh "time3": common.PrettyDuration(time3), "time4": common.PrettyDuration(time4), "time5": common.PrettyDuration(time5), - "time6": common.PrettyDuration(time6), - "time7": common.PrettyDuration(time7), - "time8": common.PrettyDuration(time8), "time9": common.PrettyDuration(time9), "time10": common.PrettyDuration(time10), }).Info("Times in indexerLoop") @@ -697,7 +693,7 @@ func (c *ChainIndexer) removeSectionHead(section uint64) { } // addOutpointsToIndexer removes the spent outpoints and adds new utxos to the indexer. -func (c *ChainIndexer) addOutpointsToIndexer(addressOutpoints map[string]map[string]*types.OutpointAndDenomination, nodeCtx int, config params.ChainConfig, block *types.WorkObject) { +func (c *ChainIndexer) addOutpointsToIndexer(addressOutpointsWithBlockHeight map[[20]byte][]*types.OutpointAndDenomination, nodeCtx int, config params.ChainConfig, block *types.WorkObject) { utxos := block.QiTransactions() // TODO: Need to add the coinbase outputs into the Indexer for _, tx := range utxos { @@ -705,36 +701,55 @@ func (c *ChainIndexer) addOutpointsToIndexer(addressOutpoints map[string]map[str outpoint := in.PreviousOutPoint - address := crypto.PubkeyBytesToAddress(in.PubKey, config.Location).Hex() - outpointsForAddress, exists := addressOutpoints[address] + address20 := crypto.PubkeyBytesToAddress(in.PubKey, config.Location).Bytes20() + height := rawdb.ReadUtxoToBlockHeight(c.chainDb, outpoint.TxHash, outpoint.Index) + binary.BigEndian.PutUint32(address20[16:], height) + if height > uint32(block.Number(nodeCtx).Uint64()) { + c.logger.Warn("Utxo is spent in a future block", "utxo", outpoint, "block", block.Number(nodeCtx)) + continue + } + outpointsForAddress, exists := addressOutpointsWithBlockHeight[address20] if !exists { - outpointsForAddress = rawdb.ReadOutpointsForAddress(c.chainDb, address) - addressOutpoints[address] = outpointsForAddress + var err error + outpointsForAddress, err = rawdb.ReadOutpointsForAddressAtBlock(c.chainDb, address20) + if err != nil { + c.logger.Error("Failed to read outpoints for address", "address", address20, "err", err) + continue + } + addressOutpointsWithBlockHeight[address20] = outpointsForAddress } - delete(outpointsForAddress, outpoint.Key()) + for i, outpointAndDenom := range addressOutpointsWithBlockHeight[address20] { + if outpointAndDenom.TxHash == outpoint.TxHash && outpointAndDenom.Index == outpoint.Index { + addressOutpointsWithBlockHeight[address20] = append(addressOutpointsWithBlockHeight[address20][:i], addressOutpointsWithBlockHeight[address20][i+1:]...) + break + } + } } for i, out := range tx.TxOut() { - addrBytes := out.Address outpoint := types.OutPoint{ TxHash: tx.Hash(), Index: uint16(i), } - - address := common.BytesToAddress(addrBytes, config.Location).Hex() - + address20 := [20]byte(out.Address) + binary.BigEndian.PutUint32(address20[16:], uint32(block.NumberU64(nodeCtx))) outpointAndDenom := &types.OutpointAndDenomination{ TxHash: outpoint.TxHash, Index: outpoint.Index, Denomination: out.Denomination, } - - if _, exists := addressOutpoints[address]; !exists { - addressOutpoints[address] = rawdb.ReadOutpointsForAddress(c.chainDb, address) + if _, exists := addressOutpointsWithBlockHeight[address20]; !exists { + var err error + addressOutpointsWithBlockHeight[address20], err = rawdb.ReadOutpointsForAddressAtBlock(c.chainDb, address20) + if err != nil { + c.logger.Error("Failed to read outpoints for address", "address", address20, "err", err) + continue + } } - addressOutpoints[address][outpointAndDenom.Key()] = outpointAndDenom + addressOutpointsWithBlockHeight[address20] = append(addressOutpointsWithBlockHeight[address20], outpointAndDenom) + rawdb.WriteUtxoToBlockHeight(c.chainDb, outpointAndDenom.TxHash, outpointAndDenom.Index, uint32(block.NumberU64(nodeCtx))) } } @@ -744,8 +759,8 @@ func (c *ChainIndexer) addOutpointsToIndexer(addressOutpoints map[string]map[str lockup := new(big.Int).SetUint64(params.LockupByteToBlockDepth[lockupByte]) lockup.Add(lockup, block.Number(nodeCtx)) - coinbaseAddr := tx.To().Hex() - + coinbaseAddr := tx.To().Bytes20() + binary.BigEndian.PutUint32(coinbaseAddr[16:], uint32(block.NumberU64(nodeCtx))) value := params.CalculateCoinbaseValueWithLockup(tx.Value(), lockupByte) denominations := misc.FindMinDenominations(value) outputIndex := uint16(0) @@ -767,17 +782,25 @@ func (c *ChainIndexer) addOutpointsToIndexer(addressOutpoints map[string]map[str Denomination: uint8(denomination), Lock: lockup, } - if _, exists := addressOutpoints[coinbaseAddr]; !exists { - addressOutpoints[coinbaseAddr] = rawdb.ReadOutpointsForAddress(c.chainDb, coinbaseAddr) + + if _, exists := addressOutpointsWithBlockHeight[coinbaseAddr]; !exists { + var err error + addressOutpointsWithBlockHeight[coinbaseAddr], err = rawdb.ReadOutpointsForAddressAtBlock(c.chainDb, coinbaseAddr) + if err != nil { + c.logger.Error("Failed to read outpoints for address", "address", coinbaseAddr, "err", err) + continue + } } - addressOutpoints[coinbaseAddr][outpointAndDenom.Key()] = outpointAndDenom + addressOutpointsWithBlockHeight[coinbaseAddr] = append(addressOutpointsWithBlockHeight[coinbaseAddr], outpointAndDenom) + rawdb.WriteUtxoToBlockHeight(c.chainDb, outpointAndDenom.TxHash, outpointAndDenom.Index, uint32(block.NumberU64(nodeCtx))) outputIndex++ } } } else if tx.EtxType() == types.ConversionType && tx.To().IsInQiLedgerScope() { lock := new(big.Int).Add(block.Number(nodeCtx), new(big.Int).SetUint64(params.ConversionLockPeriod)) value := tx.Value() - addr := tx.To().Hex() + addr20 := tx.To().Bytes20() + binary.BigEndian.PutUint32(addr20[16:], uint32(block.NumberU64(nodeCtx))) txGas := tx.Gas() if txGas < params.TxGas { continue @@ -805,10 +828,16 @@ func (c *ChainIndexer) addOutpointsToIndexer(addressOutpoints map[string]map[str Denomination: uint8(denomination), Lock: lock, } - if _, exists := addressOutpoints[addr]; !exists { - addressOutpoints[addr] = rawdb.ReadOutpointsForAddress(c.chainDb, addr) + if _, exists := addressOutpointsWithBlockHeight[addr20]; !exists { + var err error + addressOutpointsWithBlockHeight[addr20], err = rawdb.ReadOutpointsForAddressAtBlock(c.chainDb, addr20) + if err != nil { + c.logger.Error("Failed to read outpoints for address", "address", addr20, "err", err) + continue + } } - addressOutpoints[addr][outpointAndDenom.Key()] = outpointAndDenom + addressOutpointsWithBlockHeight[addr20] = append(addressOutpointsWithBlockHeight[addr20], outpointAndDenom) + rawdb.WriteUtxoToBlockHeight(c.chainDb, outpointAndDenom.TxHash, outpointAndDenom.Index, uint32(block.NumberU64(nodeCtx))) outputIndex++ } } @@ -818,7 +847,7 @@ func (c *ChainIndexer) addOutpointsToIndexer(addressOutpoints map[string]map[str // reorgUtxoIndexer adds back previously removed outpoints and removes newly added outpoints. // This is done in reverse order from the old header to the common ancestor. -func (c *ChainIndexer) reorgUtxoIndexer(headers []*types.WorkObject, addressOutpoints map[string]map[string]*types.OutpointAndDenomination, nodeCtx int, config params.ChainConfig) error { +func (c *ChainIndexer) reorgUtxoIndexer(headers []*types.WorkObject, addressOutpoints map[[20]byte][]*types.OutpointAndDenomination, nodeCtx int, config params.ChainConfig) error { for _, header := range headers { sutxos, err := rawdb.ReadSpentUTXOs(c.chainDb, header.Hash()) @@ -832,20 +861,24 @@ func (c *ChainIndexer) reorgUtxoIndexer(headers []*types.WorkObject, addressOutp sutxos = append(sutxos, trimmedUtxos...) for _, sutxo := range sutxos { - addrBytes := sutxo.Address - address := common.BytesToAddress(addrBytes, config.Location).Hex() - outpointAndDenom := &types.OutpointAndDenomination{ TxHash: sutxo.TxHash, Index: sutxo.Index, Denomination: sutxo.Denomination, Lock: sutxo.Lock, } - - if _, exists := addressOutpoints[address]; !exists { - addressOutpoints[address] = rawdb.ReadOutpointsForAddress(c.chainDb, address) + height := rawdb.ReadUtxoToBlockHeight(c.chainDb, sutxo.TxHash, sutxo.Index) + addr20 := [20]byte(sutxo.Address) + binary.BigEndian.PutUint32(addr20[16:], height) + if _, exists := addressOutpoints[addr20]; !exists { + var err error + addressOutpoints[addr20], err = rawdb.ReadOutpointsForAddressAtBlock(c.chainDb, addr20) + if err != nil { + return err + } } - addressOutpoints[address][outpointAndDenom.Key()] = outpointAndDenom + addressOutpoints[addr20] = append(addressOutpoints[addr20], outpointAndDenom) + rawdb.WriteUtxoToBlockHeight(c.chainDb, sutxo.TxHash, sutxo.Index, height) } utxoKeys, err := rawdb.ReadCreatedUTXOKeys(c.chainDb, header.Hash()) @@ -865,15 +898,28 @@ func (c *ChainIndexer) reorgUtxoIndexer(headers []*types.WorkObject, addressOutp if err := utxo.ProtoDecode(utxoProto); err != nil { continue } - address := common.BytesToAddress(utxo.Address, config.Location).Hex() + addr20 := [20]byte(utxo.Address) + binary.BigEndian.PutUint32(addr20[16:], uint32(header.NumberU64(nodeCtx))) - outpointsForAddress, exists := addressOutpoints[address] + outpointsForAddress, exists := addressOutpoints[addr20] if !exists { - outpointsForAddress = rawdb.ReadOutpointsForAddress(c.chainDb, address) - addressOutpoints[address] = outpointsForAddress + var err error + outpointsForAddress, err = rawdb.ReadOutpointsForAddressAtBlock(c.chainDb, addr20) + if err != nil { + return err + } + addressOutpoints[addr20] = outpointsForAddress + } + txHash, index, err := rawdb.ReverseUtxoKey(key) + if err != nil { + return err + } + for i, outpointAndDenom := range addressOutpoints[addr20] { + if outpointAndDenom.TxHash == txHash && outpointAndDenom.Index == index { + addressOutpoints[addr20] = append(addressOutpoints[addr20][:i], addressOutpoints[addr20][i+1:]...) + break + } } - keyWithoutPrefix := key[len(rawdb.UtxoPrefix):] - delete(outpointsForAddress, common.Bytes2Hex(keyWithoutPrefix)) } } diff --git a/core/core.go b/core/core.go index e513cc6bd5..87f690bd8e 100644 --- a/core/core.go +++ b/core/core.go @@ -1,6 +1,7 @@ package core import ( + "encoding/binary" "errors" "io" "math/big" @@ -1023,7 +1024,7 @@ func (c *Core) CheckIfEtxIsEligible(etxEligibleSlices common.Hash, location comm return c.sl.hc.CheckIfEtxIsEligible(etxEligibleSlices, location) } -func (c *Core) WriteAddressOutpoints(outpoints map[string]map[string]*types.OutpointAndDenomination) error { +func (c *Core) WriteAddressOutpoints(outpoints map[[20]byte][]*types.OutpointAndDenomination) error { return c.sl.hc.WriteAddressOutpoints(outpoints) } @@ -1243,12 +1244,29 @@ func (c *Core) TrieNode(hash common.Hash) ([]byte, error) { return c.sl.hc.bc.processor.TrieNode(hash) } -func (c *Core) GetOutpointsByAddress(address common.Address) map[string]*types.OutpointAndDenomination { - return rawdb.ReadOutpointsForAddress(c.sl.sliceDb, address.Hex()) +func (c *Core) GetOutpointsByAddressAndRange(address common.Address, start, end uint32) ([]*types.OutpointAndDenomination, error) { + outpoints := make([]*types.OutpointAndDenomination, 0) + for i := start; i <= end; i++ { + addr20 := address.Bytes20() + binary.BigEndian.PutUint32(addr20[16:], i) + outpointsAtBlock, err := rawdb.ReadOutpointsForAddressAtBlock(c.sl.sliceDb, addr20) + if err != nil { + return nil, err + } + outpoints = append(outpoints, outpointsAtBlock...) + } + return outpoints, nil +} + +func (c *Core) GetOutpointsByAddress(address common.Address) ([]*types.OutpointAndDenomination, error) { + return rawdb.ReadOutpointsForAddress(c.sl.sliceDb, address) } -func (c *Core) GetUTXOsByAddressAtState(state *state.StateDB, address common.Address) ([]*types.UtxoEntry, error) { - outpointsForAddress := c.GetOutpointsByAddress(address) +func (c *Core) GetUTXOsByAddress(address common.Address) ([]*types.UtxoEntry, error) { + outpointsForAddress, err := c.GetOutpointsByAddress(address) + if err != nil { + return nil, err + } utxos := make([]*types.UtxoEntry, 0, len(outpointsForAddress)) for _, outpoint := range outpointsForAddress { diff --git a/core/genesis.go b/core/genesis.go index 45eafa6952..4acf94b0f1 100644 --- a/core/genesis.go +++ b/core/genesis.go @@ -18,6 +18,7 @@ package core import ( "bytes" + "encoding/binary" "encoding/hex" "encoding/json" "errors" @@ -521,7 +522,7 @@ func ReadGenesisQiAlloc(filename string, logger *log.Logger) map[string]GenesisU } // WriteGenesisUtxoSet writes the genesis utxo set to the database -func AddGenesisUtxos(db ethdb.Database, utxosCreate *[]common.Hash, nodeLocation common.Location, addressOutpointMap map[string]map[string]*types.OutpointAndDenomination, logger *log.Logger) { +func AddGenesisUtxos(db ethdb.Database, utxosCreate *[]common.Hash, nodeLocation common.Location, addressOutpointMap map[[20]byte][]*types.OutpointAndDenomination, logger *log.Logger) { qiAlloc := ReadGenesisQiAlloc("genallocs/gen_alloc_qi_"+nodeLocation.Name()+".json", logger) // logger.WithField("alloc", len(qiAlloc)).Info("Allocating genesis accounts") for addressString, utxo := range qiAlloc { @@ -553,10 +554,8 @@ func AddGenesisUtxos(db ethdb.Database, utxosCreate *[]common.Hash, nodeLocation Index: uint16(utxo.Index), Denomination: uint8(utxo.Denomination), } - - if _, ok := addressOutpointMap[addr.Hex()]; !ok { - addressOutpointMap[addr.Hex()] = make(map[string]*types.OutpointAndDenomination) - } - addressOutpointMap[addr.Hex()][outpointAndDenomination.Key()] = outpointAndDenomination + addr20 := addr.Bytes20() + binary.BigEndian.PutUint32(addr20[16:], uint32(0)) + addressOutpointMap[addr20] = append(addressOutpointMap[addr20], outpointAndDenomination) } } diff --git a/core/headerchain.go b/core/headerchain.go index 756ee5b561..918bddba9f 100644 --- a/core/headerchain.go +++ b/core/headerchain.go @@ -1341,7 +1341,7 @@ func (hc *HeaderChain) GetPrimeTerminus(header *types.WorkObject) *types.WorkObj return hc.GetHeaderByHash(header.PrimeTerminusHash()) } -func (hc *HeaderChain) WriteAddressOutpoints(outpoints map[string]map[string]*types.OutpointAndDenomination) error { +func (hc *HeaderChain) WriteAddressOutpoints(outpoints map[[20]byte][]*types.OutpointAndDenomination) error { return rawdb.WriteAddressOutpoints(hc.bc.db, outpoints) } diff --git a/core/rawdb/accessors_chain.go b/core/rawdb/accessors_chain.go index d39102ba12..d253b21538 100644 --- a/core/rawdb/accessors_chain.go +++ b/core/rawdb/accessors_chain.go @@ -1113,19 +1113,19 @@ func DeleteInboundEtxs(db ethdb.KeyValueWriter, hash common.Hash) { } } -func WriteAddressOutpoints(db ethdb.KeyValueWriter, outpointMap map[string]map[string]*types.OutpointAndDenomination) error { - for address, outpoints := range outpointMap { - if err := WriteOutpointsForAddress(db, address, outpoints); err != nil { +func WriteAddressOutpoints(db ethdb.KeyValueWriter, outpointMap map[[20]byte][]*types.OutpointAndDenomination) error { + for addressWithBlockHeight, outpoints := range outpointMap { + if err := WriteOutpointsForAddressAndBlockHeight(db, addressWithBlockHeight, outpoints); err != nil { return err } } return nil } -func WriteOutpointsForAddress(db ethdb.KeyValueWriter, address string, outpoints map[string]*types.OutpointAndDenomination) error { +func WriteOutpointsForAddressAndBlockHeight(db ethdb.KeyValueWriter, address [20]byte, outpoints []*types.OutpointAndDenomination) error { addressOutpointsProto := &types.ProtoAddressOutPoints{ - OutPoints: make(map[string]*types.ProtoOutPointAndDenomination, len(outpoints)), + OutPoints: make([]*types.ProtoOutPointAndDenomination, 0, len(outpoints)), } for _, outpoint := range outpoints { @@ -1134,7 +1134,7 @@ func WriteOutpointsForAddress(db ethdb.KeyValueWriter, address string, outpoints return err } - addressOutpointsProto.OutPoints[outpoint.Key()] = outpointProto + addressOutpointsProto.OutPoints = append(addressOutpointsProto.OutPoints, outpointProto) } // Now, marshal utxosProto to protobuf bytes @@ -1148,19 +1148,19 @@ func WriteOutpointsForAddress(db ethdb.KeyValueWriter, address string, outpoints return nil } -func ReadOutpointsForAddress(db ethdb.Reader, address string) map[string]*types.OutpointAndDenomination { +func ReadOutpointsForAddressAtBlock(db ethdb.Reader, address [20]byte) ([]*types.OutpointAndDenomination, error) { // Try to look up the data in leveldb. data, _ := db.Get(addressUtxosKey(address)) if len(data) == 0 { - return make(map[string]*types.OutpointAndDenomination) + return []*types.OutpointAndDenomination{}, nil } addressOutpointsProto := &types.ProtoAddressOutPoints{ - OutPoints: make(map[string]*types.ProtoOutPointAndDenomination), + OutPoints: make([]*types.ProtoOutPointAndDenomination, 0), } if err := proto.Unmarshal(data, addressOutpointsProto); err != nil { - return nil + return nil, err } - outpoints := map[string]*types.OutpointAndDenomination{} + outpoints := make([]*types.OutpointAndDenomination, 0, len(addressOutpointsProto.OutPoints)) for _, outpointProto := range addressOutpointsProto.OutPoints { outpoint := new(types.OutpointAndDenomination) @@ -1170,15 +1170,46 @@ func ReadOutpointsForAddress(db ethdb.Reader, address string) map[string]*types. "err": err, "outpoint": outpointProto, }).Error("Invalid outpointProto") - return nil + return nil, err } - outpoints[outpoint.Key()] = outpoint + outpoints = append(outpoints, outpoint) } - return outpoints + return outpoints, nil +} + +func ReadOutpointsForAddress(db ethdb.Database, address common.Address) ([]*types.OutpointAndDenomination, error) { + prefix := append(AddressUtxosPrefix, address.Bytes()[:16]...) + it := db.NewIterator(prefix, nil) + defer it.Release() + outpoints := make([]*types.OutpointAndDenomination, 0) + for it.Next() { + if len(it.Key()) != len(AddressUtxosPrefix)+common.AddressLength { + continue + } + addressOutpointsProto := &types.ProtoAddressOutPoints{ + OutPoints: make([]*types.ProtoOutPointAndDenomination, 0), + } + if err := proto.Unmarshal(it.Value(), addressOutpointsProto); err != nil { + db.Logger().WithField("err", err).Fatal("Failed to proto Unmarshal addressOutpointsProto") + return nil, err + } + for _, outpointProto := range addressOutpointsProto.OutPoints { + outpoint := new(types.OutpointAndDenomination) + if err := outpoint.ProtoDecode(outpointProto); err != nil { + db.Logger().WithFields(log.Fields{ + "err": err, + "outpoint": outpointProto, + }).Error("Invalid outpointProto") + return nil, err + } + outpoints = append(outpoints, outpoint) + } + } + return outpoints, nil } -func DeleteOutpointsForAddress(db ethdb.KeyValueWriter, address string) { +func DeleteOutpointsForAddress(db ethdb.KeyValueWriter, address [20]byte) { if err := db.Delete(addressUtxosKey(address)); err != nil { db.Logger().WithField("err", err).Fatal("Failed to delete utxos") } @@ -1632,3 +1663,27 @@ func WriteAlreadyPruned(db ethdb.KeyValueWriter, blockHash common.Hash) { db.Logger().WithField("err", err).Fatal("Failed to store already pruned") } } + +// ReadUtxoToBlockHeight reads the block height at which a UTXO was created +// This is not meant to be used in consensus. It is only used in the UTXO indexer or RPC API. +func ReadUtxoToBlockHeight(db ethdb.Reader, txHash common.Hash, index uint16) uint32 { + data, _ := db.Get(utxoToBlockHeightKey(txHash, index)) + if len(data) == 0 { + return 0 + } + return binary.BigEndian.Uint32(data) +} + +func WriteUtxoToBlockHeight(db ethdb.KeyValueWriter, txHash common.Hash, index uint16, blockHeight uint32) { + data := make([]byte, 4) + binary.BigEndian.PutUint32(data, blockHeight) + if err := db.Put(utxoToBlockHeightKey(txHash, index), data); err != nil { + db.Logger().WithField("err", err).Fatal("Failed to store utxo to block height") + } +} + +func DeleteUtxoToBlockHeight(db ethdb.KeyValueWriter, txHash common.Hash, index uint16) { + if err := db.Delete(utxoToBlockHeightKey(txHash, index)); err != nil { + db.Logger().WithField("err", err).Fatal("Failed to delete utxo to block height") + } +} diff --git a/core/rawdb/db.pb.go b/core/rawdb/db.pb.go index 0c54a7f092..0ff70349e8 100644 --- a/core/rawdb/db.pb.go +++ b/core/rawdb/db.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v5.28.2 // source: core/rawdb/db.proto @@ -31,11 +31,9 @@ type ProtoNumber struct { func (x *ProtoNumber) Reset() { *x = ProtoNumber{} - if protoimpl.UnsafeEnabled { - mi := &file_core_rawdb_db_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_rawdb_db_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoNumber) String() string { @@ -46,7 +44,7 @@ func (*ProtoNumber) ProtoMessage() {} func (x *ProtoNumber) ProtoReflect() protoreflect.Message { mi := &file_core_rawdb_db_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -80,11 +78,9 @@ type ProtoLegacyTxLookupEntry struct { func (x *ProtoLegacyTxLookupEntry) Reset() { *x = ProtoLegacyTxLookupEntry{} - if protoimpl.UnsafeEnabled { - mi := &file_core_rawdb_db_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_rawdb_db_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoLegacyTxLookupEntry) String() string { @@ -95,7 +91,7 @@ func (*ProtoLegacyTxLookupEntry) ProtoMessage() {} func (x *ProtoLegacyTxLookupEntry) ProtoReflect() protoreflect.Message { mi := &file_core_rawdb_db_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -186,32 +182,6 @@ func file_core_rawdb_db_proto_init() { if File_core_rawdb_db_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_core_rawdb_db_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*ProtoNumber); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_rawdb_db_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*ProtoLegacyTxLookupEntry); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/core/rawdb/schema.go b/core/rawdb/schema.go index 8848108f6a..fd170e468e 100644 --- a/core/rawdb/schema.go +++ b/core/rawdb/schema.go @@ -82,6 +82,7 @@ var ( badHashesListPrefix = []byte("bh") inboundEtxsPrefix = []byte("ie") // inboundEtxsPrefix + hash -> types.Transactions AddressUtxosPrefix = []byte("au") // addressUtxosPrefix + hash -> []types.UtxoEntry + utxoToBlockHeightPrefix = []byte("ub") // utxoToBlockHeightPrefix + hash -> uint64 processedStatePrefix = []byte("ps") // processedStatePrefix + hash -> boolean multiSetPrefix = []byte("ms") // multiSetPrefix + hash -> multiset UtxoPrefix = []byte("ut") // outpointPrefix + hash -> types.Outpoint @@ -302,7 +303,7 @@ func inboundEtxsKey(hash common.Hash) []byte { return append(inboundEtxsPrefix, hash.Bytes()...) } -func addressUtxosKey(address string) []byte { +func addressUtxosKey(address [20]byte) []byte { return append(AddressUtxosPrefix, address[:]...) } @@ -381,3 +382,11 @@ func tokenChoiceSetKey(hash common.Hash) []byte { func betasKey(hash common.Hash) []byte { return append(betasPrefix, hash.Bytes()...) } + +func utxoToBlockHeightKey(txHash common.Hash, index uint16) []byte { + indexBytes := make([]byte, 2) + binary.BigEndian.PutUint16(indexBytes, index) + txHash[common.HashLength-1] = indexBytes[0] + txHash[common.HashLength-2] = indexBytes[1] + return append(utxoToBlockHeightPrefix, txHash[:]...) +} diff --git a/core/types/proto_block.pb.go b/core/types/proto_block.pb.go index d0f04c8d03..646cbb806c 100644 --- a/core/types/proto_block.pb.go +++ b/core/types/proto_block.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v5.28.2 // source: core/types/proto_block.proto @@ -66,11 +66,9 @@ type ProtoHeader struct { func (x *ProtoHeader) Reset() { *x = ProtoHeader{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoHeader) String() string { @@ -81,7 +79,7 @@ func (*ProtoHeader) ProtoMessage() {} func (x *ProtoHeader) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -380,11 +378,9 @@ type ProtoTransaction struct { func (x *ProtoTransaction) Reset() { *x = ProtoTransaction{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoTransaction) String() string { @@ -395,7 +391,7 @@ func (*ProtoTransaction) ProtoMessage() {} func (x *ProtoTransaction) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -581,11 +577,9 @@ type ProtoTransactions struct { func (x *ProtoTransactions) Reset() { *x = ProtoTransactions{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoTransactions) String() string { @@ -596,7 +590,7 @@ func (*ProtoTransactions) ProtoMessage() {} func (x *ProtoTransactions) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -628,11 +622,9 @@ type ProtoHeaders struct { func (x *ProtoHeaders) Reset() { *x = ProtoHeaders{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoHeaders) String() string { @@ -643,7 +635,7 @@ func (*ProtoHeaders) ProtoMessage() {} func (x *ProtoHeaders) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -675,11 +667,9 @@ type ProtoManifest struct { func (x *ProtoManifest) Reset() { *x = ProtoManifest{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoManifest) String() string { @@ -690,7 +680,7 @@ func (*ProtoManifest) ProtoMessage() {} func (x *ProtoManifest) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -722,11 +712,9 @@ type ProtoAccessList struct { func (x *ProtoAccessList) Reset() { *x = ProtoAccessList{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoAccessList) String() string { @@ -737,7 +725,7 @@ func (*ProtoAccessList) ProtoMessage() {} func (x *ProtoAccessList) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -780,11 +768,9 @@ type ProtoWorkObjectHeader struct { func (x *ProtoWorkObjectHeader) Reset() { *x = ProtoWorkObjectHeader{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoWorkObjectHeader) String() string { @@ -795,7 +781,7 @@ func (*ProtoWorkObjectHeader) ProtoMessage() {} func (x *ProtoWorkObjectHeader) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -904,11 +890,9 @@ type ProtoWorkObjectHeaders struct { func (x *ProtoWorkObjectHeaders) Reset() { *x = ProtoWorkObjectHeaders{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoWorkObjectHeaders) String() string { @@ -919,7 +903,7 @@ func (*ProtoWorkObjectHeaders) ProtoMessage() {} func (x *ProtoWorkObjectHeaders) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -956,11 +940,9 @@ type ProtoWorkObjectBody struct { func (x *ProtoWorkObjectBody) Reset() { *x = ProtoWorkObjectBody{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoWorkObjectBody) String() string { @@ -971,7 +953,7 @@ func (*ProtoWorkObjectBody) ProtoMessage() {} func (x *ProtoWorkObjectBody) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1040,11 +1022,9 @@ type ProtoWorkObject struct { func (x *ProtoWorkObject) Reset() { *x = ProtoWorkObject{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoWorkObject) String() string { @@ -1055,7 +1035,7 @@ func (*ProtoWorkObject) ProtoMessage() {} func (x *ProtoWorkObject) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1101,11 +1081,9 @@ type ProtoWorkObjects struct { func (x *ProtoWorkObjects) Reset() { *x = ProtoWorkObjects{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoWorkObjects) String() string { @@ -1116,7 +1094,7 @@ func (*ProtoWorkObjects) ProtoMessage() {} func (x *ProtoWorkObjects) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1148,11 +1126,9 @@ type ProtoWorkObjectBlockView struct { func (x *ProtoWorkObjectBlockView) Reset() { *x = ProtoWorkObjectBlockView{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoWorkObjectBlockView) String() string { @@ -1163,7 +1139,7 @@ func (*ProtoWorkObjectBlockView) ProtoMessage() {} func (x *ProtoWorkObjectBlockView) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1195,11 +1171,9 @@ type ProtoWorkObjectBlocksView struct { func (x *ProtoWorkObjectBlocksView) Reset() { *x = ProtoWorkObjectBlocksView{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoWorkObjectBlocksView) String() string { @@ -1210,7 +1184,7 @@ func (*ProtoWorkObjectBlocksView) ProtoMessage() {} func (x *ProtoWorkObjectBlocksView) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1242,11 +1216,9 @@ type ProtoWorkObjectHeaderView struct { func (x *ProtoWorkObjectHeaderView) Reset() { *x = ProtoWorkObjectHeaderView{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoWorkObjectHeaderView) String() string { @@ -1257,7 +1229,7 @@ func (*ProtoWorkObjectHeaderView) ProtoMessage() {} func (x *ProtoWorkObjectHeaderView) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1289,11 +1261,9 @@ type ProtoWorkObjectShareView struct { func (x *ProtoWorkObjectShareView) Reset() { *x = ProtoWorkObjectShareView{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoWorkObjectShareView) String() string { @@ -1304,7 +1274,7 @@ func (*ProtoWorkObjectShareView) ProtoMessage() {} func (x *ProtoWorkObjectShareView) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1337,11 +1307,9 @@ type ProtoAccessTuple struct { func (x *ProtoAccessTuple) Reset() { *x = ProtoAccessTuple{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoAccessTuple) String() string { @@ -1352,7 +1320,7 @@ func (*ProtoAccessTuple) ProtoMessage() {} func (x *ProtoAccessTuple) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1397,11 +1365,9 @@ type ProtoReceiptForStorage struct { func (x *ProtoReceiptForStorage) Reset() { *x = ProtoReceiptForStorage{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoReceiptForStorage) String() string { @@ -1412,7 +1378,7 @@ func (*ProtoReceiptForStorage) ProtoMessage() {} func (x *ProtoReceiptForStorage) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1486,11 +1452,9 @@ type ProtoReceiptsForStorage struct { func (x *ProtoReceiptsForStorage) Reset() { *x = ProtoReceiptsForStorage{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoReceiptsForStorage) String() string { @@ -1501,7 +1465,7 @@ func (*ProtoReceiptsForStorage) ProtoMessage() {} func (x *ProtoReceiptsForStorage) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1535,11 +1499,9 @@ type ProtoLogForStorage struct { func (x *ProtoLogForStorage) Reset() { *x = ProtoLogForStorage{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoLogForStorage) String() string { @@ -1550,7 +1512,7 @@ func (*ProtoLogForStorage) ProtoMessage() {} func (x *ProtoLogForStorage) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1596,11 +1558,9 @@ type ProtoLogsForStorage struct { func (x *ProtoLogsForStorage) Reset() { *x = ProtoLogsForStorage{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoLogsForStorage) String() string { @@ -1611,7 +1571,7 @@ func (*ProtoLogsForStorage) ProtoMessage() {} func (x *ProtoLogsForStorage) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1644,11 +1604,9 @@ type ProtoPendingHeader struct { func (x *ProtoPendingHeader) Reset() { *x = ProtoPendingHeader{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoPendingHeader) String() string { @@ -1659,7 +1617,7 @@ func (*ProtoPendingHeader) ProtoMessage() {} func (x *ProtoPendingHeader) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1699,11 +1657,9 @@ type ProtoTermini struct { func (x *ProtoTermini) Reset() { *x = ProtoTermini{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoTermini) String() string { @@ -1714,7 +1670,7 @@ func (*ProtoTermini) ProtoMessage() {} func (x *ProtoTermini) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1753,11 +1709,9 @@ type ProtoEtxSet struct { func (x *ProtoEtxSet) Reset() { *x = ProtoEtxSet{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoEtxSet) String() string { @@ -1768,7 +1722,7 @@ func (*ProtoEtxSet) ProtoMessage() {} func (x *ProtoEtxSet) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1801,11 +1755,9 @@ type ProtoPendingEtxs struct { func (x *ProtoPendingEtxs) Reset() { *x = ProtoPendingEtxs{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoPendingEtxs) String() string { @@ -1816,7 +1768,7 @@ func (*ProtoPendingEtxs) ProtoMessage() {} func (x *ProtoPendingEtxs) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1856,11 +1808,9 @@ type ProtoPendingEtxsRollup struct { func (x *ProtoPendingEtxsRollup) Reset() { *x = ProtoPendingEtxsRollup{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoPendingEtxsRollup) String() string { @@ -1871,7 +1821,7 @@ func (*ProtoPendingEtxsRollup) ProtoMessage() {} func (x *ProtoPendingEtxsRollup) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1910,11 +1860,9 @@ type ProtoTxIns struct { func (x *ProtoTxIns) Reset() { *x = ProtoTxIns{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoTxIns) String() string { @@ -1925,7 +1873,7 @@ func (*ProtoTxIns) ProtoMessage() {} func (x *ProtoTxIns) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1957,11 +1905,9 @@ type ProtoTxOuts struct { func (x *ProtoTxOuts) Reset() { *x = ProtoTxOuts{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoTxOuts) String() string { @@ -1972,7 +1918,7 @@ func (*ProtoTxOuts) ProtoMessage() {} func (x *ProtoTxOuts) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2005,11 +1951,9 @@ type ProtoTxIn struct { func (x *ProtoTxIn) Reset() { *x = ProtoTxIn{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoTxIn) String() string { @@ -2020,7 +1964,7 @@ func (*ProtoTxIn) ProtoMessage() {} func (x *ProtoTxIn) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2060,11 +2004,9 @@ type ProtoOutPoint struct { func (x *ProtoOutPoint) Reset() { *x = ProtoOutPoint{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoOutPoint) String() string { @@ -2075,7 +2017,7 @@ func (*ProtoOutPoint) ProtoMessage() {} func (x *ProtoOutPoint) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2116,11 +2058,9 @@ type ProtoTxOut struct { func (x *ProtoTxOut) Reset() { *x = ProtoTxOut{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoTxOut) String() string { @@ -2131,7 +2071,7 @@ func (*ProtoTxOut) ProtoMessage() {} func (x *ProtoTxOut) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[29] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2180,11 +2120,9 @@ type ProtoOutPointAndDenomination struct { func (x *ProtoOutPointAndDenomination) Reset() { *x = ProtoOutPointAndDenomination{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoOutPointAndDenomination) String() string { @@ -2195,7 +2133,7 @@ func (*ProtoOutPointAndDenomination) ProtoMessage() {} func (x *ProtoOutPointAndDenomination) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2243,16 +2181,14 @@ type ProtoAddressOutPoints struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OutPoints map[string]*ProtoOutPointAndDenomination `protobuf:"bytes,1,rep,name=out_points,json=outPoints,proto3" json:"out_points,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + OutPoints []*ProtoOutPointAndDenomination `protobuf:"bytes,1,rep,name=out_points,json=outPoints,proto3" json:"out_points,omitempty"` } func (x *ProtoAddressOutPoints) Reset() { *x = ProtoAddressOutPoints{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoAddressOutPoints) String() string { @@ -2263,7 +2199,7 @@ func (*ProtoAddressOutPoints) ProtoMessage() {} func (x *ProtoAddressOutPoints) ProtoReflect() protoreflect.Message { mi := &file_core_types_proto_block_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2278,60 +2214,13 @@ func (*ProtoAddressOutPoints) Descriptor() ([]byte, []int) { return file_core_types_proto_block_proto_rawDescGZIP(), []int{31} } -func (x *ProtoAddressOutPoints) GetOutPoints() map[string]*ProtoOutPointAndDenomination { +func (x *ProtoAddressOutPoints) GetOutPoints() []*ProtoOutPointAndDenomination { if x != nil { return x.OutPoints } return nil } -type ProtoOutPointsMap struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Entries map[string]*ProtoAddressOutPoints `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` -} - -func (x *ProtoOutPointsMap) Reset() { - *x = ProtoOutPointsMap{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ProtoOutPointsMap) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ProtoOutPointsMap) ProtoMessage() {} - -func (x *ProtoOutPointsMap) ProtoReflect() protoreflect.Message { - mi := &file_core_types_proto_block_proto_msgTypes[32] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ProtoOutPointsMap.ProtoReflect.Descriptor instead. -func (*ProtoOutPointsMap) Descriptor() ([]byte, []int) { - return file_core_types_proto_block_proto_rawDescGZIP(), []int{32} -} - -func (x *ProtoOutPointsMap) GetEntries() map[string]*ProtoAddressOutPoints { - if x != nil { - return x.Entries - } - return nil -} - type ProtoSpentUTXO struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2343,11 +2232,9 @@ type ProtoSpentUTXO struct { func (x *ProtoSpentUTXO) Reset() { *x = ProtoSpentUTXO{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoSpentUTXO) String() string { @@ -2357,8 +2244,8 @@ func (x *ProtoSpentUTXO) String() string { func (*ProtoSpentUTXO) ProtoMessage() {} func (x *ProtoSpentUTXO) ProtoReflect() protoreflect.Message { - mi := &file_core_types_proto_block_proto_msgTypes[33] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_core_types_proto_block_proto_msgTypes[32] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2370,7 +2257,7 @@ func (x *ProtoSpentUTXO) ProtoReflect() protoreflect.Message { // Deprecated: Use ProtoSpentUTXO.ProtoReflect.Descriptor instead. func (*ProtoSpentUTXO) Descriptor() ([]byte, []int) { - return file_core_types_proto_block_proto_rawDescGZIP(), []int{33} + return file_core_types_proto_block_proto_rawDescGZIP(), []int{32} } func (x *ProtoSpentUTXO) GetOutpoint() *ProtoOutPoint { @@ -2397,11 +2284,9 @@ type ProtoSpentUTXOs struct { func (x *ProtoSpentUTXOs) Reset() { *x = ProtoSpentUTXOs{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoSpentUTXOs) String() string { @@ -2411,8 +2296,8 @@ func (x *ProtoSpentUTXOs) String() string { func (*ProtoSpentUTXOs) ProtoMessage() {} func (x *ProtoSpentUTXOs) ProtoReflect() protoreflect.Message { - mi := &file_core_types_proto_block_proto_msgTypes[34] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_core_types_proto_block_proto_msgTypes[33] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2424,7 +2309,7 @@ func (x *ProtoSpentUTXOs) ProtoReflect() protoreflect.Message { // Deprecated: Use ProtoSpentUTXOs.ProtoReflect.Descriptor instead. func (*ProtoSpentUTXOs) Descriptor() ([]byte, []int) { - return file_core_types_proto_block_proto_rawDescGZIP(), []int{34} + return file_core_types_proto_block_proto_rawDescGZIP(), []int{33} } func (x *ProtoSpentUTXOs) GetSutxos() []*ProtoSpentUTXO { @@ -2444,11 +2329,9 @@ type ProtoKeys struct { func (x *ProtoKeys) Reset() { *x = ProtoKeys{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoKeys) String() string { @@ -2458,8 +2341,8 @@ func (x *ProtoKeys) String() string { func (*ProtoKeys) ProtoMessage() {} func (x *ProtoKeys) ProtoReflect() protoreflect.Message { - mi := &file_core_types_proto_block_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_core_types_proto_block_proto_msgTypes[34] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2471,7 +2354,7 @@ func (x *ProtoKeys) ProtoReflect() protoreflect.Message { // Deprecated: Use ProtoKeys.ProtoReflect.Descriptor instead. func (*ProtoKeys) Descriptor() ([]byte, []int) { - return file_core_types_proto_block_proto_rawDescGZIP(), []int{35} + return file_core_types_proto_block_proto_rawDescGZIP(), []int{34} } func (x *ProtoKeys) GetKeys() [][]byte { @@ -2491,11 +2374,9 @@ type ProtoTrimDepths struct { func (x *ProtoTrimDepths) Reset() { *x = ProtoTrimDepths{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoTrimDepths) String() string { @@ -2505,8 +2386,8 @@ func (x *ProtoTrimDepths) String() string { func (*ProtoTrimDepths) ProtoMessage() {} func (x *ProtoTrimDepths) ProtoReflect() protoreflect.Message { - mi := &file_core_types_proto_block_proto_msgTypes[36] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_core_types_proto_block_proto_msgTypes[35] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2518,7 +2399,7 @@ func (x *ProtoTrimDepths) ProtoReflect() protoreflect.Message { // Deprecated: Use ProtoTrimDepths.ProtoReflect.Descriptor instead. func (*ProtoTrimDepths) Descriptor() ([]byte, []int) { - return file_core_types_proto_block_proto_rawDescGZIP(), []int{36} + return file_core_types_proto_block_proto_rawDescGZIP(), []int{35} } func (x *ProtoTrimDepths) GetTrimDepths() map[uint32]uint64 { @@ -2538,11 +2419,9 @@ type ProtoTokenChoiceSet struct { func (x *ProtoTokenChoiceSet) Reset() { *x = ProtoTokenChoiceSet{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoTokenChoiceSet) String() string { @@ -2552,8 +2431,8 @@ func (x *ProtoTokenChoiceSet) String() string { func (*ProtoTokenChoiceSet) ProtoMessage() {} func (x *ProtoTokenChoiceSet) ProtoReflect() protoreflect.Message { - mi := &file_core_types_proto_block_proto_msgTypes[37] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_core_types_proto_block_proto_msgTypes[36] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2565,7 +2444,7 @@ func (x *ProtoTokenChoiceSet) ProtoReflect() protoreflect.Message { // Deprecated: Use ProtoTokenChoiceSet.ProtoReflect.Descriptor instead. func (*ProtoTokenChoiceSet) Descriptor() ([]byte, []int) { - return file_core_types_proto_block_proto_rawDescGZIP(), []int{37} + return file_core_types_proto_block_proto_rawDescGZIP(), []int{36} } func (x *ProtoTokenChoiceSet) GetTokenChoiceArray() []*ProtoTokenChoiceArray { @@ -2585,11 +2464,9 @@ type ProtoTokenChoiceArray struct { func (x *ProtoTokenChoiceArray) Reset() { *x = ProtoTokenChoiceArray{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoTokenChoiceArray) String() string { @@ -2599,8 +2476,8 @@ func (x *ProtoTokenChoiceArray) String() string { func (*ProtoTokenChoiceArray) ProtoMessage() {} func (x *ProtoTokenChoiceArray) ProtoReflect() protoreflect.Message { - mi := &file_core_types_proto_block_proto_msgTypes[38] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_core_types_proto_block_proto_msgTypes[37] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2612,7 +2489,7 @@ func (x *ProtoTokenChoiceArray) ProtoReflect() protoreflect.Message { // Deprecated: Use ProtoTokenChoiceArray.ProtoReflect.Descriptor instead. func (*ProtoTokenChoiceArray) Descriptor() ([]byte, []int) { - return file_core_types_proto_block_proto_rawDescGZIP(), []int{38} + return file_core_types_proto_block_proto_rawDescGZIP(), []int{37} } func (x *ProtoTokenChoiceArray) GetTokenChoices() *ProtoTokenChoice { @@ -2634,11 +2511,9 @@ type ProtoTokenChoice struct { func (x *ProtoTokenChoice) Reset() { *x = ProtoTokenChoice{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoTokenChoice) String() string { @@ -2648,8 +2523,8 @@ func (x *ProtoTokenChoice) String() string { func (*ProtoTokenChoice) ProtoMessage() {} func (x *ProtoTokenChoice) ProtoReflect() protoreflect.Message { - mi := &file_core_types_proto_block_proto_msgTypes[39] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_core_types_proto_block_proto_msgTypes[38] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2661,7 +2536,7 @@ func (x *ProtoTokenChoice) ProtoReflect() protoreflect.Message { // Deprecated: Use ProtoTokenChoice.ProtoReflect.Descriptor instead. func (*ProtoTokenChoice) Descriptor() ([]byte, []int) { - return file_core_types_proto_block_proto_rawDescGZIP(), []int{39} + return file_core_types_proto_block_proto_rawDescGZIP(), []int{38} } func (x *ProtoTokenChoice) GetQuai() uint64 { @@ -2696,11 +2571,9 @@ type ProtoBetas struct { func (x *ProtoBetas) Reset() { *x = ProtoBetas{} - if protoimpl.UnsafeEnabled { - mi := &file_core_types_proto_block_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_core_types_proto_block_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoBetas) String() string { @@ -2710,8 +2583,8 @@ func (x *ProtoBetas) String() string { func (*ProtoBetas) ProtoMessage() {} func (x *ProtoBetas) ProtoReflect() protoreflect.Message { - mi := &file_core_types_proto_block_proto_msgTypes[40] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_core_types_proto_block_proto_msgTypes[39] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2723,7 +2596,7 @@ func (x *ProtoBetas) ProtoReflect() protoreflect.Message { // Deprecated: Use ProtoBetas.ProtoReflect.Descriptor instead. func (*ProtoBetas) Descriptor() ([]byte, []int) { - return file_core_types_proto_block_proto_rawDescGZIP(), []int{40} + return file_core_types_proto_block_proto_rawDescGZIP(), []int{39} } func (x *ProtoBetas) GetBeta0() []byte { @@ -3236,81 +3109,63 @@ var file_core_types_proto_block_proto_rawDesc = []byte{ 0x0c, 0x48, 0x03, 0x52, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0xc6, 0x01, 0x0a, 0x15, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x69, - 0x6e, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4f, 0x75, 0x74, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2e, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x1a, - 0x61, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x39, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x6e, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0xae, 0x01, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x4f, 0x75, 0x74, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x4d, 0x61, 0x70, 0x12, 0x3f, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, - 0x4d, 0x61, 0x70, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x58, 0x0a, 0x0c, 0x45, 0x6e, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4f, - 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0x8c, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x53, 0x70, 0x65, - 0x6e, 0x74, 0x55, 0x54, 0x58, 0x4f, 0x12, 0x35, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x00, - 0x52, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, - 0x05, 0x73, 0x75, 0x74, 0x78, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x54, 0x78, 0x4f, 0x75, 0x74, 0x48, - 0x01, 0x52, 0x05, 0x73, 0x75, 0x74, 0x78, 0x6f, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x75, 0x74, - 0x78, 0x6f, 0x22, 0x40, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x53, 0x70, 0x65, 0x6e, 0x74, - 0x55, 0x54, 0x58, 0x4f, 0x73, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x75, 0x74, 0x78, 0x6f, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x55, 0x54, 0x58, 0x4f, 0x52, 0x06, 0x73, 0x75, - 0x74, 0x78, 0x6f, 0x73, 0x22, 0x1f, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x4b, 0x65, 0x79, - 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, - 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, 0x99, 0x01, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x54, - 0x72, 0x69, 0x6d, 0x44, 0x65, 0x70, 0x74, 0x68, 0x73, 0x12, 0x47, 0x0a, 0x0b, 0x74, 0x72, 0x69, - 0x6d, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x54, 0x72, 0x69, 0x6d, - 0x44, 0x65, 0x70, 0x74, 0x68, 0x73, 0x2e, 0x54, 0x72, 0x69, 0x6d, 0x44, 0x65, 0x70, 0x74, 0x68, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x74, 0x72, 0x69, 0x6d, 0x44, 0x65, 0x70, 0x74, - 0x68, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x54, 0x72, 0x69, 0x6d, 0x44, 0x65, 0x70, 0x74, 0x68, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0x61, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x65, 0x74, 0x12, 0x4a, 0x0a, 0x12, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x41, 0x72, 0x72, - 0x61, 0x79, 0x52, 0x10, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x41, - 0x72, 0x72, 0x61, 0x79, 0x22, 0x6c, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x41, 0x0a, - 0x0d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, - 0x0c, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x88, 0x01, 0x01, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x73, 0x22, 0x4a, 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x71, 0x75, 0x61, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x71, 0x75, 0x61, 0x69, 0x12, 0x0e, 0x0a, 0x02, 0x71, 0x69, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x71, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x69, - 0x66, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x69, 0x66, 0x66, 0x22, 0x38, - 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x65, 0x74, 0x61, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x62, 0x65, 0x74, 0x61, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x62, 0x65, 0x74, - 0x61, 0x30, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x65, 0x74, 0x61, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x05, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x33, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x6e, 0x74, 0x2d, - 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x2f, 0x67, 0x6f, 0x2d, 0x71, 0x75, - 0x61, 0x69, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x5b, 0x0a, 0x15, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x6e, 0x64, 0x44, + 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x75, 0x74, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x8c, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x53, 0x70, 0x65, 0x6e, 0x74, 0x55, 0x54, 0x58, 0x4f, 0x12, 0x35, 0x0a, 0x08, 0x6f, 0x75, 0x74, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x48, 0x00, 0x52, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x2c, 0x0a, 0x05, 0x73, 0x75, 0x74, 0x78, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x54, 0x78, 0x4f, + 0x75, 0x74, 0x48, 0x01, 0x52, 0x05, 0x73, 0x75, 0x74, 0x78, 0x6f, 0x88, 0x01, 0x01, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x73, 0x75, 0x74, 0x78, 0x6f, 0x22, 0x40, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x53, 0x70, + 0x65, 0x6e, 0x74, 0x55, 0x54, 0x58, 0x4f, 0x73, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x75, 0x74, 0x78, + 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x55, 0x54, 0x58, 0x4f, 0x52, + 0x06, 0x73, 0x75, 0x74, 0x78, 0x6f, 0x73, 0x22, 0x1f, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x4b, 0x65, 0x79, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0c, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, 0x99, 0x01, 0x0a, 0x0f, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x54, 0x72, 0x69, 0x6d, 0x44, 0x65, 0x70, 0x74, 0x68, 0x73, 0x12, 0x47, 0x0a, 0x0b, + 0x74, 0x72, 0x69, 0x6d, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x54, + 0x72, 0x69, 0x6d, 0x44, 0x65, 0x70, 0x74, 0x68, 0x73, 0x2e, 0x54, 0x72, 0x69, 0x6d, 0x44, 0x65, + 0x70, 0x74, 0x68, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x74, 0x72, 0x69, 0x6d, 0x44, + 0x65, 0x70, 0x74, 0x68, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x54, 0x72, 0x69, 0x6d, 0x44, 0x65, 0x70, + 0x74, 0x68, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x61, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x65, 0x74, 0x12, 0x4a, 0x0a, 0x12, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x72, 0x72, 0x61, + 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x41, 0x72, 0x72, 0x61, 0x79, 0x52, 0x10, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x22, 0x6c, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, + 0x12, 0x41, 0x0a, 0x0d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x48, 0x00, 0x52, 0x0c, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x73, + 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x73, 0x22, 0x4a, 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x71, 0x75, 0x61, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x71, 0x75, 0x61, 0x69, 0x12, 0x0e, 0x0a, + 0x02, 0x71, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x71, 0x69, 0x12, 0x12, 0x0a, + 0x04, 0x64, 0x69, 0x66, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x69, 0x66, + 0x66, 0x22, 0x38, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x65, 0x74, 0x61, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x62, 0x65, 0x74, 0x61, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, + 0x62, 0x65, 0x74, 0x61, 0x30, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x65, 0x74, 0x61, 0x31, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x33, 0x5a, 0x31, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x6f, 0x6d, 0x69, 0x6e, 0x61, + 0x6e, 0x74, 0x2d, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x2f, 0x67, 0x6f, + 0x2d, 0x71, 0x75, 0x61, 0x69, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3325,7 +3180,7 @@ func file_core_types_proto_block_proto_rawDescGZIP() []byte { return file_core_types_proto_block_proto_rawDescData } -var file_core_types_proto_block_proto_msgTypes = make([]protoimpl.MessageInfo, 44) +var file_core_types_proto_block_proto_msgTypes = make([]protoimpl.MessageInfo, 41) var file_core_types_proto_block_proto_goTypes = []any{ (*ProtoHeader)(nil), // 0: block.ProtoHeader (*ProtoTransaction)(nil), // 1: block.ProtoTransaction @@ -3359,62 +3214,59 @@ var file_core_types_proto_block_proto_goTypes = []any{ (*ProtoTxOut)(nil), // 29: block.ProtoTxOut (*ProtoOutPointAndDenomination)(nil), // 30: block.ProtoOutPointAndDenomination (*ProtoAddressOutPoints)(nil), // 31: block.ProtoAddressOutPoints - (*ProtoOutPointsMap)(nil), // 32: block.ProtoOutPointsMap - (*ProtoSpentUTXO)(nil), // 33: block.ProtoSpentUTXO - (*ProtoSpentUTXOs)(nil), // 34: block.ProtoSpentUTXOs - (*ProtoKeys)(nil), // 35: block.ProtoKeys - (*ProtoTrimDepths)(nil), // 36: block.ProtoTrimDepths - (*ProtoTokenChoiceSet)(nil), // 37: block.ProtoTokenChoiceSet - (*ProtoTokenChoiceArray)(nil), // 38: block.ProtoTokenChoiceArray - (*ProtoTokenChoice)(nil), // 39: block.ProtoTokenChoice - (*ProtoBetas)(nil), // 40: block.ProtoBetas - nil, // 41: block.ProtoAddressOutPoints.OutPointsEntry - nil, // 42: block.ProtoOutPointsMap.EntriesEntry - nil, // 43: block.ProtoTrimDepths.TrimDepthsEntry - (*common.ProtoHash)(nil), // 44: common.ProtoHash - (*common.ProtoLocation)(nil), // 45: common.ProtoLocation - (*common.ProtoAddress)(nil), // 46: common.ProtoAddress - (*common.ProtoHashes)(nil), // 47: common.ProtoHashes + (*ProtoSpentUTXO)(nil), // 32: block.ProtoSpentUTXO + (*ProtoSpentUTXOs)(nil), // 33: block.ProtoSpentUTXOs + (*ProtoKeys)(nil), // 34: block.ProtoKeys + (*ProtoTrimDepths)(nil), // 35: block.ProtoTrimDepths + (*ProtoTokenChoiceSet)(nil), // 36: block.ProtoTokenChoiceSet + (*ProtoTokenChoiceArray)(nil), // 37: block.ProtoTokenChoiceArray + (*ProtoTokenChoice)(nil), // 38: block.ProtoTokenChoice + (*ProtoBetas)(nil), // 39: block.ProtoBetas + nil, // 40: block.ProtoTrimDepths.TrimDepthsEntry + (*common.ProtoHash)(nil), // 41: common.ProtoHash + (*common.ProtoLocation)(nil), // 42: common.ProtoLocation + (*common.ProtoAddress)(nil), // 43: common.ProtoAddress + (*common.ProtoHashes)(nil), // 44: common.ProtoHashes } var file_core_types_proto_block_proto_depIdxs = []int32{ - 44, // 0: block.ProtoHeader.parent_hash:type_name -> common.ProtoHash - 44, // 1: block.ProtoHeader.uncle_hash:type_name -> common.ProtoHash - 44, // 2: block.ProtoHeader.evm_root:type_name -> common.ProtoHash - 44, // 3: block.ProtoHeader.tx_hash:type_name -> common.ProtoHash - 44, // 4: block.ProtoHeader.outbound_etx_hash:type_name -> common.ProtoHash - 44, // 5: block.ProtoHeader.etx_rollup_hash:type_name -> common.ProtoHash - 44, // 6: block.ProtoHeader.manifest_hash:type_name -> common.ProtoHash - 44, // 7: block.ProtoHeader.receipt_hash:type_name -> common.ProtoHash - 45, // 8: block.ProtoHeader.location:type_name -> common.ProtoLocation - 44, // 9: block.ProtoHeader.mix_hash:type_name -> common.ProtoHash - 44, // 10: block.ProtoHeader.utxo_root:type_name -> common.ProtoHash - 44, // 11: block.ProtoHeader.etx_set_root:type_name -> common.ProtoHash - 44, // 12: block.ProtoHeader.etx_eligible_slices:type_name -> common.ProtoHash - 44, // 13: block.ProtoHeader.prime_terminus_hash:type_name -> common.ProtoHash - 44, // 14: block.ProtoHeader.interlink_root_hash:type_name -> common.ProtoHash + 41, // 0: block.ProtoHeader.parent_hash:type_name -> common.ProtoHash + 41, // 1: block.ProtoHeader.uncle_hash:type_name -> common.ProtoHash + 41, // 2: block.ProtoHeader.evm_root:type_name -> common.ProtoHash + 41, // 3: block.ProtoHeader.tx_hash:type_name -> common.ProtoHash + 41, // 4: block.ProtoHeader.outbound_etx_hash:type_name -> common.ProtoHash + 41, // 5: block.ProtoHeader.etx_rollup_hash:type_name -> common.ProtoHash + 41, // 6: block.ProtoHeader.manifest_hash:type_name -> common.ProtoHash + 41, // 7: block.ProtoHeader.receipt_hash:type_name -> common.ProtoHash + 42, // 8: block.ProtoHeader.location:type_name -> common.ProtoLocation + 41, // 9: block.ProtoHeader.mix_hash:type_name -> common.ProtoHash + 41, // 10: block.ProtoHeader.utxo_root:type_name -> common.ProtoHash + 41, // 11: block.ProtoHeader.etx_set_root:type_name -> common.ProtoHash + 41, // 12: block.ProtoHeader.etx_eligible_slices:type_name -> common.ProtoHash + 41, // 13: block.ProtoHeader.prime_terminus_hash:type_name -> common.ProtoHash + 41, // 14: block.ProtoHeader.interlink_root_hash:type_name -> common.ProtoHash 5, // 15: block.ProtoTransaction.access_list:type_name -> block.ProtoAccessList - 44, // 16: block.ProtoTransaction.originating_tx_hash:type_name -> common.ProtoHash + 41, // 16: block.ProtoTransaction.originating_tx_hash:type_name -> common.ProtoHash 25, // 17: block.ProtoTransaction.tx_ins:type_name -> block.ProtoTxIns 26, // 18: block.ProtoTransaction.tx_outs:type_name -> block.ProtoTxOuts - 44, // 19: block.ProtoTransaction.parent_hash:type_name -> common.ProtoHash - 44, // 20: block.ProtoTransaction.mix_hash:type_name -> common.ProtoHash + 41, // 19: block.ProtoTransaction.parent_hash:type_name -> common.ProtoHash + 41, // 20: block.ProtoTransaction.mix_hash:type_name -> common.ProtoHash 1, // 21: block.ProtoTransactions.transactions:type_name -> block.ProtoTransaction 0, // 22: block.ProtoHeaders.headers:type_name -> block.ProtoHeader - 44, // 23: block.ProtoManifest.manifest:type_name -> common.ProtoHash + 41, // 23: block.ProtoManifest.manifest:type_name -> common.ProtoHash 15, // 24: block.ProtoAccessList.access_tuples:type_name -> block.ProtoAccessTuple - 44, // 25: block.ProtoWorkObjectHeader.header_hash:type_name -> common.ProtoHash - 44, // 26: block.ProtoWorkObjectHeader.parent_hash:type_name -> common.ProtoHash - 44, // 27: block.ProtoWorkObjectHeader.tx_hash:type_name -> common.ProtoHash - 45, // 28: block.ProtoWorkObjectHeader.location:type_name -> common.ProtoLocation - 44, // 29: block.ProtoWorkObjectHeader.mix_hash:type_name -> common.ProtoHash - 46, // 30: block.ProtoWorkObjectHeader.primary_coinbase:type_name -> common.ProtoAddress + 41, // 25: block.ProtoWorkObjectHeader.header_hash:type_name -> common.ProtoHash + 41, // 26: block.ProtoWorkObjectHeader.parent_hash:type_name -> common.ProtoHash + 41, // 27: block.ProtoWorkObjectHeader.tx_hash:type_name -> common.ProtoHash + 42, // 28: block.ProtoWorkObjectHeader.location:type_name -> common.ProtoLocation + 41, // 29: block.ProtoWorkObjectHeader.mix_hash:type_name -> common.ProtoHash + 43, // 30: block.ProtoWorkObjectHeader.primary_coinbase:type_name -> common.ProtoAddress 6, // 31: block.ProtoWorkObjectHeaders.wo_headers:type_name -> block.ProtoWorkObjectHeader 0, // 32: block.ProtoWorkObjectBody.header:type_name -> block.ProtoHeader 2, // 33: block.ProtoWorkObjectBody.transactions:type_name -> block.ProtoTransactions 7, // 34: block.ProtoWorkObjectBody.uncles:type_name -> block.ProtoWorkObjectHeaders 2, // 35: block.ProtoWorkObjectBody.outbound_etxs:type_name -> block.ProtoTransactions 4, // 36: block.ProtoWorkObjectBody.manifest:type_name -> block.ProtoManifest - 47, // 37: block.ProtoWorkObjectBody.interlink_hashes:type_name -> common.ProtoHashes + 44, // 37: block.ProtoWorkObjectBody.interlink_hashes:type_name -> common.ProtoHashes 6, // 38: block.ProtoWorkObject.wo_header:type_name -> block.ProtoWorkObjectHeader 8, // 39: block.ProtoWorkObject.wo_body:type_name -> block.ProtoWorkObjectBody 1, // 40: block.ProtoWorkObject.tx:type_name -> block.ProtoTransaction @@ -3423,19 +3275,19 @@ var file_core_types_proto_block_proto_depIdxs = []int32{ 11, // 43: block.ProtoWorkObjectBlocksView.work_objects:type_name -> block.ProtoWorkObjectBlockView 9, // 44: block.ProtoWorkObjectHeaderView.work_object:type_name -> block.ProtoWorkObject 9, // 45: block.ProtoWorkObjectShareView.work_object:type_name -> block.ProtoWorkObject - 44, // 46: block.ProtoAccessTuple.storage_key:type_name -> common.ProtoHash + 41, // 46: block.ProtoAccessTuple.storage_key:type_name -> common.ProtoHash 19, // 47: block.ProtoReceiptForStorage.logs:type_name -> block.ProtoLogsForStorage - 44, // 48: block.ProtoReceiptForStorage.tx_hash:type_name -> common.ProtoHash - 46, // 49: block.ProtoReceiptForStorage.contract_address:type_name -> common.ProtoAddress + 41, // 48: block.ProtoReceiptForStorage.tx_hash:type_name -> common.ProtoHash + 43, // 49: block.ProtoReceiptForStorage.contract_address:type_name -> common.ProtoAddress 2, // 50: block.ProtoReceiptForStorage.outbound_etxs:type_name -> block.ProtoTransactions 16, // 51: block.ProtoReceiptsForStorage.receipts:type_name -> block.ProtoReceiptForStorage - 46, // 52: block.ProtoLogForStorage.address:type_name -> common.ProtoAddress - 44, // 53: block.ProtoLogForStorage.topics:type_name -> common.ProtoHash + 43, // 52: block.ProtoLogForStorage.address:type_name -> common.ProtoAddress + 41, // 53: block.ProtoLogForStorage.topics:type_name -> common.ProtoHash 18, // 54: block.ProtoLogsForStorage.logs:type_name -> block.ProtoLogForStorage 9, // 55: block.ProtoPendingHeader.wo:type_name -> block.ProtoWorkObject 21, // 56: block.ProtoPendingHeader.termini:type_name -> block.ProtoTermini - 44, // 57: block.ProtoTermini.dom_termini:type_name -> common.ProtoHash - 44, // 58: block.ProtoTermini.sub_termini:type_name -> common.ProtoHash + 41, // 57: block.ProtoTermini.dom_termini:type_name -> common.ProtoHash + 41, // 58: block.ProtoTermini.sub_termini:type_name -> common.ProtoHash 9, // 59: block.ProtoPendingEtxs.header:type_name -> block.ProtoWorkObject 2, // 60: block.ProtoPendingEtxs.outbound_etxs:type_name -> block.ProtoTransactions 9, // 61: block.ProtoPendingEtxsRollup.header:type_name -> block.ProtoWorkObject @@ -3443,23 +3295,20 @@ var file_core_types_proto_block_proto_depIdxs = []int32{ 27, // 63: block.ProtoTxIns.tx_ins:type_name -> block.ProtoTxIn 29, // 64: block.ProtoTxOuts.tx_outs:type_name -> block.ProtoTxOut 28, // 65: block.ProtoTxIn.previous_out_point:type_name -> block.ProtoOutPoint - 44, // 66: block.ProtoOutPoint.hash:type_name -> common.ProtoHash - 44, // 67: block.ProtoOutPointAndDenomination.hash:type_name -> common.ProtoHash - 41, // 68: block.ProtoAddressOutPoints.out_points:type_name -> block.ProtoAddressOutPoints.OutPointsEntry - 42, // 69: block.ProtoOutPointsMap.entries:type_name -> block.ProtoOutPointsMap.EntriesEntry - 28, // 70: block.ProtoSpentUTXO.outpoint:type_name -> block.ProtoOutPoint - 29, // 71: block.ProtoSpentUTXO.sutxo:type_name -> block.ProtoTxOut - 33, // 72: block.ProtoSpentUTXOs.sutxos:type_name -> block.ProtoSpentUTXO - 43, // 73: block.ProtoTrimDepths.trim_depths:type_name -> block.ProtoTrimDepths.TrimDepthsEntry - 38, // 74: block.ProtoTokenChoiceSet.token_choice_array:type_name -> block.ProtoTokenChoiceArray - 39, // 75: block.ProtoTokenChoiceArray.token_choices:type_name -> block.ProtoTokenChoice - 30, // 76: block.ProtoAddressOutPoints.OutPointsEntry.value:type_name -> block.ProtoOutPointAndDenomination - 31, // 77: block.ProtoOutPointsMap.EntriesEntry.value:type_name -> block.ProtoAddressOutPoints - 78, // [78:78] is the sub-list for method output_type - 78, // [78:78] is the sub-list for method input_type - 78, // [78:78] is the sub-list for extension type_name - 78, // [78:78] is the sub-list for extension extendee - 0, // [0:78] is the sub-list for field type_name + 41, // 66: block.ProtoOutPoint.hash:type_name -> common.ProtoHash + 41, // 67: block.ProtoOutPointAndDenomination.hash:type_name -> common.ProtoHash + 30, // 68: block.ProtoAddressOutPoints.out_points:type_name -> block.ProtoOutPointAndDenomination + 28, // 69: block.ProtoSpentUTXO.outpoint:type_name -> block.ProtoOutPoint + 29, // 70: block.ProtoSpentUTXO.sutxo:type_name -> block.ProtoTxOut + 32, // 71: block.ProtoSpentUTXOs.sutxos:type_name -> block.ProtoSpentUTXO + 40, // 72: block.ProtoTrimDepths.trim_depths:type_name -> block.ProtoTrimDepths.TrimDepthsEntry + 37, // 73: block.ProtoTokenChoiceSet.token_choice_array:type_name -> block.ProtoTokenChoiceArray + 38, // 74: block.ProtoTokenChoiceArray.token_choices:type_name -> block.ProtoTokenChoice + 75, // [75:75] is the sub-list for method output_type + 75, // [75:75] is the sub-list for method input_type + 75, // [75:75] is the sub-list for extension type_name + 75, // [75:75] is the sub-list for extension extendee + 0, // [0:75] is the sub-list for field type_name } func init() { file_core_types_proto_block_proto_init() } @@ -3467,500 +3316,6 @@ func file_core_types_proto_block_proto_init() { if File_core_types_proto_block_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_core_types_proto_block_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*ProtoHeader); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*ProtoTransaction); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[2].Exporter = func(v any, i int) any { - switch v := v.(*ProtoTransactions); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[3].Exporter = func(v any, i int) any { - switch v := v.(*ProtoHeaders); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[4].Exporter = func(v any, i int) any { - switch v := v.(*ProtoManifest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[5].Exporter = func(v any, i int) any { - switch v := v.(*ProtoAccessList); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[6].Exporter = func(v any, i int) any { - switch v := v.(*ProtoWorkObjectHeader); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[7].Exporter = func(v any, i int) any { - switch v := v.(*ProtoWorkObjectHeaders); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[8].Exporter = func(v any, i int) any { - switch v := v.(*ProtoWorkObjectBody); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[9].Exporter = func(v any, i int) any { - switch v := v.(*ProtoWorkObject); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[10].Exporter = func(v any, i int) any { - switch v := v.(*ProtoWorkObjects); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[11].Exporter = func(v any, i int) any { - switch v := v.(*ProtoWorkObjectBlockView); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[12].Exporter = func(v any, i int) any { - switch v := v.(*ProtoWorkObjectBlocksView); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[13].Exporter = func(v any, i int) any { - switch v := v.(*ProtoWorkObjectHeaderView); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[14].Exporter = func(v any, i int) any { - switch v := v.(*ProtoWorkObjectShareView); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[15].Exporter = func(v any, i int) any { - switch v := v.(*ProtoAccessTuple); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[16].Exporter = func(v any, i int) any { - switch v := v.(*ProtoReceiptForStorage); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[17].Exporter = func(v any, i int) any { - switch v := v.(*ProtoReceiptsForStorage); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[18].Exporter = func(v any, i int) any { - switch v := v.(*ProtoLogForStorage); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[19].Exporter = func(v any, i int) any { - switch v := v.(*ProtoLogsForStorage); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[20].Exporter = func(v any, i int) any { - switch v := v.(*ProtoPendingHeader); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[21].Exporter = func(v any, i int) any { - switch v := v.(*ProtoTermini); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[22].Exporter = func(v any, i int) any { - switch v := v.(*ProtoEtxSet); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[23].Exporter = func(v any, i int) any { - switch v := v.(*ProtoPendingEtxs); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[24].Exporter = func(v any, i int) any { - switch v := v.(*ProtoPendingEtxsRollup); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[25].Exporter = func(v any, i int) any { - switch v := v.(*ProtoTxIns); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[26].Exporter = func(v any, i int) any { - switch v := v.(*ProtoTxOuts); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[27].Exporter = func(v any, i int) any { - switch v := v.(*ProtoTxIn); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[28].Exporter = func(v any, i int) any { - switch v := v.(*ProtoOutPoint); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[29].Exporter = func(v any, i int) any { - switch v := v.(*ProtoTxOut); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[30].Exporter = func(v any, i int) any { - switch v := v.(*ProtoOutPointAndDenomination); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[31].Exporter = func(v any, i int) any { - switch v := v.(*ProtoAddressOutPoints); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[32].Exporter = func(v any, i int) any { - switch v := v.(*ProtoOutPointsMap); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[33].Exporter = func(v any, i int) any { - switch v := v.(*ProtoSpentUTXO); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[34].Exporter = func(v any, i int) any { - switch v := v.(*ProtoSpentUTXOs); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[35].Exporter = func(v any, i int) any { - switch v := v.(*ProtoKeys); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[36].Exporter = func(v any, i int) any { - switch v := v.(*ProtoTrimDepths); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[37].Exporter = func(v any, i int) any { - switch v := v.(*ProtoTokenChoiceSet); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[38].Exporter = func(v any, i int) any { - switch v := v.(*ProtoTokenChoiceArray); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[39].Exporter = func(v any, i int) any { - switch v := v.(*ProtoTokenChoice); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_core_types_proto_block_proto_msgTypes[40].Exporter = func(v any, i int) any { - switch v := v.(*ProtoBetas); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } file_core_types_proto_block_proto_msgTypes[0].OneofWrappers = []any{} file_core_types_proto_block_proto_msgTypes[1].OneofWrappers = []any{} file_core_types_proto_block_proto_msgTypes[6].OneofWrappers = []any{} @@ -3977,15 +3332,15 @@ func file_core_types_proto_block_proto_init() { file_core_types_proto_block_proto_msgTypes[28].OneofWrappers = []any{} file_core_types_proto_block_proto_msgTypes[29].OneofWrappers = []any{} file_core_types_proto_block_proto_msgTypes[30].OneofWrappers = []any{} - file_core_types_proto_block_proto_msgTypes[33].OneofWrappers = []any{} - file_core_types_proto_block_proto_msgTypes[38].OneofWrappers = []any{} + file_core_types_proto_block_proto_msgTypes[32].OneofWrappers = []any{} + file_core_types_proto_block_proto_msgTypes[37].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_core_types_proto_block_proto_rawDesc, NumEnums: 0, - NumMessages: 44, + NumMessages: 41, NumExtensions: 0, NumServices: 0, }, diff --git a/core/types/proto_block.proto b/core/types/proto_block.proto index ba35de4ae9..df1fcc3768 100644 --- a/core/types/proto_block.proto +++ b/core/types/proto_block.proto @@ -207,11 +207,7 @@ message ProtoOutPointAndDenomination { } message ProtoAddressOutPoints { - map out_points = 1; -} - -message ProtoOutPointsMap { - map entries = 1; + repeated ProtoOutPointAndDenomination out_points = 1; } message ProtoSpentUTXO { diff --git a/internal/quaiapi/api.go b/internal/quaiapi/api.go index fd19f8c6e4..2384b0a19b 100644 --- a/internal/quaiapi/api.go +++ b/internal/quaiapi/api.go @@ -207,7 +207,7 @@ func (s *PublicBlockChainAPI) GetBalance(ctx context.Context, address common.Add return (*hexutil.Big)(big.NewInt(0)), errors.New("qi balance query is only supported for the current block") } - utxos, err := s.b.UTXOsByAddressAtState(ctx, state, addr) + utxos, err := s.b.UTXOsByAddress(ctx, addr) if utxos == nil || err != nil { return nil, err } @@ -240,14 +240,6 @@ func (s *PublicBlockChainAPI) GetBalance(ctx context.Context, address common.Add } } -func (s *PublicBlockChainAPI) GetOutpointsByAddressAtBlock(ctx context.Context, address common.Address) (map[string]*types.OutpointAndDenomination, error) { - outpoints, err := s.b.AddressOutpoints(ctx, address) - if err != nil { - return nil, err - } - return outpoints, nil -} - // Result structs for GetProof type AccountResult struct { Address common.MixedcaseAddress `json:"address"` diff --git a/internal/quaiapi/backend.go b/internal/quaiapi/backend.go index 67cab8b09a..8018e6395a 100644 --- a/internal/quaiapi/backend.go +++ b/internal/quaiapi/backend.go @@ -65,8 +65,9 @@ type Backend interface { BlockByNumberOrHash(ctx context.Context, blockNrOrHash rpc.BlockNumberOrHash) (*types.WorkObject, error) StateAndHeaderByNumber(ctx context.Context, number rpc.BlockNumber) (*state.StateDB, *types.WorkObject, error) StateAndHeaderByNumberOrHash(ctx context.Context, blockNrOrHash rpc.BlockNumberOrHash) (*state.StateDB, *types.WorkObject, error) - AddressOutpoints(ctx context.Context, address common.Address) (map[string]*types.OutpointAndDenomination, error) - UTXOsByAddressAtState(ctx context.Context, state *state.StateDB, address common.Address) ([]*types.UtxoEntry, error) + AddressOutpoints(ctx context.Context, address common.Address) ([]*types.OutpointAndDenomination, error) + GetOutpointsByAddressAndRange(ctx context.Context, address common.Address, start, end uint32) ([]*types.OutpointAndDenomination, error) + UTXOsByAddress(ctx context.Context, address common.Address) ([]*types.UtxoEntry, error) GetReceipts(ctx context.Context, hash common.Hash) (types.Receipts, error) GetEVM(ctx context.Context, msg core.Message, state *state.StateDB, header *types.WorkObject, parent *types.WorkObject, vmConfig *vm.Config) (*vm.EVM, func() error, error) SetCurrentExpansionNumber(expansionNumber uint8) @@ -111,7 +112,6 @@ type Backend interface { CheckInCalcOrderCache(hash common.Hash) (*big.Int, int, bool) AddToCalcOrderCache(hash common.Hash, order int, intrinsicS *big.Int) GetPrimeBlock(blockHash common.Hash) *types.WorkObject - consensus.ChainHeaderReader TxMiningEnabled() bool GetWorkShareThreshold() int diff --git a/internal/quaiapi/quai_api.go b/internal/quaiapi/quai_api.go index b0e54e5c29..ce1d06c64b 100644 --- a/internal/quaiapi/quai_api.go +++ b/internal/quaiapi/quai_api.go @@ -125,7 +125,7 @@ func (s *PublicBlockChainQuaiAPI) GetBalance(ctx context.Context, address common return (*hexutil.Big)(big.NewInt(0)), errors.New("qi balance query is only supported for the current block") } - utxos, err := s.b.UTXOsByAddressAtState(ctx, state, addr) + utxos, err := s.b.UTXOsByAddress(ctx, addr) if utxos == nil || err != nil { return nil, err } @@ -154,12 +154,12 @@ func (s *PublicBlockChainQuaiAPI) GetBalance(ctx context.Context, address common } } -func (s *PublicBlockChainQuaiAPI) GetOutpointsByAddress(ctx context.Context, address common.Address) ([]interface{}, error) { +func (s *PublicBlockChainQuaiAPI) GetOutpointsByAddress(ctx context.Context, address common.Address) (map[string][]interface{}, error) { outpoints, err := s.b.AddressOutpoints(ctx, address) if err != nil { return nil, err } - jsonOutpoints := make([]interface{}, 0, len(outpoints)) + txHashToOutpointsJson := make(map[string][]interface{}) for _, outpoint := range outpoints { if outpoint == nil { continue @@ -169,15 +169,39 @@ func (s *PublicBlockChainQuaiAPI) GetOutpointsByAddress(ctx context.Context, add lock = outpoint.Lock } jsonOutpoint := map[string]interface{}{ - "txHash": outpoint.TxHash.Hex(), "index": hexutil.Uint64(outpoint.Index), "denomination": hexutil.Uint64(outpoint.Denomination), "lock": hexutil.Big(*lock), } - jsonOutpoints = append(jsonOutpoints, jsonOutpoint) + txHashToOutpointsJson[outpoint.TxHash.Hex()] = append(txHashToOutpointsJson[outpoint.TxHash.Hex()], jsonOutpoint) } - return jsonOutpoints, nil + return txHashToOutpointsJson, nil +} + +func (s *PublicBlockChainAPI) GetOutPointsByAddressAndRange(ctx context.Context, address common.Address, start, end hexutil.Uint64) (map[string][]interface{}, error) { + outpoints, err := s.b.GetOutpointsByAddressAndRange(ctx, address, uint32(start), uint32(end)) + if err != nil { + return nil, err + } + txHashToOutpointsJson := make(map[string][]interface{}) + for _, outpoint := range outpoints { + if outpoint == nil { + continue + } + lock := big.NewInt(0) + if outpoint.Lock != nil { + lock = outpoint.Lock + } + jsonOutpoint := map[string]interface{}{ + "index": hexutil.Uint64(outpoint.Index), + "denomination": hexutil.Uint64(outpoint.Denomination), + "lock": hexutil.Big(*lock), + } + txHashToOutpointsJson[outpoint.TxHash.Hex()] = append(txHashToOutpointsJson[outpoint.TxHash.Hex()], jsonOutpoint) + } + + return txHashToOutpointsJson, nil } // GetProof returns the Merkle-proof for a given account and optionally some storage keys. diff --git a/p2p/node/peerManager/peerdb/peer_info.pb.go b/p2p/node/peerManager/peerdb/peer_info.pb.go index ca1882ad1f..cd3854f0dd 100644 --- a/p2p/node/peerManager/peerdb/peer_info.pb.go +++ b/p2p/node/peerManager/peerdb/peer_info.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v5.28.2 // source: p2p/node/peerManager/peerdb/peer_info.proto @@ -33,11 +33,9 @@ type ProtoPeerInfo struct { func (x *ProtoPeerInfo) Reset() { *x = ProtoPeerInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_p2p_node_peerManager_peerdb_peer_info_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_p2p_node_peerManager_peerdb_peer_info_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoPeerInfo) String() string { @@ -48,7 +46,7 @@ func (*ProtoPeerInfo) ProtoMessage() {} func (x *ProtoPeerInfo) ProtoReflect() protoreflect.Message { mi := &file_p2p_node_peerManager_peerdb_peer_info_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -102,11 +100,9 @@ type ProtoAddrInfo struct { func (x *ProtoAddrInfo) Reset() { *x = ProtoAddrInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_p2p_node_peerManager_peerdb_peer_info_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_p2p_node_peerManager_peerdb_peer_info_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProtoAddrInfo) String() string { @@ -117,7 +113,7 @@ func (*ProtoAddrInfo) ProtoMessage() {} func (x *ProtoAddrInfo) ProtoReflect() protoreflect.Message { mi := &file_p2p_node_peerManager_peerdb_peer_info_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -203,32 +199,6 @@ func file_p2p_node_peerManager_peerdb_peer_info_proto_init() { if File_p2p_node_peerManager_peerdb_peer_info_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_p2p_node_peerManager_peerdb_peer_info_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*ProtoPeerInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_p2p_node_peerManager_peerdb_peer_info_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*ProtoAddrInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/p2p/pb/quai_messages.pb.go b/p2p/pb/quai_messages.pb.go index a1fc057b18..9706e38414 100644 --- a/p2p/pb/quai_messages.pb.go +++ b/p2p/pb/quai_messages.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v5.28.2 // source: p2p/pb/quai_messages.proto @@ -33,11 +33,9 @@ type GossipWorkObject struct { func (x *GossipWorkObject) Reset() { *x = GossipWorkObject{} - if protoimpl.UnsafeEnabled { - mi := &file_p2p_pb_quai_messages_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_p2p_pb_quai_messages_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GossipWorkObject) String() string { @@ -48,7 +46,7 @@ func (*GossipWorkObject) ProtoMessage() {} func (x *GossipWorkObject) ProtoReflect() protoreflect.Message { mi := &file_p2p_pb_quai_messages_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -80,11 +78,9 @@ type GossipTransaction struct { func (x *GossipTransaction) Reset() { *x = GossipTransaction{} - if protoimpl.UnsafeEnabled { - mi := &file_p2p_pb_quai_messages_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_p2p_pb_quai_messages_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GossipTransaction) String() string { @@ -95,7 +91,7 @@ func (*GossipTransaction) ProtoMessage() {} func (x *GossipTransaction) ProtoReflect() protoreflect.Message { mi := &file_p2p_pb_quai_messages_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -141,11 +137,9 @@ type QuaiRequestMessage struct { func (x *QuaiRequestMessage) Reset() { *x = QuaiRequestMessage{} - if protoimpl.UnsafeEnabled { - mi := &file_p2p_pb_quai_messages_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_p2p_pb_quai_messages_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QuaiRequestMessage) String() string { @@ -156,7 +150,7 @@ func (*QuaiRequestMessage) ProtoMessage() {} func (x *QuaiRequestMessage) ProtoReflect() protoreflect.Message { mi := &file_p2p_pb_quai_messages_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -304,11 +298,9 @@ type QuaiResponseMessage struct { func (x *QuaiResponseMessage) Reset() { *x = QuaiResponseMessage{} - if protoimpl.UnsafeEnabled { - mi := &file_p2p_pb_quai_messages_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_p2p_pb_quai_messages_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QuaiResponseMessage) String() string { @@ -319,7 +311,7 @@ func (*QuaiResponseMessage) ProtoMessage() {} func (x *QuaiResponseMessage) ProtoReflect() protoreflect.Message { mi := &file_p2p_pb_quai_messages_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -425,11 +417,9 @@ type QuaiMessage struct { func (x *QuaiMessage) Reset() { *x = QuaiMessage{} - if protoimpl.UnsafeEnabled { - mi := &file_p2p_pb_quai_messages_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_p2p_pb_quai_messages_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QuaiMessage) String() string { @@ -440,7 +430,7 @@ func (*QuaiMessage) ProtoMessage() {} func (x *QuaiMessage) ProtoReflect() protoreflect.Message { mi := &file_p2p_pb_quai_messages_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -638,68 +628,6 @@ func file_p2p_pb_quai_messages_proto_init() { if File_p2p_pb_quai_messages_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_p2p_pb_quai_messages_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*GossipWorkObject); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_p2p_pb_quai_messages_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*GossipTransaction); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_p2p_pb_quai_messages_proto_msgTypes[2].Exporter = func(v any, i int) any { - switch v := v.(*QuaiRequestMessage); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_p2p_pb_quai_messages_proto_msgTypes[3].Exporter = func(v any, i int) any { - switch v := v.(*QuaiResponseMessage); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_p2p_pb_quai_messages_proto_msgTypes[4].Exporter = func(v any, i int) any { - switch v := v.(*QuaiMessage); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } file_p2p_pb_quai_messages_proto_msgTypes[2].OneofWrappers = []any{ (*QuaiRequestMessage_Hash)(nil), (*QuaiRequestMessage_Number)(nil), diff --git a/quai/api_backend.go b/quai/api_backend.go index e1dcd4548c..62f1ff6ec1 100644 --- a/quai/api_backend.go +++ b/quai/api_backend.go @@ -210,12 +210,20 @@ func (b *QuaiAPIBackend) StateAndHeaderByNumberOrHash(ctx context.Context, block return nil, nil, errors.New("invalid arguments; neither block nor hash specified") } -func (b *QuaiAPIBackend) AddressOutpoints(ctx context.Context, address common.Address) (map[string]*types.OutpointAndDenomination, error) { - return b.quai.core.GetOutpointsByAddress(address), nil +func (b *QuaiAPIBackend) GetOutpointsByAddressAndRange(ctx context.Context, address common.Address, start, end uint32) ([]*types.OutpointAndDenomination, error) { + return b.quai.core.GetOutpointsByAddressAndRange(address, start, end) } -func (b *QuaiAPIBackend) UTXOsByAddressAtState(ctx context.Context, state *state.StateDB, address common.Address) ([]*types.UtxoEntry, error) { - return b.quai.core.GetUTXOsByAddressAtState(state, address) +func (b *QuaiAPIBackend) AddressOutpoints(ctx context.Context, address common.Address) ([]*types.OutpointAndDenomination, error) { + return b.quai.core.GetOutpointsByAddress(address) +} + +func (b *QuaiAPIBackend) UTXOsByAddress(ctx context.Context, address common.Address) ([]*types.UtxoEntry, error) { + return b.quai.core.GetUTXOsByAddress(address) +} + +func (b *QuaiAPIBackend) WriteAddressOutpoints(outpoints map[[20]byte][]*types.OutpointAndDenomination) error { + return b.quai.core.WriteAddressOutpoints(outpoints) } func (b *QuaiAPIBackend) GetReceipts(ctx context.Context, hash common.Hash) (types.Receipts, error) { @@ -669,10 +677,6 @@ func (b *QuaiAPIBackend) UpdateEtxEligibleSlices(header *types.WorkObject, locat return b.quai.core.UpdateEtxEligibleSlices(header, location) } -func (b *QuaiAPIBackend) WriteAddressOutpoints(outpointsMap map[string]map[string]*types.OutpointAndDenomination) error { - return b.quai.core.WriteAddressOutpoints(outpointsMap) -} - func (b *QuaiAPIBackend) SanityCheckWorkObjectBlockViewBody(wo *types.WorkObject) error { return b.quai.core.SanityCheckWorkObjectBlockViewBody(wo) }