Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
e26cc07
fix: Withdraw proofs can be replayed to withdraw on behalf of users
SetarehGhorshi Mar 25, 2026
e228969
added prod-config
YadlaMani Apr 2, 2026
30e2bb6
fix: Equality, range and validity proofs for transfers are verified i…
SetarehGhorshi Apr 6, 2026
c40db7c
fix: ProofErrDeserialization is zero
SetarehGhorshi Apr 6, 2026
a1bce4b
fix: ZKP verification performs unmetered computation callable by any …
SetarehGhorshi Apr 7, 2026
2eb73f6
fix: The validate part of the function ValidateAndAppendPoint does no…
SetarehGhorshi Apr 7, 2026
a2f753a
Merge pull request #259 from Fairblock/prod-config
ap0calypse644 Apr 8, 2026
a050086
fix: Points are decompressed twice
SetarehGhorshi Apr 8, 2026
d2fbaf7
fix: VartimeMultiScalarMul silently accepts all proofs on length mism…
SetarehGhorshi Apr 8, 2026
c623198
fix: Validity Proof Y2 Not Validated for Identity Point
SetarehGhorshi Apr 15, 2026
163444c
fix: No Cross-Proof context binding in proof verification
SetarehGhorshi Apr 16, 2026
3caf39f
fix: Old dependencies with multiple CVEs published
ap0calypse644 Apr 17, 2026
bc437f4
default trusted contract added in devnet script
SetarehGhorshi Apr 23, 2026
a51f7b3
enabling anonymous confidential transfer
ap0calypse644 Apr 24, 2026
c51448f
enabling anonymous confidential transfer
ap0calypse644 Apr 24, 2026
5411cd2
enabling anonymous confidential transfer
ap0calypse644 Apr 24, 2026
859a4c5
enabling anonymous confidential transfer
ap0calypse644 Apr 24, 2026
a510a62
Merge pull request #260 from Fairblock/anonymous-transfer
ap0calypse644 Apr 25, 2026
ede664a
adding unit tests
ap0calypse644 Apr 28, 2026
30c424f
adding e2e tests
ap0calypse644 Apr 28, 2026
5cb7d39
fix: No point validation or check for identity is done on pubkey, cip…
SetarehGhorshi Apr 28, 2026
7592f0b
fix: Fixed-size proof endpoints accept oversized payloads and ignore …
SetarehGhorshi Apr 28, 2026
af98083
fix: Proof Transcripts Contain Unnecessary Operations and Porting Art…
SetarehGhorshi Apr 28, 2026
28d39e6
fix: Generator H is not explicitly aligned with the Rust reference
SetarehGhorshi Apr 28, 2026
08ff5e1
adding more tests
SetarehGhorshi Apr 29, 2026
f48d889
additional tests
SetarehGhorshi May 6, 2026
fa59b36
benchmarks
SetarehGhorshi May 6, 2026
ffc5c96
fixing a few tests
SetarehGhorshi May 6, 2026
34f1689
fix: minor queue removal bug
ap0calypse644 May 13, 2026
8eeb349
fix: cross-proof context binding
SetarehGhorshi May 19, 2026
34f73de
fix: unit tests
ap0calypse644 May 21, 2026
f53763e
ci/cd
YadlaMani May 22, 2026
e74c0c0
static-fix
YadlaMani May 22, 2026
080f663
static-fix
YadlaMani May 22, 2026
8d69e6a
fixed fmt issue
YadlaMani May 22, 2026
0ae247b
added deploy-script to cd
YadlaMani May 22, 2026
b7d9de1
Merge pull request #261 from Fairblock/audit-3.0
ap0calypse644 May 25, 2026
752da1f
gosec in ci
YadlaMani May 25, 2026
123e8df
Merge branch 'anonymous-transfer' of https://github.com/Fairblock/fai…
YadlaMani May 25, 2026
b3d6a1f
fmt
YadlaMani May 25, 2026
ee06493
fix zkp issue
SetarehGhorshi May 25, 2026
67f23a5
add fairycloak in cd
YadlaMani May 27, 2026
3816a06
Merge branch 'anonymous-transfer' of https://github.com/Fairblock/fai…
YadlaMani May 27, 2026
a09b08b
updating keyshare slashing logic
ap0calypse644 Jun 3, 2026
392d555
updating authority of pep and keyshare modules
ap0calypse644 Jun 5, 2026
ea5535a
fix-tests
YadlaMani Jun 8, 2026
f87fc1b
updating storage structure of encrypted txs
ap0calypse644 Jul 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 111 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
name: Restart Fairyring

on:
push:
branches: ["anonymous-transfer"]
pull_request:
branches: ["anonymous-transfer"]

concurrency:
group: deploy-${{ github.ref }}
cancel-in-progress: true

jobs:
tests:
name: Tests
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
- run: go mod download
- run: go test ./... -cover -timeout 8m
security:
name: Gosec
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
- run: go install github.com/securego/gosec/v2/cmd/gosec@latest
- run: gosec -exclude-generated ./...
style:
name: Style
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
- run: test -z "$(gofmt -l .)"
- run: go install honnef.co/go/tools/cmd/staticcheck@latest
# exclude api/ (generated protobuf); suppress doc/naming style checks (ST1000/ST1003/ST1020/ST1021)
# and deprecated-usage noise in generated .pb.gw.go files (SA1019)
- run: staticcheck -checks "all,-SA1019,-ST1000,-ST1003,-ST1020,-ST1021" $(go list ./... | grep -v 'fairyring/api')

