Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add shares inclusion proofs #1233

Merged
merged 11 commits into from
Jan 17, 2023

Conversation

rach-id
Copy link
Member

@rach-id rach-id commented Jan 13, 2023

Overview

This PR contains the changes proposed by #1042 and #1072.

The reason for creating a new PR is to target main branch instead of qgb-integration without having to cherry pick all the changes.

Closes: #1071 and #1044.

The other PRs will be closed.

Checklist

  • New and updated code has appropriate documentation
  • New and updated code has new and/or updated testing
  • Required CI checks are passing
  • Visual proof for any user facing features like CLI or documentation updates
  • Linked issues closed with keywords

@rach-id rach-id added enhancement New feature or request x/qgb testing items that are strictly related to adding or extending test coverage labels Jan 13, 2023
@rach-id rach-id self-assigned this Jan 13, 2023
@rach-id rach-id linked an issue Jan 13, 2023 that may be closed by this pull request
@MSevey MSevey requested a review from a team January 13, 2023 13:04
return beginShare, endShare, err
}

if len(decodedTx.GetMsgs()) == 0 {
Copy link
Member Author

@rach-id rach-id Jan 13, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[note to reviewers]
This helper method only proves one message per blob. We add multiple messages later

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[blocking question]

This helper method only proves one message per blob. We add multiple messages later

should we check for or something similar then?

Suggested change
if len(decodedTx.GetMsgs()) == 0 {
if len(decodedTx.GetMsgs()) != 1 {

note, preview does not also change the error message below which we'll also have to change should this be accepted

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a subsequent check:

	if len(decodedTx.GetMsgs()) > 1 {
		return beginShare, endShare, fmt.Errorf("PayForBlob contains multiple messages and this is not currently supported")
	}

that should catch that

@rach-id rach-id mentioned this pull request Jan 13, 2023
5 tasks
app/test/integration_test.go Show resolved Hide resolved
Comment on lines 342 to 343
// get the message shares
beginMsgShare, endMsgShare, err := prove.MsgSharesPosition(blockRes.Block.Txs[txResp.Index])
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nit] rename message to blob so something like:

		// get the blob shares
		beginBlobShare, endBlobShare, err := prove.BlobSharePositions(blockRes.Block.Txs[txResp.Index])

also consider renaming MsgSharesPosition => BlobSharePositions because the function appears to return two positions. Alternative naming proposal: BlobShareRange

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines 346 to 347
// verify the message shares proof
msgProof, err := node.ProveShares(
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nit] rename message to blob

		// verify the blob shares proof
		blobProof, err := node.ProveShares(

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

// include a given txIndex. Returns an error if index is greater than the length
// of txs.
func txSharePosition(txs types.Txs, txIndex uint64) (startSharePos, endSharePos uint64, err error) {
func TxSharePosition(txs types.Txs, txIndex uint64) (startSharePos, endSharePos uint64, err error) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[optional][can be a FLUP issue] we may consider renaming to TxSharePositions because this function returns multiple positions. Alternative naming proposal: TxShareRange

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does FLUP mean? :D

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FLUP: Follow-Up

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, sure #1241, thanks

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this func was original done in core before our rather massive refactors to the shares pkg, so just noting mentally that we really need to refactor this one as well. Surprised this works tbh #703

// where a given message, referenced by its wrapped pfb transaction, was published at.
// Note: only supports transactions containing a single message
func MsgSharesPosition(tx types.Tx) (beginShare uint64, endShare uint64, err error) {
unwrappedTx, isMalleated := types.UnmarshalIndexWrapper(tx)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nit] consider avoiding the malleated terminology given there is no more malleation

Suggested change
unwrappedTx, isMalleated := types.UnmarshalIndexWrapper(tx)
indexWrappedTx, isIndexWrapped := types.UnmarshalIndexWrapper(tx)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

// example path for proving the set of shares [3, 5]:
// custom/shareInclusionProof/3/5
func QueryShareInclusionProof(_ sdk.Context, path []string, req abci.RequestQuery) ([]byte, error) {
// parse the shares range from the path
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// parse the shares range from the path
// parse the share range from the path

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines 64 to 66
// QueryShareInclusionProof defines the logic performed when querying for the inclusion
// proofs of a set of shares to the data root.
// the shares range should be appended to the path.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nit] sentence case godoc comments

Suggested change
// QueryShareInclusionProof defines the logic performed when querying for the inclusion
// proofs of a set of shares to the data root.
// the shares range should be appended to the path.
// QueryShareInclusionProof defines the logic performed when querying for the
// inclusion proofs of a set of shares to the data root. The share range should
// be appended to the path. Example path for proving the set of shares [3, 5]:
// custom/shareInclusionProof/3/5

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

}

if endingShare < startShare {
return nil, fmt.Errorf("ending share %d should be higher than starting share %d", endingShare, startShare)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nit] the endingShare could be the same as the startingShare so the error message is incorrect

Suggested change
return nil, fmt.Errorf("ending share %d should be higher than starting share %d", endingShare, startShare)
return nil, fmt.Errorf("ending share %d cannot be lower than starting share %d", endingShare, startShare)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


for i, n := range rawShares[startShare:endingShare] {
if !bytes.Equal(nID, n.NamespaceID()) {
return nil, fmt.Errorf("shares range contain different namespaces: %d, %d %d", nID, n.NamespaceID(), i)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[question] is the index helpful in this error message? If not, proposal to remove. If yes, proposal to prefix it so their isn't a number in the error message without additional context.

Suggested change
return nil, fmt.Errorf("shares range contain different namespaces: %d, %d %d", nID, n.NamespaceID(), i)
return nil, fmt.Errorf("share range contains different namespaces: %d and %d", nID, n.NamespaceID())

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@@ -26,6 +28,25 @@ func GenerateRandomlySizedBlobs(count, maxBlobSize int) []types.Blob {
return blobs
}

// generateBlobsWithNamespace generates randomly sized blobs with
// namespace ID `nID`.
func GenerateBlobsWithNamespace(count, msgSize int, nID nmtnamespace.ID) types.BlobsByNamespace {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nit] msg => blob

Suggested change
func GenerateBlobsWithNamespace(count, msgSize int, nID nmtnamespace.ID) types.BlobsByNamespace {
func GenerateBlobsWithNamespace(count, blobSize int, nID nmtnamespace.ID) types.BlobsByNamespace {

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

}

// wait a few blocks to clear the txs
for i := 0; i < 20; i++ {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[non-blocking] probably a worthwhile testing util helper

func WaitForNBlocks(num int) {
  for i := 0; i < n; i++ {
    require.NoError(s.network.WaitForNextBlock())
  }
}

Copy link
Member Author

@rach-id rach-id Jan 14, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Created an issue #1238 since we're using this in many tests. So, it makes more sense to have a separate PR making the changes throughout the whole repo. Thanks a lot for pointing it out 👍

@@ -284,3 +284,73 @@ func queryTx(clientCtx client.Context, hashHexStr string, prove bool) (*rpctypes

return node.Tx(context.Background(), hash, prove)
}

func (s *IntegrationTestSuite) TestSharesInclusionProof() {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
func (s *IntegrationTestSuite) TestSharesInclusionProof() {
func (s *IntegrationTestSuite) TestShareInclusionProof() {

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

require.NoError(err)

// verify the blob shares proof
msgProof, err := node.ProveShares(
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
msgProof, err := node.ProveShares(
blobProof, err := node.ProveShares(

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

require.NoError(txProof.Validate(blockRes.Block.DataHash))

// get the blob shares
beginMsgShare, endMsgShare, err := prove.BlobShareRange(blockRes.Block.Txs[txResp.Index])
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
beginMsgShare, endMsgShare, err := prove.BlobShareRange(blockRes.Block.Txs[txResp.Index])
beginBlobShare, endBlobShare, err := prove.BlobShareRange(blockRes.Block.Txs[txResp.Index])

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@@ -107,6 +117,49 @@ func txSharePosition(txs types.Txs, txIndex uint64) (startSharePos, endSharePos
return startSharePos, endSharePos, nil
}

// BlobShareRange returns the start and end positions for the shares
// where a given message, referenced by its wrapped pfb transaction, was published at.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// where a given message, referenced by its wrapped pfb transaction, was published at.
// where a given blob, referenced by its wrapped PFB transaction, was published at.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@@ -107,6 +117,49 @@ func txSharePosition(txs types.Txs, txIndex uint64) (startSharePos, endSharePos
return startSharePos, endSharePos, nil
}

// BlobShareRange returns the start and end positions for the shares
// where a given message, referenced by its wrapped pfb transaction, was published at.
// Note: only supports transactions containing a single message
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// Note: only supports transactions containing a single message
// Note: only supports transactions containing a single blob

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

// SharesInclusion generates an nmt inclusion proof for a set of shares to the data root.
// Expects the share range to be pre-validated.
// Note: only supports inclusion proofs for shares belonging to the same namespace.
func SharesInclusion(
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[optional] this function name seems a bit ambiguous. Do these naming proposals convey it's behavior any clearer:

  • GenerateShareInclusionProof
  • NewShareInclusionProof

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines +105 to +106
// not setting useShareIndexes because the transactions indexes do not refer
// to the messages because the square and transactions were created manually.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nit] the following line sets useShareIndexes=false so minor improvement

Suggested change
// not setting useShareIndexes because the transactions indexes do not refer
// to the messages because the square and transactions were created manually.
// Explicitly set useShareIndexes=false because the transaction indexes do not refer
// to the blobs because the data square and transactions were created manually.

On a related note, do we want a test that uses useShareIndexes=true considering that will be the default case soon?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

return rawTxProof, nil
}

// ParseNamespaceID validates the shares range and returns their namespace ID.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// ParseNamespaceID validates the shares range and returns their namespace ID.
// ParseNamespaceID validates the share range contains only one namespace and returns that namespace ID.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

}

// ParseNamespaceID validates the shares range and returns their namespace ID.
func ParseNamespaceID(rawShares []shares.Share, startShare int64, endingShare int64) (namespace.ID, error) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nit] for consistency, can both params please use the same state/tense?

Suggested change
func ParseNamespaceID(rawShares []shares.Share, startShare int64, endingShare int64) (namespace.ID, error) {
func ParseNamespaceID(rawShares []shares.Share, startShare int64, endShare int64) (namespace.ID, error) {

alternatively: startingShare and endingShare

Accepting this proposal implies correcting the error messages below

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@@ -26,6 +28,25 @@ func GenerateRandomlySizedBlobs(count, maxBlobSize int) []types.Blob {
return blobs
}

// generateBlobsWithNamespace generates randomly sized blobs with
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// generateBlobsWithNamespace generates randomly sized blobs with
// GenerateBlobsWithNamespace generates blobs with

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

@evan-forbes evan-forbes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice, thanks @sweexordious! only left a single blocking question, let's try to merge this ASAP

s.T().Skip("skipping block size integration test in short mode.")
s.T().Skip("skipping app/test/integration_test in short mode.")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[optional nit]
this feels out of scope of this PR, also what is the ".../integration_test" supposed to refer to? isn't the file named something else?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was named block_size_test or similar, but since I added the proofs test there too, I changed it to integration_test

// include a given txIndex. Returns an error if index is greater than the length
// of txs.
func txSharePosition(txs types.Txs, txIndex uint64) (startSharePos, endSharePos uint64, err error) {
func TxSharePosition(txs types.Txs, txIndex uint64) (startSharePos, endSharePos uint64, err error) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this func was original done in core before our rather massive refactors to the shares pkg, so just noting mentally that we really need to refactor this one as well. Surprised this works tbh #703

Comment on lines 130 to 132
decoder := encCfg.TxConfig.TxDecoder()

decodedTx, err := decoder(indexWrappedTx.Tx)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[very optional]
feel free to ignore, but this is slightly more like the other times we use this function

Suggested change
decoder := encCfg.TxConfig.TxDecoder()
decodedTx, err := decoder(indexWrappedTx.Tx)
decodedTx, err := encCfg.TxConfig.TxDecoder()(indexWrappedTx.Tx)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

return beginShare, endShare, err
}

if len(decodedTx.GetMsgs()) == 0 {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[blocking question]

This helper method only proves one message per blob. We add multiple messages later

should we check for or something similar then?

Suggested change
if len(decodedTx.GetMsgs()) == 0 {
if len(decodedTx.GetMsgs()) != 1 {

note, preview does not also change the error message below which we'll also have to change should this be accepted

@MSevey MSevey requested a review from a team January 17, 2023 10:40
@rach-id
Copy link
Member Author

rach-id commented Jan 17, 2023

Merging 🎉 Thanks a lot everyone for the reviews

@rach-id rach-id merged commit 007b350 into celestiaorg:main Jan 17, 2023
rach-id added a commit that referenced this pull request Jan 23, 2023
## Overview

This command verifies that some shares were attested to in the QGB smart
contract.

Blocked by #1233

Closes #1184

## Checklist

<!-- 
Please complete the checklist to ensure that the PR is ready to be
reviewed.

IMPORTANT:
PRs should be left in Draft until the below checklist is completed.
-->

- [ ] New and updated code has appropriate documentation
- [ ] New and updated code has new and/or updated testing
- [ ] Required CI checks are passing
- [ ] Visual proof for any user facing features like CLI or
documentation updates
- [ ] Linked issues closed with keywords
rootulp added a commit to rootulp/celestia-app that referenced this pull request Jan 29, 2023
refactor: rename stripCompactShares to stripPrefix

chore: rename to NewShareInclusionProof

feat!: keep track of share indexes when splitting txs

fix lint

wip: test write tx

revert!: multi share commitment (celestiaorg#1275)

Closes celestiaorg#1231

feat: Add QGB verification command (celestiaorg#1236)

This command verifies that some shares were attested to in the QGB smart
contract.

Blocked by celestiaorg#1233

Closes celestiaorg#1184

<!--
Please complete the checklist to ensure that the PR is ready to be
reviewed.

IMPORTANT:
PRs should be left in Draft until the below checklist is completed.
-->

- [ ] New and updated code has appropriate documentation
- [ ] New and updated code has new and/or updated testing
- [ ] Required CI checks are passing
- [ ] Visual proof for any user facing features like CLI or
documentation updates
- [ ] Linked issues closed with keywords

feat: check that `MsgPayForBlob` components are non-zero (celestiaorg#1279)

feat: compact share splitter tracks tx share ranges

test: TestExport_txKeyToShareIndex

extract mergeMaps

fix lint

test: TxSharePosition

test NewTxInclusionProof

fix comment

delete unused file

wip: TestSplitTxs

improve largeTx test case

fix: shift pfbTxShare range by len of txShares

refactor: use css.Count() for end share index

refactor: rename to shareRanges

feat: enforce that PFBs are always ordered after normal transactions (celestiaorg#1273)

Closes: celestiaorg#1230

chore(deps): Bump github.com/celestiaorg/nmt from 0.12.0 to 0.13.0 (celestiaorg#1284)

fix: IsCompactShare for PFB tx shares (celestiaorg#1281)

Closes celestiaorg#1280

chore: fix naming from `client/cli/wirepayfordata.go` to blob (celestiaorg#1288)

<!--
Please read and fill out this form before submitting your PR.

Please make sure you have reviewed our contributors guide before
submitting your
first PR.
-->

After updating my forks, I've seen that `wirepayfordata` haven't
received renaming treatment.
Hence this PR solves this little thingy.

We can also have naming like `wirepayfordatablob`. Still LMK if you
prefer the later
<!--
Please provide an explanation of the PR, including the appropriate
context,
background, goal, and rationale. If there is an issue with this
information,
please provide a tl;dr and link the issue.
-->

<!--
Please complete the checklist to ensure that the PR is ready to be
reviewed.

IMPORTANT:
PRs should be left in Draft until the below checklist is completed.
-->

- [x] New and updated code has appropriate documentation
- [x] New and updated code has new and/or updated testing
- [x] Required CI checks are passing
- [x] Visual proof for any user facing features like CLI or
documentation updates
- [x] Linked issues closed with keywords

chore: rename message to blob in QGB verify command (celestiaorg#1289)

<!--
Please read and fill out this form before submitting your PR.

Please make sure you have reviewed our contributors guide before
submitting your
first PR.
-->

<!--
Please provide an explanation of the PR, including the appropriate
context,
background, goal, and rationale. If there is an issue with this
information,
please provide a tl;dr and link the issue.
-->

<!--
Please complete the checklist to ensure that the PR is ready to be
reviewed.

IMPORTANT:
PRs should be left in Draft until the below checklist is completed.
-->

- [ ] New and updated code has appropriate documentation
- [ ] New and updated code has new and/or updated testing
- [ ] Required CI checks are passing
- [ ] Visual proof for any user facing features like CLI or
documentation updates
- [ ] Linked issues closed with keywords

sanity check that raw data is in shares

fix lint

NewTxInclusionProof returns a TxProof

fix: lint

Update pkg/prove/proof.go

Co-authored-by: CHAMI Rachid <chamirachid1@gmail.com>

Update pkg/shares/split_compact_shares.go

Co-authored-by: CHAMI Rachid <chamirachid1@gmail.com>

refactor: remove err return param

chore(deps): Bump golangci/golangci-lint-action from 3.3.1 to 3.4.0 (celestiaorg#1283)

Bumps
[golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action)
from 3.3.1 to 3.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/golangci/golangci-lint-action/releases">golangci/golangci-lint-action's
releases</a>.</em></p>
<blockquote>
<h2>v3.4.0</h2>
<h2>What's Changed</h2>
<ul>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code>
from 5.42.0 to 5.42.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/601">golangci/golangci-lint-action#601</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from
5.42.0 to 5.42.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/602">golangci/golangci-lint-action#602</a></li>
<li>build(deps-dev): bump eslint from 8.27.0 to 8.28.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/604">golangci/golangci-lint-action#604</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from
5.42.1 to 5.43.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/605">golangci/golangci-lint-action#605</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code>
from 5.42.1 to 5.43.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/607">golangci/golangci-lint-action#607</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code>
from 5.43.0 to 5.44.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/609">golangci/golangci-lint-action#609</a></li>
<li>build(deps-dev): bump prettier from 2.7.1 to 2.8.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/611">golangci/golangci-lint-action#611</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from
5.43.0 to 5.44.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/610">golangci/golangci-lint-action#610</a></li>
<li>build(deps-dev): bump typescript from 4.8.4 to 4.9.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/606">golangci/golangci-lint-action#606</a></li>
<li>build(deps): bump <code>@​types/node</code> from 18.11.9 to 18.11.10
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/614">golangci/golangci-lint-action#614</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from
5.44.0 to 5.45.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/615">golangci/golangci-lint-action#615</a></li>
<li>build(deps-dev): bump eslint from 8.28.0 to 8.29.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/617">golangci/golangci-lint-action#617</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code>
from 5.44.0 to 5.45.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/616">golangci/golangci-lint-action#616</a></li>
<li>build(deps-dev): bump typescript from 4.9.3 to 4.9.4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/619">golangci/golangci-lint-action#619</a></li>
<li>build(deps-dev): bump <code>@​vercel/ncc</code> from 0.34.0 to
0.36.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/620">golangci/golangci-lint-action#620</a></li>
<li>build(deps-dev): bump prettier from 2.8.0 to 2.8.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/622">golangci/golangci-lint-action#622</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from
5.45.0 to 5.46.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/621">golangci/golangci-lint-action#621</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code>
from 5.45.0 to 5.46.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/623">golangci/golangci-lint-action#623</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from
5.46.0 to 5.46.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/625">golangci/golangci-lint-action#625</a></li>
<li>build(deps): bump <code>@​types/node</code> from 18.11.10 to
18.11.17 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/628">golangci/golangci-lint-action#628</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code>
from 5.46.0 to 5.46.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/626">golangci/golangci-lint-action#626</a></li>
<li>build(deps-dev): bump eslint from 8.29.0 to 8.30.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/627">golangci/golangci-lint-action#627</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from
5.46.1 to 5.47.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/633">golangci/golangci-lint-action#633</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code>
from 5.46.1 to 5.47.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/634">golangci/golangci-lint-action#634</a></li>
<li>build(deps): bump <code>@​actions/cache</code> from 3.0.6 to 3.1.0
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/632">golangci/golangci-lint-action#632</a></li>
<li>build(deps-dev): bump eslint from 8.30.0 to 8.31.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/635">golangci/golangci-lint-action#635</a></li>
<li>build(deps): bump <code>@​types/node</code> from 18.11.17 to
18.11.18 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/636">golangci/golangci-lint-action#636</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from
5.47.0 to 5.47.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/637">golangci/golangci-lint-action#637</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code>
from 5.47.0 to 5.47.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/639">golangci/golangci-lint-action#639</a></li>
<li>build(deps): bump <code>@​actions/cache</code> from 3.1.0 to 3.1.1
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/638">golangci/golangci-lint-action#638</a></li>
<li>build(deps): bump json5 from 1.0.1 to 1.0.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/642">golangci/golangci-lint-action#642</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code>
from 5.47.1 to 5.48.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/643">golangci/golangci-lint-action#643</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from
5.47.1 to 5.48.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/644">golangci/golangci-lint-action#644</a></li>
<li>build(deps-dev): bump prettier from 2.8.1 to 2.8.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/645">golangci/golangci-lint-action#645</a></li>
<li>build(deps-dev): bump eslint-config-prettier from 8.5.0 to 8.6.0 by
<a href="https://github.com/dependabot"><code>@​dependabot</code></a> in
<a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/646">golangci/golangci-lint-action#646</a></li>
<li>build(deps): bump <code>@​actions/cache</code> from 3.1.1 to 3.1.2
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/647">golangci/golangci-lint-action#647</a></li>
<li>Support Caching in Mono Repo by <a
href="https://github.com/bbernays"><code>@​bbernays</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/629">golangci/golangci-lint-action#629</a></li>
<li>build(deps-dev): bump eslint-plugin-import from 2.26.0 to 2.27.4 by
<a href="https://github.com/dependabot"><code>@​dependabot</code></a> in
<a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/650">golangci/golangci-lint-action#650</a></li>
<li>build(deps-dev): bump prettier from 2.8.2 to 2.8.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/651">golangci/golangci-lint-action#651</a></li>
<li>build(deps-dev): bump eslint from 8.31.0 to 8.32.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/652">golangci/golangci-lint-action#652</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from
5.48.0 to 5.48.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/653">golangci/golangci-lint-action#653</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code>
from 5.48.0 to 5.48.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/654">golangci/golangci-lint-action#654</a></li>
<li>build(deps-dev): bump eslint-plugin-import from 2.27.4 to 2.27.5 by
<a href="https://github.com/dependabot"><code>@​dependabot</code></a> in
<a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/655">golangci/golangci-lint-action#655</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from
5.48.1 to 5.48.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/656">golangci/golangci-lint-action#656</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code>
from 5.48.1 to 5.48.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/657">golangci/golangci-lint-action#657</a></li>
<li>build(deps-dev): bump eslint-plugin-simple-import-sort from 8.0.0 to
9.0.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/658">golangci/golangci-lint-action#658</a></li>
</ul>
<h2>New Contributors</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golangci/golangci-lint-action/commit/08e2f20817b15149a52b5b3ebe7de50aff2ba8c5"><code>08e2f20</code></a>
build(deps-dev): bump eslint-plugin-simple-import-sort from 8.0.0 to
9.0.0 (#...</li>
<li><a
href="https://github.com/golangci/golangci-lint-action/commit/8d110786c7428017295d1011939074e4880134c5"><code>8d11078</code></a>
build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code>
from 5.48.1 to 5.48.2 ...</li>
<li><a
href="https://github.com/golangci/golangci-lint-action/commit/724a5425dbb3605c8193e1236b39684908fe1faf"><code>724a542</code></a>
build(deps-dev): bump <code>@​typescript-eslint/parser</code> from
5.48.1 to 5.48.2 (<a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/issues/656">#656</a>)</li>
<li><a
href="https://github.com/golangci/golangci-lint-action/commit/ac0edcd804b1b5a5a373d15812e3ca8e3009aaff"><code>ac0edcd</code></a>
build(deps-dev): bump eslint-plugin-import from 2.27.4 to 2.27.5 (<a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/issues/655">#655</a>)</li>
<li><a
href="https://github.com/golangci/golangci-lint-action/commit/d6404ce2933838656ca2d23ed1d7c9bf7177e38b"><code>d6404ce</code></a>
build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code>
from 5.48.0 to 5.48.1 ...</li>
<li><a
href="https://github.com/golangci/golangci-lint-action/commit/cb88bde406513ba2b8f95895720d89bf588e2908"><code>cb88bde</code></a>
build(deps-dev): bump <code>@​typescript-eslint/parser</code> from
5.48.0 to 5.48.1 (<a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/issues/653">#653</a>)</li>
<li><a
href="https://github.com/golangci/golangci-lint-action/commit/f26018a9c0d2934ae3bdaadb0d6bbbbe168f34ac"><code>f26018a</code></a>
build(deps-dev): bump eslint from 8.31.0 to 8.32.0 (<a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/issues/652">#652</a>)</li>
<li><a
href="https://github.com/golangci/golangci-lint-action/commit/78451d099ca9433b4b6a0b5d9c7a2d7720928976"><code>78451d0</code></a>
build(deps-dev): bump prettier from 2.8.2 to 2.8.3 (<a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/issues/651">#651</a>)</li>
<li><a
href="https://github.com/golangci/golangci-lint-action/commit/5570e667056be8be4c7e99ba31339d64a2c7ab29"><code>5570e66</code></a>
build(deps-dev): bump eslint-plugin-import from 2.26.0 to 2.27.4 (<a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/issues/650">#650</a>)</li>
<li><a
href="https://github.com/golangci/golangci-lint-action/commit/1626f2bd943cd202b1338d967340eb6c987e5067"><code>1626f2b</code></a>
Support Caching in Mono Repo (<a
href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/issues/629">#629</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/golangci/golangci-lint-action/compare/v3.3.1...v3.4.0">compare
view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=golangci/golangci-lint-action&package-manager=github_actions&previous-version=3.3.1&new-version=3.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

chore!: rename package prove to proof (celestiaorg#1291)

Closes celestiaorg#1290

refactor: use WriteTx

refactor: remove named return params

refactor: use shareRangeOffset

update to local celestia-core

test: integ tests to use prove=true

fix godoc

chore: rename sharesProofs to shareProofs

Update pkg/shares/share_splitting.go

Co-authored-by: Sanaz Taheri <35961250+staheri14@users.noreply.github.com>

docs: describe mergeMaps

chore: add more test cases for the compact share splitter (celestiaorg#1295)

feat: Prevent any errors when creating the data folder (celestiaorg#1303)

Hello team,

This is an small feature/fix that prevents any error when the container
starts and try to create the folder in `${CELESTIA_HOME}/data` using the
option `-p` in the `mkdir` command.

Thank you!

<!--
Please complete the checklist to ensure that the PR is ready to be
reviewed.

IMPORTANT:
PRs should be left in Draft until the below checklist is completed.
-->

- [x] New and updated code has appropriate documentation
- [x] New and updated code has new and/or updated testing
- [x] Required CI checks are passing
- [x] Visual proof for any user facing features like CLI or
documentation updates
- [x] Linked issues closed with keywords

chore!: rename MsgPayForBlob to MsgPayForBlobs (celestiaorg#1304)

Closes: celestiaorg#1221

Co-authored-by: Rootul P <rootulp@gmail.com>

chore: downgrade nmt to 0.12.0 (celestiaorg#1307)

Downgrade to NMT 0.12.0 while @distractedm1nd @liamsi investigate an
issue in 0.13.0

chore: rename variable to shareProof

lint with --verbose flag

update to 1.50.1
evan-forbes pushed a commit that referenced this pull request Feb 27, 2023
## Overview

This command verifies that some shares were attested to in the QGB smart
contract.

Blocked by #1233

Closes #1184

## Checklist

<!-- 
Please complete the checklist to ensure that the PR is ready to be
reviewed.

IMPORTANT:
PRs should be left in Draft until the below checklist is completed.
-->

- [ ] New and updated code has appropriate documentation
- [ ] New and updated code has new and/or updated testing
- [ ] Required CI checks are passing
- [ ] Visual proof for any user facing features like CLI or
documentation updates
- [ ] Linked issues closed with keywords
0xchainlover pushed a commit to celestia-org/celestia-app that referenced this pull request Aug 1, 2024
## Overview

This command verifies that some shares were attested to in the QGB smart
contract.

Blocked by celestiaorg/celestia-app#1233

Closes celestiaorg/celestia-app#1184

## Checklist

<!-- 
Please complete the checklist to ensure that the PR is ready to be
reviewed.

IMPORTANT:
PRs should be left in Draft until the below checklist is completed.
-->

- [ ] New and updated code has appropriate documentation
- [ ] New and updated code has new and/or updated testing
- [ ] Required CI checks are passing
- [ ] Visual proof for any user facing features like CLI or
documentation updates
- [ ] Linked issues closed with keywords
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request testing items that are strictly related to adding or extending test coverage
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement shares inclusion integration test QGB custom query to generate inclusion proofs
4 participants