restart-fairyring:
name: Restart Fairyring
runs-on: ubuntu-latest
needs: [tests, style, security]
if: github.event_name == 'push'
steps:
- name: SSH and Restart Fairyring
uses: appleboy/ssh-action@v1.2.0
with:
host: ${{ secrets.GCP_HOST }}
username: mani
key: ${{ secrets.GCP_SSH_KEY }}
script: |
/home/mani/scripts/deploy-fairyring.sh

deploy-contracts:
name: Deploy Contracts
runs-on: ubuntu-latest
needs: restart-fairyring
if: github.event_name == 'push'
steps:
- name: SSH and Deploy Contracts
uses: appleboy/ssh-action@v1.2.0
with:
host: ${{ secrets.GCP_HOST }}
username: mani
key: ${{ secrets.GCP_SSH_KEY }}
script: |
/home/mani/scripts/deploy-contracts.sh

restart-fairyport:
name: Restart Fairyport
runs-on: ubuntu-latest
needs: deploy-contracts
if: github.event_name == 'push'
steps:
- name: SSH and Restart Fairyport
uses: appleboy/ssh-action@v1.2.0
with:
host: ${{ secrets.GCP_HOST }}
username: mani
key: ${{ secrets.GCP_SSH_KEY }}
script: |
/home/mani/scripts/deploy-fairyport.sh
restart-fairycloak:
name: Restart Fairycloak
runs-on: ubuntu-latest
needs: restart-fairyport
if: github.event_name == 'push'
steps:
- name: SSH and Restart Fairycloak
uses: appleboy/ssh-action@v1.2.0
with:
host: ${{ secrets.GCP_HOST }}
username: mani
key: ${{ secrets.GCP_SSH_KEY }}
script: |
/home/mani/scripts/deploy-fairycloak.sh
48 changes: 0 additions & 48 deletions .github/workflows/release.yml

This file was deleted.

15 changes: 13 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ DOCKER := $(shell which docker)
BUILDDIR ?= $(CURDIR)/build

GO_SYSTEM_VERSION = $(shell go version | cut -c 14- | cut -d' ' -f1 | cut -d'.' -f1-2)
REQUIRE_GO_VERSION = 1.22
REQUIRE_GO_VERSION = 1.23

export GO111MODULE = on

Expand Down Expand Up @@ -189,6 +189,11 @@ integration-test-all: init-test-framework \
devnet-up: init-devnet
@echo "Fairyring Devnet is now running in the background, run 'make devnet-down' to stop devnet."

prod-config: install
@echo "Configuring fairyring, fairyringclient, ShareGenerationClient and fairyport (no data reset, no processes started)..."
./scripts/devnet/prod-config.sh
@echo "Run 'make devnet-down' if you need to stop any already-running processes."

devnet-down:
@echo "Killing fairyringd, fairyport, fairyringclient, ShareGenerationClient and removing previous data"
-@killall fairyringd 2>/dev/null
Expand Down Expand Up @@ -269,6 +274,12 @@ else
@go test -mod=readonly $(ARGS) $(TEST_PACKAGES)
endif

FUZZTIME ?= 30s
test-zkp-fuzz:
@echo "--> Fuzzing ZKP proof-data deserialization for $(FUZZTIME)"
@go test -mod=readonly -run=^$$ -fuzz=^FuzzProofDataDeserialization$$ -fuzztime=$(FUZZTIME) ./x/zkp/keeper/...
.PHONY: test-zkp-fuzz

###############################################################################
### Linting ###
###############################################################################
Expand Down Expand Up @@ -316,4 +327,4 @@ proto-swagger-gen:
@echo "Generating Protobuf Swagger"
@sh ./proto/scripts/protoc-swagger-gen.sh

.PHONY: proto-gen proto-doc proto-swagger-gen
.PHONY: proto-gen proto-doc proto-swagger-gen
6 changes: 4 additions & 2 deletions abci/abci_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/stretchr/testify/suite"

"github.com/skip-mev/block-sdk/v2/abci"
"github.com/Fairblock/fairyring/abci"
"github.com/skip-mev/block-sdk/v2/block"
"github.com/skip-mev/block-sdk/v2/lanes/free"
"github.com/skip-mev/block-sdk/v2/testutils"
Expand Down Expand Up @@ -956,7 +956,9 @@ func (s *ProposalsTestSuite) TestProcessProposal() {
proposal := [][]byte{txbz}

resp, err := proposalHandler(s.ctx, &cometabci.RequestProcessProposal{Txs: proposal, Height: 2})
s.Require().Error(err)
if err != nil {
s.Require().Contains(err.Error(), "failed to process proposal")
}
s.Require().Equal(&cometabci.ResponseProcessProposal{Status: cometabci.ResponseProcessProposal_REJECT}, resp)
})

Expand Down
Loading
Loading