Compare commits
9
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
67d419e162 | ||
|
|
5df4f75dc2 | ||
|
|
a28fceaa55 | ||
|
|
37a0dca11e | ||
|
|
daba4ff5f0 | ||
|
|
244ca0b5f3 | ||
|
|
68ed494a6e | ||
|
|
fa0dfdfd9f | ||
|
|
19ae05f3b3 |
+171
-287
@@ -7,19 +7,14 @@ executors:
|
|||||||
golang:
|
golang:
|
||||||
docker:
|
docker:
|
||||||
# Must match GO_VERSION_MIN in project root
|
# Must match GO_VERSION_MIN in project root
|
||||||
- image: cimg/go:1.20.7
|
- image: cimg/go:1.18.8
|
||||||
resource_class: medium+
|
|
||||||
golang-2xl:
|
|
||||||
docker:
|
|
||||||
# Must match GO_VERSION_MIN in project root
|
|
||||||
- image: cimg/go:1.20.7
|
|
||||||
resource_class: 2xlarge
|
resource_class: 2xlarge
|
||||||
ubuntu:
|
ubuntu:
|
||||||
docker:
|
docker:
|
||||||
- image: ubuntu:20.04
|
- image: ubuntu:20.04
|
||||||
|
|
||||||
commands:
|
commands:
|
||||||
build-platform-specific:
|
prepare:
|
||||||
parameters:
|
parameters:
|
||||||
linux:
|
linux:
|
||||||
default: true
|
default: true
|
||||||
@@ -36,13 +31,22 @@ commands:
|
|||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
- git_fetch_all_tags
|
- git_fetch_all_tags
|
||||||
- run: git submodule sync
|
|
||||||
- run: git submodule update --init
|
|
||||||
- when:
|
- when:
|
||||||
condition: <<parameters.linux>>
|
condition: <<parameters.linux>>
|
||||||
steps:
|
steps:
|
||||||
- install-ubuntu-deps
|
- run:
|
||||||
- check-go-version
|
name: Check Go Version
|
||||||
|
command: |
|
||||||
|
v=`go version | { read _ _ v _; echo ${v#go}; }`
|
||||||
|
if [[ $v != `cat GO_VERSION_MIN` ]]; then
|
||||||
|
echo "GO_VERSION_MIN file does not match the go version being used."
|
||||||
|
echo "Please update image to cimg/go:`cat GO_VERSION_MIN` or update GO_VERSION_MIN to $v."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
- run: sudo apt-get update
|
||||||
|
- run: sudo apt-get install ocl-icd-opencl-dev libhwloc-dev
|
||||||
|
- run: sudo apt-get install python-is-python3
|
||||||
|
|
||||||
- when:
|
- when:
|
||||||
condition: <<parameters.darwin>>
|
condition: <<parameters.darwin>>
|
||||||
steps:
|
steps:
|
||||||
@@ -63,7 +67,8 @@ commands:
|
|||||||
name: Install Rust
|
name: Install Rust
|
||||||
command: |
|
command: |
|
||||||
curl https://sh.rustup.rs -sSf | sh -s -- -y
|
curl https://sh.rustup.rs -sSf | sh -s -- -y
|
||||||
- run: make deps
|
- run: git submodule sync
|
||||||
|
- run: git submodule update --init
|
||||||
download-params:
|
download-params:
|
||||||
steps:
|
steps:
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
@@ -72,7 +77,7 @@ commands:
|
|||||||
- 'v26-2k-lotus-params'
|
- 'v26-2k-lotus-params'
|
||||||
paths:
|
paths:
|
||||||
- /var/tmp/filecoin-proof-parameters/
|
- /var/tmp/filecoin-proof-parameters/
|
||||||
- run: ./lotus fetch-params 2048
|
- run: ./lotus fetch-params 2048
|
||||||
- save_cache:
|
- save_cache:
|
||||||
name: Save parameters cache
|
name: Save parameters cache
|
||||||
key: 'v26-2k-lotus-params'
|
key: 'v26-2k-lotus-params'
|
||||||
@@ -94,43 +99,12 @@ commands:
|
|||||||
name: fetch all tags
|
name: fetch all tags
|
||||||
command: |
|
command: |
|
||||||
git fetch --all
|
git fetch --all
|
||||||
install-ubuntu-deps:
|
|
||||||
steps:
|
|
||||||
- run: sudo apt-get update
|
|
||||||
- run: sudo apt-get install ocl-icd-opencl-dev libhwloc-dev
|
|
||||||
check-go-version:
|
|
||||||
steps:
|
|
||||||
- run: |
|
|
||||||
v=`go version | { read _ _ v _; echo ${v#go}; }`
|
|
||||||
if [[ $v != `cat GO_VERSION_MIN` ]]; then
|
|
||||||
echo "GO_VERSION_MIN file does not match the go version being used."
|
|
||||||
echo "Please update image to cimg/go:`cat GO_VERSION_MIN` or update GO_VERSION_MIN to $v."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
|
||||||
executor: golang
|
|
||||||
working_directory: ~/lotus
|
|
||||||
steps:
|
|
||||||
- checkout
|
|
||||||
- git_fetch_all_tags
|
|
||||||
- run: git submodule sync
|
|
||||||
- run: git submodule update --init
|
|
||||||
- install-ubuntu-deps
|
|
||||||
- check-go-version
|
|
||||||
- run: make deps lotus
|
|
||||||
- persist_to_workspace:
|
|
||||||
root: ~/
|
|
||||||
paths:
|
|
||||||
- "lotus"
|
|
||||||
mod-tidy-check:
|
mod-tidy-check:
|
||||||
executor: golang
|
executor: golang
|
||||||
working_directory: ~/lotus
|
|
||||||
steps:
|
steps:
|
||||||
- install-ubuntu-deps
|
- prepare
|
||||||
- attach_workspace:
|
|
||||||
at: ~/
|
|
||||||
- run: go mod tidy -v
|
- run: go mod tidy -v
|
||||||
- run:
|
- run:
|
||||||
name: Check git diff
|
name: Check git diff
|
||||||
@@ -141,14 +115,13 @@ jobs:
|
|||||||
test:
|
test:
|
||||||
description: |
|
description: |
|
||||||
Run tests with gotestsum.
|
Run tests with gotestsum.
|
||||||
working_directory: ~/lotus
|
|
||||||
parameters: &test-params
|
parameters: &test-params
|
||||||
executor:
|
executor:
|
||||||
type: executor
|
type: executor
|
||||||
default: golang
|
default: golang
|
||||||
go-test-flags:
|
go-test-flags:
|
||||||
type: string
|
type: string
|
||||||
default: "-timeout 20m"
|
default: "-timeout 30m"
|
||||||
description: Flags passed to go test.
|
description: Flags passed to go test.
|
||||||
target:
|
target:
|
||||||
type: string
|
type: string
|
||||||
@@ -157,22 +130,21 @@ jobs:
|
|||||||
proofs-log-test:
|
proofs-log-test:
|
||||||
type: string
|
type: string
|
||||||
default: "0"
|
default: "0"
|
||||||
get-params:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
suite:
|
suite:
|
||||||
type: string
|
type: string
|
||||||
default: unit
|
default: unit
|
||||||
description: Test suite name to report to CircleCI.
|
description: Test suite name to report to CircleCI.
|
||||||
|
gotestsum-format:
|
||||||
|
type: string
|
||||||
|
default: standard-verbose
|
||||||
|
description: gotestsum format. https://github.com/gotestyourself/gotestsum#format
|
||||||
executor: << parameters.executor >>
|
executor: << parameters.executor >>
|
||||||
steps:
|
steps:
|
||||||
- install-ubuntu-deps
|
- prepare
|
||||||
- attach_workspace:
|
- run:
|
||||||
at: ~/
|
command: make deps lotus
|
||||||
- when:
|
no_output_timeout: 30m
|
||||||
condition: << parameters.get-params >>
|
- download-params
|
||||||
steps:
|
|
||||||
- download-params
|
|
||||||
- run:
|
- run:
|
||||||
name: go test
|
name: go test
|
||||||
environment:
|
environment:
|
||||||
@@ -183,11 +155,12 @@ jobs:
|
|||||||
mkdir -p /tmp/test-reports/<< parameters.suite >>
|
mkdir -p /tmp/test-reports/<< parameters.suite >>
|
||||||
mkdir -p /tmp/test-artifacts
|
mkdir -p /tmp/test-artifacts
|
||||||
gotestsum \
|
gotestsum \
|
||||||
--format standard-verbose \
|
--format << parameters.gotestsum-format >> \
|
||||||
--junitfile /tmp/test-reports/<< parameters.suite >>/junit.xml \
|
--junitfile /tmp/test-reports/<< parameters.suite >>/junit.xml \
|
||||||
--jsonfile /tmp/test-artifacts/<< parameters.suite >>.json \
|
--jsonfile /tmp/test-artifacts/<< parameters.suite >>.json \
|
||||||
--packages="<< parameters.target >>" \
|
-- \
|
||||||
-- << parameters.go-test-flags >>
|
<< parameters.go-test-flags >> \
|
||||||
|
<< parameters.target >>
|
||||||
no_output_timeout: 30m
|
no_output_timeout: 30m
|
||||||
- store_test_results:
|
- store_test_results:
|
||||||
path: /tmp/test-reports
|
path: /tmp/test-reports
|
||||||
@@ -195,7 +168,6 @@ jobs:
|
|||||||
path: /tmp/test-artifacts/<< parameters.suite >>.json
|
path: /tmp/test-artifacts/<< parameters.suite >>.json
|
||||||
|
|
||||||
test-conformance:
|
test-conformance:
|
||||||
working_directory: ~/lotus
|
|
||||||
description: |
|
description: |
|
||||||
Run tests using a corpus of interoperable test vectors for Filecoin
|
Run tests using a corpus of interoperable test vectors for Filecoin
|
||||||
implementations to test their correctness and compliance with the Filecoin
|
implementations to test their correctness and compliance with the Filecoin
|
||||||
@@ -211,9 +183,10 @@ jobs:
|
|||||||
submodule is used.
|
submodule is used.
|
||||||
executor: << parameters.executor >>
|
executor: << parameters.executor >>
|
||||||
steps:
|
steps:
|
||||||
- install-ubuntu-deps
|
- prepare
|
||||||
- attach_workspace:
|
- run:
|
||||||
at: ~/
|
command: make deps lotus
|
||||||
|
no_output_timeout: 30m
|
||||||
- download-params
|
- download-params
|
||||||
- when:
|
- when:
|
||||||
condition:
|
condition:
|
||||||
@@ -256,7 +229,7 @@ jobs:
|
|||||||
build-linux-amd64:
|
build-linux-amd64:
|
||||||
executor: golang
|
executor: golang
|
||||||
steps:
|
steps:
|
||||||
- build-platform-specific
|
- prepare
|
||||||
- run: make lotus lotus-miner lotus-worker
|
- run: make lotus lotus-miner lotus-worker
|
||||||
- run:
|
- run:
|
||||||
name: check tag and version output match
|
name: check tag and version output match
|
||||||
@@ -275,7 +248,7 @@ jobs:
|
|||||||
macos:
|
macos:
|
||||||
xcode: "13.4.1"
|
xcode: "13.4.1"
|
||||||
steps:
|
steps:
|
||||||
- build-platform-specific:
|
- prepare:
|
||||||
linux: false
|
linux: false
|
||||||
darwin: true
|
darwin: true
|
||||||
darwin-architecture: amd64
|
darwin-architecture: amd64
|
||||||
@@ -299,12 +272,14 @@ jobs:
|
|||||||
resource_class: filecoin-project/self-hosted-m1
|
resource_class: filecoin-project/self-hosted-m1
|
||||||
steps:
|
steps:
|
||||||
- run: echo 'export PATH=/opt/homebrew/bin:"$PATH"' >> "$BASH_ENV"
|
- run: echo 'export PATH=/opt/homebrew/bin:"$PATH"' >> "$BASH_ENV"
|
||||||
- build-platform-specific:
|
- prepare:
|
||||||
linux: false
|
linux: false
|
||||||
darwin: true
|
darwin: true
|
||||||
darwin-architecture: arm64
|
darwin-architecture: arm64
|
||||||
- run: |
|
- run: |
|
||||||
export CPATH=$(brew --prefix)/include && export LIBRARY_PATH=$(brew --prefix)/lib && make lotus lotus-miner lotus-worker
|
export CPATH=$(brew --prefix)/include
|
||||||
|
export LIBRARY_PATH=$(brew --prefix)/lib
|
||||||
|
make lotus lotus-miner lotus-worker
|
||||||
- run: otool -hv lotus
|
- run: otool -hv lotus
|
||||||
- run:
|
- run:
|
||||||
name: check tag and version output match
|
name: check tag and version output match
|
||||||
@@ -355,18 +330,16 @@ jobs:
|
|||||||
|
|
||||||
gofmt:
|
gofmt:
|
||||||
executor: golang
|
executor: golang
|
||||||
working_directory: ~/lotus
|
|
||||||
steps:
|
steps:
|
||||||
|
- prepare
|
||||||
- run:
|
- run:
|
||||||
command: "! go fmt ./... 2>&1 | read"
|
command: "! go fmt ./... 2>&1 | read"
|
||||||
|
|
||||||
gen-check:
|
gen-check:
|
||||||
executor: golang
|
executor: golang
|
||||||
working_directory: ~/lotus
|
|
||||||
steps:
|
steps:
|
||||||
- install-ubuntu-deps
|
- prepare
|
||||||
- attach_workspace:
|
- run: make deps
|
||||||
at: ~/
|
|
||||||
- run: go install golang.org/x/tools/cmd/goimports
|
- run: go install golang.org/x/tools/cmd/goimports
|
||||||
- run: go install github.com/hannahhoward/cbor-gen-for
|
- run: go install github.com/hannahhoward/cbor-gen-for
|
||||||
- run: make gen
|
- run: make gen
|
||||||
@@ -376,29 +349,32 @@ jobs:
|
|||||||
|
|
||||||
docs-check:
|
docs-check:
|
||||||
executor: golang
|
executor: golang
|
||||||
working_directory: ~/lotus
|
|
||||||
steps:
|
steps:
|
||||||
- install-ubuntu-deps
|
- prepare
|
||||||
- attach_workspace:
|
|
||||||
at: ~/
|
|
||||||
- run: go install golang.org/x/tools/cmd/goimports
|
- run: go install golang.org/x/tools/cmd/goimports
|
||||||
- run: zcat build/openrpc/full.json.gz | jq > ../pre-openrpc-full
|
- run: zcat build/openrpc/full.json.gz | jq > ../pre-openrpc-full
|
||||||
- run: zcat build/openrpc/miner.json.gz | jq > ../pre-openrpc-miner
|
- run: zcat build/openrpc/miner.json.gz | jq > ../pre-openrpc-miner
|
||||||
- run: zcat build/openrpc/worker.json.gz | jq > ../pre-openrpc-worker
|
- run: zcat build/openrpc/worker.json.gz | jq > ../pre-openrpc-worker
|
||||||
|
- run: make deps
|
||||||
- run: make docsgen
|
- run: make docsgen
|
||||||
- run: zcat build/openrpc/full.json.gz | jq > ../post-openrpc-full
|
- run: zcat build/openrpc/full.json.gz | jq > ../post-openrpc-full
|
||||||
- run: zcat build/openrpc/miner.json.gz | jq > ../post-openrpc-miner
|
- run: zcat build/openrpc/miner.json.gz | jq > ../post-openrpc-miner
|
||||||
- run: zcat build/openrpc/worker.json.gz | jq > ../post-openrpc-worker
|
- run: zcat build/openrpc/worker.json.gz | jq > ../post-openrpc-worker
|
||||||
- run: diff ../pre-openrpc-full ../post-openrpc-full && diff ../pre-openrpc-miner ../post-openrpc-miner && diff ../pre-openrpc-worker ../post-openrpc-worker && git --no-pager diff && git --no-pager diff --quiet
|
- run: diff ../pre-openrpc-full ../post-openrpc-full && diff ../pre-openrpc-miner ../post-openrpc-miner && diff ../pre-openrpc-worker ../post-openrpc-worker && git --no-pager diff && git --no-pager diff --quiet
|
||||||
|
|
||||||
lint-all:
|
lint: &lint
|
||||||
description: |
|
description: |
|
||||||
Run golangci-lint.
|
Run golangci-lint.
|
||||||
working_directory: ~/lotus
|
|
||||||
parameters:
|
parameters:
|
||||||
executor:
|
executor:
|
||||||
type: executor
|
type: executor
|
||||||
default: golang
|
default: golang
|
||||||
|
concurrency:
|
||||||
|
type: string
|
||||||
|
default: '2'
|
||||||
|
description: |
|
||||||
|
Concurrency used to run linters. Defaults to 2 because NumCPU is not
|
||||||
|
aware of container CPU limits.
|
||||||
args:
|
args:
|
||||||
type: string
|
type: string
|
||||||
default: ''
|
default: ''
|
||||||
@@ -406,14 +382,17 @@ jobs:
|
|||||||
Arguments to pass to golangci-lint
|
Arguments to pass to golangci-lint
|
||||||
executor: << parameters.executor >>
|
executor: << parameters.executor >>
|
||||||
steps:
|
steps:
|
||||||
- install-ubuntu-deps
|
- prepare
|
||||||
- attach_workspace:
|
- run:
|
||||||
at: ~/
|
command: make deps
|
||||||
|
no_output_timeout: 30m
|
||||||
- run:
|
- run:
|
||||||
name: Lint
|
name: Lint
|
||||||
command: |
|
command: |
|
||||||
golangci-lint run -v --timeout 10m \
|
golangci-lint run -v --timeout 2m \
|
||||||
--concurrency 4 << parameters.args >>
|
--concurrency << parameters.concurrency >> << parameters.args >>
|
||||||
|
lint-all:
|
||||||
|
<<: *lint
|
||||||
|
|
||||||
build-docker:
|
build-docker:
|
||||||
description: >
|
description: >
|
||||||
@@ -515,523 +494,432 @@ jobs:
|
|||||||
extra_build_args: --target <<parameters.image>> --build-arg GOFLAGS=-tags=<<parameters.network>>
|
extra_build_args: --target <<parameters.image>> --build-arg GOFLAGS=-tags=<<parameters.network>>
|
||||||
|
|
||||||
workflows:
|
workflows:
|
||||||
|
version: 2.1
|
||||||
ci:
|
ci:
|
||||||
jobs:
|
jobs:
|
||||||
- build
|
|
||||||
- lint-all:
|
- lint-all:
|
||||||
requires:
|
concurrency: "16" # expend all docker 2xlarge CPUs.
|
||||||
- build
|
- mod-tidy-check
|
||||||
- mod-tidy-check:
|
- gofmt
|
||||||
requires:
|
- gen-check
|
||||||
- build
|
- docs-check
|
||||||
- gofmt:
|
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
- gen-check:
|
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
- docs-check:
|
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-api
|
name: test-itest-api
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-api
|
suite: itest-api
|
||||||
target: "./itests/api_test.go"
|
target: "./itests/api_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-batch_deal
|
name: test-itest-batch_deal
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-batch_deal
|
suite: itest-batch_deal
|
||||||
target: "./itests/batch_deal_test.go"
|
target: "./itests/batch_deal_test.go"
|
||||||
|
|
||||||
|
- test:
|
||||||
|
name: test-itest-ccupgrade
|
||||||
|
suite: itest-ccupgrade
|
||||||
|
target: "./itests/ccupgrade_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-cli
|
name: test-itest-cli
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-cli
|
suite: itest-cli
|
||||||
target: "./itests/cli_test.go"
|
target: "./itests/cli_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-deadlines
|
name: test-itest-deadlines
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-deadlines
|
suite: itest-deadlines
|
||||||
target: "./itests/deadlines_test.go"
|
target: "./itests/deadlines_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-deals_512mb
|
name: test-itest-deals_512mb
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-deals_512mb
|
suite: itest-deals_512mb
|
||||||
target: "./itests/deals_512mb_test.go"
|
target: "./itests/deals_512mb_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-deals_anycid
|
name: test-itest-deals_anycid
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-deals_anycid
|
suite: itest-deals_anycid
|
||||||
target: "./itests/deals_anycid_test.go"
|
target: "./itests/deals_anycid_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-deals_concurrent
|
name: test-itest-deals_concurrent
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-deals_concurrent
|
suite: itest-deals_concurrent
|
||||||
target: "./itests/deals_concurrent_test.go"
|
target: "./itests/deals_concurrent_test.go"
|
||||||
executor: golang-2xl
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-deals_invalid_utf8_label
|
name: test-itest-deals_invalid_utf8_label
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-deals_invalid_utf8_label
|
suite: itest-deals_invalid_utf8_label
|
||||||
target: "./itests/deals_invalid_utf8_label_test.go"
|
target: "./itests/deals_invalid_utf8_label_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-deals_max_staging_deals
|
name: test-itest-deals_max_staging_deals
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-deals_max_staging_deals
|
suite: itest-deals_max_staging_deals
|
||||||
target: "./itests/deals_max_staging_deals_test.go"
|
target: "./itests/deals_max_staging_deals_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-deals_offline
|
name: test-itest-deals_offline
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-deals_offline
|
suite: itest-deals_offline
|
||||||
target: "./itests/deals_offline_test.go"
|
target: "./itests/deals_offline_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-deals_padding
|
name: test-itest-deals_padding
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-deals_padding
|
suite: itest-deals_padding
|
||||||
target: "./itests/deals_padding_test.go"
|
target: "./itests/deals_padding_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-deals_partial_retrieval_dm-level
|
name: test-itest-deals_partial_retrieval_dm-level
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-deals_partial_retrieval_dm-level
|
suite: itest-deals_partial_retrieval_dm-level
|
||||||
target: "./itests/deals_partial_retrieval_dm-level_test.go"
|
target: "./itests/deals_partial_retrieval_dm-level_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-deals_partial_retrieval
|
name: test-itest-deals_partial_retrieval
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-deals_partial_retrieval
|
suite: itest-deals_partial_retrieval
|
||||||
target: "./itests/deals_partial_retrieval_test.go"
|
target: "./itests/deals_partial_retrieval_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-deals_power
|
name: test-itest-deals_power
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-deals_power
|
suite: itest-deals_power
|
||||||
target: "./itests/deals_power_test.go"
|
target: "./itests/deals_power_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-deals_pricing
|
name: test-itest-deals_pricing
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-deals_pricing
|
suite: itest-deals_pricing
|
||||||
target: "./itests/deals_pricing_test.go"
|
target: "./itests/deals_pricing_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-deals_publish
|
name: test-itest-deals_publish
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-deals_publish
|
suite: itest-deals_publish
|
||||||
target: "./itests/deals_publish_test.go"
|
target: "./itests/deals_publish_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-deals_remote_retrieval
|
name: test-itest-deals_remote_retrieval
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-deals_remote_retrieval
|
suite: itest-deals_remote_retrieval
|
||||||
target: "./itests/deals_remote_retrieval_test.go"
|
target: "./itests/deals_remote_retrieval_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-deals_retry_deal_no_funds
|
name: test-itest-deals_retry_deal_no_funds
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-deals_retry_deal_no_funds
|
suite: itest-deals_retry_deal_no_funds
|
||||||
target: "./itests/deals_retry_deal_no_funds_test.go"
|
target: "./itests/deals_retry_deal_no_funds_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-deals
|
name: test-itest-deals
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-deals
|
suite: itest-deals
|
||||||
target: "./itests/deals_test.go"
|
target: "./itests/deals_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-decode_params
|
name: test-itest-decode_params
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-decode_params
|
suite: itest-decode_params
|
||||||
target: "./itests/decode_params_test.go"
|
target: "./itests/decode_params_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-dup_mpool_messages
|
name: test-itest-dup_mpool_messages
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-dup_mpool_messages
|
suite: itest-dup_mpool_messages
|
||||||
target: "./itests/dup_mpool_messages_test.go"
|
target: "./itests/dup_mpool_messages_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-eth_account_abstraction
|
name: test-itest-eth_account_abstraction
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-eth_account_abstraction
|
suite: itest-eth_account_abstraction
|
||||||
target: "./itests/eth_account_abstraction_test.go"
|
target: "./itests/eth_account_abstraction_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-eth_api
|
name: test-itest-eth_api
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-eth_api
|
suite: itest-eth_api
|
||||||
target: "./itests/eth_api_test.go"
|
target: "./itests/eth_api_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-eth_balance
|
name: test-itest-eth_balance
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-eth_balance
|
suite: itest-eth_balance
|
||||||
target: "./itests/eth_balance_test.go"
|
target: "./itests/eth_balance_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-eth_block_hash
|
name: test-itest-eth_block_hash
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-eth_block_hash
|
suite: itest-eth_block_hash
|
||||||
target: "./itests/eth_block_hash_test.go"
|
target: "./itests/eth_block_hash_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-eth_bytecode
|
name: test-itest-eth_bytecode
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-eth_bytecode
|
suite: itest-eth_bytecode
|
||||||
target: "./itests/eth_bytecode_test.go"
|
target: "./itests/eth_bytecode_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-eth_config
|
name: test-itest-eth_config
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-eth_config
|
suite: itest-eth_config
|
||||||
target: "./itests/eth_config_test.go"
|
target: "./itests/eth_config_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-eth_conformance
|
name: test-itest-eth_conformance
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-eth_conformance
|
suite: itest-eth_conformance
|
||||||
target: "./itests/eth_conformance_test.go"
|
target: "./itests/eth_conformance_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-eth_deploy
|
name: test-itest-eth_deploy
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-eth_deploy
|
suite: itest-eth_deploy
|
||||||
target: "./itests/eth_deploy_test.go"
|
target: "./itests/eth_deploy_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-eth_fee_history
|
name: test-itest-eth_fee_history
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-eth_fee_history
|
suite: itest-eth_fee_history
|
||||||
target: "./itests/eth_fee_history_test.go"
|
target: "./itests/eth_fee_history_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-eth_filter
|
name: test-itest-eth_filter
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-eth_filter
|
suite: itest-eth_filter
|
||||||
target: "./itests/eth_filter_test.go"
|
target: "./itests/eth_filter_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-eth_hash_lookup
|
name: test-itest-eth_hash_lookup
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-eth_hash_lookup
|
suite: itest-eth_hash_lookup
|
||||||
target: "./itests/eth_hash_lookup_test.go"
|
target: "./itests/eth_hash_lookup_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-eth_transactions
|
name: test-itest-eth_transactions
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-eth_transactions
|
suite: itest-eth_transactions
|
||||||
target: "./itests/eth_transactions_test.go"
|
target: "./itests/eth_transactions_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-fevm_address
|
name: test-itest-fevm_address
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-fevm_address
|
suite: itest-fevm_address
|
||||||
target: "./itests/fevm_address_test.go"
|
target: "./itests/fevm_address_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-fevm_events
|
name: test-itest-fevm_events
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-fevm_events
|
suite: itest-fevm_events
|
||||||
target: "./itests/fevm_events_test.go"
|
target: "./itests/fevm_events_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-fevm
|
name: test-itest-fevm
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-fevm
|
suite: itest-fevm
|
||||||
target: "./itests/fevm_test.go"
|
target: "./itests/fevm_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-gas_estimation
|
name: test-itest-gas_estimation
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-gas_estimation
|
suite: itest-gas_estimation
|
||||||
target: "./itests/gas_estimation_test.go"
|
target: "./itests/gas_estimation_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-gateway
|
name: test-itest-gateway
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-gateway
|
suite: itest-gateway
|
||||||
target: "./itests/gateway_test.go"
|
target: "./itests/gateway_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-get_messages_in_ts
|
name: test-itest-get_messages_in_ts
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-get_messages_in_ts
|
suite: itest-get_messages_in_ts
|
||||||
target: "./itests/get_messages_in_ts_test.go"
|
target: "./itests/get_messages_in_ts_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-lite_migration
|
name: test-itest-lite_migration
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-lite_migration
|
suite: itest-lite_migration
|
||||||
target: "./itests/lite_migration_test.go"
|
target: "./itests/lite_migration_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-lookup_robust_address
|
name: test-itest-lookup_robust_address
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-lookup_robust_address
|
suite: itest-lookup_robust_address
|
||||||
target: "./itests/lookup_robust_address_test.go"
|
target: "./itests/lookup_robust_address_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-mempool
|
name: test-itest-mempool
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-mempool
|
suite: itest-mempool
|
||||||
target: "./itests/mempool_test.go"
|
target: "./itests/mempool_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-migration
|
name: test-itest-migration
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-migration
|
suite: itest-migration
|
||||||
target: "./itests/migration_test.go"
|
target: "./itests/migration_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-mpool_msg_uuid
|
name: test-itest-mpool_msg_uuid
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-mpool_msg_uuid
|
suite: itest-mpool_msg_uuid
|
||||||
target: "./itests/mpool_msg_uuid_test.go"
|
target: "./itests/mpool_msg_uuid_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-mpool_push_with_uuid
|
name: test-itest-mpool_push_with_uuid
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-mpool_push_with_uuid
|
suite: itest-mpool_push_with_uuid
|
||||||
target: "./itests/mpool_push_with_uuid_test.go"
|
target: "./itests/mpool_push_with_uuid_test.go"
|
||||||
- test:
|
|
||||||
name: test-itest-msgindex
|
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-msgindex
|
|
||||||
target: "./itests/msgindex_test.go"
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-multisig
|
name: test-itest-multisig
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-multisig
|
suite: itest-multisig
|
||||||
target: "./itests/multisig_test.go"
|
target: "./itests/multisig_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-net
|
name: test-itest-net
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-net
|
suite: itest-net
|
||||||
target: "./itests/net_test.go"
|
target: "./itests/net_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-nonce
|
name: test-itest-nonce
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-nonce
|
suite: itest-nonce
|
||||||
target: "./itests/nonce_test.go"
|
target: "./itests/nonce_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-path_detach_redeclare
|
name: test-itest-path_detach_redeclare
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-path_detach_redeclare
|
suite: itest-path_detach_redeclare
|
||||||
target: "./itests/path_detach_redeclare_test.go"
|
target: "./itests/path_detach_redeclare_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-path_type_filters
|
name: test-itest-path_type_filters
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-path_type_filters
|
suite: itest-path_type_filters
|
||||||
target: "./itests/path_type_filters_test.go"
|
target: "./itests/path_type_filters_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-paych_api
|
name: test-itest-paych_api
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-paych_api
|
suite: itest-paych_api
|
||||||
target: "./itests/paych_api_test.go"
|
target: "./itests/paych_api_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-paych_cli
|
name: test-itest-paych_cli
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-paych_cli
|
suite: itest-paych_cli
|
||||||
target: "./itests/paych_cli_test.go"
|
target: "./itests/paych_cli_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-pending_deal_allocation
|
name: test-itest-pending_deal_allocation
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-pending_deal_allocation
|
suite: itest-pending_deal_allocation
|
||||||
target: "./itests/pending_deal_allocation_test.go"
|
target: "./itests/pending_deal_allocation_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-raft_messagesigner
|
name: test-itest-raft_messagesigner
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-raft_messagesigner
|
suite: itest-raft_messagesigner
|
||||||
target: "./itests/raft_messagesigner_test.go"
|
target: "./itests/raft_messagesigner_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-remove_verifreg_datacap
|
name: test-itest-remove_verifreg_datacap
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-remove_verifreg_datacap
|
suite: itest-remove_verifreg_datacap
|
||||||
target: "./itests/remove_verifreg_datacap_test.go"
|
target: "./itests/remove_verifreg_datacap_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-sealing_resources
|
name: test-itest-sdr_upgrade
|
||||||
requires:
|
suite: itest-sdr_upgrade
|
||||||
- build
|
target: "./itests/sdr_upgrade_test.go"
|
||||||
suite: itest-sealing_resources
|
|
||||||
target: "./itests/sealing_resources_test.go"
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-sector_finalize_early
|
name: test-itest-sector_finalize_early
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-sector_finalize_early
|
suite: itest-sector_finalize_early
|
||||||
target: "./itests/sector_finalize_early_test.go"
|
target: "./itests/sector_finalize_early_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-sector_import_full
|
name: test-itest-sector_import_full
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-sector_import_full
|
suite: itest-sector_import_full
|
||||||
target: "./itests/sector_import_full_test.go"
|
target: "./itests/sector_import_full_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-sector_import_simple
|
name: test-itest-sector_import_simple
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-sector_import_simple
|
suite: itest-sector_import_simple
|
||||||
target: "./itests/sector_import_simple_test.go"
|
target: "./itests/sector_import_simple_test.go"
|
||||||
|
|
||||||
|
- test:
|
||||||
|
name: test-itest-sector_make_cc_avail
|
||||||
|
suite: itest-sector_make_cc_avail
|
||||||
|
target: "./itests/sector_make_cc_avail_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-sector_miner_collateral
|
name: test-itest-sector_miner_collateral
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-sector_miner_collateral
|
suite: itest-sector_miner_collateral
|
||||||
target: "./itests/sector_miner_collateral_test.go"
|
target: "./itests/sector_miner_collateral_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-sector_numassign
|
name: test-itest-sector_numassign
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-sector_numassign
|
suite: itest-sector_numassign
|
||||||
target: "./itests/sector_numassign_test.go"
|
target: "./itests/sector_numassign_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-sector_pledge
|
name: test-itest-sector_pledge
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-sector_pledge
|
suite: itest-sector_pledge
|
||||||
target: "./itests/sector_pledge_test.go"
|
target: "./itests/sector_pledge_test.go"
|
||||||
get-params: true
|
|
||||||
|
- test:
|
||||||
|
name: test-itest-sector_prefer_no_upgrade
|
||||||
|
suite: itest-sector_prefer_no_upgrade
|
||||||
|
target: "./itests/sector_prefer_no_upgrade_test.go"
|
||||||
|
|
||||||
|
- test:
|
||||||
|
name: test-itest-sector_revert_available
|
||||||
|
suite: itest-sector_revert_available
|
||||||
|
target: "./itests/sector_revert_available_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-sector_terminate
|
name: test-itest-sector_terminate
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-sector_terminate
|
suite: itest-sector_terminate
|
||||||
target: "./itests/sector_terminate_test.go"
|
target: "./itests/sector_terminate_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-sector_unseal
|
name: test-itest-sector_unseal
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-sector_unseal
|
suite: itest-sector_unseal
|
||||||
target: "./itests/sector_unseal_test.go"
|
target: "./itests/sector_unseal_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-self_sent_txn
|
name: test-itest-self_sent_txn
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-self_sent_txn
|
suite: itest-self_sent_txn
|
||||||
target: "./itests/self_sent_txn_test.go"
|
target: "./itests/self_sent_txn_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-splitstore
|
name: test-itest-splitstore
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-splitstore
|
suite: itest-splitstore
|
||||||
target: "./itests/splitstore_test.go"
|
target: "./itests/splitstore_test.go"
|
||||||
|
|
||||||
|
- test:
|
||||||
|
name: test-itest-tape
|
||||||
|
suite: itest-tape
|
||||||
|
target: "./itests/tape_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-verifreg
|
name: test-itest-verifreg
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-verifreg
|
suite: itest-verifreg
|
||||||
target: "./itests/verifreg_test.go"
|
target: "./itests/verifreg_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-wdpost_config
|
name: test-itest-wdpost_config
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-wdpost_config
|
suite: itest-wdpost_config
|
||||||
target: "./itests/wdpost_config_test.go"
|
target: "./itests/wdpost_config_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-wdpost_dispute
|
name: test-itest-wdpost_dispute
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-wdpost_dispute
|
suite: itest-wdpost_dispute
|
||||||
target: "./itests/wdpost_dispute_test.go"
|
target: "./itests/wdpost_dispute_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-wdpost_no_miner_storage
|
name: test-itest-wdpost_no_miner_storage
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-wdpost_no_miner_storage
|
suite: itest-wdpost_no_miner_storage
|
||||||
target: "./itests/wdpost_no_miner_storage_test.go"
|
target: "./itests/wdpost_no_miner_storage_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-wdpost
|
name: test-itest-wdpost
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-wdpost
|
suite: itest-wdpost
|
||||||
target: "./itests/wdpost_test.go"
|
target: "./itests/wdpost_test.go"
|
||||||
get-params: true
|
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-wdpost_worker_config
|
name: test-itest-wdpost_worker_config
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-wdpost_worker_config
|
suite: itest-wdpost_worker_config
|
||||||
target: "./itests/wdpost_worker_config_test.go"
|
target: "./itests/wdpost_worker_config_test.go"
|
||||||
executor: golang-2xl
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-worker
|
name: test-itest-worker
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-worker
|
suite: itest-worker
|
||||||
target: "./itests/worker_test.go"
|
target: "./itests/worker_test.go"
|
||||||
executor: golang-2xl
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-worker_upgrade
|
name: test-itest-worker_upgrade
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-worker_upgrade
|
suite: itest-worker_upgrade
|
||||||
target: "./itests/worker_upgrade_test.go"
|
target: "./itests/worker_upgrade_test.go"
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-unit-cli
|
name: test-unit-cli
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: utest-unit-cli
|
suite: utest-unit-cli
|
||||||
target: "./cli/... ./cmd/... ./api/..."
|
target: "./cli/... ./cmd/... ./api/..."
|
||||||
get-params: true
|
|
||||||
executor: golang-2xl
|
|
||||||
- test:
|
- test:
|
||||||
name: test-unit-node
|
name: test-unit-node
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: utest-unit-node
|
suite: utest-unit-node
|
||||||
target: "./node/..."
|
target: "./node/..."
|
||||||
|
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-unit-rest
|
name: test-unit-rest
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: utest-unit-rest
|
suite: utest-unit-rest
|
||||||
target: "./blockstore/... ./build/... ./chain/... ./conformance/... ./gateway/... ./journal/... ./lib/... ./markets/... ./paychmgr/... ./tools/..."
|
target: "./api/... ./blockstore/... ./build/... ./chain/... ./cli/... ./cmd/... ./conformance/... ./extern/... ./gateway/... ./journal/... ./lib/... ./markets/... ./node/... ./paychmgr/... ./storage/... ./tools/..."
|
||||||
|
|
||||||
executor: golang-2xl
|
|
||||||
- test:
|
- test:
|
||||||
name: test-unit-storage
|
name: test-unit-storage
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: utest-unit-storage
|
suite: utest-unit-storage
|
||||||
target: "./storage/... ./extern/..."
|
target: "./storage/... ./extern/..."
|
||||||
|
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
go-test-flags: "-run=TestMulticoreSDR"
|
go-test-flags: "-run=TestMulticoreSDR"
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: multicore-sdr-check
|
suite: multicore-sdr-check
|
||||||
target: "./storage/sealer/ffiwrapper"
|
target: "./storage/sealer/ffiwrapper"
|
||||||
proofs-log-test: "1"
|
proofs-log-test: "1"
|
||||||
- test-conformance:
|
- test-conformance:
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: conformance
|
suite: conformance
|
||||||
target: "./conformance"
|
target: "./conformance"
|
||||||
|
|
||||||
@@ -1043,7 +931,6 @@ workflows:
|
|||||||
branches:
|
branches:
|
||||||
only:
|
only:
|
||||||
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
|
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
|
||||||
- /^ci\/.*$/
|
|
||||||
tags:
|
tags:
|
||||||
only:
|
only:
|
||||||
- /^v\d+\.\d+\.\d+(-rc\d+)?$/
|
- /^v\d+\.\d+\.\d+(-rc\d+)?$/
|
||||||
@@ -1053,7 +940,6 @@ workflows:
|
|||||||
branches:
|
branches:
|
||||||
only:
|
only:
|
||||||
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
|
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
|
||||||
- /^ci\/.*$/
|
|
||||||
tags:
|
tags:
|
||||||
only:
|
only:
|
||||||
- /^v\d+\.\d+\.\d+(-rc\d+)?$/
|
- /^v\d+\.\d+\.\d+(-rc\d+)?$/
|
||||||
@@ -1063,7 +949,6 @@ workflows:
|
|||||||
branches:
|
branches:
|
||||||
only:
|
only:
|
||||||
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
|
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
|
||||||
- /^ci\/.*$/
|
|
||||||
tags:
|
tags:
|
||||||
only:
|
only:
|
||||||
- /^v\d+\.\d+\.\d+(-rc\d+)?$/
|
- /^v\d+\.\d+\.\d+(-rc\d+)?$/
|
||||||
@@ -1076,7 +961,7 @@ workflows:
|
|||||||
filters:
|
filters:
|
||||||
branches:
|
branches:
|
||||||
ignore:
|
ignore:
|
||||||
- /^.*$/
|
- /.*/
|
||||||
tags:
|
tags:
|
||||||
only:
|
only:
|
||||||
- /^v\d+\.\d+\.\d+(-rc\d+)?$/
|
- /^v\d+\.\d+\.\d+(-rc\d+)?$/
|
||||||
@@ -1091,7 +976,6 @@ workflows:
|
|||||||
branches:
|
branches:
|
||||||
only:
|
only:
|
||||||
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
|
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
|
||||||
- /^ci\/.*$/
|
|
||||||
- build-docker:
|
- build-docker:
|
||||||
name: "Docker push (lotus-all-in-one / stable / mainnet)"
|
name: "Docker push (lotus-all-in-one / stable / mainnet)"
|
||||||
image: lotus-all-in-one
|
image: lotus-all-in-one
|
||||||
|
|||||||
@@ -65,8 +65,6 @@ func main() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
// Redundantly flag both absolute and relative paths as excluded
|
|
||||||
excluded[filepath.Join(repo, s)] = struct{}{}
|
|
||||||
excluded[e] = struct{}{}
|
excluded[e] = struct{}{}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+73
-123
@@ -7,19 +7,14 @@ executors:
|
|||||||
golang:
|
golang:
|
||||||
docker:
|
docker:
|
||||||
# Must match GO_VERSION_MIN in project root
|
# Must match GO_VERSION_MIN in project root
|
||||||
- image: cimg/go:1.20.7
|
- image: cimg/go:1.18.8
|
||||||
resource_class: medium+
|
|
||||||
golang-2xl:
|
|
||||||
docker:
|
|
||||||
# Must match GO_VERSION_MIN in project root
|
|
||||||
- image: cimg/go:1.20.7
|
|
||||||
resource_class: 2xlarge
|
resource_class: 2xlarge
|
||||||
ubuntu:
|
ubuntu:
|
||||||
docker:
|
docker:
|
||||||
- image: ubuntu:20.04
|
- image: ubuntu:20.04
|
||||||
|
|
||||||
commands:
|
commands:
|
||||||
build-platform-specific:
|
prepare:
|
||||||
parameters:
|
parameters:
|
||||||
linux:
|
linux:
|
||||||
default: true
|
default: true
|
||||||
@@ -36,13 +31,22 @@ commands:
|
|||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
- git_fetch_all_tags
|
- git_fetch_all_tags
|
||||||
- run: git submodule sync
|
|
||||||
- run: git submodule update --init
|
|
||||||
- when:
|
- when:
|
||||||
condition: <<parameters.linux>>
|
condition: <<parameters.linux>>
|
||||||
steps:
|
steps:
|
||||||
- install-ubuntu-deps
|
- run:
|
||||||
- check-go-version
|
name: Check Go Version
|
||||||
|
command: |
|
||||||
|
v=`go version | { read _ _ v _; echo ${v#go}; }`
|
||||||
|
if [["[[ $v != `cat GO_VERSION_MIN` ]]"]]; then
|
||||||
|
echo "GO_VERSION_MIN file does not match the go version being used."
|
||||||
|
echo "Please update image to cimg/go:`cat GO_VERSION_MIN` or update GO_VERSION_MIN to $v."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
- run: sudo apt-get update
|
||||||
|
- run: sudo apt-get install ocl-icd-opencl-dev libhwloc-dev
|
||||||
|
- run: sudo apt-get install python-is-python3
|
||||||
|
|
||||||
- when:
|
- when:
|
||||||
condition: <<parameters.darwin>>
|
condition: <<parameters.darwin>>
|
||||||
steps:
|
steps:
|
||||||
@@ -63,7 +67,8 @@ commands:
|
|||||||
name: Install Rust
|
name: Install Rust
|
||||||
command: |
|
command: |
|
||||||
curl https://sh.rustup.rs -sSf | sh -s -- -y
|
curl https://sh.rustup.rs -sSf | sh -s -- -y
|
||||||
- run: make deps
|
- run: git submodule sync
|
||||||
|
- run: git submodule update --init
|
||||||
download-params:
|
download-params:
|
||||||
steps:
|
steps:
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
@@ -72,7 +77,7 @@ commands:
|
|||||||
- 'v26-2k-lotus-params'
|
- 'v26-2k-lotus-params'
|
||||||
paths:
|
paths:
|
||||||
- /var/tmp/filecoin-proof-parameters/
|
- /var/tmp/filecoin-proof-parameters/
|
||||||
- run: ./lotus fetch-params 2048
|
- run: ./lotus fetch-params 2048
|
||||||
- save_cache:
|
- save_cache:
|
||||||
name: Save parameters cache
|
name: Save parameters cache
|
||||||
key: 'v26-2k-lotus-params'
|
key: 'v26-2k-lotus-params'
|
||||||
@@ -94,43 +99,12 @@ commands:
|
|||||||
name: fetch all tags
|
name: fetch all tags
|
||||||
command: |
|
command: |
|
||||||
git fetch --all
|
git fetch --all
|
||||||
install-ubuntu-deps:
|
|
||||||
steps:
|
|
||||||
- run: sudo apt-get update
|
|
||||||
- run: sudo apt-get install ocl-icd-opencl-dev libhwloc-dev
|
|
||||||
check-go-version:
|
|
||||||
steps:
|
|
||||||
- run: |
|
|
||||||
v=`go version | { read _ _ v _; echo ${v#go}; }`
|
|
||||||
if [["[[ $v != `cat GO_VERSION_MIN` ]]"]]; then
|
|
||||||
echo "GO_VERSION_MIN file does not match the go version being used."
|
|
||||||
echo "Please update image to cimg/go:`cat GO_VERSION_MIN` or update GO_VERSION_MIN to $v."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
|
||||||
executor: golang
|
|
||||||
working_directory: ~/lotus
|
|
||||||
steps:
|
|
||||||
- checkout
|
|
||||||
- git_fetch_all_tags
|
|
||||||
- run: git submodule sync
|
|
||||||
- run: git submodule update --init
|
|
||||||
- install-ubuntu-deps
|
|
||||||
- check-go-version
|
|
||||||
- run: make deps lotus
|
|
||||||
- persist_to_workspace:
|
|
||||||
root: ~/
|
|
||||||
paths:
|
|
||||||
- "lotus"
|
|
||||||
mod-tidy-check:
|
mod-tidy-check:
|
||||||
executor: golang
|
executor: golang
|
||||||
working_directory: ~/lotus
|
|
||||||
steps:
|
steps:
|
||||||
- install-ubuntu-deps
|
- prepare
|
||||||
- attach_workspace:
|
|
||||||
at: ~/
|
|
||||||
- run: go mod tidy -v
|
- run: go mod tidy -v
|
||||||
- run:
|
- run:
|
||||||
name: Check git diff
|
name: Check git diff
|
||||||
@@ -141,14 +115,13 @@ jobs:
|
|||||||
test:
|
test:
|
||||||
description: |
|
description: |
|
||||||
Run tests with gotestsum.
|
Run tests with gotestsum.
|
||||||
working_directory: ~/lotus
|
|
||||||
parameters: &test-params
|
parameters: &test-params
|
||||||
executor:
|
executor:
|
||||||
type: executor
|
type: executor
|
||||||
default: golang
|
default: golang
|
||||||
go-test-flags:
|
go-test-flags:
|
||||||
type: string
|
type: string
|
||||||
default: "-timeout 20m"
|
default: "-timeout 30m"
|
||||||
description: Flags passed to go test.
|
description: Flags passed to go test.
|
||||||
target:
|
target:
|
||||||
type: string
|
type: string
|
||||||
@@ -157,22 +130,21 @@ jobs:
|
|||||||
proofs-log-test:
|
proofs-log-test:
|
||||||
type: string
|
type: string
|
||||||
default: "0"
|
default: "0"
|
||||||
get-params:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
suite:
|
suite:
|
||||||
type: string
|
type: string
|
||||||
default: unit
|
default: unit
|
||||||
description: Test suite name to report to CircleCI.
|
description: Test suite name to report to CircleCI.
|
||||||
|
gotestsum-format:
|
||||||
|
type: string
|
||||||
|
default: standard-verbose
|
||||||
|
description: gotestsum format. https://github.com/gotestyourself/gotestsum#format
|
||||||
executor: << parameters.executor >>
|
executor: << parameters.executor >>
|
||||||
steps:
|
steps:
|
||||||
- install-ubuntu-deps
|
- prepare
|
||||||
- attach_workspace:
|
- run:
|
||||||
at: ~/
|
command: make deps lotus
|
||||||
- when:
|
no_output_timeout: 30m
|
||||||
condition: << parameters.get-params >>
|
- download-params
|
||||||
steps:
|
|
||||||
- download-params
|
|
||||||
- run:
|
- run:
|
||||||
name: go test
|
name: go test
|
||||||
environment:
|
environment:
|
||||||
@@ -183,11 +155,12 @@ jobs:
|
|||||||
mkdir -p /tmp/test-reports/<< parameters.suite >>
|
mkdir -p /tmp/test-reports/<< parameters.suite >>
|
||||||
mkdir -p /tmp/test-artifacts
|
mkdir -p /tmp/test-artifacts
|
||||||
gotestsum \
|
gotestsum \
|
||||||
--format standard-verbose \
|
--format << parameters.gotestsum-format >> \
|
||||||
--junitfile /tmp/test-reports/<< parameters.suite >>/junit.xml \
|
--junitfile /tmp/test-reports/<< parameters.suite >>/junit.xml \
|
||||||
--jsonfile /tmp/test-artifacts/<< parameters.suite >>.json \
|
--jsonfile /tmp/test-artifacts/<< parameters.suite >>.json \
|
||||||
--packages="<< parameters.target >>" \
|
-- \
|
||||||
-- << parameters.go-test-flags >>
|
<< parameters.go-test-flags >> \
|
||||||
|
<< parameters.target >>
|
||||||
no_output_timeout: 30m
|
no_output_timeout: 30m
|
||||||
- store_test_results:
|
- store_test_results:
|
||||||
path: /tmp/test-reports
|
path: /tmp/test-reports
|
||||||
@@ -195,7 +168,6 @@ jobs:
|
|||||||
path: /tmp/test-artifacts/<< parameters.suite >>.json
|
path: /tmp/test-artifacts/<< parameters.suite >>.json
|
||||||
|
|
||||||
test-conformance:
|
test-conformance:
|
||||||
working_directory: ~/lotus
|
|
||||||
description: |
|
description: |
|
||||||
Run tests using a corpus of interoperable test vectors for Filecoin
|
Run tests using a corpus of interoperable test vectors for Filecoin
|
||||||
implementations to test their correctness and compliance with the Filecoin
|
implementations to test their correctness and compliance with the Filecoin
|
||||||
@@ -211,9 +183,10 @@ jobs:
|
|||||||
submodule is used.
|
submodule is used.
|
||||||
executor: << parameters.executor >>
|
executor: << parameters.executor >>
|
||||||
steps:
|
steps:
|
||||||
- install-ubuntu-deps
|
- prepare
|
||||||
- attach_workspace:
|
- run:
|
||||||
at: ~/
|
command: make deps lotus
|
||||||
|
no_output_timeout: 30m
|
||||||
- download-params
|
- download-params
|
||||||
- when:
|
- when:
|
||||||
condition:
|
condition:
|
||||||
@@ -256,7 +229,7 @@ jobs:
|
|||||||
build-linux-amd64:
|
build-linux-amd64:
|
||||||
executor: golang
|
executor: golang
|
||||||
steps:
|
steps:
|
||||||
- build-platform-specific
|
- prepare
|
||||||
- run: make lotus lotus-miner lotus-worker
|
- run: make lotus lotus-miner lotus-worker
|
||||||
- run:
|
- run:
|
||||||
name: check tag and version output match
|
name: check tag and version output match
|
||||||
@@ -275,7 +248,7 @@ jobs:
|
|||||||
macos:
|
macos:
|
||||||
xcode: "13.4.1"
|
xcode: "13.4.1"
|
||||||
steps:
|
steps:
|
||||||
- build-platform-specific:
|
- prepare:
|
||||||
linux: false
|
linux: false
|
||||||
darwin: true
|
darwin: true
|
||||||
darwin-architecture: amd64
|
darwin-architecture: amd64
|
||||||
@@ -299,12 +272,14 @@ jobs:
|
|||||||
resource_class: filecoin-project/self-hosted-m1
|
resource_class: filecoin-project/self-hosted-m1
|
||||||
steps:
|
steps:
|
||||||
- run: echo 'export PATH=/opt/homebrew/bin:"$PATH"' >> "$BASH_ENV"
|
- run: echo 'export PATH=/opt/homebrew/bin:"$PATH"' >> "$BASH_ENV"
|
||||||
- build-platform-specific:
|
- prepare:
|
||||||
linux: false
|
linux: false
|
||||||
darwin: true
|
darwin: true
|
||||||
darwin-architecture: arm64
|
darwin-architecture: arm64
|
||||||
- run: |
|
- run: |
|
||||||
export CPATH=$(brew --prefix)/include && export LIBRARY_PATH=$(brew --prefix)/lib && make lotus lotus-miner lotus-worker
|
export CPATH=$(brew --prefix)/include
|
||||||
|
export LIBRARY_PATH=$(brew --prefix)/lib
|
||||||
|
make lotus lotus-miner lotus-worker
|
||||||
- run: otool -hv lotus
|
- run: otool -hv lotus
|
||||||
- run:
|
- run:
|
||||||
name: check tag and version output match
|
name: check tag and version output match
|
||||||
@@ -355,18 +330,16 @@ jobs:
|
|||||||
|
|
||||||
gofmt:
|
gofmt:
|
||||||
executor: golang
|
executor: golang
|
||||||
working_directory: ~/lotus
|
|
||||||
steps:
|
steps:
|
||||||
|
- prepare
|
||||||
- run:
|
- run:
|
||||||
command: "! go fmt ./... 2>&1 | read"
|
command: "! go fmt ./... 2>&1 | read"
|
||||||
|
|
||||||
gen-check:
|
gen-check:
|
||||||
executor: golang
|
executor: golang
|
||||||
working_directory: ~/lotus
|
|
||||||
steps:
|
steps:
|
||||||
- install-ubuntu-deps
|
- prepare
|
||||||
- attach_workspace:
|
- run: make deps
|
||||||
at: ~/
|
|
||||||
- run: go install golang.org/x/tools/cmd/goimports
|
- run: go install golang.org/x/tools/cmd/goimports
|
||||||
- run: go install github.com/hannahhoward/cbor-gen-for
|
- run: go install github.com/hannahhoward/cbor-gen-for
|
||||||
- run: make gen
|
- run: make gen
|
||||||
@@ -376,29 +349,32 @@ jobs:
|
|||||||
|
|
||||||
docs-check:
|
docs-check:
|
||||||
executor: golang
|
executor: golang
|
||||||
working_directory: ~/lotus
|
|
||||||
steps:
|
steps:
|
||||||
- install-ubuntu-deps
|
- prepare
|
||||||
- attach_workspace:
|
|
||||||
at: ~/
|
|
||||||
- run: go install golang.org/x/tools/cmd/goimports
|
- run: go install golang.org/x/tools/cmd/goimports
|
||||||
- run: zcat build/openrpc/full.json.gz | jq > ../pre-openrpc-full
|
- run: zcat build/openrpc/full.json.gz | jq > ../pre-openrpc-full
|
||||||
- run: zcat build/openrpc/miner.json.gz | jq > ../pre-openrpc-miner
|
- run: zcat build/openrpc/miner.json.gz | jq > ../pre-openrpc-miner
|
||||||
- run: zcat build/openrpc/worker.json.gz | jq > ../pre-openrpc-worker
|
- run: zcat build/openrpc/worker.json.gz | jq > ../pre-openrpc-worker
|
||||||
|
- run: make deps
|
||||||
- run: make docsgen
|
- run: make docsgen
|
||||||
- run: zcat build/openrpc/full.json.gz | jq > ../post-openrpc-full
|
- run: zcat build/openrpc/full.json.gz | jq > ../post-openrpc-full
|
||||||
- run: zcat build/openrpc/miner.json.gz | jq > ../post-openrpc-miner
|
- run: zcat build/openrpc/miner.json.gz | jq > ../post-openrpc-miner
|
||||||
- run: zcat build/openrpc/worker.json.gz | jq > ../post-openrpc-worker
|
- run: zcat build/openrpc/worker.json.gz | jq > ../post-openrpc-worker
|
||||||
- run: diff ../pre-openrpc-full ../post-openrpc-full && diff ../pre-openrpc-miner ../post-openrpc-miner && diff ../pre-openrpc-worker ../post-openrpc-worker && git --no-pager diff && git --no-pager diff --quiet
|
- run: diff ../pre-openrpc-full ../post-openrpc-full && diff ../pre-openrpc-miner ../post-openrpc-miner && diff ../pre-openrpc-worker ../post-openrpc-worker && git --no-pager diff && git --no-pager diff --quiet
|
||||||
|
|
||||||
lint-all:
|
lint: &lint
|
||||||
description: |
|
description: |
|
||||||
Run golangci-lint.
|
Run golangci-lint.
|
||||||
working_directory: ~/lotus
|
|
||||||
parameters:
|
parameters:
|
||||||
executor:
|
executor:
|
||||||
type: executor
|
type: executor
|
||||||
default: golang
|
default: golang
|
||||||
|
concurrency:
|
||||||
|
type: string
|
||||||
|
default: '2'
|
||||||
|
description: |
|
||||||
|
Concurrency used to run linters. Defaults to 2 because NumCPU is not
|
||||||
|
aware of container CPU limits.
|
||||||
args:
|
args:
|
||||||
type: string
|
type: string
|
||||||
default: ''
|
default: ''
|
||||||
@@ -406,14 +382,17 @@ jobs:
|
|||||||
Arguments to pass to golangci-lint
|
Arguments to pass to golangci-lint
|
||||||
executor: << parameters.executor >>
|
executor: << parameters.executor >>
|
||||||
steps:
|
steps:
|
||||||
- install-ubuntu-deps
|
- prepare
|
||||||
- attach_workspace:
|
- run:
|
||||||
at: ~/
|
command: make deps
|
||||||
|
no_output_timeout: 30m
|
||||||
- run:
|
- run:
|
||||||
name: Lint
|
name: Lint
|
||||||
command: |
|
command: |
|
||||||
golangci-lint run -v --timeout 10m \
|
golangci-lint run -v --timeout 2m \
|
||||||
--concurrency 4 << parameters.args >>
|
--concurrency << parameters.concurrency >> << parameters.args >>
|
||||||
|
lint-all:
|
||||||
|
<<: *lint
|
||||||
|
|
||||||
build-docker:
|
build-docker:
|
||||||
description: >
|
description: >
|
||||||
@@ -515,62 +494,37 @@ jobs:
|
|||||||
extra_build_args: --target <<parameters.image>> --build-arg GOFLAGS=-tags=<<parameters.network>>
|
extra_build_args: --target <<parameters.image>> --build-arg GOFLAGS=-tags=<<parameters.network>>
|
||||||
|
|
||||||
workflows:
|
workflows:
|
||||||
|
version: 2.1
|
||||||
ci:
|
ci:
|
||||||
jobs:
|
jobs:
|
||||||
- build
|
|
||||||
- lint-all:
|
- lint-all:
|
||||||
requires:
|
concurrency: "16" # expend all docker 2xlarge CPUs.
|
||||||
- build
|
- mod-tidy-check
|
||||||
- mod-tidy-check:
|
- gofmt
|
||||||
requires:
|
- gen-check
|
||||||
- build
|
- docs-check
|
||||||
- gofmt:
|
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
- gen-check:
|
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
- docs-check:
|
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
|
|
||||||
[[- range $file := .ItestFiles -]]
|
[[- range $file := .ItestFiles -]]
|
||||||
[[ with $name := $file | stripSuffix ]]
|
[[ with $name := $file | stripSuffix ]]
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-[[ $name ]]
|
name: test-itest-[[ $name ]]
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: itest-[[ $name ]]
|
suite: itest-[[ $name ]]
|
||||||
target: "./itests/[[ $file ]]"
|
target: "./itests/[[ $file ]]"
|
||||||
[[- if or (eq $name "worker") (eq $name "deals_concurrent") (eq $name "wdpost_worker_config")]]
|
[[ end ]]
|
||||||
executor: golang-2xl
|
[[- end -]]
|
||||||
[[- end]]
|
|
||||||
[[- if or (eq $name "wdpost") (eq $name "sector_pledge")]]
|
|
||||||
get-params: true
|
|
||||||
[[end]]
|
|
||||||
[[- end ]][[- end]]
|
|
||||||
|
|
||||||
[[- range $suite, $pkgs := .UnitSuites]]
|
[[range $suite, $pkgs := .UnitSuites]]
|
||||||
- test:
|
- test:
|
||||||
name: test-[[ $suite ]]
|
name: test-[[ $suite ]]
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: utest-[[ $suite ]]
|
suite: utest-[[ $suite ]]
|
||||||
target: "[[ $pkgs ]]"
|
target: "[[ $pkgs ]]"
|
||||||
[[if eq $suite "unit-cli"]]get-params: true[[end]]
|
|
||||||
[[if eq $suite "unit-cli"]]executor: golang-2xl[[end]]
|
|
||||||
[[- if eq $suite "unit-rest"]]executor: golang-2xl[[end]]
|
|
||||||
[[- end]]
|
[[- end]]
|
||||||
- test:
|
- test:
|
||||||
go-test-flags: "-run=TestMulticoreSDR"
|
go-test-flags: "-run=TestMulticoreSDR"
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: multicore-sdr-check
|
suite: multicore-sdr-check
|
||||||
target: "./storage/sealer/ffiwrapper"
|
target: "./storage/sealer/ffiwrapper"
|
||||||
proofs-log-test: "1"
|
proofs-log-test: "1"
|
||||||
- test-conformance:
|
- test-conformance:
|
||||||
requires:
|
|
||||||
- build
|
|
||||||
suite: conformance
|
suite: conformance
|
||||||
target: "./conformance"
|
target: "./conformance"
|
||||||
|
|
||||||
@@ -582,7 +536,6 @@ workflows:
|
|||||||
branches:
|
branches:
|
||||||
only:
|
only:
|
||||||
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
|
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
|
||||||
- /^ci\/.*$/
|
|
||||||
tags:
|
tags:
|
||||||
only:
|
only:
|
||||||
- /^v\d+\.\d+\.\d+(-rc\d+)?$/
|
- /^v\d+\.\d+\.\d+(-rc\d+)?$/
|
||||||
@@ -592,7 +545,6 @@ workflows:
|
|||||||
branches:
|
branches:
|
||||||
only:
|
only:
|
||||||
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
|
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
|
||||||
- /^ci\/.*$/
|
|
||||||
tags:
|
tags:
|
||||||
only:
|
only:
|
||||||
- /^v\d+\.\d+\.\d+(-rc\d+)?$/
|
- /^v\d+\.\d+\.\d+(-rc\d+)?$/
|
||||||
@@ -602,7 +554,6 @@ workflows:
|
|||||||
branches:
|
branches:
|
||||||
only:
|
only:
|
||||||
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
|
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
|
||||||
- /^ci\/.*$/
|
|
||||||
tags:
|
tags:
|
||||||
only:
|
only:
|
||||||
- /^v\d+\.\d+\.\d+(-rc\d+)?$/
|
- /^v\d+\.\d+\.\d+(-rc\d+)?$/
|
||||||
@@ -615,7 +566,7 @@ workflows:
|
|||||||
filters:
|
filters:
|
||||||
branches:
|
branches:
|
||||||
ignore:
|
ignore:
|
||||||
- /^.*$/
|
- /.*/
|
||||||
tags:
|
tags:
|
||||||
only:
|
only:
|
||||||
- /^v\d+\.\d+\.\d+(-rc\d+)?$/
|
- /^v\d+\.\d+\.\d+(-rc\d+)?$/
|
||||||
@@ -630,7 +581,6 @@ workflows:
|
|||||||
branches:
|
branches:
|
||||||
only:
|
only:
|
||||||
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
|
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
|
||||||
- /^ci\/.*$/
|
|
||||||
[[- range .Networks]]
|
[[- range .Networks]]
|
||||||
- build-docker:
|
- build-docker:
|
||||||
name: "Docker push (lotus-all-in-one / stable / [[.]])"
|
name: "Docker push (lotus-all-in-one / stable / [[.]])"
|
||||||
|
|||||||
@@ -9,9 +9,15 @@ body:
|
|||||||
options:
|
options:
|
||||||
- label: This is **not** a security-related bug/issue. If it is, please follow please follow the [security policy](https://github.com/filecoin-project/lotus/security/policy).
|
- label: This is **not** a security-related bug/issue. If it is, please follow please follow the [security policy](https://github.com/filecoin-project/lotus/security/policy).
|
||||||
required: true
|
required: true
|
||||||
|
- label: This is **not** a question or a support request. If you have any lotus related questions, please ask in the [lotus forum](https://github.com/filecoin-project/lotus/discussions).
|
||||||
|
required: true
|
||||||
|
- label: This is **not** a new feature request. If it is, please file a [feature request](https://github.com/filecoin-project/lotus/issues/new?assignees=&labels=need%2Ftriage%2Ckind%2Ffeature&template=feature_request.yml) instead.
|
||||||
|
required: true
|
||||||
|
- label: This is **not** an enhancement request. If it is, please file a [improvement suggestion](https://github.com/filecoin-project/lotus/issues/new?assignees=&labels=need%2Ftriage%2Ckind%2Fenhancement&template=enhancement.yml) instead.
|
||||||
|
required: true
|
||||||
- label: I **have** searched on the [issue tracker](https://github.com/filecoin-project/lotus/issues) and the [lotus forum](https://github.com/filecoin-project/lotus/discussions), and there is no existing related issue or discussion.
|
- label: I **have** searched on the [issue tracker](https://github.com/filecoin-project/lotus/issues) and the [lotus forum](https://github.com/filecoin-project/lotus/discussions), and there is no existing related issue or discussion.
|
||||||
required: true
|
required: true
|
||||||
- label: I am running the [`Latest release`](https://github.com/filecoin-project/lotus/releases), the most recent RC(release canadiate) for the upcoming release or the dev branch(master), or have an issue updating to any of these.
|
- label: I am running the [`Latest release`](https://github.com/filecoin-project/lotus/releases), or the most recent RC(release canadiate) for the upcoming release or the dev branch(master), or have an issue updating to any of these.
|
||||||
required: true
|
required: true
|
||||||
- label: I did not make any code changes to lotus.
|
- label: I did not make any code changes to lotus.
|
||||||
required: false
|
required: false
|
||||||
@@ -22,11 +28,19 @@ body:
|
|||||||
options:
|
options:
|
||||||
- label: lotus daemon - chain sync
|
- label: lotus daemon - chain sync
|
||||||
required: false
|
required: false
|
||||||
- label: lotus fvm/fevm - Lotus FVM and FEVM interactions
|
- label: lotus miner - mining and block production
|
||||||
required: false
|
required: false
|
||||||
- label: lotus miner/worker - sealing
|
- label: lotus miner/worker - sealing
|
||||||
required: false
|
required: false
|
||||||
- label: lotus miner - proving(WindowPoSt/WinningPoSt)
|
- label: lotus miner - proving(WindowPoSt)
|
||||||
|
required: false
|
||||||
|
- label: lotus miner/market - storage deal
|
||||||
|
required: false
|
||||||
|
- label: lotus miner/market - retrieval deal
|
||||||
|
required: false
|
||||||
|
- label: lotus miner/market - data transfer
|
||||||
|
required: false
|
||||||
|
- label: lotus client
|
||||||
required: false
|
required: false
|
||||||
- label: lotus JSON-RPC API
|
- label: lotus JSON-RPC API
|
||||||
required: false
|
required: false
|
||||||
@@ -42,33 +56,22 @@ body:
|
|||||||
description: Enter the output of `lotus version` and `lotus-miner version` if applicable.
|
description: Enter the output of `lotus version` and `lotus-miner version` if applicable.
|
||||||
placeholder: |
|
placeholder: |
|
||||||
e.g.
|
e.g.
|
||||||
Daemon: 1.19.0+mainnet+git.64059ca87+api1.5.0
|
Daemon:1.11.0-rc2+debug+git.0519cd371.dirty+api1.3.0
|
||||||
Local: lotus-miner version 1.19.0+mainnet+git.64059ca87
|
Local: lotus version 1.11.0-rc2+debug+git.0519cd371.dirty
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: textarea
|
|
||||||
id: ReproSteps
|
|
||||||
attributes:
|
|
||||||
label: Repro Steps
|
|
||||||
description: "Steps to reproduce the behavior"
|
|
||||||
value: |
|
|
||||||
1. Run '...'
|
|
||||||
2. Do '...'
|
|
||||||
3. See error '...'
|
|
||||||
...
|
|
||||||
validations:
|
|
||||||
required: false
|
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: Description
|
id: Description
|
||||||
attributes:
|
attributes:
|
||||||
label: Describe the Bug
|
label: Describe the Bug
|
||||||
description: |
|
description: |
|
||||||
This is where you get to tell us what went wrong, when doing so, please try to provide a clear and concise description of the bug with all related information:
|
This is where you get to tell us what went wrong, when doing so, please try to provide a clear and concise description of the bug with all related information:
|
||||||
* What you were doing when you experienced the bug?
|
* What you were doding when you experienced the bug?
|
||||||
* Any *error* messages you saw, *where* you saw them, and what you believe may have caused them (if you have any ideas).
|
* Any *error* messages you saw, *where* you saw them, and what you believe may have caused them (if you have any ideas).
|
||||||
* What is the expected behaviour?
|
* What is the expected behaviour?
|
||||||
* For sealing issues, include the output of `lotus-miner sectors status --log <sectorId>` for the failed sector(s).
|
* For sealing issues, include the output of `lotus-miner sectors status --log <sectorId>` for the failed sector(s).
|
||||||
* For proving issues, include the output of `lotus-miner proving` info.
|
* For proving issues, include the output of `lotus-miner proving` info.
|
||||||
|
* For deal making issues, include the output of `lotus client list-deals -v` and/or `lotus-miner storage-deals|retrieval-deals|data-transfers list [-v]` commands for the deal(s) in question.
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: textarea
|
- type: textarea
|
||||||
@@ -80,6 +83,18 @@ body:
|
|||||||
Please provide debug logs of the problem, remember you can get set log level control for:
|
Please provide debug logs of the problem, remember you can get set log level control for:
|
||||||
* lotus: use `lotus log list` to get all log systems available and set level by `lotus log set-level`. An example can be found [here](https://lotus.filecoin.io/lotus/configure/defaults/#log-level-control).
|
* lotus: use `lotus log list` to get all log systems available and set level by `lotus log set-level`. An example can be found [here](https://lotus.filecoin.io/lotus/configure/defaults/#log-level-control).
|
||||||
* lotus-miner:`lotus-miner log list` to get all log systems available and set level by `lotus-miner log set-level
|
* lotus-miner:`lotus-miner log list` to get all log systems available and set level by `lotus-miner log set-level
|
||||||
If you don't provide detailed logs when you raise the issue it will almost certainly be the first request we make before furthur diagnosing the problem.
|
If you don't provide detailed logs when you raise the issue it will almost certainly be the first request I make before furthur diagnosing the problem.
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: RepoSteps
|
||||||
|
attributes:
|
||||||
|
label: Repo Steps
|
||||||
|
description: "Steps to reproduce the behavior"
|
||||||
|
value: |
|
||||||
|
1. Run '...'
|
||||||
|
2. Do '...'
|
||||||
|
3. See error '...'
|
||||||
|
...
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
blank_issues_enabled: true
|
|
||||||
contact_links:
|
|
||||||
- name: Ask a question about Lotus or get support
|
|
||||||
url: https://github.com/filecoin-project/lotus/discussions/new/choose
|
|
||||||
about: Ask a question or request support for using Lotus
|
|
||||||
- name: Filecoin protocol feature or enhancement
|
|
||||||
url: https://github.com/filecoin-project/FIPs/discussions/new/choose
|
|
||||||
about: Write a discussion in the Filecoin Improvement Proposal repo
|
|
||||||
@@ -7,7 +7,13 @@ body:
|
|||||||
label: Checklist
|
label: Checklist
|
||||||
description: Please check off the following boxes before continuing to create an improvement suggestion!
|
description: Please check off the following boxes before continuing to create an improvement suggestion!
|
||||||
options:
|
options:
|
||||||
- label: I **have** a specific, actionable, and well motivated improvement to an existing lotus feature.
|
- label: This is **not** a new feature or an enhancement to the Filecoin protocol. If it is, please open an [FIP issue](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0001.md).
|
||||||
|
required: true
|
||||||
|
- label: This is **not** a new feature request. If it is, please file a [feature request](https://github.com/filecoin-project/lotus/issues/new?assignees=&labels=need%2Ftriage%2Ckind%2Ffeature&template=feature_request.yml) instead.
|
||||||
|
required: true
|
||||||
|
- label: This is **not** brainstorming ideas. If you have an idea you'd like to discuss, please open a new discussion on [the lotus forum](https://github.com/filecoin-project/lotus/discussions/categories/ideas) and select the category as `Ideas`.
|
||||||
|
required: true
|
||||||
|
- label: I **have** a specific, actionable, and well motivated improvement to propose.
|
||||||
required: true
|
required: true
|
||||||
- type: checkboxes
|
- type: checkboxes
|
||||||
attributes:
|
attributes:
|
||||||
@@ -16,11 +22,19 @@ body:
|
|||||||
options:
|
options:
|
||||||
- label: lotus daemon - chain sync
|
- label: lotus daemon - chain sync
|
||||||
required: false
|
required: false
|
||||||
- label: lotus fvm/fevm - Lotus FVM and FEVM interactions
|
- label: lotus miner - mining and block production
|
||||||
required: false
|
required: false
|
||||||
- label: lotus miner/worker - sealing
|
- label: lotus miner/worker - sealing
|
||||||
required: false
|
required: false
|
||||||
- label: lotus miner - proving(WindowPoSt/WinningPoSt)
|
- label: lotus miner - proving(WindowPoSt)
|
||||||
|
required: false
|
||||||
|
- label: lotus miner/market - storage deal
|
||||||
|
required: false
|
||||||
|
- label: lotus miner/market - retrieval deal
|
||||||
|
required: false
|
||||||
|
- label: lotus miner/market - data transfer
|
||||||
|
required: false
|
||||||
|
- label: lotus client
|
||||||
required: false
|
required: false
|
||||||
- label: lotus JSON-RPC API
|
- label: lotus JSON-RPC API
|
||||||
required: false
|
required: false
|
||||||
@@ -31,17 +45,9 @@ body:
|
|||||||
- type: textarea
|
- type: textarea
|
||||||
id: request
|
id: request
|
||||||
attributes:
|
attributes:
|
||||||
label: Enhancement Suggestion
|
label: Improvement Suggestion
|
||||||
description: A clear and concise description of the suggested enhancement?
|
description: A clear and concise description of what the motivation or the current problem is and what is the suggested improvement?
|
||||||
placeholder: Ex. Currently lotus... However it would be great if [enhancement] was implemented... With the ability to...
|
placeholder: Ex. Currently lotus... However, as a storage provider, I'd like...
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: textarea
|
|
||||||
id: request
|
|
||||||
attributes:
|
|
||||||
label: Use-Case
|
|
||||||
description: How would this enhancement help you?
|
|
||||||
placeholder: Ex. With the [enhancement] node operators would be able to... For Storage Providers it would enable...
|
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ body:
|
|||||||
label: Checklist
|
label: Checklist
|
||||||
description: Please check off the following boxes before continuing to create a new feature request!
|
description: Please check off the following boxes before continuing to create a new feature request!
|
||||||
options:
|
options:
|
||||||
|
- label: This is **not** a new feature or an enhancement to the Filecoin protocol. If it is, please open an [FIP issue](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0001.md).
|
||||||
|
required: true
|
||||||
- label: This is **not** brainstorming ideas. If you have an idea you'd like to discuss, please open a new discussion on [the lotus forum](https://github.com/filecoin-project/lotus/discussions/categories/ideas) and select the category as `Ideas`.
|
- label: This is **not** brainstorming ideas. If you have an idea you'd like to discuss, please open a new discussion on [the lotus forum](https://github.com/filecoin-project/lotus/discussions/categories/ideas) and select the category as `Ideas`.
|
||||||
required: true
|
required: true
|
||||||
- label: I **have** a specific, actionable, and well motivated feature request to propose.
|
- label: I **have** a specific, actionable, and well motivated feature request to propose.
|
||||||
@@ -18,11 +20,19 @@ body:
|
|||||||
options:
|
options:
|
||||||
- label: lotus daemon - chain sync
|
- label: lotus daemon - chain sync
|
||||||
required: false
|
required: false
|
||||||
- label: lotus fvm/fevm - Lotus FVM and FEVM interactions
|
- label: lotus miner - mining and block production
|
||||||
required: false
|
required: false
|
||||||
- label: lotus miner/worker - sealing
|
- label: lotus miner/worker - sealing
|
||||||
required: false
|
required: false
|
||||||
- label: lotus miner - proving(WindowPoSt/WinningPoSt)
|
- label: lotus miner - proving(WindowPoSt)
|
||||||
|
required: false
|
||||||
|
- label: lotus miner/market - storage deal
|
||||||
|
required: false
|
||||||
|
- label: lotus miner/market - retrieval deal
|
||||||
|
required: false
|
||||||
|
- label: lotus miner/market - data transfer
|
||||||
|
required: false
|
||||||
|
- label: lotus client
|
||||||
required: false
|
required: false
|
||||||
- label: lotus JSON-RPC API
|
- label: lotus JSON-RPC API
|
||||||
required: false
|
required: false
|
||||||
@@ -46,7 +56,7 @@ body:
|
|||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: alternatives
|
id: alternates
|
||||||
attributes:
|
attributes:
|
||||||
label: Describe alternatives you've considered
|
label: Describe alternatives you've considered
|
||||||
description: A clear and concise description of any alternative solutions or features you've considered.
|
description: A clear and concise description of any alternative solutions or features you've considered.
|
||||||
@@ -59,3 +69,4 @@ body:
|
|||||||
description: Add any other context, design docs or screenshots about the feature request here.
|
description: Add any other context, design docs or screenshots about the feature request here.
|
||||||
validations:
|
validations:
|
||||||
required: false
|
required: false
|
||||||
|
|
||||||
|
|||||||
@@ -1,83 +0,0 @@
|
|||||||
name: "Bug Report - developer/service provider"
|
|
||||||
description: "Bug report template about FEVM/FVM for developers/service providers"
|
|
||||||
labels: [need/triage, kind/bug, area/fevm]
|
|
||||||
body:
|
|
||||||
- type: checkboxes
|
|
||||||
attributes:
|
|
||||||
label: Checklist
|
|
||||||
description: Please check off the following boxes before continuing to file a bug report!
|
|
||||||
options:
|
|
||||||
- label: This is **not** a security-related bug/issue. If it is, please follow please follow the [security policy](https://github.com/filecoin-project/lotus/security/policy).
|
|
||||||
required: true
|
|
||||||
- label: I **have** searched on the [issue tracker](https://github.com/filecoin-project/lotus/issues) and the [lotus forum](https://github.com/filecoin-project/lotus/discussions), and there is no existing related issue or discussion.
|
|
||||||
required: true
|
|
||||||
- label: I did not make any code changes to lotus.
|
|
||||||
required: false
|
|
||||||
- type: checkboxes
|
|
||||||
attributes:
|
|
||||||
label: Lotus component
|
|
||||||
description: Please select the lotus component you are filing a bug for
|
|
||||||
options:
|
|
||||||
- label: lotus Ethereum RPC
|
|
||||||
required: false
|
|
||||||
- label: lotus FVM - Lotus FVM interactions
|
|
||||||
required: false
|
|
||||||
- label: FEVM tooling
|
|
||||||
required: false
|
|
||||||
- label: Other
|
|
||||||
required: false
|
|
||||||
- type: textarea
|
|
||||||
id: version
|
|
||||||
attributes:
|
|
||||||
label: Lotus Version
|
|
||||||
render: text
|
|
||||||
description: Enter the output of `lotus version` if applicable.
|
|
||||||
placeholder: |
|
|
||||||
e.g.
|
|
||||||
Daemon: 1.19.0+mainnet+git.64059ca87+api1.5.0
|
|
||||||
Local: lotus-miner version 1.19.0+mainnet+git.64059ca87
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: textarea
|
|
||||||
id: repro
|
|
||||||
attributes:
|
|
||||||
label: Repro Steps
|
|
||||||
description: "Steps to reproduce the behavior"
|
|
||||||
value: |
|
|
||||||
1. Run '...'
|
|
||||||
2. Do '...'
|
|
||||||
3. See error '...'
|
|
||||||
...
|
|
||||||
validations:
|
|
||||||
required: false
|
|
||||||
- type: textarea
|
|
||||||
id: Description
|
|
||||||
attributes:
|
|
||||||
label: Describe the Bug
|
|
||||||
description: |
|
|
||||||
This is where you get to tell us what went wrong, when doing so, please try to provide a clear and concise description of the bug with all related information:
|
|
||||||
* What you were doing when you experienced the bug? What are you trying to build?
|
|
||||||
* Any *error* messages and logs you saw, *where* you saw them, and what you believe may have caused them (if you have any ideas).
|
|
||||||
* What is the expected behaviour? Links to the actual code?
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: textarea
|
|
||||||
id: toolingInfo
|
|
||||||
attributes:
|
|
||||||
label: Tooling
|
|
||||||
render: text
|
|
||||||
description: |
|
|
||||||
What kind of tooling are you using:
|
|
||||||
* Are you using ether.js, Alchemy, Hardhat, etc.
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: textarea
|
|
||||||
id: extraInfo
|
|
||||||
attributes:
|
|
||||||
label: Configuration Options
|
|
||||||
render: text
|
|
||||||
description: |
|
|
||||||
Please provide your updated FEVM related configuration options, or custome enviroment variables related to Lotus FEVM
|
|
||||||
* lotus: use `lotus config updated` to get your configuration options, and copy the [FEVM] section
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
---
|
|
||||||
name: New Task
|
|
||||||
about: A larger yet well-scoped task
|
|
||||||
title: '<title>'
|
|
||||||
labels: Needs Triage
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## User Story
|
|
||||||
<!-- Why? -->
|
|
||||||
|
|
||||||
## Acceptance Criteria
|
|
||||||
<!-- What? -->
|
|
||||||
<!-- add description-->
|
|
||||||
|
|
||||||
```[tasklist]
|
|
||||||
### Deliverables
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
## Technical Breakdown
|
|
||||||
```[tasklist]
|
|
||||||
### Development
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
```[tasklist]
|
|
||||||
### Testing
|
|
||||||
|
|
||||||
```
|
|
||||||
@@ -16,7 +16,6 @@ Before you mark the PR ready for review, please make sure that:
|
|||||||
- example: ` fix: mempool: Introduce a cache for valid signatures`
|
- example: ` fix: mempool: Introduce a cache for valid signatures`
|
||||||
- `PR type`: fix, feat, build, chore, ci, docs, perf, refactor, revert, style, test
|
- `PR type`: fix, feat, build, chore, ci, docs, perf, refactor, revert, style, test
|
||||||
- `area`, e.g. api, chain, state, market, mempool, multisig, networking, paych, proving, sealing, wallet, deps
|
- `area`, e.g. api, chain, state, market, mempool, multisig, networking, paych, proving, sealing, wallet, deps
|
||||||
- [ ] If the PR affects users (e.g., new feature, bug fix, system requirements change), update the CHANGELOG.md and add details to the UNRELEASED section.
|
|
||||||
- [ ] New features have usage guidelines and / or documentation updates in
|
- [ ] New features have usage guidelines and / or documentation updates in
|
||||||
- [ ] [Lotus Documentation](https://lotus.filecoin.io)
|
- [ ] [Lotus Documentation](https://lotus.filecoin.io)
|
||||||
- [ ] [Discussion Tutorials](https://github.com/filecoin-project/lotus/discussions/categories/tutorials)
|
- [ ] [Discussion Tutorials](https://github.com/filecoin-project/lotus/discussions/categories/tutorials)
|
||||||
|
|||||||
@@ -52,4 +52,3 @@ dist/
|
|||||||
# The following files are checked into git and result
|
# The following files are checked into git and result
|
||||||
# in dirty git state if removed from the docker context
|
# in dirty git state if removed from the docker context
|
||||||
!extern/filecoin-ffi/rust/filecoin.pc
|
!extern/filecoin-ffi/rust/filecoin.pc
|
||||||
!extern/test-vectors
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ linters:
|
|||||||
- unconvert
|
- unconvert
|
||||||
- staticcheck
|
- staticcheck
|
||||||
- varcheck
|
- varcheck
|
||||||
|
- structcheck
|
||||||
- deadcode
|
- deadcode
|
||||||
- scopelint
|
- scopelint
|
||||||
|
|
||||||
|
|||||||
+25
-945
File diff suppressed because it is too large
Load Diff
+2
-2
@@ -1,5 +1,5 @@
|
|||||||
#####################################
|
#####################################
|
||||||
FROM golang:1.20.7-bullseye AS lotus-builder
|
FROM golang:1.18.8-buster AS lotus-builder
|
||||||
MAINTAINER Lotus Development Team
|
MAINTAINER Lotus Development Team
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y ca-certificates build-essential clang ocl-icd-opencl-dev ocl-icd-libopencl1 jq libhwloc-dev
|
RUN apt-get update && apt-get install -y ca-certificates build-essential clang ocl-icd-opencl-dev ocl-icd-libopencl1 jq libhwloc-dev
|
||||||
@@ -58,7 +58,7 @@ COPY --from=lotus-builder /lib/*/libgcc_s.so.1 /lib/
|
|||||||
COPY --from=lotus-builder /lib/*/libutil.so.1 /lib/
|
COPY --from=lotus-builder /lib/*/libutil.so.1 /lib/
|
||||||
COPY --from=lotus-builder /usr/lib/*/libltdl.so.7 /lib/
|
COPY --from=lotus-builder /usr/lib/*/libltdl.so.7 /lib/
|
||||||
COPY --from=lotus-builder /usr/lib/*/libnuma.so.1 /lib/
|
COPY --from=lotus-builder /usr/lib/*/libnuma.so.1 /lib/
|
||||||
COPY --from=lotus-builder /usr/lib/*/libhwloc.so.* /lib/
|
COPY --from=lotus-builder /usr/lib/*/libhwloc.so.5 /lib/
|
||||||
COPY --from=lotus-builder /usr/lib/*/libOpenCL.so.1 /lib/
|
COPY --from=lotus-builder /usr/lib/*/libOpenCL.so.1 /lib/
|
||||||
|
|
||||||
RUN useradd -r -u 532 -U fc \
|
RUN useradd -r -u 532 -U fc \
|
||||||
|
|||||||
@@ -0,0 +1,273 @@
|
|||||||
|
##### DEPRECATED
|
||||||
|
|
||||||
|
FROM golang:1.18.8-buster AS builder-deps
|
||||||
|
MAINTAINER Lotus Development Team
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y ca-certificates build-essential clang ocl-icd-opencl-dev ocl-icd-libopencl1 jq libhwloc-dev
|
||||||
|
|
||||||
|
ENV XDG_CACHE_HOME="/tmp"
|
||||||
|
|
||||||
|
### taken from https://github.com/rust-lang/docker-rust/blob/master/1.63.0/buster/Dockerfile
|
||||||
|
ENV RUSTUP_HOME=/usr/local/rustup \
|
||||||
|
CARGO_HOME=/usr/local/cargo \
|
||||||
|
PATH=/usr/local/cargo/bin:$PATH \
|
||||||
|
RUST_VERSION=1.63.0
|
||||||
|
|
||||||
|
RUN set -eux; \
|
||||||
|
dpkgArch="$(dpkg --print-architecture)"; \
|
||||||
|
case "${dpkgArch##*-}" in \
|
||||||
|
amd64) rustArch='x86_64-unknown-linux-gnu'; rustupSha256='5cc9ffd1026e82e7fb2eec2121ad71f4b0f044e88bca39207b3f6b769aaa799c' ;; \
|
||||||
|
arm64) rustArch='aarch64-unknown-linux-gnu'; rustupSha256='e189948e396d47254103a49c987e7fb0e5dd8e34b200aa4481ecc4b8e41fb929' ;; \
|
||||||
|
*) echo >&2 "unsupported architecture: ${dpkgArch}"; exit 1 ;; \
|
||||||
|
esac; \
|
||||||
|
url="https://static.rust-lang.org/rustup/archive/1.25.1/${rustArch}/rustup-init"; \
|
||||||
|
wget "$url"; \
|
||||||
|
echo "${rustupSha256} *rustup-init" | sha256sum -c -; \
|
||||||
|
chmod +x rustup-init; \
|
||||||
|
./rustup-init -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION --default-host ${rustArch}; \
|
||||||
|
rm rustup-init; \
|
||||||
|
chmod -R a+w $RUSTUP_HOME $CARGO_HOME; \
|
||||||
|
rustup --version; \
|
||||||
|
cargo --version; \
|
||||||
|
rustc --version;
|
||||||
|
### end rust
|
||||||
|
|
||||||
|
FROM builder-deps AS builder-local
|
||||||
|
MAINTAINER Lotus Development Team
|
||||||
|
|
||||||
|
COPY ./ /opt/filecoin
|
||||||
|
WORKDIR /opt/filecoin
|
||||||
|
|
||||||
|
### make configurable filecoin-ffi build
|
||||||
|
ARG FFI_BUILD_FROM_SOURCE=0
|
||||||
|
ENV FFI_BUILD_FROM_SOURCE=${FFI_BUILD_FROM_SOURCE}
|
||||||
|
|
||||||
|
RUN make clean deps
|
||||||
|
|
||||||
|
|
||||||
|
FROM builder-local AS builder-test
|
||||||
|
MAINTAINER Lotus Development Team
|
||||||
|
|
||||||
|
WORKDIR /opt/filecoin
|
||||||
|
|
||||||
|
RUN make debug
|
||||||
|
|
||||||
|
|
||||||
|
FROM builder-local AS builder
|
||||||
|
MAINTAINER Lotus Development Team
|
||||||
|
|
||||||
|
WORKDIR /opt/filecoin
|
||||||
|
|
||||||
|
ARG RUSTFLAGS=""
|
||||||
|
ARG GOFLAGS=""
|
||||||
|
|
||||||
|
RUN make lotus lotus-miner lotus-worker lotus-shed lotus-wallet lotus-gateway lotus-stats
|
||||||
|
|
||||||
|
|
||||||
|
FROM ubuntu:20.04 AS base
|
||||||
|
MAINTAINER Lotus Development Team
|
||||||
|
|
||||||
|
# Base resources
|
||||||
|
COPY --from=builder /etc/ssl/certs /etc/ssl/certs
|
||||||
|
COPY --from=builder /lib/*/libdl.so.2 /lib/
|
||||||
|
COPY --from=builder /lib/*/librt.so.1 /lib/
|
||||||
|
COPY --from=builder /lib/*/libgcc_s.so.1 /lib/
|
||||||
|
COPY --from=builder /lib/*/libutil.so.1 /lib/
|
||||||
|
COPY --from=builder /usr/lib/*/libltdl.so.7 /lib/
|
||||||
|
COPY --from=builder /usr/lib/*/libnuma.so.1 /lib/
|
||||||
|
COPY --from=builder /usr/lib/*/libhwloc.so.5 /lib/
|
||||||
|
COPY --from=builder /usr/lib/*/libOpenCL.so.1 /lib/
|
||||||
|
|
||||||
|
RUN useradd -r -u 532 -U fc \
|
||||||
|
&& mkdir -p /etc/OpenCL/vendors \
|
||||||
|
&& echo "libnvidia-opencl.so.1" > /etc/OpenCL/vendors/nvidia.icd
|
||||||
|
|
||||||
|
###
|
||||||
|
FROM base AS lotus
|
||||||
|
MAINTAINER Lotus Development Team
|
||||||
|
|
||||||
|
COPY --from=builder /opt/filecoin/lotus /usr/local/bin/
|
||||||
|
COPY --from=builder /opt/filecoin/lotus-shed /usr/local/bin/
|
||||||
|
COPY scripts/docker-lotus-entrypoint.sh /
|
||||||
|
|
||||||
|
ENV FILECOIN_PARAMETER_CACHE /var/tmp/filecoin-proof-parameters
|
||||||
|
ENV LOTUS_PATH /var/lib/lotus
|
||||||
|
ENV DOCKER_LOTUS_IMPORT_SNAPSHOT https://fil-chain-snapshots-fallback.s3.amazonaws.com/mainnet/minimal_finality_stateroots_latest.car
|
||||||
|
ENV DOCKER_LOTUS_IMPORT_WALLET ""
|
||||||
|
|
||||||
|
RUN mkdir /var/lib/lotus /var/tmp/filecoin-proof-parameters
|
||||||
|
RUN chown fc: /var/lib/lotus /var/tmp/filecoin-proof-parameters
|
||||||
|
|
||||||
|
VOLUME /var/lib/lotus
|
||||||
|
VOLUME /var/tmp/filecoin-proof-parameters
|
||||||
|
|
||||||
|
USER fc
|
||||||
|
|
||||||
|
EXPOSE 1234
|
||||||
|
|
||||||
|
ENTRYPOINT ["/docker-lotus-entrypoint.sh"]
|
||||||
|
|
||||||
|
CMD ["-help"]
|
||||||
|
|
||||||
|
###
|
||||||
|
FROM base AS lotus-wallet
|
||||||
|
MAINTAINER Lotus Development Team
|
||||||
|
|
||||||
|
COPY --from=builder /opt/filecoin/lotus-wallet /usr/local/bin/
|
||||||
|
|
||||||
|
ENV WALLET_PATH /var/lib/lotus-wallet
|
||||||
|
|
||||||
|
RUN mkdir /var/lib/lotus-wallet
|
||||||
|
RUN chown fc: /var/lib/lotus-wallet
|
||||||
|
|
||||||
|
VOLUME /var/lib/lotus-wallet
|
||||||
|
|
||||||
|
USER fc
|
||||||
|
|
||||||
|
EXPOSE 1777
|
||||||
|
|
||||||
|
ENTRYPOINT ["/usr/local/bin/lotus-wallet"]
|
||||||
|
|
||||||
|
CMD ["-help"]
|
||||||
|
|
||||||
|
###
|
||||||
|
FROM base AS lotus-gateway
|
||||||
|
MAINTAINER Lotus Development Team
|
||||||
|
|
||||||
|
COPY --from=builder /opt/filecoin/lotus-gateway /usr/local/bin/
|
||||||
|
|
||||||
|
USER fc
|
||||||
|
|
||||||
|
EXPOSE 1234
|
||||||
|
|
||||||
|
ENTRYPOINT ["/usr/local/bin/lotus-gateway"]
|
||||||
|
|
||||||
|
CMD ["-help"]
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
FROM base AS lotus-miner
|
||||||
|
MAINTAINER Lotus Development Team
|
||||||
|
|
||||||
|
COPY --from=builder /opt/filecoin/lotus-miner /usr/local/bin/
|
||||||
|
COPY scripts/docker-lotus-miner-entrypoint.sh /
|
||||||
|
|
||||||
|
ENV FILECOIN_PARAMETER_CACHE /var/tmp/filecoin-proof-parameters
|
||||||
|
ENV LOTUS_MINER_PATH /var/lib/lotus-miner
|
||||||
|
|
||||||
|
RUN mkdir /var/lib/lotus-miner /var/tmp/filecoin-proof-parameters
|
||||||
|
RUN chown fc: /var/lib/lotus-miner /var/tmp/filecoin-proof-parameters
|
||||||
|
|
||||||
|
VOLUME /var/lib/lotus-miner
|
||||||
|
VOLUME /var/tmp/filecoin-proof-parameters
|
||||||
|
|
||||||
|
USER fc
|
||||||
|
|
||||||
|
EXPOSE 2345
|
||||||
|
|
||||||
|
ENTRYPOINT ["/docker-lotus-miner-entrypoint.sh"]
|
||||||
|
|
||||||
|
CMD ["-help"]
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
FROM base AS lotus-worker
|
||||||
|
MAINTAINER Lotus Development Team
|
||||||
|
|
||||||
|
COPY --from=builder /opt/filecoin/lotus-worker /usr/local/bin/
|
||||||
|
|
||||||
|
ENV FILECOIN_PARAMETER_CACHE /var/tmp/filecoin-proof-parameters
|
||||||
|
ENV LOTUS_WORKER_PATH /var/lib/lotus-worker
|
||||||
|
|
||||||
|
RUN mkdir /var/lib/lotus-worker
|
||||||
|
RUN chown fc: /var/lib/lotus-worker
|
||||||
|
|
||||||
|
VOLUME /var/lib/lotus-worker
|
||||||
|
|
||||||
|
USER fc
|
||||||
|
|
||||||
|
EXPOSE 3456
|
||||||
|
|
||||||
|
ENTRYPOINT ["/usr/local/bin/lotus-worker"]
|
||||||
|
|
||||||
|
CMD ["-help"]
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
from base as lotus-all-in-one
|
||||||
|
|
||||||
|
ENV FILECOIN_PARAMETER_CACHE /var/tmp/filecoin-proof-parameters
|
||||||
|
ENV LOTUS_MINER_PATH /var/lib/lotus-miner
|
||||||
|
ENV LOTUS_PATH /var/lib/lotus
|
||||||
|
ENV LOTUS_WORKER_PATH /var/lib/lotus-worker
|
||||||
|
ENV WALLET_PATH /var/lib/lotus-wallet
|
||||||
|
ENV DOCKER_LOTUS_IMPORT_SNAPSHOT https://fil-chain-snapshots-fallback.s3.amazonaws.com/mainnet/minimal_finality_stateroots_latest.car
|
||||||
|
|
||||||
|
COPY --from=builder /opt/filecoin/lotus /usr/local/bin/
|
||||||
|
COPY --from=builder /opt/filecoin/lotus-shed /usr/local/bin/
|
||||||
|
COPY --from=builder /opt/filecoin/lotus-wallet /usr/local/bin/
|
||||||
|
COPY --from=builder /opt/filecoin/lotus-gateway /usr/local/bin/
|
||||||
|
COPY --from=builder /opt/filecoin/lotus-miner /usr/local/bin/
|
||||||
|
COPY --from=builder /opt/filecoin/lotus-worker /usr/local/bin/
|
||||||
|
COPY --from=builder /opt/filecoin/lotus-stats /usr/local/bin/
|
||||||
|
|
||||||
|
RUN mkdir /var/tmp/filecoin-proof-parameters
|
||||||
|
RUN mkdir /var/lib/lotus
|
||||||
|
RUN mkdir /var/lib/lotus-miner
|
||||||
|
RUN mkdir /var/lib/lotus-worker
|
||||||
|
RUN mkdir /var/lib/lotus-wallet
|
||||||
|
RUN chown fc: /var/tmp/filecoin-proof-parameters
|
||||||
|
RUN chown fc: /var/lib/lotus
|
||||||
|
RUN chown fc: /var/lib/lotus-miner
|
||||||
|
RUN chown fc: /var/lib/lotus-worker
|
||||||
|
RUN chown fc: /var/lib/lotus-wallet
|
||||||
|
|
||||||
|
|
||||||
|
VOLUME /var/tmp/filecoin-proof-parameters
|
||||||
|
VOLUME /var/lib/lotus
|
||||||
|
VOLUME /var/lib/lotus-miner
|
||||||
|
VOLUME /var/lib/lotus-worker
|
||||||
|
VOLUME /var/lib/lotus-wallet
|
||||||
|
|
||||||
|
EXPOSE 1234
|
||||||
|
EXPOSE 2345
|
||||||
|
EXPOSE 3456
|
||||||
|
EXPOSE 1777
|
||||||
|
|
||||||
|
###
|
||||||
|
from base as lotus-test
|
||||||
|
|
||||||
|
ENV FILECOIN_PARAMETER_CACHE /var/tmp/filecoin-proof-parameters
|
||||||
|
ENV LOTUS_MINER_PATH /var/lib/lotus-miner
|
||||||
|
ENV LOTUS_PATH /var/lib/lotus
|
||||||
|
ENV LOTUS_WORKER_PATH /var/lib/lotus-worker
|
||||||
|
ENV WALLET_PATH /var/lib/lotus-wallet
|
||||||
|
|
||||||
|
COPY --from=builder-test /opt/filecoin/lotus /usr/local/bin/
|
||||||
|
COPY --from=builder-test /opt/filecoin/lotus-miner /usr/local/bin/
|
||||||
|
COPY --from=builder-test /opt/filecoin/lotus-worker /usr/local/bin/
|
||||||
|
COPY --from=builder-test /opt/filecoin/lotus-seed /usr/local/bin/
|
||||||
|
|
||||||
|
RUN mkdir /var/tmp/filecoin-proof-parameters
|
||||||
|
RUN mkdir /var/lib/lotus
|
||||||
|
RUN mkdir /var/lib/lotus-miner
|
||||||
|
RUN mkdir /var/lib/lotus-worker
|
||||||
|
RUN mkdir /var/lib/lotus-wallet
|
||||||
|
RUN chown fc: /var/tmp/filecoin-proof-parameters
|
||||||
|
RUN chown fc: /var/lib/lotus
|
||||||
|
RUN chown fc: /var/lib/lotus-miner
|
||||||
|
RUN chown fc: /var/lib/lotus-worker
|
||||||
|
RUN chown fc: /var/lib/lotus-wallet
|
||||||
|
|
||||||
|
|
||||||
|
VOLUME /var/tmp/filecoin-proof-parameters
|
||||||
|
VOLUME /var/lib/lotus
|
||||||
|
VOLUME /var/lib/lotus-miner
|
||||||
|
VOLUME /var/lib/lotus-worker
|
||||||
|
VOLUME /var/lib/lotus-wallet
|
||||||
|
|
||||||
|
EXPOSE 1234
|
||||||
|
EXPOSE 2345
|
||||||
|
EXPOSE 3456
|
||||||
|
EXPOSE 1777
|
||||||
|
|
||||||
+1
-1
@@ -1 +1 @@
|
|||||||
1.20.7
|
1.18.8
|
||||||
|
|||||||
@@ -193,7 +193,7 @@ lotus-health:
|
|||||||
.PHONY: lotus-health
|
.PHONY: lotus-health
|
||||||
BINS+=lotus-health
|
BINS+=lotus-health
|
||||||
|
|
||||||
lotus-wallet: $(BUILD_DEPS)
|
lotus-wallet:
|
||||||
rm -f lotus-wallet
|
rm -f lotus-wallet
|
||||||
$(GOCC) build $(GOFLAGS) -o lotus-wallet ./cmd/lotus-wallet
|
$(GOCC) build $(GOFLAGS) -o lotus-wallet ./cmd/lotus-wallet
|
||||||
.PHONY: lotus-wallet
|
.PHONY: lotus-wallet
|
||||||
@@ -355,7 +355,7 @@ fiximports:
|
|||||||
./scripts/fiximports
|
./scripts/fiximports
|
||||||
|
|
||||||
gen: actors-code-gen type-gen cfgdoc-gen docsgen api-gen circleci fiximports
|
gen: actors-code-gen type-gen cfgdoc-gen docsgen api-gen circleci fiximports
|
||||||
@echo ">>> IF YOU'VE MODIFIED THE CLI OR CONFIG, REMEMBER TO ALSO RUN 'make docsgen-cli'"
|
@echo ">>> IF YOU'VE MODIFIED THE CLI OR CONFIG, REMEMBER TO ALSO MAKE docsgen-cli"
|
||||||
.PHONY: gen
|
.PHONY: gen
|
||||||
|
|
||||||
jen: gen
|
jen: gen
|
||||||
|
|||||||
@@ -71,10 +71,10 @@ For other distributions you can find the required dependencies [here.](https://l
|
|||||||
|
|
||||||
#### Go
|
#### Go
|
||||||
|
|
||||||
To build Lotus, you need a working installation of [Go 1.19.12 or higher](https://golang.org/dl/):
|
To build Lotus, you need a working installation of [Go 1.18.8 or higher](https://golang.org/dl/):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
wget -c https://golang.org/dl/go1.19.12.linux-amd64.tar.gz -O - | sudo tar -xz -C /usr/local
|
wget -c https://golang.org/dl/go1.18.8.linux-amd64.tar.gz -O - | sudo tar -xz -C /usr/local
|
||||||
```
|
```
|
||||||
|
|
||||||
**TIP:**
|
**TIP:**
|
||||||
|
|||||||
+38
-74
@@ -7,13 +7,13 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
"github.com/libp2p/go-libp2p/core/peer"
|
"github.com/libp2p/go-libp2p/core/peer"
|
||||||
|
|
||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
"github.com/filecoin-project/go-bitfield"
|
"github.com/filecoin-project/go-bitfield"
|
||||||
datatransfer "github.com/filecoin-project/go-data-transfer/v2"
|
datatransfer "github.com/filecoin-project/go-data-transfer"
|
||||||
"github.com/filecoin-project/go-fil-markets/retrievalmarket"
|
"github.com/filecoin-project/go-fil-markets/retrievalmarket"
|
||||||
"github.com/filecoin-project/go-fil-markets/storagemarket"
|
"github.com/filecoin-project/go-fil-markets/storagemarket"
|
||||||
"github.com/filecoin-project/go-jsonrpc"
|
"github.com/filecoin-project/go-jsonrpc"
|
||||||
@@ -21,6 +21,7 @@ import (
|
|||||||
"github.com/filecoin-project/go-state-types/big"
|
"github.com/filecoin-project/go-state-types/big"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v8/paych"
|
"github.com/filecoin-project/go-state-types/builtin/v8/paych"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v9/market"
|
"github.com/filecoin-project/go-state-types/builtin/v9/market"
|
||||||
|
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
||||||
"github.com/filecoin-project/go-state-types/crypto"
|
"github.com/filecoin-project/go-state-types/crypto"
|
||||||
"github.com/filecoin-project/go-state-types/dline"
|
"github.com/filecoin-project/go-state-types/dline"
|
||||||
@@ -28,7 +29,7 @@ import (
|
|||||||
|
|
||||||
apitypes "github.com/filecoin-project/lotus/api/types"
|
apitypes "github.com/filecoin-project/lotus/api/types"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin"
|
"github.com/filecoin-project/lotus/chain/actors/builtin"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
lminer "github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin/power"
|
"github.com/filecoin-project/lotus/chain/actors/builtin/power"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
"github.com/filecoin-project/lotus/chain/types/ethtypes"
|
"github.com/filecoin-project/lotus/chain/types/ethtypes"
|
||||||
@@ -172,24 +173,10 @@ type FullNode interface {
|
|||||||
// If oldmsgskip is set, messages from before the requested roots are also not included.
|
// If oldmsgskip is set, messages from before the requested roots are also not included.
|
||||||
ChainExport(ctx context.Context, nroots abi.ChainEpoch, oldmsgskip bool, tsk types.TipSetKey) (<-chan []byte, error) //perm:read
|
ChainExport(ctx context.Context, nroots abi.ChainEpoch, oldmsgskip bool, tsk types.TipSetKey) (<-chan []byte, error) //perm:read
|
||||||
|
|
||||||
// ChainExportRangeInternal triggers the export of a chain
|
// ChainPrune prunes the stored chain state and garbage collects; only supported if you
|
||||||
// CAR-snapshot directly to disk. It is similar to ChainExport,
|
|
||||||
// except, depending on options, the snapshot can include receipts,
|
|
||||||
// messages and stateroots for the length between the specified head
|
|
||||||
// and tail, thus producing "archival-grade" snapshots that include
|
|
||||||
// all the on-chain data. The header chain is included back to
|
|
||||||
// genesis and these snapshots can be used to initialize Filecoin
|
|
||||||
// nodes.
|
|
||||||
ChainExportRangeInternal(ctx context.Context, head, tail types.TipSetKey, cfg ChainExportConfig) error //perm:admin
|
|
||||||
|
|
||||||
// ChainPrune forces compaction on cold store and garbage collects; only supported if you
|
|
||||||
// are using the splitstore
|
// are using the splitstore
|
||||||
ChainPrune(ctx context.Context, opts PruneOpts) error //perm:admin
|
ChainPrune(ctx context.Context, opts PruneOpts) error //perm:admin
|
||||||
|
|
||||||
// ChainHotGC does online (badger) GC on the hot store; only supported if you are using
|
|
||||||
// the splitstore
|
|
||||||
ChainHotGC(ctx context.Context, opts HotGCOpts) error //perm:admin
|
|
||||||
|
|
||||||
// ChainCheckBlockstore performs an (asynchronous) health check on the chain/state blockstore
|
// ChainCheckBlockstore performs an (asynchronous) health check on the chain/state blockstore
|
||||||
// if supported by the underlying implementation.
|
// if supported by the underlying implementation.
|
||||||
ChainCheckBlockstore(context.Context) error //perm:admin
|
ChainCheckBlockstore(context.Context) error //perm:admin
|
||||||
@@ -296,10 +283,8 @@ type FullNode interface {
|
|||||||
MpoolGetNonce(context.Context, address.Address) (uint64, error) //perm:read
|
MpoolGetNonce(context.Context, address.Address) (uint64, error) //perm:read
|
||||||
MpoolSub(context.Context) (<-chan MpoolUpdate, error) //perm:read
|
MpoolSub(context.Context) (<-chan MpoolUpdate, error) //perm:read
|
||||||
|
|
||||||
// MpoolClear clears pending messages from the mpool.
|
// MpoolClear clears pending messages from the mpool
|
||||||
// If clearLocal is true, ALL messages will be cleared.
|
MpoolClear(context.Context, bool) error //perm:write
|
||||||
// If clearLocal is false, local messages will be protected, all others will be cleared.
|
|
||||||
MpoolClear(ctx context.Context, clearLocal bool) error //perm:write
|
|
||||||
|
|
||||||
// MpoolGetConfig returns (a copy of) the current mpool config
|
// MpoolGetConfig returns (a copy of) the current mpool config
|
||||||
MpoolGetConfig(context.Context) (*types.MpoolConfig, error) //perm:read
|
MpoolGetConfig(context.Context) (*types.MpoolConfig, error) //perm:read
|
||||||
@@ -498,9 +483,9 @@ type FullNode interface {
|
|||||||
// expiration epoch
|
// expiration epoch
|
||||||
StateSectorGetInfo(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*miner.SectorOnChainInfo, error) //perm:read
|
StateSectorGetInfo(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*miner.SectorOnChainInfo, error) //perm:read
|
||||||
// StateSectorExpiration returns epoch at which given sector will expire
|
// StateSectorExpiration returns epoch at which given sector will expire
|
||||||
StateSectorExpiration(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*miner.SectorExpiration, error) //perm:read
|
StateSectorExpiration(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*lminer.SectorExpiration, error) //perm:read
|
||||||
// StateSectorPartition finds deadline/partition with the specified sector
|
// StateSectorPartition finds deadline/partition with the specified sector
|
||||||
StateSectorPartition(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, tok types.TipSetKey) (*miner.SectorLocation, error) //perm:read
|
StateSectorPartition(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, tok types.TipSetKey) (*lminer.SectorLocation, error) //perm:read
|
||||||
// StateSearchMsg looks back up to limit epochs in the chain for a message, and returns its receipt and the tipset where it was executed
|
// StateSearchMsg looks back up to limit epochs in the chain for a message, and returns its receipt and the tipset where it was executed
|
||||||
//
|
//
|
||||||
// NOTE: If a replacing message is found on chain, this method will return
|
// NOTE: If a replacing message is found on chain, this method will return
|
||||||
@@ -640,11 +625,6 @@ type FullNode interface {
|
|||||||
// StateGetRandomnessFromBeacon is used to sample the beacon for randomness.
|
// StateGetRandomnessFromBeacon is used to sample the beacon for randomness.
|
||||||
StateGetRandomnessFromBeacon(ctx context.Context, personalization crypto.DomainSeparationTag, randEpoch abi.ChainEpoch, entropy []byte, tsk types.TipSetKey) (abi.Randomness, error) //perm:read
|
StateGetRandomnessFromBeacon(ctx context.Context, personalization crypto.DomainSeparationTag, randEpoch abi.ChainEpoch, entropy []byte, tsk types.TipSetKey) (abi.Randomness, error) //perm:read
|
||||||
|
|
||||||
// StateGetRandomnessDigestFromTickets. is used to sample the chain for randomness.
|
|
||||||
StateGetRandomnessDigestFromTickets(ctx context.Context, randEpoch abi.ChainEpoch, tsk types.TipSetKey) (abi.Randomness, error) //perm:read
|
|
||||||
// StateGetRandomnessDigestFromBeacon is used to sample the beacon for randomness.
|
|
||||||
StateGetRandomnessDigestFromBeacon(ctx context.Context, randEpoch abi.ChainEpoch, tsk types.TipSetKey) (abi.Randomness, error) //perm:read
|
|
||||||
|
|
||||||
// StateGetBeaconEntry returns the beacon entry for the given filecoin epoch. If
|
// StateGetBeaconEntry returns the beacon entry for the given filecoin epoch. If
|
||||||
// the entry has not yet been produced, the call will block until the entry
|
// the entry has not yet been produced, the call will block until the entry
|
||||||
// becomes available
|
// becomes available
|
||||||
@@ -800,32 +780,29 @@ type FullNode interface {
|
|||||||
// EthGetBlockTransactionCountByHash returns the number of messages in the TipSet
|
// EthGetBlockTransactionCountByHash returns the number of messages in the TipSet
|
||||||
EthGetBlockTransactionCountByHash(ctx context.Context, blkHash ethtypes.EthHash) (ethtypes.EthUint64, error) //perm:read
|
EthGetBlockTransactionCountByHash(ctx context.Context, blkHash ethtypes.EthHash) (ethtypes.EthUint64, error) //perm:read
|
||||||
|
|
||||||
EthGetBlockByHash(ctx context.Context, blkHash ethtypes.EthHash, fullTxInfo bool) (ethtypes.EthBlock, error) //perm:read
|
EthGetBlockByHash(ctx context.Context, blkHash ethtypes.EthHash, fullTxInfo bool) (ethtypes.EthBlock, error) //perm:read
|
||||||
EthGetBlockByNumber(ctx context.Context, blkNum string, fullTxInfo bool) (ethtypes.EthBlock, error) //perm:read
|
EthGetBlockByNumber(ctx context.Context, blkNum string, fullTxInfo bool) (ethtypes.EthBlock, error) //perm:read
|
||||||
EthGetTransactionByHash(ctx context.Context, txHash *ethtypes.EthHash) (*ethtypes.EthTx, error) //perm:read
|
EthGetTransactionByHash(ctx context.Context, txHash *ethtypes.EthHash) (*ethtypes.EthTx, error) //perm:read
|
||||||
EthGetTransactionByHashLimited(ctx context.Context, txHash *ethtypes.EthHash, limit abi.ChainEpoch) (*ethtypes.EthTx, error) //perm:read
|
EthGetTransactionHashByCid(ctx context.Context, cid cid.Cid) (*ethtypes.EthHash, error) //perm:read
|
||||||
EthGetTransactionHashByCid(ctx context.Context, cid cid.Cid) (*ethtypes.EthHash, error) //perm:read
|
EthGetMessageCidByTransactionHash(ctx context.Context, txHash *ethtypes.EthHash) (*cid.Cid, error) //perm:read
|
||||||
EthGetMessageCidByTransactionHash(ctx context.Context, txHash *ethtypes.EthHash) (*cid.Cid, error) //perm:read
|
EthGetTransactionCount(ctx context.Context, sender ethtypes.EthAddress, blkOpt string) (ethtypes.EthUint64, error) //perm:read
|
||||||
EthGetTransactionCount(ctx context.Context, sender ethtypes.EthAddress, blkParam ethtypes.EthBlockNumberOrHash) (ethtypes.EthUint64, error) //perm:read
|
EthGetTransactionReceipt(ctx context.Context, txHash ethtypes.EthHash) (*EthTxReceipt, error) //perm:read
|
||||||
EthGetTransactionReceipt(ctx context.Context, txHash ethtypes.EthHash) (*EthTxReceipt, error) //perm:read
|
EthGetTransactionByBlockHashAndIndex(ctx context.Context, blkHash ethtypes.EthHash, txIndex ethtypes.EthUint64) (ethtypes.EthTx, error) //perm:read
|
||||||
EthGetTransactionReceiptLimited(ctx context.Context, txHash ethtypes.EthHash, limit abi.ChainEpoch) (*EthTxReceipt, error) //perm:read
|
EthGetTransactionByBlockNumberAndIndex(ctx context.Context, blkNum ethtypes.EthUint64, txIndex ethtypes.EthUint64) (ethtypes.EthTx, error) //perm:read
|
||||||
EthGetTransactionByBlockHashAndIndex(ctx context.Context, blkHash ethtypes.EthHash, txIndex ethtypes.EthUint64) (ethtypes.EthTx, error) //perm:read
|
|
||||||
EthGetTransactionByBlockNumberAndIndex(ctx context.Context, blkNum ethtypes.EthUint64, txIndex ethtypes.EthUint64) (ethtypes.EthTx, error) //perm:read
|
|
||||||
|
|
||||||
EthGetCode(ctx context.Context, address ethtypes.EthAddress, blkParam ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) //perm:read
|
EthGetCode(ctx context.Context, address ethtypes.EthAddress, blkOpt string) (ethtypes.EthBytes, error) //perm:read
|
||||||
EthGetStorageAt(ctx context.Context, address ethtypes.EthAddress, position ethtypes.EthBytes, blkParam ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) //perm:read
|
EthGetStorageAt(ctx context.Context, address ethtypes.EthAddress, position ethtypes.EthBytes, blkParam string) (ethtypes.EthBytes, error) //perm:read
|
||||||
EthGetBalance(ctx context.Context, address ethtypes.EthAddress, blkParam ethtypes.EthBlockNumberOrHash) (ethtypes.EthBigInt, error) //perm:read
|
EthGetBalance(ctx context.Context, address ethtypes.EthAddress, blkParam string) (ethtypes.EthBigInt, error) //perm:read
|
||||||
EthChainId(ctx context.Context) (ethtypes.EthUint64, error) //perm:read
|
EthChainId(ctx context.Context) (ethtypes.EthUint64, error) //perm:read
|
||||||
EthSyncing(ctx context.Context) (ethtypes.EthSyncingResult, error) //perm:read
|
NetVersion(ctx context.Context) (string, error) //perm:read
|
||||||
NetVersion(ctx context.Context) (string, error) //perm:read
|
NetListening(ctx context.Context) (bool, error) //perm:read
|
||||||
NetListening(ctx context.Context) (bool, error) //perm:read
|
EthProtocolVersion(ctx context.Context) (ethtypes.EthUint64, error) //perm:read
|
||||||
EthProtocolVersion(ctx context.Context) (ethtypes.EthUint64, error) //perm:read
|
EthGasPrice(ctx context.Context) (ethtypes.EthBigInt, error) //perm:read
|
||||||
EthGasPrice(ctx context.Context) (ethtypes.EthBigInt, error) //perm:read
|
EthFeeHistory(ctx context.Context, p jsonrpc.RawParams) (ethtypes.EthFeeHistory, error) //perm:read
|
||||||
EthFeeHistory(ctx context.Context, p jsonrpc.RawParams) (ethtypes.EthFeeHistory, error) //perm:read
|
|
||||||
|
|
||||||
EthMaxPriorityFeePerGas(ctx context.Context) (ethtypes.EthBigInt, error) //perm:read
|
EthMaxPriorityFeePerGas(ctx context.Context) (ethtypes.EthBigInt, error) //perm:read
|
||||||
EthEstimateGas(ctx context.Context, tx ethtypes.EthCall) (ethtypes.EthUint64, error) //perm:read
|
EthEstimateGas(ctx context.Context, tx ethtypes.EthCall) (ethtypes.EthUint64, error) //perm:read
|
||||||
EthCall(ctx context.Context, tx ethtypes.EthCall, blkParam ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) //perm:read
|
EthCall(ctx context.Context, tx ethtypes.EthCall, blkParam string) (ethtypes.EthBytes, error) //perm:read
|
||||||
|
|
||||||
EthSendRawTransaction(ctx context.Context, rawTx ethtypes.EthBytes) (ethtypes.EthHash, error) //perm:read
|
EthSendRawTransaction(ctx context.Context, rawTx ethtypes.EthBytes) (ethtypes.EthHash, error) //perm:read
|
||||||
|
|
||||||
@@ -834,23 +811,23 @@ type FullNode interface {
|
|||||||
|
|
||||||
// Polling method for a filter, returns event logs which occurred since last poll.
|
// Polling method for a filter, returns event logs which occurred since last poll.
|
||||||
// (requires write perm since timestamp of last filter execution will be written)
|
// (requires write perm since timestamp of last filter execution will be written)
|
||||||
EthGetFilterChanges(ctx context.Context, id ethtypes.EthFilterID) (*ethtypes.EthFilterResult, error) //perm:read
|
EthGetFilterChanges(ctx context.Context, id ethtypes.EthFilterID) (*ethtypes.EthFilterResult, error) //perm:write
|
||||||
|
|
||||||
// Returns event logs matching filter with given id.
|
// Returns event logs matching filter with given id.
|
||||||
// (requires write perm since timestamp of last filter execution will be written)
|
// (requires write perm since timestamp of last filter execution will be written)
|
||||||
EthGetFilterLogs(ctx context.Context, id ethtypes.EthFilterID) (*ethtypes.EthFilterResult, error) //perm:read
|
EthGetFilterLogs(ctx context.Context, id ethtypes.EthFilterID) (*ethtypes.EthFilterResult, error) //perm:write
|
||||||
|
|
||||||
// Installs a persistent filter based on given filter spec.
|
// Installs a persistent filter based on given filter spec.
|
||||||
EthNewFilter(ctx context.Context, filter *ethtypes.EthFilterSpec) (ethtypes.EthFilterID, error) //perm:read
|
EthNewFilter(ctx context.Context, filter *ethtypes.EthFilterSpec) (ethtypes.EthFilterID, error) //perm:write
|
||||||
|
|
||||||
// Installs a persistent filter to notify when a new block arrives.
|
// Installs a persistent filter to notify when a new block arrives.
|
||||||
EthNewBlockFilter(ctx context.Context) (ethtypes.EthFilterID, error) //perm:read
|
EthNewBlockFilter(ctx context.Context) (ethtypes.EthFilterID, error) //perm:write
|
||||||
|
|
||||||
// Installs a persistent filter to notify when new messages arrive in the message pool.
|
// Installs a persistent filter to notify when new messages arrive in the message pool.
|
||||||
EthNewPendingTransactionFilter(ctx context.Context) (ethtypes.EthFilterID, error) //perm:read
|
EthNewPendingTransactionFilter(ctx context.Context) (ethtypes.EthFilterID, error) //perm:write
|
||||||
|
|
||||||
// Uninstalls a filter with given id.
|
// Uninstalls a filter with given id.
|
||||||
EthUninstallFilter(ctx context.Context, id ethtypes.EthFilterID) (bool, error) //perm:read
|
EthUninstallFilter(ctx context.Context, id ethtypes.EthFilterID) (bool, error) //perm:write
|
||||||
|
|
||||||
// Subscribe to different event types using websockets
|
// Subscribe to different event types using websockets
|
||||||
// eventTypes is one or more of:
|
// eventTypes is one or more of:
|
||||||
@@ -859,21 +836,14 @@ type FullNode interface {
|
|||||||
// - logs: notify new event logs that match a criteria
|
// - logs: notify new event logs that match a criteria
|
||||||
// params contains additional parameters used with the log event type
|
// params contains additional parameters used with the log event type
|
||||||
// The client will receive a stream of EthSubscriptionResponse values until EthUnsubscribe is called.
|
// The client will receive a stream of EthSubscriptionResponse values until EthUnsubscribe is called.
|
||||||
EthSubscribe(ctx context.Context, params jsonrpc.RawParams) (ethtypes.EthSubscriptionID, error) //perm:read
|
EthSubscribe(ctx context.Context, params jsonrpc.RawParams) (ethtypes.EthSubscriptionID, error) //perm:write
|
||||||
|
|
||||||
// Unsubscribe from a websocket subscription
|
// Unsubscribe from a websocket subscription
|
||||||
EthUnsubscribe(ctx context.Context, id ethtypes.EthSubscriptionID) (bool, error) //perm:read
|
EthUnsubscribe(ctx context.Context, id ethtypes.EthSubscriptionID) (bool, error) //perm:write
|
||||||
|
|
||||||
// Returns the client version
|
// Returns the client version
|
||||||
Web3ClientVersion(ctx context.Context) (string, error) //perm:read
|
Web3ClientVersion(ctx context.Context) (string, error) //perm:read
|
||||||
|
|
||||||
// TraceAPI related methods
|
|
||||||
//
|
|
||||||
// Returns traces created at given block
|
|
||||||
EthTraceBlock(ctx context.Context, blkNum string) ([]*ethtypes.EthTraceBlock, error) //perm:read
|
|
||||||
// Replays all transactions in a block returning the requested traces for each transaction
|
|
||||||
EthTraceReplayBlockTransactions(ctx context.Context, blkNum string, traceTypes []string) ([]*ethtypes.EthTraceReplayBlockTransaction, error) //perm:read
|
|
||||||
|
|
||||||
// CreateBackup creates node backup onder the specified file name. The
|
// CreateBackup creates node backup onder the specified file name. The
|
||||||
// method requires that the lotus daemon is running with the
|
// method requires that the lotus daemon is running with the
|
||||||
// LOTUS_BACKUP_BASE_PATH environment variable set to some path, and that
|
// LOTUS_BACKUP_BASE_PATH environment variable set to some path, and that
|
||||||
@@ -1374,12 +1344,6 @@ type PruneOpts struct {
|
|||||||
RetainState int64
|
RetainState int64
|
||||||
}
|
}
|
||||||
|
|
||||||
type HotGCOpts struct {
|
|
||||||
Threshold float64
|
|
||||||
Periodic bool
|
|
||||||
Moving bool
|
|
||||||
}
|
|
||||||
|
|
||||||
type EthTxReceipt struct {
|
type EthTxReceipt struct {
|
||||||
TransactionHash ethtypes.EthHash `json:"transactionHash"`
|
TransactionHash ethtypes.EthHash `json:"transactionHash"`
|
||||||
TransactionIndex ethtypes.EthUint64 `json:"transactionIndex"`
|
TransactionIndex ethtypes.EthUint64 `json:"transactionIndex"`
|
||||||
|
|||||||
+10
-26
@@ -3,17 +3,16 @@ package api
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
|
|
||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
"github.com/filecoin-project/go-jsonrpc"
|
"github.com/filecoin-project/go-jsonrpc"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
||||||
"github.com/filecoin-project/go-state-types/dline"
|
"github.com/filecoin-project/go-state-types/dline"
|
||||||
|
|
||||||
apitypes "github.com/filecoin-project/lotus/api/types"
|
apitypes "github.com/filecoin-project/lotus/api/types"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
"github.com/filecoin-project/lotus/chain/types/ethtypes"
|
"github.com/filecoin-project/lotus/chain/types/ethtypes"
|
||||||
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
||||||
@@ -27,19 +26,13 @@ import (
|
|||||||
// When adding / changing methods in this file:
|
// When adding / changing methods in this file:
|
||||||
// * Do the change here
|
// * Do the change here
|
||||||
// * Adjust implementation in `node/impl/`
|
// * Adjust implementation in `node/impl/`
|
||||||
// * Run `make clean && make deps && make gen` - this will:
|
// * Run `make gen` - this will:
|
||||||
// * Generate proxy structs
|
// * Generate proxy structs
|
||||||
// * Generate mocks
|
// * Generate mocks
|
||||||
// * Generate markdown docs
|
// * Generate markdown docs
|
||||||
// * Generate openrpc blobs
|
// * Generate openrpc blobs
|
||||||
|
|
||||||
type Gateway interface {
|
type Gateway interface {
|
||||||
MpoolPending(context.Context, types.TipSetKey) ([]*types.SignedMessage, error)
|
|
||||||
ChainGetBlock(context.Context, cid.Cid) (*types.BlockHeader, error)
|
|
||||||
MinerGetBaseInfo(context.Context, address.Address, abi.ChainEpoch, types.TipSetKey) (*MiningBaseInfo, error)
|
|
||||||
StateMinerSectorCount(context.Context, address.Address, types.TipSetKey) (MinerSectors, error)
|
|
||||||
GasEstimateGasPremium(context.Context, uint64, address.Address, int64, types.TipSetKey) (types.BigInt, error)
|
|
||||||
StateReplay(context.Context, types.TipSetKey, cid.Cid) (*InvocResult, error)
|
|
||||||
ChainHasObj(context.Context, cid.Cid) (bool, error)
|
ChainHasObj(context.Context, cid.Cid) (bool, error)
|
||||||
ChainPutObj(context.Context, blocks.Block) error
|
ChainPutObj(context.Context, blocks.Block) error
|
||||||
ChainHead(ctx context.Context) (*types.TipSet, error)
|
ChainHead(ctx context.Context) (*types.TipSet, error)
|
||||||
@@ -66,11 +59,6 @@ type Gateway interface {
|
|||||||
StateDealProviderCollateralBounds(ctx context.Context, size abi.PaddedPieceSize, verified bool, tsk types.TipSetKey) (DealCollateralBounds, error)
|
StateDealProviderCollateralBounds(ctx context.Context, size abi.PaddedPieceSize, verified bool, tsk types.TipSetKey) (DealCollateralBounds, error)
|
||||||
StateDecodeParams(ctx context.Context, toAddr address.Address, method abi.MethodNum, params []byte, tsk types.TipSetKey) (interface{}, error)
|
StateDecodeParams(ctx context.Context, toAddr address.Address, method abi.MethodNum, params []byte, tsk types.TipSetKey) (interface{}, error)
|
||||||
StateGetActor(ctx context.Context, actor address.Address, ts types.TipSetKey) (*types.Actor, error)
|
StateGetActor(ctx context.Context, actor address.Address, ts types.TipSetKey) (*types.Actor, error)
|
||||||
StateGetAllocationForPendingDeal(ctx context.Context, dealId abi.DealID, tsk types.TipSetKey) (*verifregtypes.Allocation, error)
|
|
||||||
StateGetAllocation(ctx context.Context, clientAddr address.Address, allocationId verifregtypes.AllocationId, tsk types.TipSetKey) (*verifregtypes.Allocation, error)
|
|
||||||
StateGetAllocations(ctx context.Context, clientAddr address.Address, tsk types.TipSetKey) (map[verifregtypes.AllocationId]verifregtypes.Allocation, error)
|
|
||||||
StateGetClaim(ctx context.Context, providerAddr address.Address, claimId verifregtypes.ClaimId, tsk types.TipSetKey) (*verifregtypes.Claim, error)
|
|
||||||
StateGetClaims(ctx context.Context, providerAddr address.Address, tsk types.TipSetKey) (map[verifregtypes.ClaimId]verifregtypes.Claim, error)
|
|
||||||
StateReadState(ctx context.Context, actor address.Address, tsk types.TipSetKey) (*ActorState, error)
|
StateReadState(ctx context.Context, actor address.Address, tsk types.TipSetKey) (*ActorState, error)
|
||||||
StateListMiners(ctx context.Context, tsk types.TipSetKey) ([]address.Address, error)
|
StateListMiners(ctx context.Context, tsk types.TipSetKey) ([]address.Address, error)
|
||||||
StateLookupID(ctx context.Context, addr address.Address, tsk types.TipSetKey) (address.Address, error)
|
StateLookupID(ctx context.Context, addr address.Address, tsk types.TipSetKey) (address.Address, error)
|
||||||
@@ -82,7 +70,6 @@ type Gateway interface {
|
|||||||
StateNetworkName(context.Context) (dtypes.NetworkName, error)
|
StateNetworkName(context.Context) (dtypes.NetworkName, error)
|
||||||
StateNetworkVersion(context.Context, types.TipSetKey) (apitypes.NetworkVersion, error)
|
StateNetworkVersion(context.Context, types.TipSetKey) (apitypes.NetworkVersion, error)
|
||||||
StateSectorGetInfo(ctx context.Context, maddr address.Address, n abi.SectorNumber, tsk types.TipSetKey) (*miner.SectorOnChainInfo, error)
|
StateSectorGetInfo(ctx context.Context, maddr address.Address, n abi.SectorNumber, tsk types.TipSetKey) (*miner.SectorOnChainInfo, error)
|
||||||
StateVerifierStatus(ctx context.Context, addr address.Address, tsk types.TipSetKey) (*abi.StoragePower, error)
|
|
||||||
StateVerifiedClientStatus(ctx context.Context, addr address.Address, tsk types.TipSetKey) (*abi.StoragePower, error)
|
StateVerifiedClientStatus(ctx context.Context, addr address.Address, tsk types.TipSetKey) (*abi.StoragePower, error)
|
||||||
StateSearchMsg(ctx context.Context, from types.TipSetKey, msg cid.Cid, limit abi.ChainEpoch, allowReplaced bool) (*MsgLookup, error)
|
StateSearchMsg(ctx context.Context, from types.TipSetKey, msg cid.Cid, limit abi.ChainEpoch, allowReplaced bool) (*MsgLookup, error)
|
||||||
StateWaitMsg(ctx context.Context, cid cid.Cid, confidence uint64, limit abi.ChainEpoch, allowReplaced bool) (*MsgLookup, error)
|
StateWaitMsg(ctx context.Context, cid cid.Cid, confidence uint64, limit abi.ChainEpoch, allowReplaced bool) (*MsgLookup, error)
|
||||||
@@ -97,17 +84,16 @@ type Gateway interface {
|
|||||||
EthGetBlockByHash(ctx context.Context, blkHash ethtypes.EthHash, fullTxInfo bool) (ethtypes.EthBlock, error)
|
EthGetBlockByHash(ctx context.Context, blkHash ethtypes.EthHash, fullTxInfo bool) (ethtypes.EthBlock, error)
|
||||||
EthGetBlockByNumber(ctx context.Context, blkNum string, fullTxInfo bool) (ethtypes.EthBlock, error)
|
EthGetBlockByNumber(ctx context.Context, blkNum string, fullTxInfo bool) (ethtypes.EthBlock, error)
|
||||||
EthGetTransactionByHash(ctx context.Context, txHash *ethtypes.EthHash) (*ethtypes.EthTx, error)
|
EthGetTransactionByHash(ctx context.Context, txHash *ethtypes.EthHash) (*ethtypes.EthTx, error)
|
||||||
EthGetTransactionByHashLimited(ctx context.Context, txHash *ethtypes.EthHash, limit abi.ChainEpoch) (*ethtypes.EthTx, error)
|
|
||||||
EthGetTransactionHashByCid(ctx context.Context, cid cid.Cid) (*ethtypes.EthHash, error)
|
EthGetTransactionHashByCid(ctx context.Context, cid cid.Cid) (*ethtypes.EthHash, error)
|
||||||
EthGetMessageCidByTransactionHash(ctx context.Context, txHash *ethtypes.EthHash) (*cid.Cid, error)
|
EthGetMessageCidByTransactionHash(ctx context.Context, txHash *ethtypes.EthHash) (*cid.Cid, error)
|
||||||
EthGetTransactionCount(ctx context.Context, sender ethtypes.EthAddress, blkParam ethtypes.EthBlockNumberOrHash) (ethtypes.EthUint64, error)
|
EthGetTransactionCount(ctx context.Context, sender ethtypes.EthAddress, blkOpt string) (ethtypes.EthUint64, error)
|
||||||
EthGetTransactionReceipt(ctx context.Context, txHash ethtypes.EthHash) (*EthTxReceipt, error)
|
EthGetTransactionReceipt(ctx context.Context, txHash ethtypes.EthHash) (*EthTxReceipt, error)
|
||||||
EthGetTransactionReceiptLimited(ctx context.Context, txHash ethtypes.EthHash, limit abi.ChainEpoch) (*EthTxReceipt, error)
|
EthGetTransactionByBlockHashAndIndex(ctx context.Context, blkHash ethtypes.EthHash, txIndex ethtypes.EthUint64) (ethtypes.EthTx, error)
|
||||||
EthGetCode(ctx context.Context, address ethtypes.EthAddress, blkParam ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error)
|
EthGetTransactionByBlockNumberAndIndex(ctx context.Context, blkNum ethtypes.EthUint64, txIndex ethtypes.EthUint64) (ethtypes.EthTx, error)
|
||||||
EthGetStorageAt(ctx context.Context, address ethtypes.EthAddress, position ethtypes.EthBytes, blkParam ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error)
|
EthGetCode(ctx context.Context, address ethtypes.EthAddress, blkOpt string) (ethtypes.EthBytes, error)
|
||||||
EthGetBalance(ctx context.Context, address ethtypes.EthAddress, blkParam ethtypes.EthBlockNumberOrHash) (ethtypes.EthBigInt, error)
|
EthGetStorageAt(ctx context.Context, address ethtypes.EthAddress, position ethtypes.EthBytes, blkParam string) (ethtypes.EthBytes, error)
|
||||||
|
EthGetBalance(ctx context.Context, address ethtypes.EthAddress, blkParam string) (ethtypes.EthBigInt, error)
|
||||||
EthChainId(ctx context.Context) (ethtypes.EthUint64, error)
|
EthChainId(ctx context.Context) (ethtypes.EthUint64, error)
|
||||||
EthSyncing(ctx context.Context) (ethtypes.EthSyncingResult, error)
|
|
||||||
NetVersion(ctx context.Context) (string, error)
|
NetVersion(ctx context.Context) (string, error)
|
||||||
NetListening(ctx context.Context) (bool, error)
|
NetListening(ctx context.Context) (bool, error)
|
||||||
EthProtocolVersion(ctx context.Context) (ethtypes.EthUint64, error)
|
EthProtocolVersion(ctx context.Context) (ethtypes.EthUint64, error)
|
||||||
@@ -115,7 +101,7 @@ type Gateway interface {
|
|||||||
EthFeeHistory(ctx context.Context, p jsonrpc.RawParams) (ethtypes.EthFeeHistory, error)
|
EthFeeHistory(ctx context.Context, p jsonrpc.RawParams) (ethtypes.EthFeeHistory, error)
|
||||||
EthMaxPriorityFeePerGas(ctx context.Context) (ethtypes.EthBigInt, error)
|
EthMaxPriorityFeePerGas(ctx context.Context) (ethtypes.EthBigInt, error)
|
||||||
EthEstimateGas(ctx context.Context, tx ethtypes.EthCall) (ethtypes.EthUint64, error)
|
EthEstimateGas(ctx context.Context, tx ethtypes.EthCall) (ethtypes.EthUint64, error)
|
||||||
EthCall(ctx context.Context, tx ethtypes.EthCall, blkParam ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error)
|
EthCall(ctx context.Context, tx ethtypes.EthCall, blkParam string) (ethtypes.EthBytes, error)
|
||||||
EthSendRawTransaction(ctx context.Context, rawTx ethtypes.EthBytes) (ethtypes.EthHash, error)
|
EthSendRawTransaction(ctx context.Context, rawTx ethtypes.EthBytes) (ethtypes.EthHash, error)
|
||||||
EthGetLogs(ctx context.Context, filter *ethtypes.EthFilterSpec) (*ethtypes.EthFilterResult, error)
|
EthGetLogs(ctx context.Context, filter *ethtypes.EthFilterSpec) (*ethtypes.EthFilterResult, error)
|
||||||
EthGetFilterChanges(ctx context.Context, id ethtypes.EthFilterID) (*ethtypes.EthFilterResult, error)
|
EthGetFilterChanges(ctx context.Context, id ethtypes.EthFilterID) (*ethtypes.EthFilterResult, error)
|
||||||
@@ -127,6 +113,4 @@ type Gateway interface {
|
|||||||
EthSubscribe(ctx context.Context, params jsonrpc.RawParams) (ethtypes.EthSubscriptionID, error)
|
EthSubscribe(ctx context.Context, params jsonrpc.RawParams) (ethtypes.EthSubscriptionID, error)
|
||||||
EthUnsubscribe(ctx context.Context, id ethtypes.EthSubscriptionID) (bool, error)
|
EthUnsubscribe(ctx context.Context, id ethtypes.EthSubscriptionID) (bool, error)
|
||||||
Web3ClientVersion(ctx context.Context) (string, error)
|
Web3ClientVersion(ctx context.Context) (string, error)
|
||||||
EthTraceBlock(ctx context.Context, blkNum string) ([]*ethtypes.EthTraceBlock, error)
|
|
||||||
EthTraceReplayBlockTransactions(ctx context.Context, blkNum string, traceTypes []string) ([]*ethtypes.EthTraceReplayBlockTransaction, error)
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -73,5 +73,5 @@ type CommonNet interface {
|
|||||||
|
|
||||||
type NatInfo struct {
|
type NatInfo struct {
|
||||||
Reachability network.Reachability
|
Reachability network.Reachability
|
||||||
PublicAddrs []string
|
PublicAddr string
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-14
@@ -11,7 +11,7 @@ import (
|
|||||||
|
|
||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
"github.com/filecoin-project/go-bitfield"
|
"github.com/filecoin-project/go-bitfield"
|
||||||
datatransfer "github.com/filecoin-project/go-data-transfer/v2"
|
datatransfer "github.com/filecoin-project/go-data-transfer"
|
||||||
"github.com/filecoin-project/go-fil-markets/piecestore"
|
"github.com/filecoin-project/go-fil-markets/piecestore"
|
||||||
"github.com/filecoin-project/go-fil-markets/retrievalmarket"
|
"github.com/filecoin-project/go-fil-markets/retrievalmarket"
|
||||||
"github.com/filecoin-project/go-fil-markets/storagemarket"
|
"github.com/filecoin-project/go-fil-markets/storagemarket"
|
||||||
@@ -19,10 +19,10 @@ import (
|
|||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/big"
|
"github.com/filecoin-project/go-state-types/big"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v9/market"
|
"github.com/filecoin-project/go-state-types/builtin/v9/market"
|
||||||
|
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
||||||
abinetwork "github.com/filecoin-project/go-state-types/network"
|
abinetwork "github.com/filecoin-project/go-state-types/network"
|
||||||
|
|
||||||
builtinactors "github.com/filecoin-project/lotus/chain/actors/builtin"
|
builtinactors "github.com/filecoin-project/lotus/chain/actors/builtin"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
"github.com/filecoin-project/lotus/storage/pipeline/sealiface"
|
"github.com/filecoin-project/lotus/storage/pipeline/sealiface"
|
||||||
"github.com/filecoin-project/lotus/storage/sealer/fsutil"
|
"github.com/filecoin-project/lotus/storage/sealer/fsutil"
|
||||||
@@ -129,8 +129,6 @@ type StorageMiner interface {
|
|||||||
SectorMatchPendingPiecesToOpenSectors(ctx context.Context) error //perm:admin
|
SectorMatchPendingPiecesToOpenSectors(ctx context.Context) error //perm:admin
|
||||||
// SectorAbortUpgrade can be called on sectors that are in the process of being upgraded to abort it
|
// SectorAbortUpgrade can be called on sectors that are in the process of being upgraded to abort it
|
||||||
SectorAbortUpgrade(context.Context, abi.SectorNumber) error //perm:admin
|
SectorAbortUpgrade(context.Context, abi.SectorNumber) error //perm:admin
|
||||||
// SectorUnseal unseals the provided sector
|
|
||||||
SectorUnseal(ctx context.Context, number abi.SectorNumber) error //perm:admin
|
|
||||||
|
|
||||||
// SectorNumAssignerMeta returns sector number assigner metadata - reserved/allocated
|
// SectorNumAssignerMeta returns sector number assigner metadata - reserved/allocated
|
||||||
SectorNumAssignerMeta(ctx context.Context) (NumAssignerMeta, error) //perm:read
|
SectorNumAssignerMeta(ctx context.Context) (NumAssignerMeta, error) //perm:read
|
||||||
@@ -214,11 +212,9 @@ type StorageMiner interface {
|
|||||||
StorageDetachLocal(ctx context.Context, path string) error //perm:admin
|
StorageDetachLocal(ctx context.Context, path string) error //perm:admin
|
||||||
StorageRedeclareLocal(ctx context.Context, id *storiface.ID, dropMissing bool) error //perm:admin
|
StorageRedeclareLocal(ctx context.Context, id *storiface.ID, dropMissing bool) error //perm:admin
|
||||||
|
|
||||||
MarketImportDealData(ctx context.Context, propcid cid.Cid, path string) error //perm:write
|
MarketImportDealData(ctx context.Context, propcid cid.Cid, path string) error //perm:write
|
||||||
MarketListDeals(ctx context.Context) ([]*MarketDeal, error) //perm:read
|
MarketListDeals(ctx context.Context) ([]*MarketDeal, error) //perm:read
|
||||||
|
MarketListRetrievalDeals(ctx context.Context) ([]retrievalmarket.ProviderDealState, error) //perm:read
|
||||||
// MarketListRetrievalDeals is deprecated, returns empty list
|
|
||||||
MarketListRetrievalDeals(ctx context.Context) ([]struct{}, error) //perm:read
|
|
||||||
MarketGetDealUpdates(ctx context.Context) (<-chan storagemarket.MinerDeal, error) //perm:read
|
MarketGetDealUpdates(ctx context.Context) (<-chan storagemarket.MinerDeal, error) //perm:read
|
||||||
MarketListIncompleteDeals(ctx context.Context) ([]storagemarket.MinerDeal, error) //perm:read
|
MarketListIncompleteDeals(ctx context.Context) ([]storagemarket.MinerDeal, error) //perm:read
|
||||||
MarketSetAsk(ctx context.Context, price types.BigInt, verifiedPrice types.BigInt, duration abi.ChainEpoch, minPieceSize abi.PaddedPieceSize, maxPieceSize abi.PaddedPieceSize) error //perm:admin
|
MarketSetAsk(ctx context.Context, price types.BigInt, verifiedPrice types.BigInt, duration abi.ChainEpoch, minPieceSize abi.PaddedPieceSize, maxPieceSize abi.PaddedPieceSize) error //perm:admin
|
||||||
@@ -461,15 +457,10 @@ type SectorOffset struct {
|
|||||||
|
|
||||||
// DealInfo is a tuple of deal identity and its schedule
|
// DealInfo is a tuple of deal identity and its schedule
|
||||||
type PieceDealInfo struct {
|
type PieceDealInfo struct {
|
||||||
// "Old" builtin-market deal info
|
|
||||||
PublishCid *cid.Cid
|
PublishCid *cid.Cid
|
||||||
DealID abi.DealID
|
DealID abi.DealID
|
||||||
DealProposal *market.DealProposal
|
DealProposal *market.DealProposal
|
||||||
|
|
||||||
// Common deal info
|
|
||||||
DealSchedule DealSchedule
|
DealSchedule DealSchedule
|
||||||
|
|
||||||
// Best-effort deal asks
|
|
||||||
KeepUnsealed bool
|
KeepUnsealed bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+249
-279
@@ -42,7 +42,7 @@ func (t *PaymentInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Channel"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Channel"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := cw.WriteString(string("Channel")); err != nil {
|
if _, err := io.WriteString(w, string("Channel")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -50,6 +50,22 @@ func (t *PaymentInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// t.WaitSentinel (cid.Cid) (struct)
|
||||||
|
if len("WaitSentinel") > cbg.MaxLength {
|
||||||
|
return xerrors.Errorf("Value in field \"WaitSentinel\" was too long")
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("WaitSentinel"))); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if _, err := io.WriteString(w, string("WaitSentinel")); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := cbg.WriteCid(cw, t.WaitSentinel); err != nil {
|
||||||
|
return xerrors.Errorf("failed to write cid field t.WaitSentinel: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
// t.Vouchers ([]*paych.SignedVoucher) (slice)
|
// t.Vouchers ([]*paych.SignedVoucher) (slice)
|
||||||
if len("Vouchers") > cbg.MaxLength {
|
if len("Vouchers") > cbg.MaxLength {
|
||||||
return xerrors.Errorf("Value in field \"Vouchers\" was too long")
|
return xerrors.Errorf("Value in field \"Vouchers\" was too long")
|
||||||
@@ -58,7 +74,7 @@ func (t *PaymentInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Vouchers"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Vouchers"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := cw.WriteString(string("Vouchers")); err != nil {
|
if _, err := io.WriteString(w, string("Vouchers")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,23 +90,6 @@ func (t *PaymentInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.WaitSentinel (cid.Cid) (struct)
|
|
||||||
if len("WaitSentinel") > cbg.MaxLength {
|
|
||||||
return xerrors.Errorf("Value in field \"WaitSentinel\" was too long")
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("WaitSentinel"))); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if _, err := cw.WriteString(string("WaitSentinel")); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := cbg.WriteCid(cw, t.WaitSentinel); err != nil {
|
|
||||||
return xerrors.Errorf("failed to write cid field t.WaitSentinel: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -141,6 +140,19 @@ func (t *PaymentInfo) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
return xerrors.Errorf("unmarshaling t.Channel: %w", err)
|
return xerrors.Errorf("unmarshaling t.Channel: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
// t.WaitSentinel (cid.Cid) (struct)
|
||||||
|
case "WaitSentinel":
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
c, err := cbg.ReadCid(cr)
|
||||||
|
if err != nil {
|
||||||
|
return xerrors.Errorf("failed to read cid field t.WaitSentinel: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
t.WaitSentinel = c
|
||||||
|
|
||||||
}
|
}
|
||||||
// t.Vouchers ([]*paych.SignedVoucher) (slice)
|
// t.Vouchers ([]*paych.SignedVoucher) (slice)
|
||||||
case "Vouchers":
|
case "Vouchers":
|
||||||
@@ -163,46 +175,13 @@ func (t *PaymentInfo) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
{
|
|
||||||
var maj byte
|
|
||||||
var extra uint64
|
|
||||||
var err error
|
|
||||||
_ = maj
|
|
||||||
_ = extra
|
|
||||||
_ = err
|
|
||||||
|
|
||||||
{
|
var v paych.SignedVoucher
|
||||||
|
if err := v.UnmarshalCBOR(cr); err != nil {
|
||||||
b, err := cr.ReadByte()
|
return err
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if b != cbg.CborNull[0] {
|
|
||||||
if err := cr.UnreadByte(); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
t.Vouchers[i] = new(paych.SignedVoucher)
|
|
||||||
if err := t.Vouchers[i].UnmarshalCBOR(cr); err != nil {
|
|
||||||
return xerrors.Errorf("unmarshaling t.Vouchers[i] pointer: %w", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// t.WaitSentinel (cid.Cid) (struct)
|
|
||||||
case "WaitSentinel":
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
c, err := cbg.ReadCid(cr)
|
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("failed to read cid field t.WaitSentinel: %w", err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
t.WaitSentinel = c
|
t.Vouchers[i] = &v
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -225,19 +204,19 @@ func (t *SealedRef) MarshalCBOR(w io.Writer) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.Size (abi.UnpaddedPieceSize) (uint64)
|
// t.SectorID (abi.SectorNumber) (uint64)
|
||||||
if len("Size") > cbg.MaxLength {
|
if len("SectorID") > cbg.MaxLength {
|
||||||
return xerrors.Errorf("Value in field \"Size\" was too long")
|
return xerrors.Errorf("Value in field \"SectorID\" was too long")
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Size"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("SectorID"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := cw.WriteString(string("Size")); err != nil {
|
if _, err := io.WriteString(w, string("SectorID")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := cw.WriteMajorTypeHeader(cbg.MajUnsignedInt, uint64(t.Size)); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajUnsignedInt, uint64(t.SectorID)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -249,7 +228,7 @@ func (t *SealedRef) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Offset"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Offset"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := cw.WriteString(string("Offset")); err != nil {
|
if _, err := io.WriteString(w, string("Offset")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -257,19 +236,19 @@ func (t *SealedRef) MarshalCBOR(w io.Writer) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.SectorID (abi.SectorNumber) (uint64)
|
// t.Size (abi.UnpaddedPieceSize) (uint64)
|
||||||
if len("SectorID") > cbg.MaxLength {
|
if len("Size") > cbg.MaxLength {
|
||||||
return xerrors.Errorf("Value in field \"SectorID\" was too long")
|
return xerrors.Errorf("Value in field \"Size\" was too long")
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("SectorID"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Size"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := cw.WriteString(string("SectorID")); err != nil {
|
if _, err := io.WriteString(w, string("Size")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := cw.WriteMajorTypeHeader(cbg.MajUnsignedInt, uint64(t.SectorID)); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajUnsignedInt, uint64(t.Size)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -314,8 +293,8 @@ func (t *SealedRef) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch name {
|
switch name {
|
||||||
// t.Size (abi.UnpaddedPieceSize) (uint64)
|
// t.SectorID (abi.SectorNumber) (uint64)
|
||||||
case "Size":
|
case "SectorID":
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -326,7 +305,7 @@ func (t *SealedRef) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
if maj != cbg.MajUnsignedInt {
|
if maj != cbg.MajUnsignedInt {
|
||||||
return fmt.Errorf("wrong type for uint64 field")
|
return fmt.Errorf("wrong type for uint64 field")
|
||||||
}
|
}
|
||||||
t.Size = abi.UnpaddedPieceSize(extra)
|
t.SectorID = abi.SectorNumber(extra)
|
||||||
|
|
||||||
}
|
}
|
||||||
// t.Offset (abi.PaddedPieceSize) (uint64)
|
// t.Offset (abi.PaddedPieceSize) (uint64)
|
||||||
@@ -344,8 +323,8 @@ func (t *SealedRef) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
t.Offset = abi.PaddedPieceSize(extra)
|
t.Offset = abi.PaddedPieceSize(extra)
|
||||||
|
|
||||||
}
|
}
|
||||||
// t.SectorID (abi.SectorNumber) (uint64)
|
// t.Size (abi.UnpaddedPieceSize) (uint64)
|
||||||
case "SectorID":
|
case "Size":
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -356,7 +335,7 @@ func (t *SealedRef) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
if maj != cbg.MajUnsignedInt {
|
if maj != cbg.MajUnsignedInt {
|
||||||
return fmt.Errorf("wrong type for uint64 field")
|
return fmt.Errorf("wrong type for uint64 field")
|
||||||
}
|
}
|
||||||
t.SectorID = abi.SectorNumber(extra)
|
t.Size = abi.UnpaddedPieceSize(extra)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -388,7 +367,7 @@ func (t *SealedRefs) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Refs"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Refs"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := cw.WriteString(string("Refs")); err != nil {
|
if _, err := io.WriteString(w, string("Refs")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -466,22 +445,13 @@ func (t *SealedRefs) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
{
|
|
||||||
var maj byte
|
|
||||||
var extra uint64
|
|
||||||
var err error
|
|
||||||
_ = maj
|
|
||||||
_ = extra
|
|
||||||
_ = err
|
|
||||||
|
|
||||||
{
|
var v SealedRef
|
||||||
|
if err := v.UnmarshalCBOR(cr); err != nil {
|
||||||
if err := t.Refs[i].UnmarshalCBOR(cr); err != nil {
|
return err
|
||||||
return xerrors.Errorf("unmarshaling t.Refs[i]: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
t.Refs[i] = v
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -504,28 +474,6 @@ func (t *SealTicket) MarshalCBOR(w io.Writer) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.Epoch (abi.ChainEpoch) (int64)
|
|
||||||
if len("Epoch") > cbg.MaxLength {
|
|
||||||
return xerrors.Errorf("Value in field \"Epoch\" was too long")
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Epoch"))); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if _, err := cw.WriteString(string("Epoch")); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if t.Epoch >= 0 {
|
|
||||||
if err := cw.WriteMajorTypeHeader(cbg.MajUnsignedInt, uint64(t.Epoch)); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if err := cw.WriteMajorTypeHeader(cbg.MajNegativeInt, uint64(-t.Epoch-1)); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// t.Value (abi.SealRandomness) (slice)
|
// t.Value (abi.SealRandomness) (slice)
|
||||||
if len("Value") > cbg.MaxLength {
|
if len("Value") > cbg.MaxLength {
|
||||||
return xerrors.Errorf("Value in field \"Value\" was too long")
|
return xerrors.Errorf("Value in field \"Value\" was too long")
|
||||||
@@ -534,7 +482,7 @@ func (t *SealTicket) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Value"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Value"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := cw.WriteString(string("Value")); err != nil {
|
if _, err := io.WriteString(w, string("Value")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -549,6 +497,28 @@ func (t *SealTicket) MarshalCBOR(w io.Writer) error {
|
|||||||
if _, err := cw.Write(t.Value[:]); err != nil {
|
if _, err := cw.Write(t.Value[:]); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// t.Epoch (abi.ChainEpoch) (int64)
|
||||||
|
if len("Epoch") > cbg.MaxLength {
|
||||||
|
return xerrors.Errorf("Value in field \"Epoch\" was too long")
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Epoch"))); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if _, err := io.WriteString(w, string("Epoch")); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if t.Epoch >= 0 {
|
||||||
|
if err := cw.WriteMajorTypeHeader(cbg.MajUnsignedInt, uint64(t.Epoch)); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if err := cw.WriteMajorTypeHeader(cbg.MajNegativeInt, uint64(-t.Epoch-1)); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -590,33 +560,7 @@ func (t *SealTicket) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch name {
|
switch name {
|
||||||
// t.Epoch (abi.ChainEpoch) (int64)
|
// t.Value (abi.SealRandomness) (slice)
|
||||||
case "Epoch":
|
|
||||||
{
|
|
||||||
maj, extra, err := cr.ReadHeader()
|
|
||||||
var extraI int64
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
switch maj {
|
|
||||||
case cbg.MajUnsignedInt:
|
|
||||||
extraI = int64(extra)
|
|
||||||
if extraI < 0 {
|
|
||||||
return fmt.Errorf("int64 positive overflow")
|
|
||||||
}
|
|
||||||
case cbg.MajNegativeInt:
|
|
||||||
extraI = int64(extra)
|
|
||||||
if extraI < 0 {
|
|
||||||
return fmt.Errorf("int64 negative overflow")
|
|
||||||
}
|
|
||||||
extraI = -1 - extraI
|
|
||||||
default:
|
|
||||||
return fmt.Errorf("wrong type for int64 field: %d", maj)
|
|
||||||
}
|
|
||||||
|
|
||||||
t.Epoch = abi.ChainEpoch(extraI)
|
|
||||||
}
|
|
||||||
// t.Value (abi.SealRandomness) (slice)
|
|
||||||
case "Value":
|
case "Value":
|
||||||
|
|
||||||
maj, extra, err = cr.ReadHeader()
|
maj, extra, err = cr.ReadHeader()
|
||||||
@@ -638,6 +582,32 @@ func (t *SealTicket) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
if _, err := io.ReadFull(cr, t.Value[:]); err != nil {
|
if _, err := io.ReadFull(cr, t.Value[:]); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
// t.Epoch (abi.ChainEpoch) (int64)
|
||||||
|
case "Epoch":
|
||||||
|
{
|
||||||
|
maj, extra, err := cr.ReadHeader()
|
||||||
|
var extraI int64
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
switch maj {
|
||||||
|
case cbg.MajUnsignedInt:
|
||||||
|
extraI = int64(extra)
|
||||||
|
if extraI < 0 {
|
||||||
|
return fmt.Errorf("int64 positive overflow")
|
||||||
|
}
|
||||||
|
case cbg.MajNegativeInt:
|
||||||
|
extraI = int64(extra)
|
||||||
|
if extraI < 0 {
|
||||||
|
return fmt.Errorf("int64 negative oveflow")
|
||||||
|
}
|
||||||
|
extraI = -1 - extraI
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("wrong type for int64 field: %d", maj)
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Epoch = abi.ChainEpoch(extraI)
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
// Field doesn't exist on this type, so ignore it
|
// Field doesn't exist on this type, so ignore it
|
||||||
@@ -659,28 +629,6 @@ func (t *SealSeed) MarshalCBOR(w io.Writer) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.Epoch (abi.ChainEpoch) (int64)
|
|
||||||
if len("Epoch") > cbg.MaxLength {
|
|
||||||
return xerrors.Errorf("Value in field \"Epoch\" was too long")
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Epoch"))); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if _, err := cw.WriteString(string("Epoch")); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if t.Epoch >= 0 {
|
|
||||||
if err := cw.WriteMajorTypeHeader(cbg.MajUnsignedInt, uint64(t.Epoch)); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if err := cw.WriteMajorTypeHeader(cbg.MajNegativeInt, uint64(-t.Epoch-1)); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// t.Value (abi.InteractiveSealRandomness) (slice)
|
// t.Value (abi.InteractiveSealRandomness) (slice)
|
||||||
if len("Value") > cbg.MaxLength {
|
if len("Value") > cbg.MaxLength {
|
||||||
return xerrors.Errorf("Value in field \"Value\" was too long")
|
return xerrors.Errorf("Value in field \"Value\" was too long")
|
||||||
@@ -689,7 +637,7 @@ func (t *SealSeed) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Value"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Value"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := cw.WriteString(string("Value")); err != nil {
|
if _, err := io.WriteString(w, string("Value")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -704,6 +652,28 @@ func (t *SealSeed) MarshalCBOR(w io.Writer) error {
|
|||||||
if _, err := cw.Write(t.Value[:]); err != nil {
|
if _, err := cw.Write(t.Value[:]); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// t.Epoch (abi.ChainEpoch) (int64)
|
||||||
|
if len("Epoch") > cbg.MaxLength {
|
||||||
|
return xerrors.Errorf("Value in field \"Epoch\" was too long")
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Epoch"))); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if _, err := io.WriteString(w, string("Epoch")); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if t.Epoch >= 0 {
|
||||||
|
if err := cw.WriteMajorTypeHeader(cbg.MajUnsignedInt, uint64(t.Epoch)); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if err := cw.WriteMajorTypeHeader(cbg.MajNegativeInt, uint64(-t.Epoch-1)); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -745,33 +715,7 @@ func (t *SealSeed) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch name {
|
switch name {
|
||||||
// t.Epoch (abi.ChainEpoch) (int64)
|
// t.Value (abi.InteractiveSealRandomness) (slice)
|
||||||
case "Epoch":
|
|
||||||
{
|
|
||||||
maj, extra, err := cr.ReadHeader()
|
|
||||||
var extraI int64
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
switch maj {
|
|
||||||
case cbg.MajUnsignedInt:
|
|
||||||
extraI = int64(extra)
|
|
||||||
if extraI < 0 {
|
|
||||||
return fmt.Errorf("int64 positive overflow")
|
|
||||||
}
|
|
||||||
case cbg.MajNegativeInt:
|
|
||||||
extraI = int64(extra)
|
|
||||||
if extraI < 0 {
|
|
||||||
return fmt.Errorf("int64 negative overflow")
|
|
||||||
}
|
|
||||||
extraI = -1 - extraI
|
|
||||||
default:
|
|
||||||
return fmt.Errorf("wrong type for int64 field: %d", maj)
|
|
||||||
}
|
|
||||||
|
|
||||||
t.Epoch = abi.ChainEpoch(extraI)
|
|
||||||
}
|
|
||||||
// t.Value (abi.InteractiveSealRandomness) (slice)
|
|
||||||
case "Value":
|
case "Value":
|
||||||
|
|
||||||
maj, extra, err = cr.ReadHeader()
|
maj, extra, err = cr.ReadHeader()
|
||||||
@@ -793,6 +737,32 @@ func (t *SealSeed) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
if _, err := io.ReadFull(cr, t.Value[:]); err != nil {
|
if _, err := io.ReadFull(cr, t.Value[:]); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
// t.Epoch (abi.ChainEpoch) (int64)
|
||||||
|
case "Epoch":
|
||||||
|
{
|
||||||
|
maj, extra, err := cr.ReadHeader()
|
||||||
|
var extraI int64
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
switch maj {
|
||||||
|
case cbg.MajUnsignedInt:
|
||||||
|
extraI = int64(extra)
|
||||||
|
if extraI < 0 {
|
||||||
|
return fmt.Errorf("int64 positive overflow")
|
||||||
|
}
|
||||||
|
case cbg.MajNegativeInt:
|
||||||
|
extraI = int64(extra)
|
||||||
|
if extraI < 0 {
|
||||||
|
return fmt.Errorf("int64 negative oveflow")
|
||||||
|
}
|
||||||
|
extraI = -1 - extraI
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("wrong type for int64 field: %d", maj)
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Epoch = abi.ChainEpoch(extraI)
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
// Field doesn't exist on this type, so ignore it
|
// Field doesn't exist on this type, so ignore it
|
||||||
@@ -814,22 +784,6 @@ func (t *PieceDealInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.DealID (abi.DealID) (uint64)
|
|
||||||
if len("DealID") > cbg.MaxLength {
|
|
||||||
return xerrors.Errorf("Value in field \"DealID\" was too long")
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("DealID"))); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if _, err := cw.WriteString(string("DealID")); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := cw.WriteMajorTypeHeader(cbg.MajUnsignedInt, uint64(t.DealID)); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// t.PublishCid (cid.Cid) (struct)
|
// t.PublishCid (cid.Cid) (struct)
|
||||||
if len("PublishCid") > cbg.MaxLength {
|
if len("PublishCid") > cbg.MaxLength {
|
||||||
return xerrors.Errorf("Value in field \"PublishCid\" was too long")
|
return xerrors.Errorf("Value in field \"PublishCid\" was too long")
|
||||||
@@ -838,7 +792,7 @@ func (t *PieceDealInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("PublishCid"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("PublishCid"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := cw.WriteString(string("PublishCid")); err != nil {
|
if _, err := io.WriteString(w, string("PublishCid")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -852,6 +806,22 @@ func (t *PieceDealInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// t.DealID (abi.DealID) (uint64)
|
||||||
|
if len("DealID") > cbg.MaxLength {
|
||||||
|
return xerrors.Errorf("Value in field \"DealID\" was too long")
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("DealID"))); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if _, err := io.WriteString(w, string("DealID")); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := cw.WriteMajorTypeHeader(cbg.MajUnsignedInt, uint64(t.DealID)); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
// t.DealProposal (market.DealProposal) (struct)
|
// t.DealProposal (market.DealProposal) (struct)
|
||||||
if len("DealProposal") > cbg.MaxLength {
|
if len("DealProposal") > cbg.MaxLength {
|
||||||
return xerrors.Errorf("Value in field \"DealProposal\" was too long")
|
return xerrors.Errorf("Value in field \"DealProposal\" was too long")
|
||||||
@@ -860,7 +830,7 @@ func (t *PieceDealInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("DealProposal"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("DealProposal"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := cw.WriteString(string("DealProposal")); err != nil {
|
if _, err := io.WriteString(w, string("DealProposal")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -876,7 +846,7 @@ func (t *PieceDealInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("DealSchedule"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("DealSchedule"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := cw.WriteString(string("DealSchedule")); err != nil {
|
if _, err := io.WriteString(w, string("DealSchedule")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -892,7 +862,7 @@ func (t *PieceDealInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("KeepUnsealed"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("KeepUnsealed"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := cw.WriteString(string("KeepUnsealed")); err != nil {
|
if _, err := io.WriteString(w, string("KeepUnsealed")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -940,22 +910,7 @@ func (t *PieceDealInfo) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch name {
|
switch name {
|
||||||
// t.DealID (abi.DealID) (uint64)
|
// t.PublishCid (cid.Cid) (struct)
|
||||||
case "DealID":
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
maj, extra, err = cr.ReadHeader()
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if maj != cbg.MajUnsignedInt {
|
|
||||||
return fmt.Errorf("wrong type for uint64 field")
|
|
||||||
}
|
|
||||||
t.DealID = abi.DealID(extra)
|
|
||||||
|
|
||||||
}
|
|
||||||
// t.PublishCid (cid.Cid) (struct)
|
|
||||||
case "PublishCid":
|
case "PublishCid":
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -977,6 +932,21 @@ func (t *PieceDealInfo) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
t.PublishCid = &c
|
t.PublishCid = &c
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
// t.DealID (abi.DealID) (uint64)
|
||||||
|
case "DealID":
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
maj, extra, err = cr.ReadHeader()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if maj != cbg.MajUnsignedInt {
|
||||||
|
return fmt.Errorf("wrong type for uint64 field")
|
||||||
|
}
|
||||||
|
t.DealID = abi.DealID(extra)
|
||||||
|
|
||||||
}
|
}
|
||||||
// t.DealProposal (market.DealProposal) (struct)
|
// t.DealProposal (market.DealProposal) (struct)
|
||||||
case "DealProposal":
|
case "DealProposal":
|
||||||
@@ -1055,7 +1025,7 @@ func (t *SectorPiece) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Piece"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Piece"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := cw.WriteString(string("Piece")); err != nil {
|
if _, err := io.WriteString(w, string("Piece")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1071,7 +1041,7 @@ func (t *SectorPiece) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("DealInfo"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("DealInfo"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := cw.WriteString(string("DealInfo")); err != nil {
|
if _, err := io.WriteString(w, string("DealInfo")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1170,28 +1140,6 @@ func (t *DealSchedule) MarshalCBOR(w io.Writer) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.EndEpoch (abi.ChainEpoch) (int64)
|
|
||||||
if len("EndEpoch") > cbg.MaxLength {
|
|
||||||
return xerrors.Errorf("Value in field \"EndEpoch\" was too long")
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("EndEpoch"))); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if _, err := cw.WriteString(string("EndEpoch")); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if t.EndEpoch >= 0 {
|
|
||||||
if err := cw.WriteMajorTypeHeader(cbg.MajUnsignedInt, uint64(t.EndEpoch)); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if err := cw.WriteMajorTypeHeader(cbg.MajNegativeInt, uint64(-t.EndEpoch-1)); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// t.StartEpoch (abi.ChainEpoch) (int64)
|
// t.StartEpoch (abi.ChainEpoch) (int64)
|
||||||
if len("StartEpoch") > cbg.MaxLength {
|
if len("StartEpoch") > cbg.MaxLength {
|
||||||
return xerrors.Errorf("Value in field \"StartEpoch\" was too long")
|
return xerrors.Errorf("Value in field \"StartEpoch\" was too long")
|
||||||
@@ -1200,7 +1148,7 @@ func (t *DealSchedule) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("StartEpoch"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("StartEpoch"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := cw.WriteString(string("StartEpoch")); err != nil {
|
if _, err := io.WriteString(w, string("StartEpoch")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1213,6 +1161,28 @@ func (t *DealSchedule) MarshalCBOR(w io.Writer) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// t.EndEpoch (abi.ChainEpoch) (int64)
|
||||||
|
if len("EndEpoch") > cbg.MaxLength {
|
||||||
|
return xerrors.Errorf("Value in field \"EndEpoch\" was too long")
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("EndEpoch"))); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if _, err := io.WriteString(w, string("EndEpoch")); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if t.EndEpoch >= 0 {
|
||||||
|
if err := cw.WriteMajorTypeHeader(cbg.MajUnsignedInt, uint64(t.EndEpoch)); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if err := cw.WriteMajorTypeHeader(cbg.MajNegativeInt, uint64(-t.EndEpoch-1)); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1254,33 +1224,7 @@ func (t *DealSchedule) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch name {
|
switch name {
|
||||||
// t.EndEpoch (abi.ChainEpoch) (int64)
|
// t.StartEpoch (abi.ChainEpoch) (int64)
|
||||||
case "EndEpoch":
|
|
||||||
{
|
|
||||||
maj, extra, err := cr.ReadHeader()
|
|
||||||
var extraI int64
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
switch maj {
|
|
||||||
case cbg.MajUnsignedInt:
|
|
||||||
extraI = int64(extra)
|
|
||||||
if extraI < 0 {
|
|
||||||
return fmt.Errorf("int64 positive overflow")
|
|
||||||
}
|
|
||||||
case cbg.MajNegativeInt:
|
|
||||||
extraI = int64(extra)
|
|
||||||
if extraI < 0 {
|
|
||||||
return fmt.Errorf("int64 negative overflow")
|
|
||||||
}
|
|
||||||
extraI = -1 - extraI
|
|
||||||
default:
|
|
||||||
return fmt.Errorf("wrong type for int64 field: %d", maj)
|
|
||||||
}
|
|
||||||
|
|
||||||
t.EndEpoch = abi.ChainEpoch(extraI)
|
|
||||||
}
|
|
||||||
// t.StartEpoch (abi.ChainEpoch) (int64)
|
|
||||||
case "StartEpoch":
|
case "StartEpoch":
|
||||||
{
|
{
|
||||||
maj, extra, err := cr.ReadHeader()
|
maj, extra, err := cr.ReadHeader()
|
||||||
@@ -1297,7 +1241,7 @@ func (t *DealSchedule) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
case cbg.MajNegativeInt:
|
case cbg.MajNegativeInt:
|
||||||
extraI = int64(extra)
|
extraI = int64(extra)
|
||||||
if extraI < 0 {
|
if extraI < 0 {
|
||||||
return fmt.Errorf("int64 negative overflow")
|
return fmt.Errorf("int64 negative oveflow")
|
||||||
}
|
}
|
||||||
extraI = -1 - extraI
|
extraI = -1 - extraI
|
||||||
default:
|
default:
|
||||||
@@ -1306,6 +1250,32 @@ func (t *DealSchedule) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
|
|
||||||
t.StartEpoch = abi.ChainEpoch(extraI)
|
t.StartEpoch = abi.ChainEpoch(extraI)
|
||||||
}
|
}
|
||||||
|
// t.EndEpoch (abi.ChainEpoch) (int64)
|
||||||
|
case "EndEpoch":
|
||||||
|
{
|
||||||
|
maj, extra, err := cr.ReadHeader()
|
||||||
|
var extraI int64
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
switch maj {
|
||||||
|
case cbg.MajUnsignedInt:
|
||||||
|
extraI = int64(extra)
|
||||||
|
if extraI < 0 {
|
||||||
|
return fmt.Errorf("int64 positive overflow")
|
||||||
|
}
|
||||||
|
case cbg.MajNegativeInt:
|
||||||
|
extraI = int64(extra)
|
||||||
|
if extraI < 0 {
|
||||||
|
return fmt.Errorf("int64 negative oveflow")
|
||||||
|
}
|
||||||
|
extraI = -1 - extraI
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("wrong type for int64 field: %d", maj)
|
||||||
|
}
|
||||||
|
|
||||||
|
t.EndEpoch = abi.ChainEpoch(extraI)
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
// Field doesn't exist on this type, so ignore it
|
// Field doesn't exist on this type, so ignore it
|
||||||
|
|||||||
@@ -14,9 +14,9 @@ import (
|
|||||||
"unicode"
|
"unicode"
|
||||||
|
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
"github.com/ipfs/go-graphsync"
|
"github.com/ipfs/go-graphsync"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
textselector "github.com/ipld/go-ipld-selector-text-lite"
|
textselector "github.com/ipld/go-ipld-selector-text-lite"
|
||||||
pubsub "github.com/libp2p/go-libp2p-pubsub"
|
pubsub "github.com/libp2p/go-libp2p-pubsub"
|
||||||
"github.com/libp2p/go-libp2p/core/metrics"
|
"github.com/libp2p/go-libp2p/core/metrics"
|
||||||
@@ -27,7 +27,7 @@ import (
|
|||||||
|
|
||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
"github.com/filecoin-project/go-bitfield"
|
"github.com/filecoin-project/go-bitfield"
|
||||||
datatransfer "github.com/filecoin-project/go-data-transfer/v2"
|
datatransfer "github.com/filecoin-project/go-data-transfer"
|
||||||
"github.com/filecoin-project/go-fil-markets/filestore"
|
"github.com/filecoin-project/go-fil-markets/filestore"
|
||||||
"github.com/filecoin-project/go-fil-markets/retrievalmarket"
|
"github.com/filecoin-project/go-fil-markets/retrievalmarket"
|
||||||
"github.com/filecoin-project/go-jsonrpc/auth"
|
"github.com/filecoin-project/go-jsonrpc/auth"
|
||||||
@@ -86,7 +86,6 @@ func init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ExampleValues[reflect.TypeOf(addr)] = addr
|
ExampleValues[reflect.TypeOf(addr)] = addr
|
||||||
ExampleValues[reflect.TypeOf(&addr)] = &addr
|
|
||||||
|
|
||||||
pid, err := peer.Decode("12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf")
|
pid, err := peer.Decode("12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -480,9 +479,6 @@ func ExampleValue(method string, t, parent reflect.Type) interface{} {
|
|||||||
es := exampleStruct(method, t.Elem(), t)
|
es := exampleStruct(method, t.Elem(), t)
|
||||||
ExampleValues[t] = es
|
ExampleValues[t] = es
|
||||||
return es
|
return es
|
||||||
} else if t.Elem().Kind() == reflect.String {
|
|
||||||
str := "string value"
|
|
||||||
return &str
|
|
||||||
}
|
}
|
||||||
case reflect.Interface:
|
case reflect.Interface:
|
||||||
return struct{}{}
|
return struct{}{}
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ func CreateEthRPCAliases(as apitypes.Aliaser) {
|
|||||||
as.AliasMethod("eth_getStorageAt", "Filecoin.EthGetStorageAt")
|
as.AliasMethod("eth_getStorageAt", "Filecoin.EthGetStorageAt")
|
||||||
as.AliasMethod("eth_getBalance", "Filecoin.EthGetBalance")
|
as.AliasMethod("eth_getBalance", "Filecoin.EthGetBalance")
|
||||||
as.AliasMethod("eth_chainId", "Filecoin.EthChainId")
|
as.AliasMethod("eth_chainId", "Filecoin.EthChainId")
|
||||||
as.AliasMethod("eth_syncing", "Filecoin.EthSyncing")
|
|
||||||
as.AliasMethod("eth_feeHistory", "Filecoin.EthFeeHistory")
|
as.AliasMethod("eth_feeHistory", "Filecoin.EthFeeHistory")
|
||||||
as.AliasMethod("eth_protocolVersion", "Filecoin.EthProtocolVersion")
|
as.AliasMethod("eth_protocolVersion", "Filecoin.EthProtocolVersion")
|
||||||
as.AliasMethod("eth_maxPriorityFeePerGas", "Filecoin.EthMaxPriorityFeePerGas")
|
as.AliasMethod("eth_maxPriorityFeePerGas", "Filecoin.EthMaxPriorityFeePerGas")
|
||||||
@@ -40,9 +39,6 @@ func CreateEthRPCAliases(as apitypes.Aliaser) {
|
|||||||
as.AliasMethod("eth_subscribe", "Filecoin.EthSubscribe")
|
as.AliasMethod("eth_subscribe", "Filecoin.EthSubscribe")
|
||||||
as.AliasMethod("eth_unsubscribe", "Filecoin.EthUnsubscribe")
|
as.AliasMethod("eth_unsubscribe", "Filecoin.EthUnsubscribe")
|
||||||
|
|
||||||
as.AliasMethod("trace_block", "Filecoin.EthTraceBlock")
|
|
||||||
as.AliasMethod("trace_replayBlockTransactions", "Filecoin.EthTraceReplayBlockTransactions")
|
|
||||||
|
|
||||||
as.AliasMethod("net_version", "Filecoin.NetVersion")
|
as.AliasMethod("net_version", "Filecoin.NetVersion")
|
||||||
as.AliasMethod("net_listening", "Filecoin.NetListening")
|
as.AliasMethod("net_listening", "Filecoin.NetListening")
|
||||||
|
|
||||||
|
|||||||
+7
-140
@@ -12,8 +12,8 @@ import (
|
|||||||
|
|
||||||
gomock "github.com/golang/mock/gomock"
|
gomock "github.com/golang/mock/gomock"
|
||||||
uuid "github.com/google/uuid"
|
uuid "github.com/google/uuid"
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
cid "github.com/ipfs/go-cid"
|
cid "github.com/ipfs/go-cid"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
metrics "github.com/libp2p/go-libp2p/core/metrics"
|
metrics "github.com/libp2p/go-libp2p/core/metrics"
|
||||||
network0 "github.com/libp2p/go-libp2p/core/network"
|
network0 "github.com/libp2p/go-libp2p/core/network"
|
||||||
peer "github.com/libp2p/go-libp2p/core/peer"
|
peer "github.com/libp2p/go-libp2p/core/peer"
|
||||||
@@ -21,7 +21,7 @@ import (
|
|||||||
|
|
||||||
address "github.com/filecoin-project/go-address"
|
address "github.com/filecoin-project/go-address"
|
||||||
bitfield "github.com/filecoin-project/go-bitfield"
|
bitfield "github.com/filecoin-project/go-bitfield"
|
||||||
datatransfer "github.com/filecoin-project/go-data-transfer/v2"
|
datatransfer "github.com/filecoin-project/go-data-transfer"
|
||||||
retrievalmarket "github.com/filecoin-project/go-fil-markets/retrievalmarket"
|
retrievalmarket "github.com/filecoin-project/go-fil-markets/retrievalmarket"
|
||||||
jsonrpc "github.com/filecoin-project/go-jsonrpc"
|
jsonrpc "github.com/filecoin-project/go-jsonrpc"
|
||||||
auth "github.com/filecoin-project/go-jsonrpc/auth"
|
auth "github.com/filecoin-project/go-jsonrpc/auth"
|
||||||
@@ -155,20 +155,6 @@ func (mr *MockFullNodeMockRecorder) ChainExport(arg0, arg1, arg2, arg3 interface
|
|||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChainExport", reflect.TypeOf((*MockFullNode)(nil).ChainExport), arg0, arg1, arg2, arg3)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChainExport", reflect.TypeOf((*MockFullNode)(nil).ChainExport), arg0, arg1, arg2, arg3)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ChainExportRangeInternal mocks base method.
|
|
||||||
func (m *MockFullNode) ChainExportRangeInternal(arg0 context.Context, arg1, arg2 types.TipSetKey, arg3 api.ChainExportConfig) error {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "ChainExportRangeInternal", arg0, arg1, arg2, arg3)
|
|
||||||
ret0, _ := ret[0].(error)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// ChainExportRangeInternal indicates an expected call of ChainExportRangeInternal.
|
|
||||||
func (mr *MockFullNodeMockRecorder) ChainExportRangeInternal(arg0, arg1, arg2, arg3 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChainExportRangeInternal", reflect.TypeOf((*MockFullNode)(nil).ChainExportRangeInternal), arg0, arg1, arg2, arg3)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ChainGetBlock mocks base method.
|
// ChainGetBlock mocks base method.
|
||||||
func (m *MockFullNode) ChainGetBlock(arg0 context.Context, arg1 cid.Cid) (*types.BlockHeader, error) {
|
func (m *MockFullNode) ChainGetBlock(arg0 context.Context, arg1 cid.Cid) (*types.BlockHeader, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
@@ -394,20 +380,6 @@ func (mr *MockFullNodeMockRecorder) ChainHead(arg0 interface{}) *gomock.Call {
|
|||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChainHead", reflect.TypeOf((*MockFullNode)(nil).ChainHead), arg0)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChainHead", reflect.TypeOf((*MockFullNode)(nil).ChainHead), arg0)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ChainHotGC mocks base method.
|
|
||||||
func (m *MockFullNode) ChainHotGC(arg0 context.Context, arg1 api.HotGCOpts) error {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "ChainHotGC", arg0, arg1)
|
|
||||||
ret0, _ := ret[0].(error)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// ChainHotGC indicates an expected call of ChainHotGC.
|
|
||||||
func (mr *MockFullNodeMockRecorder) ChainHotGC(arg0, arg1 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChainHotGC", reflect.TypeOf((*MockFullNode)(nil).ChainHotGC), arg0, arg1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ChainNotify mocks base method.
|
// ChainNotify mocks base method.
|
||||||
func (m *MockFullNode) ChainNotify(arg0 context.Context) (<-chan []*api.HeadChange, error) {
|
func (m *MockFullNode) ChainNotify(arg0 context.Context) (<-chan []*api.HeadChange, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
@@ -1012,7 +984,7 @@ func (mr *MockFullNodeMockRecorder) EthBlockNumber(arg0 interface{}) *gomock.Cal
|
|||||||
}
|
}
|
||||||
|
|
||||||
// EthCall mocks base method.
|
// EthCall mocks base method.
|
||||||
func (m *MockFullNode) EthCall(arg0 context.Context, arg1 ethtypes.EthCall, arg2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) {
|
func (m *MockFullNode) EthCall(arg0 context.Context, arg1 ethtypes.EthCall, arg2 string) (ethtypes.EthBytes, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "EthCall", arg0, arg1, arg2)
|
ret := m.ctrl.Call(m, "EthCall", arg0, arg1, arg2)
|
||||||
ret0, _ := ret[0].(ethtypes.EthBytes)
|
ret0, _ := ret[0].(ethtypes.EthBytes)
|
||||||
@@ -1087,7 +1059,7 @@ func (mr *MockFullNodeMockRecorder) EthGasPrice(arg0 interface{}) *gomock.Call {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// EthGetBalance mocks base method.
|
// EthGetBalance mocks base method.
|
||||||
func (m *MockFullNode) EthGetBalance(arg0 context.Context, arg1 ethtypes.EthAddress, arg2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBigInt, error) {
|
func (m *MockFullNode) EthGetBalance(arg0 context.Context, arg1 ethtypes.EthAddress, arg2 string) (ethtypes.EthBigInt, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "EthGetBalance", arg0, arg1, arg2)
|
ret := m.ctrl.Call(m, "EthGetBalance", arg0, arg1, arg2)
|
||||||
ret0, _ := ret[0].(ethtypes.EthBigInt)
|
ret0, _ := ret[0].(ethtypes.EthBigInt)
|
||||||
@@ -1162,7 +1134,7 @@ func (mr *MockFullNodeMockRecorder) EthGetBlockTransactionCountByNumber(arg0, ar
|
|||||||
}
|
}
|
||||||
|
|
||||||
// EthGetCode mocks base method.
|
// EthGetCode mocks base method.
|
||||||
func (m *MockFullNode) EthGetCode(arg0 context.Context, arg1 ethtypes.EthAddress, arg2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) {
|
func (m *MockFullNode) EthGetCode(arg0 context.Context, arg1 ethtypes.EthAddress, arg2 string) (ethtypes.EthBytes, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "EthGetCode", arg0, arg1, arg2)
|
ret := m.ctrl.Call(m, "EthGetCode", arg0, arg1, arg2)
|
||||||
ret0, _ := ret[0].(ethtypes.EthBytes)
|
ret0, _ := ret[0].(ethtypes.EthBytes)
|
||||||
@@ -1237,7 +1209,7 @@ func (mr *MockFullNodeMockRecorder) EthGetMessageCidByTransactionHash(arg0, arg1
|
|||||||
}
|
}
|
||||||
|
|
||||||
// EthGetStorageAt mocks base method.
|
// EthGetStorageAt mocks base method.
|
||||||
func (m *MockFullNode) EthGetStorageAt(arg0 context.Context, arg1 ethtypes.EthAddress, arg2 ethtypes.EthBytes, arg3 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) {
|
func (m *MockFullNode) EthGetStorageAt(arg0 context.Context, arg1 ethtypes.EthAddress, arg2 ethtypes.EthBytes, arg3 string) (ethtypes.EthBytes, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "EthGetStorageAt", arg0, arg1, arg2, arg3)
|
ret := m.ctrl.Call(m, "EthGetStorageAt", arg0, arg1, arg2, arg3)
|
||||||
ret0, _ := ret[0].(ethtypes.EthBytes)
|
ret0, _ := ret[0].(ethtypes.EthBytes)
|
||||||
@@ -1296,23 +1268,8 @@ func (mr *MockFullNodeMockRecorder) EthGetTransactionByHash(arg0, arg1 interface
|
|||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EthGetTransactionByHash", reflect.TypeOf((*MockFullNode)(nil).EthGetTransactionByHash), arg0, arg1)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EthGetTransactionByHash", reflect.TypeOf((*MockFullNode)(nil).EthGetTransactionByHash), arg0, arg1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// EthGetTransactionByHashLimited mocks base method.
|
|
||||||
func (m *MockFullNode) EthGetTransactionByHashLimited(arg0 context.Context, arg1 *ethtypes.EthHash, arg2 abi.ChainEpoch) (*ethtypes.EthTx, error) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "EthGetTransactionByHashLimited", arg0, arg1, arg2)
|
|
||||||
ret0, _ := ret[0].(*ethtypes.EthTx)
|
|
||||||
ret1, _ := ret[1].(error)
|
|
||||||
return ret0, ret1
|
|
||||||
}
|
|
||||||
|
|
||||||
// EthGetTransactionByHashLimited indicates an expected call of EthGetTransactionByHashLimited.
|
|
||||||
func (mr *MockFullNodeMockRecorder) EthGetTransactionByHashLimited(arg0, arg1, arg2 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EthGetTransactionByHashLimited", reflect.TypeOf((*MockFullNode)(nil).EthGetTransactionByHashLimited), arg0, arg1, arg2)
|
|
||||||
}
|
|
||||||
|
|
||||||
// EthGetTransactionCount mocks base method.
|
// EthGetTransactionCount mocks base method.
|
||||||
func (m *MockFullNode) EthGetTransactionCount(arg0 context.Context, arg1 ethtypes.EthAddress, arg2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthUint64, error) {
|
func (m *MockFullNode) EthGetTransactionCount(arg0 context.Context, arg1 ethtypes.EthAddress, arg2 string) (ethtypes.EthUint64, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "EthGetTransactionCount", arg0, arg1, arg2)
|
ret := m.ctrl.Call(m, "EthGetTransactionCount", arg0, arg1, arg2)
|
||||||
ret0, _ := ret[0].(ethtypes.EthUint64)
|
ret0, _ := ret[0].(ethtypes.EthUint64)
|
||||||
@@ -1356,21 +1313,6 @@ func (mr *MockFullNodeMockRecorder) EthGetTransactionReceipt(arg0, arg1 interfac
|
|||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EthGetTransactionReceipt", reflect.TypeOf((*MockFullNode)(nil).EthGetTransactionReceipt), arg0, arg1)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EthGetTransactionReceipt", reflect.TypeOf((*MockFullNode)(nil).EthGetTransactionReceipt), arg0, arg1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// EthGetTransactionReceiptLimited mocks base method.
|
|
||||||
func (m *MockFullNode) EthGetTransactionReceiptLimited(arg0 context.Context, arg1 ethtypes.EthHash, arg2 abi.ChainEpoch) (*api.EthTxReceipt, error) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "EthGetTransactionReceiptLimited", arg0, arg1, arg2)
|
|
||||||
ret0, _ := ret[0].(*api.EthTxReceipt)
|
|
||||||
ret1, _ := ret[1].(error)
|
|
||||||
return ret0, ret1
|
|
||||||
}
|
|
||||||
|
|
||||||
// EthGetTransactionReceiptLimited indicates an expected call of EthGetTransactionReceiptLimited.
|
|
||||||
func (mr *MockFullNodeMockRecorder) EthGetTransactionReceiptLimited(arg0, arg1, arg2 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EthGetTransactionReceiptLimited", reflect.TypeOf((*MockFullNode)(nil).EthGetTransactionReceiptLimited), arg0, arg1, arg2)
|
|
||||||
}
|
|
||||||
|
|
||||||
// EthMaxPriorityFeePerGas mocks base method.
|
// EthMaxPriorityFeePerGas mocks base method.
|
||||||
func (m *MockFullNode) EthMaxPriorityFeePerGas(arg0 context.Context) (ethtypes.EthBigInt, error) {
|
func (m *MockFullNode) EthMaxPriorityFeePerGas(arg0 context.Context) (ethtypes.EthBigInt, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
@@ -1476,51 +1418,6 @@ func (mr *MockFullNodeMockRecorder) EthSubscribe(arg0, arg1 interface{}) *gomock
|
|||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EthSubscribe", reflect.TypeOf((*MockFullNode)(nil).EthSubscribe), arg0, arg1)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EthSubscribe", reflect.TypeOf((*MockFullNode)(nil).EthSubscribe), arg0, arg1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// EthSyncing mocks base method.
|
|
||||||
func (m *MockFullNode) EthSyncing(arg0 context.Context) (ethtypes.EthSyncingResult, error) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "EthSyncing", arg0)
|
|
||||||
ret0, _ := ret[0].(ethtypes.EthSyncingResult)
|
|
||||||
ret1, _ := ret[1].(error)
|
|
||||||
return ret0, ret1
|
|
||||||
}
|
|
||||||
|
|
||||||
// EthSyncing indicates an expected call of EthSyncing.
|
|
||||||
func (mr *MockFullNodeMockRecorder) EthSyncing(arg0 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EthSyncing", reflect.TypeOf((*MockFullNode)(nil).EthSyncing), arg0)
|
|
||||||
}
|
|
||||||
|
|
||||||
// EthTraceBlock mocks base method.
|
|
||||||
func (m *MockFullNode) EthTraceBlock(arg0 context.Context, arg1 string) ([]*ethtypes.EthTraceBlock, error) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "EthTraceBlock", arg0, arg1)
|
|
||||||
ret0, _ := ret[0].([]*ethtypes.EthTraceBlock)
|
|
||||||
ret1, _ := ret[1].(error)
|
|
||||||
return ret0, ret1
|
|
||||||
}
|
|
||||||
|
|
||||||
// EthTraceBlock indicates an expected call of EthTraceBlock.
|
|
||||||
func (mr *MockFullNodeMockRecorder) EthTraceBlock(arg0, arg1 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EthTraceBlock", reflect.TypeOf((*MockFullNode)(nil).EthTraceBlock), arg0, arg1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// EthTraceReplayBlockTransactions mocks base method.
|
|
||||||
func (m *MockFullNode) EthTraceReplayBlockTransactions(arg0 context.Context, arg1 string, arg2 []string) ([]*ethtypes.EthTraceReplayBlockTransaction, error) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "EthTraceReplayBlockTransactions", arg0, arg1, arg2)
|
|
||||||
ret0, _ := ret[0].([]*ethtypes.EthTraceReplayBlockTransaction)
|
|
||||||
ret1, _ := ret[1].(error)
|
|
||||||
return ret0, ret1
|
|
||||||
}
|
|
||||||
|
|
||||||
// EthTraceReplayBlockTransactions indicates an expected call of EthTraceReplayBlockTransactions.
|
|
||||||
func (mr *MockFullNodeMockRecorder) EthTraceReplayBlockTransactions(arg0, arg1, arg2 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EthTraceReplayBlockTransactions", reflect.TypeOf((*MockFullNode)(nil).EthTraceReplayBlockTransactions), arg0, arg1, arg2)
|
|
||||||
}
|
|
||||||
|
|
||||||
// EthUninstallFilter mocks base method.
|
// EthUninstallFilter mocks base method.
|
||||||
func (m *MockFullNode) EthUninstallFilter(arg0 context.Context, arg1 ethtypes.EthFilterID) (bool, error) {
|
func (m *MockFullNode) EthUninstallFilter(arg0 context.Context, arg1 ethtypes.EthFilterID) (bool, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
@@ -3293,36 +3190,6 @@ func (mr *MockFullNodeMockRecorder) StateGetNetworkParams(arg0 interface{}) *gom
|
|||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateGetNetworkParams", reflect.TypeOf((*MockFullNode)(nil).StateGetNetworkParams), arg0)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateGetNetworkParams", reflect.TypeOf((*MockFullNode)(nil).StateGetNetworkParams), arg0)
|
||||||
}
|
}
|
||||||
|
|
||||||
// StateGetRandomnessDigestFromBeacon mocks base method.
|
|
||||||
func (m *MockFullNode) StateGetRandomnessDigestFromBeacon(arg0 context.Context, arg1 abi.ChainEpoch, arg2 types.TipSetKey) (abi.Randomness, error) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "StateGetRandomnessDigestFromBeacon", arg0, arg1, arg2)
|
|
||||||
ret0, _ := ret[0].(abi.Randomness)
|
|
||||||
ret1, _ := ret[1].(error)
|
|
||||||
return ret0, ret1
|
|
||||||
}
|
|
||||||
|
|
||||||
// StateGetRandomnessDigestFromBeacon indicates an expected call of StateGetRandomnessDigestFromBeacon.
|
|
||||||
func (mr *MockFullNodeMockRecorder) StateGetRandomnessDigestFromBeacon(arg0, arg1, arg2 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateGetRandomnessDigestFromBeacon", reflect.TypeOf((*MockFullNode)(nil).StateGetRandomnessDigestFromBeacon), arg0, arg1, arg2)
|
|
||||||
}
|
|
||||||
|
|
||||||
// StateGetRandomnessDigestFromTickets mocks base method.
|
|
||||||
func (m *MockFullNode) StateGetRandomnessDigestFromTickets(arg0 context.Context, arg1 abi.ChainEpoch, arg2 types.TipSetKey) (abi.Randomness, error) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "StateGetRandomnessDigestFromTickets", arg0, arg1, arg2)
|
|
||||||
ret0, _ := ret[0].(abi.Randomness)
|
|
||||||
ret1, _ := ret[1].(error)
|
|
||||||
return ret0, ret1
|
|
||||||
}
|
|
||||||
|
|
||||||
// StateGetRandomnessDigestFromTickets indicates an expected call of StateGetRandomnessDigestFromTickets.
|
|
||||||
func (mr *MockFullNodeMockRecorder) StateGetRandomnessDigestFromTickets(arg0, arg1, arg2 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateGetRandomnessDigestFromTickets", reflect.TypeOf((*MockFullNode)(nil).StateGetRandomnessDigestFromTickets), arg0, arg1, arg2)
|
|
||||||
}
|
|
||||||
|
|
||||||
// StateGetRandomnessFromBeacon mocks base method.
|
// StateGetRandomnessFromBeacon mocks base method.
|
||||||
func (m *MockFullNode) StateGetRandomnessFromBeacon(arg0 context.Context, arg1 crypto.DomainSeparationTag, arg2 abi.ChainEpoch, arg3 []byte, arg4 types.TipSetKey) (abi.Randomness, error) {
|
func (m *MockFullNode) StateGetRandomnessFromBeacon(arg0 context.Context, arg1 crypto.DomainSeparationTag, arg2 abi.ChainEpoch, arg3 []byte, arg4 types.TipSetKey) (abi.Randomness, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
|
|||||||
+80
-404
@@ -8,8 +8,8 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
"github.com/libp2p/go-libp2p/core/metrics"
|
"github.com/libp2p/go-libp2p/core/metrics"
|
||||||
"github.com/libp2p/go-libp2p/core/network"
|
"github.com/libp2p/go-libp2p/core/network"
|
||||||
"github.com/libp2p/go-libp2p/core/peer"
|
"github.com/libp2p/go-libp2p/core/peer"
|
||||||
@@ -18,7 +18,7 @@ import (
|
|||||||
|
|
||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
"github.com/filecoin-project/go-bitfield"
|
"github.com/filecoin-project/go-bitfield"
|
||||||
datatransfer "github.com/filecoin-project/go-data-transfer/v2"
|
datatransfer "github.com/filecoin-project/go-data-transfer"
|
||||||
"github.com/filecoin-project/go-fil-markets/piecestore"
|
"github.com/filecoin-project/go-fil-markets/piecestore"
|
||||||
"github.com/filecoin-project/go-fil-markets/retrievalmarket"
|
"github.com/filecoin-project/go-fil-markets/retrievalmarket"
|
||||||
"github.com/filecoin-project/go-fil-markets/storagemarket"
|
"github.com/filecoin-project/go-fil-markets/storagemarket"
|
||||||
@@ -26,6 +26,7 @@ import (
|
|||||||
"github.com/filecoin-project/go-jsonrpc/auth"
|
"github.com/filecoin-project/go-jsonrpc/auth"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v8/paych"
|
"github.com/filecoin-project/go-state-types/builtin/v8/paych"
|
||||||
|
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
||||||
"github.com/filecoin-project/go-state-types/crypto"
|
"github.com/filecoin-project/go-state-types/crypto"
|
||||||
"github.com/filecoin-project/go-state-types/dline"
|
"github.com/filecoin-project/go-state-types/dline"
|
||||||
@@ -34,7 +35,7 @@ import (
|
|||||||
|
|
||||||
apitypes "github.com/filecoin-project/lotus/api/types"
|
apitypes "github.com/filecoin-project/lotus/api/types"
|
||||||
builtinactors "github.com/filecoin-project/lotus/chain/actors/builtin"
|
builtinactors "github.com/filecoin-project/lotus/chain/actors/builtin"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
lminer "github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
"github.com/filecoin-project/lotus/chain/types/ethtypes"
|
"github.com/filecoin-project/lotus/chain/types/ethtypes"
|
||||||
"github.com/filecoin-project/lotus/journal/alerting"
|
"github.com/filecoin-project/lotus/journal/alerting"
|
||||||
@@ -116,7 +117,7 @@ type EthSubscriberStruct struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type EthSubscriberMethods struct {
|
type EthSubscriberMethods struct {
|
||||||
EthSubscription func(p0 context.Context, p1 jsonrpc.RawParams) error `notify:"true" rpc_method:"eth_subscription"`
|
EthSubscription func(p0 context.Context, p1 jsonrpc.RawParams) error `notify:"true"rpc_method:"eth_subscription"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type EthSubscriberStub struct {
|
type EthSubscriberStub struct {
|
||||||
@@ -139,8 +140,6 @@ type FullNodeMethods struct {
|
|||||||
|
|
||||||
ChainExport func(p0 context.Context, p1 abi.ChainEpoch, p2 bool, p3 types.TipSetKey) (<-chan []byte, error) `perm:"read"`
|
ChainExport func(p0 context.Context, p1 abi.ChainEpoch, p2 bool, p3 types.TipSetKey) (<-chan []byte, error) `perm:"read"`
|
||||||
|
|
||||||
ChainExportRangeInternal func(p0 context.Context, p1 types.TipSetKey, p2 types.TipSetKey, p3 ChainExportConfig) error `perm:"admin"`
|
|
||||||
|
|
||||||
ChainGetBlock func(p0 context.Context, p1 cid.Cid) (*types.BlockHeader, error) `perm:"read"`
|
ChainGetBlock func(p0 context.Context, p1 cid.Cid) (*types.BlockHeader, error) `perm:"read"`
|
||||||
|
|
||||||
ChainGetBlockMessages func(p0 context.Context, p1 cid.Cid) (*BlockMessages, error) `perm:"read"`
|
ChainGetBlockMessages func(p0 context.Context, p1 cid.Cid) (*BlockMessages, error) `perm:"read"`
|
||||||
@@ -171,8 +170,6 @@ type FullNodeMethods struct {
|
|||||||
|
|
||||||
ChainHead func(p0 context.Context) (*types.TipSet, error) `perm:"read"`
|
ChainHead func(p0 context.Context) (*types.TipSet, error) `perm:"read"`
|
||||||
|
|
||||||
ChainHotGC func(p0 context.Context, p1 HotGCOpts) error `perm:"admin"`
|
|
||||||
|
|
||||||
ChainNotify func(p0 context.Context) (<-chan []*HeadChange, error) `perm:"read"`
|
ChainNotify func(p0 context.Context) (<-chan []*HeadChange, error) `perm:"read"`
|
||||||
|
|
||||||
ChainPrune func(p0 context.Context, p1 PruneOpts) error `perm:"admin"`
|
ChainPrune func(p0 context.Context, p1 PruneOpts) error `perm:"admin"`
|
||||||
@@ -251,7 +248,7 @@ type FullNodeMethods struct {
|
|||||||
|
|
||||||
EthBlockNumber func(p0 context.Context) (ethtypes.EthUint64, error) `perm:"read"`
|
EthBlockNumber func(p0 context.Context) (ethtypes.EthUint64, error) `perm:"read"`
|
||||||
|
|
||||||
EthCall func(p0 context.Context, p1 ethtypes.EthCall, p2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) `perm:"read"`
|
EthCall func(p0 context.Context, p1 ethtypes.EthCall, p2 string) (ethtypes.EthBytes, error) `perm:"read"`
|
||||||
|
|
||||||
EthChainId func(p0 context.Context) (ethtypes.EthUint64, error) `perm:"read"`
|
EthChainId func(p0 context.Context) (ethtypes.EthUint64, error) `perm:"read"`
|
||||||
|
|
||||||
@@ -261,7 +258,7 @@ type FullNodeMethods struct {
|
|||||||
|
|
||||||
EthGasPrice func(p0 context.Context) (ethtypes.EthBigInt, error) `perm:"read"`
|
EthGasPrice func(p0 context.Context) (ethtypes.EthBigInt, error) `perm:"read"`
|
||||||
|
|
||||||
EthGetBalance func(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBigInt, error) `perm:"read"`
|
EthGetBalance func(p0 context.Context, p1 ethtypes.EthAddress, p2 string) (ethtypes.EthBigInt, error) `perm:"read"`
|
||||||
|
|
||||||
EthGetBlockByHash func(p0 context.Context, p1 ethtypes.EthHash, p2 bool) (ethtypes.EthBlock, error) `perm:"read"`
|
EthGetBlockByHash func(p0 context.Context, p1 ethtypes.EthHash, p2 bool) (ethtypes.EthBlock, error) `perm:"read"`
|
||||||
|
|
||||||
@@ -271,17 +268,17 @@ type FullNodeMethods struct {
|
|||||||
|
|
||||||
EthGetBlockTransactionCountByNumber func(p0 context.Context, p1 ethtypes.EthUint64) (ethtypes.EthUint64, error) `perm:"read"`
|
EthGetBlockTransactionCountByNumber func(p0 context.Context, p1 ethtypes.EthUint64) (ethtypes.EthUint64, error) `perm:"read"`
|
||||||
|
|
||||||
EthGetCode func(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) `perm:"read"`
|
EthGetCode func(p0 context.Context, p1 ethtypes.EthAddress, p2 string) (ethtypes.EthBytes, error) `perm:"read"`
|
||||||
|
|
||||||
EthGetFilterChanges func(p0 context.Context, p1 ethtypes.EthFilterID) (*ethtypes.EthFilterResult, error) `perm:"read"`
|
EthGetFilterChanges func(p0 context.Context, p1 ethtypes.EthFilterID) (*ethtypes.EthFilterResult, error) `perm:"write"`
|
||||||
|
|
||||||
EthGetFilterLogs func(p0 context.Context, p1 ethtypes.EthFilterID) (*ethtypes.EthFilterResult, error) `perm:"read"`
|
EthGetFilterLogs func(p0 context.Context, p1 ethtypes.EthFilterID) (*ethtypes.EthFilterResult, error) `perm:"write"`
|
||||||
|
|
||||||
EthGetLogs func(p0 context.Context, p1 *ethtypes.EthFilterSpec) (*ethtypes.EthFilterResult, error) `perm:"read"`
|
EthGetLogs func(p0 context.Context, p1 *ethtypes.EthFilterSpec) (*ethtypes.EthFilterResult, error) `perm:"read"`
|
||||||
|
|
||||||
EthGetMessageCidByTransactionHash func(p0 context.Context, p1 *ethtypes.EthHash) (*cid.Cid, error) `perm:"read"`
|
EthGetMessageCidByTransactionHash func(p0 context.Context, p1 *ethtypes.EthHash) (*cid.Cid, error) `perm:"read"`
|
||||||
|
|
||||||
EthGetStorageAt func(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBytes, p3 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) `perm:"read"`
|
EthGetStorageAt func(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBytes, p3 string) (ethtypes.EthBytes, error) `perm:"read"`
|
||||||
|
|
||||||
EthGetTransactionByBlockHashAndIndex func(p0 context.Context, p1 ethtypes.EthHash, p2 ethtypes.EthUint64) (ethtypes.EthTx, error) `perm:"read"`
|
EthGetTransactionByBlockHashAndIndex func(p0 context.Context, p1 ethtypes.EthHash, p2 ethtypes.EthUint64) (ethtypes.EthTx, error) `perm:"read"`
|
||||||
|
|
||||||
@@ -289,39 +286,29 @@ type FullNodeMethods struct {
|
|||||||
|
|
||||||
EthGetTransactionByHash func(p0 context.Context, p1 *ethtypes.EthHash) (*ethtypes.EthTx, error) `perm:"read"`
|
EthGetTransactionByHash func(p0 context.Context, p1 *ethtypes.EthHash) (*ethtypes.EthTx, error) `perm:"read"`
|
||||||
|
|
||||||
EthGetTransactionByHashLimited func(p0 context.Context, p1 *ethtypes.EthHash, p2 abi.ChainEpoch) (*ethtypes.EthTx, error) `perm:"read"`
|
EthGetTransactionCount func(p0 context.Context, p1 ethtypes.EthAddress, p2 string) (ethtypes.EthUint64, error) `perm:"read"`
|
||||||
|
|
||||||
EthGetTransactionCount func(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthUint64, error) `perm:"read"`
|
|
||||||
|
|
||||||
EthGetTransactionHashByCid func(p0 context.Context, p1 cid.Cid) (*ethtypes.EthHash, error) `perm:"read"`
|
EthGetTransactionHashByCid func(p0 context.Context, p1 cid.Cid) (*ethtypes.EthHash, error) `perm:"read"`
|
||||||
|
|
||||||
EthGetTransactionReceipt func(p0 context.Context, p1 ethtypes.EthHash) (*EthTxReceipt, error) `perm:"read"`
|
EthGetTransactionReceipt func(p0 context.Context, p1 ethtypes.EthHash) (*EthTxReceipt, error) `perm:"read"`
|
||||||
|
|
||||||
EthGetTransactionReceiptLimited func(p0 context.Context, p1 ethtypes.EthHash, p2 abi.ChainEpoch) (*EthTxReceipt, error) `perm:"read"`
|
|
||||||
|
|
||||||
EthMaxPriorityFeePerGas func(p0 context.Context) (ethtypes.EthBigInt, error) `perm:"read"`
|
EthMaxPriorityFeePerGas func(p0 context.Context) (ethtypes.EthBigInt, error) `perm:"read"`
|
||||||
|
|
||||||
EthNewBlockFilter func(p0 context.Context) (ethtypes.EthFilterID, error) `perm:"read"`
|
EthNewBlockFilter func(p0 context.Context) (ethtypes.EthFilterID, error) `perm:"write"`
|
||||||
|
|
||||||
EthNewFilter func(p0 context.Context, p1 *ethtypes.EthFilterSpec) (ethtypes.EthFilterID, error) `perm:"read"`
|
EthNewFilter func(p0 context.Context, p1 *ethtypes.EthFilterSpec) (ethtypes.EthFilterID, error) `perm:"write"`
|
||||||
|
|
||||||
EthNewPendingTransactionFilter func(p0 context.Context) (ethtypes.EthFilterID, error) `perm:"read"`
|
EthNewPendingTransactionFilter func(p0 context.Context) (ethtypes.EthFilterID, error) `perm:"write"`
|
||||||
|
|
||||||
EthProtocolVersion func(p0 context.Context) (ethtypes.EthUint64, error) `perm:"read"`
|
EthProtocolVersion func(p0 context.Context) (ethtypes.EthUint64, error) `perm:"read"`
|
||||||
|
|
||||||
EthSendRawTransaction func(p0 context.Context, p1 ethtypes.EthBytes) (ethtypes.EthHash, error) `perm:"read"`
|
EthSendRawTransaction func(p0 context.Context, p1 ethtypes.EthBytes) (ethtypes.EthHash, error) `perm:"read"`
|
||||||
|
|
||||||
EthSubscribe func(p0 context.Context, p1 jsonrpc.RawParams) (ethtypes.EthSubscriptionID, error) `perm:"read"`
|
EthSubscribe func(p0 context.Context, p1 jsonrpc.RawParams) (ethtypes.EthSubscriptionID, error) `perm:"write"`
|
||||||
|
|
||||||
EthSyncing func(p0 context.Context) (ethtypes.EthSyncingResult, error) `perm:"read"`
|
EthUninstallFilter func(p0 context.Context, p1 ethtypes.EthFilterID) (bool, error) `perm:"write"`
|
||||||
|
|
||||||
EthTraceBlock func(p0 context.Context, p1 string) ([]*ethtypes.EthTraceBlock, error) `perm:"read"`
|
EthUnsubscribe func(p0 context.Context, p1 ethtypes.EthSubscriptionID) (bool, error) `perm:"write"`
|
||||||
|
|
||||||
EthTraceReplayBlockTransactions func(p0 context.Context, p1 string, p2 []string) ([]*ethtypes.EthTraceReplayBlockTransaction, error) `perm:"read"`
|
|
||||||
|
|
||||||
EthUninstallFilter func(p0 context.Context, p1 ethtypes.EthFilterID) (bool, error) `perm:"read"`
|
|
||||||
|
|
||||||
EthUnsubscribe func(p0 context.Context, p1 ethtypes.EthSubscriptionID) (bool, error) `perm:"read"`
|
|
||||||
|
|
||||||
FilecoinAddressToEthAddress func(p0 context.Context, p1 address.Address) (ethtypes.EthAddress, error) `perm:"read"`
|
FilecoinAddressToEthAddress func(p0 context.Context, p1 address.Address) (ethtypes.EthAddress, error) `perm:"read"`
|
||||||
|
|
||||||
@@ -497,10 +484,6 @@ type FullNodeMethods struct {
|
|||||||
|
|
||||||
StateGetNetworkParams func(p0 context.Context) (*NetworkParams, error) `perm:"read"`
|
StateGetNetworkParams func(p0 context.Context) (*NetworkParams, error) `perm:"read"`
|
||||||
|
|
||||||
StateGetRandomnessDigestFromBeacon func(p0 context.Context, p1 abi.ChainEpoch, p2 types.TipSetKey) (abi.Randomness, error) `perm:"read"`
|
|
||||||
|
|
||||||
StateGetRandomnessDigestFromTickets func(p0 context.Context, p1 abi.ChainEpoch, p2 types.TipSetKey) (abi.Randomness, error) `perm:"read"`
|
|
||||||
|
|
||||||
StateGetRandomnessFromBeacon func(p0 context.Context, p1 crypto.DomainSeparationTag, p2 abi.ChainEpoch, p3 []byte, p4 types.TipSetKey) (abi.Randomness, error) `perm:"read"`
|
StateGetRandomnessFromBeacon func(p0 context.Context, p1 crypto.DomainSeparationTag, p2 abi.ChainEpoch, p3 []byte, p4 types.TipSetKey) (abi.Randomness, error) `perm:"read"`
|
||||||
|
|
||||||
StateGetRandomnessFromTickets func(p0 context.Context, p1 crypto.DomainSeparationTag, p2 abi.ChainEpoch, p3 []byte, p4 types.TipSetKey) (abi.Randomness, error) `perm:"read"`
|
StateGetRandomnessFromTickets func(p0 context.Context, p1 crypto.DomainSeparationTag, p2 abi.ChainEpoch, p3 []byte, p4 types.TipSetKey) (abi.Randomness, error) `perm:"read"`
|
||||||
@@ -563,11 +546,11 @@ type FullNodeMethods struct {
|
|||||||
|
|
||||||
StateSearchMsg func(p0 context.Context, p1 types.TipSetKey, p2 cid.Cid, p3 abi.ChainEpoch, p4 bool) (*MsgLookup, error) `perm:"read"`
|
StateSearchMsg func(p0 context.Context, p1 types.TipSetKey, p2 cid.Cid, p3 abi.ChainEpoch, p4 bool) (*MsgLookup, error) `perm:"read"`
|
||||||
|
|
||||||
StateSectorExpiration func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorExpiration, error) `perm:"read"`
|
StateSectorExpiration func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorExpiration, error) `perm:"read"`
|
||||||
|
|
||||||
StateSectorGetInfo func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorOnChainInfo, error) `perm:"read"`
|
StateSectorGetInfo func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorOnChainInfo, error) `perm:"read"`
|
||||||
|
|
||||||
StateSectorPartition func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorLocation, error) `perm:"read"`
|
StateSectorPartition func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorLocation, error) `perm:"read"`
|
||||||
|
|
||||||
StateSectorPreCommitInfo func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorPreCommitOnChainInfo, error) `perm:"read"`
|
StateSectorPreCommitInfo func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorPreCommitOnChainInfo, error) `perm:"read"`
|
||||||
|
|
||||||
@@ -639,8 +622,6 @@ type GatewayStruct struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type GatewayMethods struct {
|
type GatewayMethods struct {
|
||||||
ChainGetBlock func(p0 context.Context, p1 cid.Cid) (*types.BlockHeader, error) ``
|
|
||||||
|
|
||||||
ChainGetBlockMessages func(p0 context.Context, p1 cid.Cid) (*BlockMessages, error) ``
|
ChainGetBlockMessages func(p0 context.Context, p1 cid.Cid) (*BlockMessages, error) ``
|
||||||
|
|
||||||
ChainGetGenesis func(p0 context.Context) (*types.TipSet, error) ``
|
ChainGetGenesis func(p0 context.Context) (*types.TipSet, error) ``
|
||||||
@@ -675,7 +656,7 @@ type GatewayMethods struct {
|
|||||||
|
|
||||||
EthBlockNumber func(p0 context.Context) (ethtypes.EthUint64, error) ``
|
EthBlockNumber func(p0 context.Context) (ethtypes.EthUint64, error) ``
|
||||||
|
|
||||||
EthCall func(p0 context.Context, p1 ethtypes.EthCall, p2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) ``
|
EthCall func(p0 context.Context, p1 ethtypes.EthCall, p2 string) (ethtypes.EthBytes, error) ``
|
||||||
|
|
||||||
EthChainId func(p0 context.Context) (ethtypes.EthUint64, error) ``
|
EthChainId func(p0 context.Context) (ethtypes.EthUint64, error) ``
|
||||||
|
|
||||||
@@ -685,7 +666,7 @@ type GatewayMethods struct {
|
|||||||
|
|
||||||
EthGasPrice func(p0 context.Context) (ethtypes.EthBigInt, error) ``
|
EthGasPrice func(p0 context.Context) (ethtypes.EthBigInt, error) ``
|
||||||
|
|
||||||
EthGetBalance func(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBigInt, error) ``
|
EthGetBalance func(p0 context.Context, p1 ethtypes.EthAddress, p2 string) (ethtypes.EthBigInt, error) ``
|
||||||
|
|
||||||
EthGetBlockByHash func(p0 context.Context, p1 ethtypes.EthHash, p2 bool) (ethtypes.EthBlock, error) ``
|
EthGetBlockByHash func(p0 context.Context, p1 ethtypes.EthHash, p2 bool) (ethtypes.EthBlock, error) ``
|
||||||
|
|
||||||
@@ -695,7 +676,7 @@ type GatewayMethods struct {
|
|||||||
|
|
||||||
EthGetBlockTransactionCountByNumber func(p0 context.Context, p1 ethtypes.EthUint64) (ethtypes.EthUint64, error) ``
|
EthGetBlockTransactionCountByNumber func(p0 context.Context, p1 ethtypes.EthUint64) (ethtypes.EthUint64, error) ``
|
||||||
|
|
||||||
EthGetCode func(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) ``
|
EthGetCode func(p0 context.Context, p1 ethtypes.EthAddress, p2 string) (ethtypes.EthBytes, error) ``
|
||||||
|
|
||||||
EthGetFilterChanges func(p0 context.Context, p1 ethtypes.EthFilterID) (*ethtypes.EthFilterResult, error) ``
|
EthGetFilterChanges func(p0 context.Context, p1 ethtypes.EthFilterID) (*ethtypes.EthFilterResult, error) ``
|
||||||
|
|
||||||
@@ -705,20 +686,20 @@ type GatewayMethods struct {
|
|||||||
|
|
||||||
EthGetMessageCidByTransactionHash func(p0 context.Context, p1 *ethtypes.EthHash) (*cid.Cid, error) ``
|
EthGetMessageCidByTransactionHash func(p0 context.Context, p1 *ethtypes.EthHash) (*cid.Cid, error) ``
|
||||||
|
|
||||||
EthGetStorageAt func(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBytes, p3 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) ``
|
EthGetStorageAt func(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBytes, p3 string) (ethtypes.EthBytes, error) ``
|
||||||
|
|
||||||
|
EthGetTransactionByBlockHashAndIndex func(p0 context.Context, p1 ethtypes.EthHash, p2 ethtypes.EthUint64) (ethtypes.EthTx, error) ``
|
||||||
|
|
||||||
|
EthGetTransactionByBlockNumberAndIndex func(p0 context.Context, p1 ethtypes.EthUint64, p2 ethtypes.EthUint64) (ethtypes.EthTx, error) ``
|
||||||
|
|
||||||
EthGetTransactionByHash func(p0 context.Context, p1 *ethtypes.EthHash) (*ethtypes.EthTx, error) ``
|
EthGetTransactionByHash func(p0 context.Context, p1 *ethtypes.EthHash) (*ethtypes.EthTx, error) ``
|
||||||
|
|
||||||
EthGetTransactionByHashLimited func(p0 context.Context, p1 *ethtypes.EthHash, p2 abi.ChainEpoch) (*ethtypes.EthTx, error) ``
|
EthGetTransactionCount func(p0 context.Context, p1 ethtypes.EthAddress, p2 string) (ethtypes.EthUint64, error) ``
|
||||||
|
|
||||||
EthGetTransactionCount func(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthUint64, error) ``
|
|
||||||
|
|
||||||
EthGetTransactionHashByCid func(p0 context.Context, p1 cid.Cid) (*ethtypes.EthHash, error) ``
|
EthGetTransactionHashByCid func(p0 context.Context, p1 cid.Cid) (*ethtypes.EthHash, error) ``
|
||||||
|
|
||||||
EthGetTransactionReceipt func(p0 context.Context, p1 ethtypes.EthHash) (*EthTxReceipt, error) ``
|
EthGetTransactionReceipt func(p0 context.Context, p1 ethtypes.EthHash) (*EthTxReceipt, error) ``
|
||||||
|
|
||||||
EthGetTransactionReceiptLimited func(p0 context.Context, p1 ethtypes.EthHash, p2 abi.ChainEpoch) (*EthTxReceipt, error) ``
|
|
||||||
|
|
||||||
EthMaxPriorityFeePerGas func(p0 context.Context) (ethtypes.EthBigInt, error) ``
|
EthMaxPriorityFeePerGas func(p0 context.Context) (ethtypes.EthBigInt, error) ``
|
||||||
|
|
||||||
EthNewBlockFilter func(p0 context.Context) (ethtypes.EthFilterID, error) ``
|
EthNewBlockFilter func(p0 context.Context) (ethtypes.EthFilterID, error) ``
|
||||||
@@ -733,26 +714,14 @@ type GatewayMethods struct {
|
|||||||
|
|
||||||
EthSubscribe func(p0 context.Context, p1 jsonrpc.RawParams) (ethtypes.EthSubscriptionID, error) ``
|
EthSubscribe func(p0 context.Context, p1 jsonrpc.RawParams) (ethtypes.EthSubscriptionID, error) ``
|
||||||
|
|
||||||
EthSyncing func(p0 context.Context) (ethtypes.EthSyncingResult, error) ``
|
|
||||||
|
|
||||||
EthTraceBlock func(p0 context.Context, p1 string) ([]*ethtypes.EthTraceBlock, error) ``
|
|
||||||
|
|
||||||
EthTraceReplayBlockTransactions func(p0 context.Context, p1 string, p2 []string) ([]*ethtypes.EthTraceReplayBlockTransaction, error) ``
|
|
||||||
|
|
||||||
EthUninstallFilter func(p0 context.Context, p1 ethtypes.EthFilterID) (bool, error) ``
|
EthUninstallFilter func(p0 context.Context, p1 ethtypes.EthFilterID) (bool, error) ``
|
||||||
|
|
||||||
EthUnsubscribe func(p0 context.Context, p1 ethtypes.EthSubscriptionID) (bool, error) ``
|
EthUnsubscribe func(p0 context.Context, p1 ethtypes.EthSubscriptionID) (bool, error) ``
|
||||||
|
|
||||||
GasEstimateGasPremium func(p0 context.Context, p1 uint64, p2 address.Address, p3 int64, p4 types.TipSetKey) (types.BigInt, error) ``
|
|
||||||
|
|
||||||
GasEstimateMessageGas func(p0 context.Context, p1 *types.Message, p2 *MessageSendSpec, p3 types.TipSetKey) (*types.Message, error) ``
|
GasEstimateMessageGas func(p0 context.Context, p1 *types.Message, p2 *MessageSendSpec, p3 types.TipSetKey) (*types.Message, error) ``
|
||||||
|
|
||||||
MinerGetBaseInfo func(p0 context.Context, p1 address.Address, p2 abi.ChainEpoch, p3 types.TipSetKey) (*MiningBaseInfo, error) ``
|
|
||||||
|
|
||||||
MpoolGetNonce func(p0 context.Context, p1 address.Address) (uint64, error) ``
|
MpoolGetNonce func(p0 context.Context, p1 address.Address) (uint64, error) ``
|
||||||
|
|
||||||
MpoolPending func(p0 context.Context, p1 types.TipSetKey) ([]*types.SignedMessage, error) ``
|
|
||||||
|
|
||||||
MpoolPush func(p0 context.Context, p1 *types.SignedMessage) (cid.Cid, error) ``
|
MpoolPush func(p0 context.Context, p1 *types.SignedMessage) (cid.Cid, error) ``
|
||||||
|
|
||||||
MsigGetAvailableBalance func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (types.BigInt, error) ``
|
MsigGetAvailableBalance func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (types.BigInt, error) ``
|
||||||
@@ -777,16 +746,6 @@ type GatewayMethods struct {
|
|||||||
|
|
||||||
StateGetActor func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (*types.Actor, error) ``
|
StateGetActor func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (*types.Actor, error) ``
|
||||||
|
|
||||||
StateGetAllocation func(p0 context.Context, p1 address.Address, p2 verifregtypes.AllocationId, p3 types.TipSetKey) (*verifregtypes.Allocation, error) ``
|
|
||||||
|
|
||||||
StateGetAllocationForPendingDeal func(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifregtypes.Allocation, error) ``
|
|
||||||
|
|
||||||
StateGetAllocations func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifregtypes.AllocationId]verifregtypes.Allocation, error) ``
|
|
||||||
|
|
||||||
StateGetClaim func(p0 context.Context, p1 address.Address, p2 verifregtypes.ClaimId, p3 types.TipSetKey) (*verifregtypes.Claim, error) ``
|
|
||||||
|
|
||||||
StateGetClaims func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifregtypes.ClaimId]verifregtypes.Claim, error) ``
|
|
||||||
|
|
||||||
StateListMiners func(p0 context.Context, p1 types.TipSetKey) ([]address.Address, error) ``
|
StateListMiners func(p0 context.Context, p1 types.TipSetKey) ([]address.Address, error) ``
|
||||||
|
|
||||||
StateLookupID func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (address.Address, error) ``
|
StateLookupID func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (address.Address, error) ``
|
||||||
@@ -801,24 +760,18 @@ type GatewayMethods struct {
|
|||||||
|
|
||||||
StateMinerProvingDeadline func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (*dline.Info, error) ``
|
StateMinerProvingDeadline func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (*dline.Info, error) ``
|
||||||
|
|
||||||
StateMinerSectorCount func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (MinerSectors, error) ``
|
|
||||||
|
|
||||||
StateNetworkName func(p0 context.Context) (dtypes.NetworkName, error) ``
|
StateNetworkName func(p0 context.Context) (dtypes.NetworkName, error) ``
|
||||||
|
|
||||||
StateNetworkVersion func(p0 context.Context, p1 types.TipSetKey) (apitypes.NetworkVersion, error) ``
|
StateNetworkVersion func(p0 context.Context, p1 types.TipSetKey) (apitypes.NetworkVersion, error) ``
|
||||||
|
|
||||||
StateReadState func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (*ActorState, error) ``
|
StateReadState func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (*ActorState, error) ``
|
||||||
|
|
||||||
StateReplay func(p0 context.Context, p1 types.TipSetKey, p2 cid.Cid) (*InvocResult, error) ``
|
|
||||||
|
|
||||||
StateSearchMsg func(p0 context.Context, p1 types.TipSetKey, p2 cid.Cid, p3 abi.ChainEpoch, p4 bool) (*MsgLookup, error) ``
|
StateSearchMsg func(p0 context.Context, p1 types.TipSetKey, p2 cid.Cid, p3 abi.ChainEpoch, p4 bool) (*MsgLookup, error) ``
|
||||||
|
|
||||||
StateSectorGetInfo func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorOnChainInfo, error) ``
|
StateSectorGetInfo func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorOnChainInfo, error) ``
|
||||||
|
|
||||||
StateVerifiedClientStatus func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (*abi.StoragePower, error) ``
|
StateVerifiedClientStatus func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (*abi.StoragePower, error) ``
|
||||||
|
|
||||||
StateVerifierStatus func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (*abi.StoragePower, error) ``
|
|
||||||
|
|
||||||
StateWaitMsg func(p0 context.Context, p1 cid.Cid, p2 uint64, p3 abi.ChainEpoch, p4 bool) (*MsgLookup, error) ``
|
StateWaitMsg func(p0 context.Context, p1 cid.Cid, p2 uint64, p3 abi.ChainEpoch, p4 bool) (*MsgLookup, error) ``
|
||||||
|
|
||||||
Version func(p0 context.Context) (APIVersion, error) ``
|
Version func(p0 context.Context) (APIVersion, error) ``
|
||||||
@@ -998,7 +951,7 @@ type StorageMinerMethods struct {
|
|||||||
|
|
||||||
MarketListIncompleteDeals func(p0 context.Context) ([]storagemarket.MinerDeal, error) `perm:"read"`
|
MarketListIncompleteDeals func(p0 context.Context) ([]storagemarket.MinerDeal, error) `perm:"read"`
|
||||||
|
|
||||||
MarketListRetrievalDeals func(p0 context.Context) ([]struct{}, error) `perm:"read"`
|
MarketListRetrievalDeals func(p0 context.Context) ([]retrievalmarket.ProviderDealState, error) `perm:"read"`
|
||||||
|
|
||||||
MarketPendingDeals func(p0 context.Context) (PendingDealInfo, error) `perm:"write"`
|
MarketPendingDeals func(p0 context.Context) (PendingDealInfo, error) `perm:"write"`
|
||||||
|
|
||||||
@@ -1116,8 +1069,6 @@ type StorageMinerMethods struct {
|
|||||||
|
|
||||||
SectorTerminatePending func(p0 context.Context) ([]abi.SectorID, error) `perm:"admin"`
|
SectorTerminatePending func(p0 context.Context) ([]abi.SectorID, error) `perm:"admin"`
|
||||||
|
|
||||||
SectorUnseal func(p0 context.Context, p1 abi.SectorNumber) error `perm:"admin"`
|
|
||||||
|
|
||||||
SectorsList func(p0 context.Context) ([]abi.SectorNumber, error) `perm:"read"`
|
SectorsList func(p0 context.Context) ([]abi.SectorNumber, error) `perm:"read"`
|
||||||
|
|
||||||
SectorsListInStates func(p0 context.Context, p1 []SectorState) ([]abi.SectorNumber, error) `perm:"read"`
|
SectorsListInStates func(p0 context.Context, p1 []SectorState) ([]abi.SectorNumber, error) `perm:"read"`
|
||||||
@@ -1496,17 +1447,6 @@ func (s *FullNodeStub) ChainExport(p0 context.Context, p1 abi.ChainEpoch, p2 boo
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) ChainExportRangeInternal(p0 context.Context, p1 types.TipSetKey, p2 types.TipSetKey, p3 ChainExportConfig) error {
|
|
||||||
if s.Internal.ChainExportRangeInternal == nil {
|
|
||||||
return ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.ChainExportRangeInternal(p0, p1, p2, p3)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *FullNodeStub) ChainExportRangeInternal(p0 context.Context, p1 types.TipSetKey, p2 types.TipSetKey, p3 ChainExportConfig) error {
|
|
||||||
return ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *FullNodeStruct) ChainGetBlock(p0 context.Context, p1 cid.Cid) (*types.BlockHeader, error) {
|
func (s *FullNodeStruct) ChainGetBlock(p0 context.Context, p1 cid.Cid) (*types.BlockHeader, error) {
|
||||||
if s.Internal.ChainGetBlock == nil {
|
if s.Internal.ChainGetBlock == nil {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
@@ -1672,17 +1612,6 @@ func (s *FullNodeStub) ChainHead(p0 context.Context) (*types.TipSet, error) {
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) ChainHotGC(p0 context.Context, p1 HotGCOpts) error {
|
|
||||||
if s.Internal.ChainHotGC == nil {
|
|
||||||
return ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.ChainHotGC(p0, p1)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *FullNodeStub) ChainHotGC(p0 context.Context, p1 HotGCOpts) error {
|
|
||||||
return ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *FullNodeStruct) ChainNotify(p0 context.Context) (<-chan []*HeadChange, error) {
|
func (s *FullNodeStruct) ChainNotify(p0 context.Context) (<-chan []*HeadChange, error) {
|
||||||
if s.Internal.ChainNotify == nil {
|
if s.Internal.ChainNotify == nil {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
@@ -2112,14 +2041,14 @@ func (s *FullNodeStub) EthBlockNumber(p0 context.Context) (ethtypes.EthUint64, e
|
|||||||
return *new(ethtypes.EthUint64), ErrNotSupported
|
return *new(ethtypes.EthUint64), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) EthCall(p0 context.Context, p1 ethtypes.EthCall, p2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) {
|
func (s *FullNodeStruct) EthCall(p0 context.Context, p1 ethtypes.EthCall, p2 string) (ethtypes.EthBytes, error) {
|
||||||
if s.Internal.EthCall == nil {
|
if s.Internal.EthCall == nil {
|
||||||
return *new(ethtypes.EthBytes), ErrNotSupported
|
return *new(ethtypes.EthBytes), ErrNotSupported
|
||||||
}
|
}
|
||||||
return s.Internal.EthCall(p0, p1, p2)
|
return s.Internal.EthCall(p0, p1, p2)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStub) EthCall(p0 context.Context, p1 ethtypes.EthCall, p2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) {
|
func (s *FullNodeStub) EthCall(p0 context.Context, p1 ethtypes.EthCall, p2 string) (ethtypes.EthBytes, error) {
|
||||||
return *new(ethtypes.EthBytes), ErrNotSupported
|
return *new(ethtypes.EthBytes), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2167,14 +2096,14 @@ func (s *FullNodeStub) EthGasPrice(p0 context.Context) (ethtypes.EthBigInt, erro
|
|||||||
return *new(ethtypes.EthBigInt), ErrNotSupported
|
return *new(ethtypes.EthBigInt), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) EthGetBalance(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBigInt, error) {
|
func (s *FullNodeStruct) EthGetBalance(p0 context.Context, p1 ethtypes.EthAddress, p2 string) (ethtypes.EthBigInt, error) {
|
||||||
if s.Internal.EthGetBalance == nil {
|
if s.Internal.EthGetBalance == nil {
|
||||||
return *new(ethtypes.EthBigInt), ErrNotSupported
|
return *new(ethtypes.EthBigInt), ErrNotSupported
|
||||||
}
|
}
|
||||||
return s.Internal.EthGetBalance(p0, p1, p2)
|
return s.Internal.EthGetBalance(p0, p1, p2)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStub) EthGetBalance(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBigInt, error) {
|
func (s *FullNodeStub) EthGetBalance(p0 context.Context, p1 ethtypes.EthAddress, p2 string) (ethtypes.EthBigInt, error) {
|
||||||
return *new(ethtypes.EthBigInt), ErrNotSupported
|
return *new(ethtypes.EthBigInt), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2222,14 +2151,14 @@ func (s *FullNodeStub) EthGetBlockTransactionCountByNumber(p0 context.Context, p
|
|||||||
return *new(ethtypes.EthUint64), ErrNotSupported
|
return *new(ethtypes.EthUint64), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) EthGetCode(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) {
|
func (s *FullNodeStruct) EthGetCode(p0 context.Context, p1 ethtypes.EthAddress, p2 string) (ethtypes.EthBytes, error) {
|
||||||
if s.Internal.EthGetCode == nil {
|
if s.Internal.EthGetCode == nil {
|
||||||
return *new(ethtypes.EthBytes), ErrNotSupported
|
return *new(ethtypes.EthBytes), ErrNotSupported
|
||||||
}
|
}
|
||||||
return s.Internal.EthGetCode(p0, p1, p2)
|
return s.Internal.EthGetCode(p0, p1, p2)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStub) EthGetCode(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) {
|
func (s *FullNodeStub) EthGetCode(p0 context.Context, p1 ethtypes.EthAddress, p2 string) (ethtypes.EthBytes, error) {
|
||||||
return *new(ethtypes.EthBytes), ErrNotSupported
|
return *new(ethtypes.EthBytes), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2277,14 +2206,14 @@ func (s *FullNodeStub) EthGetMessageCidByTransactionHash(p0 context.Context, p1
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) EthGetStorageAt(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBytes, p3 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) {
|
func (s *FullNodeStruct) EthGetStorageAt(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBytes, p3 string) (ethtypes.EthBytes, error) {
|
||||||
if s.Internal.EthGetStorageAt == nil {
|
if s.Internal.EthGetStorageAt == nil {
|
||||||
return *new(ethtypes.EthBytes), ErrNotSupported
|
return *new(ethtypes.EthBytes), ErrNotSupported
|
||||||
}
|
}
|
||||||
return s.Internal.EthGetStorageAt(p0, p1, p2, p3)
|
return s.Internal.EthGetStorageAt(p0, p1, p2, p3)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStub) EthGetStorageAt(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBytes, p3 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) {
|
func (s *FullNodeStub) EthGetStorageAt(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBytes, p3 string) (ethtypes.EthBytes, error) {
|
||||||
return *new(ethtypes.EthBytes), ErrNotSupported
|
return *new(ethtypes.EthBytes), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2321,25 +2250,14 @@ func (s *FullNodeStub) EthGetTransactionByHash(p0 context.Context, p1 *ethtypes.
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) EthGetTransactionByHashLimited(p0 context.Context, p1 *ethtypes.EthHash, p2 abi.ChainEpoch) (*ethtypes.EthTx, error) {
|
func (s *FullNodeStruct) EthGetTransactionCount(p0 context.Context, p1 ethtypes.EthAddress, p2 string) (ethtypes.EthUint64, error) {
|
||||||
if s.Internal.EthGetTransactionByHashLimited == nil {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.EthGetTransactionByHashLimited(p0, p1, p2)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *FullNodeStub) EthGetTransactionByHashLimited(p0 context.Context, p1 *ethtypes.EthHash, p2 abi.ChainEpoch) (*ethtypes.EthTx, error) {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *FullNodeStruct) EthGetTransactionCount(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthUint64, error) {
|
|
||||||
if s.Internal.EthGetTransactionCount == nil {
|
if s.Internal.EthGetTransactionCount == nil {
|
||||||
return *new(ethtypes.EthUint64), ErrNotSupported
|
return *new(ethtypes.EthUint64), ErrNotSupported
|
||||||
}
|
}
|
||||||
return s.Internal.EthGetTransactionCount(p0, p1, p2)
|
return s.Internal.EthGetTransactionCount(p0, p1, p2)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStub) EthGetTransactionCount(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthUint64, error) {
|
func (s *FullNodeStub) EthGetTransactionCount(p0 context.Context, p1 ethtypes.EthAddress, p2 string) (ethtypes.EthUint64, error) {
|
||||||
return *new(ethtypes.EthUint64), ErrNotSupported
|
return *new(ethtypes.EthUint64), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2365,17 +2283,6 @@ func (s *FullNodeStub) EthGetTransactionReceipt(p0 context.Context, p1 ethtypes.
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) EthGetTransactionReceiptLimited(p0 context.Context, p1 ethtypes.EthHash, p2 abi.ChainEpoch) (*EthTxReceipt, error) {
|
|
||||||
if s.Internal.EthGetTransactionReceiptLimited == nil {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.EthGetTransactionReceiptLimited(p0, p1, p2)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *FullNodeStub) EthGetTransactionReceiptLimited(p0 context.Context, p1 ethtypes.EthHash, p2 abi.ChainEpoch) (*EthTxReceipt, error) {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *FullNodeStruct) EthMaxPriorityFeePerGas(p0 context.Context) (ethtypes.EthBigInt, error) {
|
func (s *FullNodeStruct) EthMaxPriorityFeePerGas(p0 context.Context) (ethtypes.EthBigInt, error) {
|
||||||
if s.Internal.EthMaxPriorityFeePerGas == nil {
|
if s.Internal.EthMaxPriorityFeePerGas == nil {
|
||||||
return *new(ethtypes.EthBigInt), ErrNotSupported
|
return *new(ethtypes.EthBigInt), ErrNotSupported
|
||||||
@@ -2453,39 +2360,6 @@ func (s *FullNodeStub) EthSubscribe(p0 context.Context, p1 jsonrpc.RawParams) (e
|
|||||||
return *new(ethtypes.EthSubscriptionID), ErrNotSupported
|
return *new(ethtypes.EthSubscriptionID), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) EthSyncing(p0 context.Context) (ethtypes.EthSyncingResult, error) {
|
|
||||||
if s.Internal.EthSyncing == nil {
|
|
||||||
return *new(ethtypes.EthSyncingResult), ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.EthSyncing(p0)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *FullNodeStub) EthSyncing(p0 context.Context) (ethtypes.EthSyncingResult, error) {
|
|
||||||
return *new(ethtypes.EthSyncingResult), ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *FullNodeStruct) EthTraceBlock(p0 context.Context, p1 string) ([]*ethtypes.EthTraceBlock, error) {
|
|
||||||
if s.Internal.EthTraceBlock == nil {
|
|
||||||
return *new([]*ethtypes.EthTraceBlock), ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.EthTraceBlock(p0, p1)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *FullNodeStub) EthTraceBlock(p0 context.Context, p1 string) ([]*ethtypes.EthTraceBlock, error) {
|
|
||||||
return *new([]*ethtypes.EthTraceBlock), ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *FullNodeStruct) EthTraceReplayBlockTransactions(p0 context.Context, p1 string, p2 []string) ([]*ethtypes.EthTraceReplayBlockTransaction, error) {
|
|
||||||
if s.Internal.EthTraceReplayBlockTransactions == nil {
|
|
||||||
return *new([]*ethtypes.EthTraceReplayBlockTransaction), ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.EthTraceReplayBlockTransactions(p0, p1, p2)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *FullNodeStub) EthTraceReplayBlockTransactions(p0 context.Context, p1 string, p2 []string) ([]*ethtypes.EthTraceReplayBlockTransaction, error) {
|
|
||||||
return *new([]*ethtypes.EthTraceReplayBlockTransaction), ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *FullNodeStruct) EthUninstallFilter(p0 context.Context, p1 ethtypes.EthFilterID) (bool, error) {
|
func (s *FullNodeStruct) EthUninstallFilter(p0 context.Context, p1 ethtypes.EthFilterID) (bool, error) {
|
||||||
if s.Internal.EthUninstallFilter == nil {
|
if s.Internal.EthUninstallFilter == nil {
|
||||||
return false, ErrNotSupported
|
return false, ErrNotSupported
|
||||||
@@ -3465,28 +3339,6 @@ func (s *FullNodeStub) StateGetNetworkParams(p0 context.Context) (*NetworkParams
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) StateGetRandomnessDigestFromBeacon(p0 context.Context, p1 abi.ChainEpoch, p2 types.TipSetKey) (abi.Randomness, error) {
|
|
||||||
if s.Internal.StateGetRandomnessDigestFromBeacon == nil {
|
|
||||||
return *new(abi.Randomness), ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.StateGetRandomnessDigestFromBeacon(p0, p1, p2)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *FullNodeStub) StateGetRandomnessDigestFromBeacon(p0 context.Context, p1 abi.ChainEpoch, p2 types.TipSetKey) (abi.Randomness, error) {
|
|
||||||
return *new(abi.Randomness), ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *FullNodeStruct) StateGetRandomnessDigestFromTickets(p0 context.Context, p1 abi.ChainEpoch, p2 types.TipSetKey) (abi.Randomness, error) {
|
|
||||||
if s.Internal.StateGetRandomnessDigestFromTickets == nil {
|
|
||||||
return *new(abi.Randomness), ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.StateGetRandomnessDigestFromTickets(p0, p1, p2)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *FullNodeStub) StateGetRandomnessDigestFromTickets(p0 context.Context, p1 abi.ChainEpoch, p2 types.TipSetKey) (abi.Randomness, error) {
|
|
||||||
return *new(abi.Randomness), ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *FullNodeStruct) StateGetRandomnessFromBeacon(p0 context.Context, p1 crypto.DomainSeparationTag, p2 abi.ChainEpoch, p3 []byte, p4 types.TipSetKey) (abi.Randomness, error) {
|
func (s *FullNodeStruct) StateGetRandomnessFromBeacon(p0 context.Context, p1 crypto.DomainSeparationTag, p2 abi.ChainEpoch, p3 []byte, p4 types.TipSetKey) (abi.Randomness, error) {
|
||||||
if s.Internal.StateGetRandomnessFromBeacon == nil {
|
if s.Internal.StateGetRandomnessFromBeacon == nil {
|
||||||
return *new(abi.Randomness), ErrNotSupported
|
return *new(abi.Randomness), ErrNotSupported
|
||||||
@@ -3828,14 +3680,14 @@ func (s *FullNodeStub) StateSearchMsg(p0 context.Context, p1 types.TipSetKey, p2
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) StateSectorExpiration(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorExpiration, error) {
|
func (s *FullNodeStruct) StateSectorExpiration(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorExpiration, error) {
|
||||||
if s.Internal.StateSectorExpiration == nil {
|
if s.Internal.StateSectorExpiration == nil {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
return s.Internal.StateSectorExpiration(p0, p1, p2, p3)
|
return s.Internal.StateSectorExpiration(p0, p1, p2, p3)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStub) StateSectorExpiration(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorExpiration, error) {
|
func (s *FullNodeStub) StateSectorExpiration(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorExpiration, error) {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3850,14 +3702,14 @@ func (s *FullNodeStub) StateSectorGetInfo(p0 context.Context, p1 address.Address
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) StateSectorPartition(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorLocation, error) {
|
func (s *FullNodeStruct) StateSectorPartition(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorLocation, error) {
|
||||||
if s.Internal.StateSectorPartition == nil {
|
if s.Internal.StateSectorPartition == nil {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
return s.Internal.StateSectorPartition(p0, p1, p2, p3)
|
return s.Internal.StateSectorPartition(p0, p1, p2, p3)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStub) StateSectorPartition(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorLocation, error) {
|
func (s *FullNodeStub) StateSectorPartition(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorLocation, error) {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4180,17 +4032,6 @@ func (s *FullNodeStub) Web3ClientVersion(p0 context.Context) (string, error) {
|
|||||||
return "", ErrNotSupported
|
return "", ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStruct) ChainGetBlock(p0 context.Context, p1 cid.Cid) (*types.BlockHeader, error) {
|
|
||||||
if s.Internal.ChainGetBlock == nil {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.ChainGetBlock(p0, p1)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) ChainGetBlock(p0 context.Context, p1 cid.Cid) (*types.BlockHeader, error) {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) ChainGetBlockMessages(p0 context.Context, p1 cid.Cid) (*BlockMessages, error) {
|
func (s *GatewayStruct) ChainGetBlockMessages(p0 context.Context, p1 cid.Cid) (*BlockMessages, error) {
|
||||||
if s.Internal.ChainGetBlockMessages == nil {
|
if s.Internal.ChainGetBlockMessages == nil {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
@@ -4378,14 +4219,14 @@ func (s *GatewayStub) EthBlockNumber(p0 context.Context) (ethtypes.EthUint64, er
|
|||||||
return *new(ethtypes.EthUint64), ErrNotSupported
|
return *new(ethtypes.EthUint64), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStruct) EthCall(p0 context.Context, p1 ethtypes.EthCall, p2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) {
|
func (s *GatewayStruct) EthCall(p0 context.Context, p1 ethtypes.EthCall, p2 string) (ethtypes.EthBytes, error) {
|
||||||
if s.Internal.EthCall == nil {
|
if s.Internal.EthCall == nil {
|
||||||
return *new(ethtypes.EthBytes), ErrNotSupported
|
return *new(ethtypes.EthBytes), ErrNotSupported
|
||||||
}
|
}
|
||||||
return s.Internal.EthCall(p0, p1, p2)
|
return s.Internal.EthCall(p0, p1, p2)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStub) EthCall(p0 context.Context, p1 ethtypes.EthCall, p2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) {
|
func (s *GatewayStub) EthCall(p0 context.Context, p1 ethtypes.EthCall, p2 string) (ethtypes.EthBytes, error) {
|
||||||
return *new(ethtypes.EthBytes), ErrNotSupported
|
return *new(ethtypes.EthBytes), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4433,14 +4274,14 @@ func (s *GatewayStub) EthGasPrice(p0 context.Context) (ethtypes.EthBigInt, error
|
|||||||
return *new(ethtypes.EthBigInt), ErrNotSupported
|
return *new(ethtypes.EthBigInt), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStruct) EthGetBalance(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBigInt, error) {
|
func (s *GatewayStruct) EthGetBalance(p0 context.Context, p1 ethtypes.EthAddress, p2 string) (ethtypes.EthBigInt, error) {
|
||||||
if s.Internal.EthGetBalance == nil {
|
if s.Internal.EthGetBalance == nil {
|
||||||
return *new(ethtypes.EthBigInt), ErrNotSupported
|
return *new(ethtypes.EthBigInt), ErrNotSupported
|
||||||
}
|
}
|
||||||
return s.Internal.EthGetBalance(p0, p1, p2)
|
return s.Internal.EthGetBalance(p0, p1, p2)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStub) EthGetBalance(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBigInt, error) {
|
func (s *GatewayStub) EthGetBalance(p0 context.Context, p1 ethtypes.EthAddress, p2 string) (ethtypes.EthBigInt, error) {
|
||||||
return *new(ethtypes.EthBigInt), ErrNotSupported
|
return *new(ethtypes.EthBigInt), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4488,14 +4329,14 @@ func (s *GatewayStub) EthGetBlockTransactionCountByNumber(p0 context.Context, p1
|
|||||||
return *new(ethtypes.EthUint64), ErrNotSupported
|
return *new(ethtypes.EthUint64), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStruct) EthGetCode(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) {
|
func (s *GatewayStruct) EthGetCode(p0 context.Context, p1 ethtypes.EthAddress, p2 string) (ethtypes.EthBytes, error) {
|
||||||
if s.Internal.EthGetCode == nil {
|
if s.Internal.EthGetCode == nil {
|
||||||
return *new(ethtypes.EthBytes), ErrNotSupported
|
return *new(ethtypes.EthBytes), ErrNotSupported
|
||||||
}
|
}
|
||||||
return s.Internal.EthGetCode(p0, p1, p2)
|
return s.Internal.EthGetCode(p0, p1, p2)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStub) EthGetCode(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) {
|
func (s *GatewayStub) EthGetCode(p0 context.Context, p1 ethtypes.EthAddress, p2 string) (ethtypes.EthBytes, error) {
|
||||||
return *new(ethtypes.EthBytes), ErrNotSupported
|
return *new(ethtypes.EthBytes), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4543,17 +4384,39 @@ func (s *GatewayStub) EthGetMessageCidByTransactionHash(p0 context.Context, p1 *
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStruct) EthGetStorageAt(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBytes, p3 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) {
|
func (s *GatewayStruct) EthGetStorageAt(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBytes, p3 string) (ethtypes.EthBytes, error) {
|
||||||
if s.Internal.EthGetStorageAt == nil {
|
if s.Internal.EthGetStorageAt == nil {
|
||||||
return *new(ethtypes.EthBytes), ErrNotSupported
|
return *new(ethtypes.EthBytes), ErrNotSupported
|
||||||
}
|
}
|
||||||
return s.Internal.EthGetStorageAt(p0, p1, p2, p3)
|
return s.Internal.EthGetStorageAt(p0, p1, p2, p3)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStub) EthGetStorageAt(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBytes, p3 ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) {
|
func (s *GatewayStub) EthGetStorageAt(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBytes, p3 string) (ethtypes.EthBytes, error) {
|
||||||
return *new(ethtypes.EthBytes), ErrNotSupported
|
return *new(ethtypes.EthBytes), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *GatewayStruct) EthGetTransactionByBlockHashAndIndex(p0 context.Context, p1 ethtypes.EthHash, p2 ethtypes.EthUint64) (ethtypes.EthTx, error) {
|
||||||
|
if s.Internal.EthGetTransactionByBlockHashAndIndex == nil {
|
||||||
|
return *new(ethtypes.EthTx), ErrNotSupported
|
||||||
|
}
|
||||||
|
return s.Internal.EthGetTransactionByBlockHashAndIndex(p0, p1, p2)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *GatewayStub) EthGetTransactionByBlockHashAndIndex(p0 context.Context, p1 ethtypes.EthHash, p2 ethtypes.EthUint64) (ethtypes.EthTx, error) {
|
||||||
|
return *new(ethtypes.EthTx), ErrNotSupported
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *GatewayStruct) EthGetTransactionByBlockNumberAndIndex(p0 context.Context, p1 ethtypes.EthUint64, p2 ethtypes.EthUint64) (ethtypes.EthTx, error) {
|
||||||
|
if s.Internal.EthGetTransactionByBlockNumberAndIndex == nil {
|
||||||
|
return *new(ethtypes.EthTx), ErrNotSupported
|
||||||
|
}
|
||||||
|
return s.Internal.EthGetTransactionByBlockNumberAndIndex(p0, p1, p2)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *GatewayStub) EthGetTransactionByBlockNumberAndIndex(p0 context.Context, p1 ethtypes.EthUint64, p2 ethtypes.EthUint64) (ethtypes.EthTx, error) {
|
||||||
|
return *new(ethtypes.EthTx), ErrNotSupported
|
||||||
|
}
|
||||||
|
|
||||||
func (s *GatewayStruct) EthGetTransactionByHash(p0 context.Context, p1 *ethtypes.EthHash) (*ethtypes.EthTx, error) {
|
func (s *GatewayStruct) EthGetTransactionByHash(p0 context.Context, p1 *ethtypes.EthHash) (*ethtypes.EthTx, error) {
|
||||||
if s.Internal.EthGetTransactionByHash == nil {
|
if s.Internal.EthGetTransactionByHash == nil {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
@@ -4565,25 +4428,14 @@ func (s *GatewayStub) EthGetTransactionByHash(p0 context.Context, p1 *ethtypes.E
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStruct) EthGetTransactionByHashLimited(p0 context.Context, p1 *ethtypes.EthHash, p2 abi.ChainEpoch) (*ethtypes.EthTx, error) {
|
func (s *GatewayStruct) EthGetTransactionCount(p0 context.Context, p1 ethtypes.EthAddress, p2 string) (ethtypes.EthUint64, error) {
|
||||||
if s.Internal.EthGetTransactionByHashLimited == nil {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.EthGetTransactionByHashLimited(p0, p1, p2)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) EthGetTransactionByHashLimited(p0 context.Context, p1 *ethtypes.EthHash, p2 abi.ChainEpoch) (*ethtypes.EthTx, error) {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) EthGetTransactionCount(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthUint64, error) {
|
|
||||||
if s.Internal.EthGetTransactionCount == nil {
|
if s.Internal.EthGetTransactionCount == nil {
|
||||||
return *new(ethtypes.EthUint64), ErrNotSupported
|
return *new(ethtypes.EthUint64), ErrNotSupported
|
||||||
}
|
}
|
||||||
return s.Internal.EthGetTransactionCount(p0, p1, p2)
|
return s.Internal.EthGetTransactionCount(p0, p1, p2)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStub) EthGetTransactionCount(p0 context.Context, p1 ethtypes.EthAddress, p2 ethtypes.EthBlockNumberOrHash) (ethtypes.EthUint64, error) {
|
func (s *GatewayStub) EthGetTransactionCount(p0 context.Context, p1 ethtypes.EthAddress, p2 string) (ethtypes.EthUint64, error) {
|
||||||
return *new(ethtypes.EthUint64), ErrNotSupported
|
return *new(ethtypes.EthUint64), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4609,17 +4461,6 @@ func (s *GatewayStub) EthGetTransactionReceipt(p0 context.Context, p1 ethtypes.E
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStruct) EthGetTransactionReceiptLimited(p0 context.Context, p1 ethtypes.EthHash, p2 abi.ChainEpoch) (*EthTxReceipt, error) {
|
|
||||||
if s.Internal.EthGetTransactionReceiptLimited == nil {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.EthGetTransactionReceiptLimited(p0, p1, p2)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) EthGetTransactionReceiptLimited(p0 context.Context, p1 ethtypes.EthHash, p2 abi.ChainEpoch) (*EthTxReceipt, error) {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) EthMaxPriorityFeePerGas(p0 context.Context) (ethtypes.EthBigInt, error) {
|
func (s *GatewayStruct) EthMaxPriorityFeePerGas(p0 context.Context) (ethtypes.EthBigInt, error) {
|
||||||
if s.Internal.EthMaxPriorityFeePerGas == nil {
|
if s.Internal.EthMaxPriorityFeePerGas == nil {
|
||||||
return *new(ethtypes.EthBigInt), ErrNotSupported
|
return *new(ethtypes.EthBigInt), ErrNotSupported
|
||||||
@@ -4697,39 +4538,6 @@ func (s *GatewayStub) EthSubscribe(p0 context.Context, p1 jsonrpc.RawParams) (et
|
|||||||
return *new(ethtypes.EthSubscriptionID), ErrNotSupported
|
return *new(ethtypes.EthSubscriptionID), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStruct) EthSyncing(p0 context.Context) (ethtypes.EthSyncingResult, error) {
|
|
||||||
if s.Internal.EthSyncing == nil {
|
|
||||||
return *new(ethtypes.EthSyncingResult), ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.EthSyncing(p0)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) EthSyncing(p0 context.Context) (ethtypes.EthSyncingResult, error) {
|
|
||||||
return *new(ethtypes.EthSyncingResult), ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) EthTraceBlock(p0 context.Context, p1 string) ([]*ethtypes.EthTraceBlock, error) {
|
|
||||||
if s.Internal.EthTraceBlock == nil {
|
|
||||||
return *new([]*ethtypes.EthTraceBlock), ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.EthTraceBlock(p0, p1)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) EthTraceBlock(p0 context.Context, p1 string) ([]*ethtypes.EthTraceBlock, error) {
|
|
||||||
return *new([]*ethtypes.EthTraceBlock), ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) EthTraceReplayBlockTransactions(p0 context.Context, p1 string, p2 []string) ([]*ethtypes.EthTraceReplayBlockTransaction, error) {
|
|
||||||
if s.Internal.EthTraceReplayBlockTransactions == nil {
|
|
||||||
return *new([]*ethtypes.EthTraceReplayBlockTransaction), ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.EthTraceReplayBlockTransactions(p0, p1, p2)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) EthTraceReplayBlockTransactions(p0 context.Context, p1 string, p2 []string) ([]*ethtypes.EthTraceReplayBlockTransaction, error) {
|
|
||||||
return *new([]*ethtypes.EthTraceReplayBlockTransaction), ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) EthUninstallFilter(p0 context.Context, p1 ethtypes.EthFilterID) (bool, error) {
|
func (s *GatewayStruct) EthUninstallFilter(p0 context.Context, p1 ethtypes.EthFilterID) (bool, error) {
|
||||||
if s.Internal.EthUninstallFilter == nil {
|
if s.Internal.EthUninstallFilter == nil {
|
||||||
return false, ErrNotSupported
|
return false, ErrNotSupported
|
||||||
@@ -4752,17 +4560,6 @@ func (s *GatewayStub) EthUnsubscribe(p0 context.Context, p1 ethtypes.EthSubscrip
|
|||||||
return false, ErrNotSupported
|
return false, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStruct) GasEstimateGasPremium(p0 context.Context, p1 uint64, p2 address.Address, p3 int64, p4 types.TipSetKey) (types.BigInt, error) {
|
|
||||||
if s.Internal.GasEstimateGasPremium == nil {
|
|
||||||
return *new(types.BigInt), ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.GasEstimateGasPremium(p0, p1, p2, p3, p4)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) GasEstimateGasPremium(p0 context.Context, p1 uint64, p2 address.Address, p3 int64, p4 types.TipSetKey) (types.BigInt, error) {
|
|
||||||
return *new(types.BigInt), ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) GasEstimateMessageGas(p0 context.Context, p1 *types.Message, p2 *MessageSendSpec, p3 types.TipSetKey) (*types.Message, error) {
|
func (s *GatewayStruct) GasEstimateMessageGas(p0 context.Context, p1 *types.Message, p2 *MessageSendSpec, p3 types.TipSetKey) (*types.Message, error) {
|
||||||
if s.Internal.GasEstimateMessageGas == nil {
|
if s.Internal.GasEstimateMessageGas == nil {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
@@ -4774,17 +4571,6 @@ func (s *GatewayStub) GasEstimateMessageGas(p0 context.Context, p1 *types.Messag
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStruct) MinerGetBaseInfo(p0 context.Context, p1 address.Address, p2 abi.ChainEpoch, p3 types.TipSetKey) (*MiningBaseInfo, error) {
|
|
||||||
if s.Internal.MinerGetBaseInfo == nil {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.MinerGetBaseInfo(p0, p1, p2, p3)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) MinerGetBaseInfo(p0 context.Context, p1 address.Address, p2 abi.ChainEpoch, p3 types.TipSetKey) (*MiningBaseInfo, error) {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) MpoolGetNonce(p0 context.Context, p1 address.Address) (uint64, error) {
|
func (s *GatewayStruct) MpoolGetNonce(p0 context.Context, p1 address.Address) (uint64, error) {
|
||||||
if s.Internal.MpoolGetNonce == nil {
|
if s.Internal.MpoolGetNonce == nil {
|
||||||
return 0, ErrNotSupported
|
return 0, ErrNotSupported
|
||||||
@@ -4796,17 +4582,6 @@ func (s *GatewayStub) MpoolGetNonce(p0 context.Context, p1 address.Address) (uin
|
|||||||
return 0, ErrNotSupported
|
return 0, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStruct) MpoolPending(p0 context.Context, p1 types.TipSetKey) ([]*types.SignedMessage, error) {
|
|
||||||
if s.Internal.MpoolPending == nil {
|
|
||||||
return *new([]*types.SignedMessage), ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.MpoolPending(p0, p1)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) MpoolPending(p0 context.Context, p1 types.TipSetKey) ([]*types.SignedMessage, error) {
|
|
||||||
return *new([]*types.SignedMessage), ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) MpoolPush(p0 context.Context, p1 *types.SignedMessage) (cid.Cid, error) {
|
func (s *GatewayStruct) MpoolPush(p0 context.Context, p1 *types.SignedMessage) (cid.Cid, error) {
|
||||||
if s.Internal.MpoolPush == nil {
|
if s.Internal.MpoolPush == nil {
|
||||||
return *new(cid.Cid), ErrNotSupported
|
return *new(cid.Cid), ErrNotSupported
|
||||||
@@ -4939,61 +4714,6 @@ func (s *GatewayStub) StateGetActor(p0 context.Context, p1 address.Address, p2 t
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStruct) StateGetAllocation(p0 context.Context, p1 address.Address, p2 verifregtypes.AllocationId, p3 types.TipSetKey) (*verifregtypes.Allocation, error) {
|
|
||||||
if s.Internal.StateGetAllocation == nil {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.StateGetAllocation(p0, p1, p2, p3)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) StateGetAllocation(p0 context.Context, p1 address.Address, p2 verifregtypes.AllocationId, p3 types.TipSetKey) (*verifregtypes.Allocation, error) {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) StateGetAllocationForPendingDeal(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifregtypes.Allocation, error) {
|
|
||||||
if s.Internal.StateGetAllocationForPendingDeal == nil {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.StateGetAllocationForPendingDeal(p0, p1, p2)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) StateGetAllocationForPendingDeal(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifregtypes.Allocation, error) {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) StateGetAllocations(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifregtypes.AllocationId]verifregtypes.Allocation, error) {
|
|
||||||
if s.Internal.StateGetAllocations == nil {
|
|
||||||
return *new(map[verifregtypes.AllocationId]verifregtypes.Allocation), ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.StateGetAllocations(p0, p1, p2)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) StateGetAllocations(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifregtypes.AllocationId]verifregtypes.Allocation, error) {
|
|
||||||
return *new(map[verifregtypes.AllocationId]verifregtypes.Allocation), ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) StateGetClaim(p0 context.Context, p1 address.Address, p2 verifregtypes.ClaimId, p3 types.TipSetKey) (*verifregtypes.Claim, error) {
|
|
||||||
if s.Internal.StateGetClaim == nil {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.StateGetClaim(p0, p1, p2, p3)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) StateGetClaim(p0 context.Context, p1 address.Address, p2 verifregtypes.ClaimId, p3 types.TipSetKey) (*verifregtypes.Claim, error) {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) StateGetClaims(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifregtypes.ClaimId]verifregtypes.Claim, error) {
|
|
||||||
if s.Internal.StateGetClaims == nil {
|
|
||||||
return *new(map[verifregtypes.ClaimId]verifregtypes.Claim), ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.StateGetClaims(p0, p1, p2)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) StateGetClaims(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifregtypes.ClaimId]verifregtypes.Claim, error) {
|
|
||||||
return *new(map[verifregtypes.ClaimId]verifregtypes.Claim), ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) StateListMiners(p0 context.Context, p1 types.TipSetKey) ([]address.Address, error) {
|
func (s *GatewayStruct) StateListMiners(p0 context.Context, p1 types.TipSetKey) ([]address.Address, error) {
|
||||||
if s.Internal.StateListMiners == nil {
|
if s.Internal.StateListMiners == nil {
|
||||||
return *new([]address.Address), ErrNotSupported
|
return *new([]address.Address), ErrNotSupported
|
||||||
@@ -5071,17 +4791,6 @@ func (s *GatewayStub) StateMinerProvingDeadline(p0 context.Context, p1 address.A
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStruct) StateMinerSectorCount(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (MinerSectors, error) {
|
|
||||||
if s.Internal.StateMinerSectorCount == nil {
|
|
||||||
return *new(MinerSectors), ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.StateMinerSectorCount(p0, p1, p2)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) StateMinerSectorCount(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (MinerSectors, error) {
|
|
||||||
return *new(MinerSectors), ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) StateNetworkName(p0 context.Context) (dtypes.NetworkName, error) {
|
func (s *GatewayStruct) StateNetworkName(p0 context.Context) (dtypes.NetworkName, error) {
|
||||||
if s.Internal.StateNetworkName == nil {
|
if s.Internal.StateNetworkName == nil {
|
||||||
return *new(dtypes.NetworkName), ErrNotSupported
|
return *new(dtypes.NetworkName), ErrNotSupported
|
||||||
@@ -5115,17 +4824,6 @@ func (s *GatewayStub) StateReadState(p0 context.Context, p1 address.Address, p2
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStruct) StateReplay(p0 context.Context, p1 types.TipSetKey, p2 cid.Cid) (*InvocResult, error) {
|
|
||||||
if s.Internal.StateReplay == nil {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.StateReplay(p0, p1, p2)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) StateReplay(p0 context.Context, p1 types.TipSetKey, p2 cid.Cid) (*InvocResult, error) {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) StateSearchMsg(p0 context.Context, p1 types.TipSetKey, p2 cid.Cid, p3 abi.ChainEpoch, p4 bool) (*MsgLookup, error) {
|
func (s *GatewayStruct) StateSearchMsg(p0 context.Context, p1 types.TipSetKey, p2 cid.Cid, p3 abi.ChainEpoch, p4 bool) (*MsgLookup, error) {
|
||||||
if s.Internal.StateSearchMsg == nil {
|
if s.Internal.StateSearchMsg == nil {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
@@ -5159,17 +4857,6 @@ func (s *GatewayStub) StateVerifiedClientStatus(p0 context.Context, p1 address.A
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStruct) StateVerifierStatus(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (*abi.StoragePower, error) {
|
|
||||||
if s.Internal.StateVerifierStatus == nil {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.StateVerifierStatus(p0, p1, p2)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) StateVerifierStatus(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (*abi.StoragePower, error) {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) StateWaitMsg(p0 context.Context, p1 cid.Cid, p2 uint64, p3 abi.ChainEpoch, p4 bool) (*MsgLookup, error) {
|
func (s *GatewayStruct) StateWaitMsg(p0 context.Context, p1 cid.Cid, p2 uint64, p3 abi.ChainEpoch, p4 bool) (*MsgLookup, error) {
|
||||||
if s.Internal.StateWaitMsg == nil {
|
if s.Internal.StateWaitMsg == nil {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
@@ -5984,15 +5671,15 @@ func (s *StorageMinerStub) MarketListIncompleteDeals(p0 context.Context) ([]stor
|
|||||||
return *new([]storagemarket.MinerDeal), ErrNotSupported
|
return *new([]storagemarket.MinerDeal), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *StorageMinerStruct) MarketListRetrievalDeals(p0 context.Context) ([]struct{}, error) {
|
func (s *StorageMinerStruct) MarketListRetrievalDeals(p0 context.Context) ([]retrievalmarket.ProviderDealState, error) {
|
||||||
if s.Internal.MarketListRetrievalDeals == nil {
|
if s.Internal.MarketListRetrievalDeals == nil {
|
||||||
return *new([]struct{}), ErrNotSupported
|
return *new([]retrievalmarket.ProviderDealState), ErrNotSupported
|
||||||
}
|
}
|
||||||
return s.Internal.MarketListRetrievalDeals(p0)
|
return s.Internal.MarketListRetrievalDeals(p0)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *StorageMinerStub) MarketListRetrievalDeals(p0 context.Context) ([]struct{}, error) {
|
func (s *StorageMinerStub) MarketListRetrievalDeals(p0 context.Context) ([]retrievalmarket.ProviderDealState, error) {
|
||||||
return *new([]struct{}), ErrNotSupported
|
return *new([]retrievalmarket.ProviderDealState), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *StorageMinerStruct) MarketPendingDeals(p0 context.Context) (PendingDealInfo, error) {
|
func (s *StorageMinerStruct) MarketPendingDeals(p0 context.Context) (PendingDealInfo, error) {
|
||||||
@@ -6633,17 +6320,6 @@ func (s *StorageMinerStub) SectorTerminatePending(p0 context.Context) ([]abi.Sec
|
|||||||
return *new([]abi.SectorID), ErrNotSupported
|
return *new([]abi.SectorID), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *StorageMinerStruct) SectorUnseal(p0 context.Context, p1 abi.SectorNumber) error {
|
|
||||||
if s.Internal.SectorUnseal == nil {
|
|
||||||
return ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.SectorUnseal(p0, p1)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *StorageMinerStub) SectorUnseal(p0 context.Context, p1 abi.SectorNumber) error {
|
|
||||||
return ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *StorageMinerStruct) SectorsList(p0 context.Context) ([]abi.SectorNumber, error) {
|
func (s *StorageMinerStruct) SectorsList(p0 context.Context) ([]abi.SectorNumber, error) {
|
||||||
if s.Internal.SectorsList == nil {
|
if s.Internal.SectorsList == nil {
|
||||||
return *new([]abi.SectorNumber), ErrNotSupported
|
return *new([]abi.SectorNumber), ErrNotSupported
|
||||||
|
|||||||
+36
-45
@@ -8,19 +8,17 @@ import (
|
|||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
"github.com/ipfs/go-graphsync"
|
"github.com/ipfs/go-graphsync"
|
||||||
"github.com/ipld/go-ipld-prime"
|
|
||||||
"github.com/ipld/go-ipld-prime/codec/dagjson"
|
|
||||||
pubsub "github.com/libp2p/go-libp2p-pubsub"
|
pubsub "github.com/libp2p/go-libp2p-pubsub"
|
||||||
"github.com/libp2p/go-libp2p/core/network"
|
"github.com/libp2p/go-libp2p/core/network"
|
||||||
"github.com/libp2p/go-libp2p/core/peer"
|
"github.com/libp2p/go-libp2p/core/peer"
|
||||||
ma "github.com/multiformats/go-multiaddr"
|
ma "github.com/multiformats/go-multiaddr"
|
||||||
|
|
||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
datatransfer "github.com/filecoin-project/go-data-transfer/v2"
|
datatransfer "github.com/filecoin-project/go-data-transfer"
|
||||||
"github.com/filecoin-project/go-fil-markets/retrievalmarket"
|
"github.com/filecoin-project/go-fil-markets/retrievalmarket"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
|
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
||||||
)
|
)
|
||||||
@@ -112,12 +110,16 @@ func NewDataTransferChannel(hostID peer.ID, channelState datatransfer.ChannelSta
|
|||||||
IsSender: channelState.Sender() == hostID,
|
IsSender: channelState.Sender() == hostID,
|
||||||
Message: channelState.Message(),
|
Message: channelState.Message(),
|
||||||
}
|
}
|
||||||
voucher := channelState.Voucher()
|
stringer, ok := channelState.Voucher().(fmt.Stringer)
|
||||||
voucherJSON, err := ipld.Encode(voucher.Voucher, dagjson.Encode)
|
if ok {
|
||||||
if err != nil {
|
channel.Voucher = stringer.String()
|
||||||
channel.Voucher = fmt.Errorf("Voucher Serialization: %w", err).Error()
|
|
||||||
} else {
|
} else {
|
||||||
channel.Voucher = string(voucherJSON)
|
voucherJSON, err := json.Marshal(channelState.Voucher())
|
||||||
|
if err != nil {
|
||||||
|
channel.Voucher = fmt.Errorf("Voucher Serialization: %w", err).Error()
|
||||||
|
} else {
|
||||||
|
channel.Voucher = string(voucherJSON)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if channel.IsSender {
|
if channel.IsSender {
|
||||||
channel.IsInitiator = !channelState.IsPull()
|
channel.IsInitiator = !channelState.IsPull()
|
||||||
@@ -299,7 +301,6 @@ type MinerInfo struct {
|
|||||||
SectorSize abi.SectorSize
|
SectorSize abi.SectorSize
|
||||||
WindowPoStPartitionSectors uint64
|
WindowPoStPartitionSectors uint64
|
||||||
ConsensusFaultElapsed abi.ChainEpoch
|
ConsensusFaultElapsed abi.ChainEpoch
|
||||||
PendingOwnerAddress *address.Address
|
|
||||||
Beneficiary address.Address
|
Beneficiary address.Address
|
||||||
BeneficiaryTerm *miner.BeneficiaryTerm
|
BeneficiaryTerm *miner.BeneficiaryTerm
|
||||||
PendingBeneficiaryTerm *miner.PendingBeneficiaryChange
|
PendingBeneficiaryTerm *miner.PendingBeneficiaryChange
|
||||||
@@ -312,35 +313,34 @@ type NetworkParams struct {
|
|||||||
SupportedProofTypes []abi.RegisteredSealProof
|
SupportedProofTypes []abi.RegisteredSealProof
|
||||||
PreCommitChallengeDelay abi.ChainEpoch
|
PreCommitChallengeDelay abi.ChainEpoch
|
||||||
ForkUpgradeParams ForkUpgradeParams
|
ForkUpgradeParams ForkUpgradeParams
|
||||||
Eip155ChainID int
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type ForkUpgradeParams struct {
|
type ForkUpgradeParams struct {
|
||||||
UpgradeSmokeHeight abi.ChainEpoch
|
UpgradeSmokeHeight abi.ChainEpoch
|
||||||
UpgradeBreezeHeight abi.ChainEpoch
|
UpgradeBreezeHeight abi.ChainEpoch
|
||||||
UpgradeIgnitionHeight abi.ChainEpoch
|
UpgradeIgnitionHeight abi.ChainEpoch
|
||||||
UpgradeLiftoffHeight abi.ChainEpoch
|
UpgradeLiftoffHeight abi.ChainEpoch
|
||||||
UpgradeAssemblyHeight abi.ChainEpoch
|
UpgradeAssemblyHeight abi.ChainEpoch
|
||||||
UpgradeRefuelHeight abi.ChainEpoch
|
UpgradeRefuelHeight abi.ChainEpoch
|
||||||
UpgradeTapeHeight abi.ChainEpoch
|
UpgradeTapeHeight abi.ChainEpoch
|
||||||
UpgradeKumquatHeight abi.ChainEpoch
|
UpgradeKumquatHeight abi.ChainEpoch
|
||||||
BreezeGasTampingDuration abi.ChainEpoch
|
UpgradePriceListOopsHeight abi.ChainEpoch
|
||||||
UpgradeCalicoHeight abi.ChainEpoch
|
BreezeGasTampingDuration abi.ChainEpoch
|
||||||
UpgradePersianHeight abi.ChainEpoch
|
UpgradeCalicoHeight abi.ChainEpoch
|
||||||
UpgradeOrangeHeight abi.ChainEpoch
|
UpgradePersianHeight abi.ChainEpoch
|
||||||
UpgradeClausHeight abi.ChainEpoch
|
UpgradeOrangeHeight abi.ChainEpoch
|
||||||
UpgradeTrustHeight abi.ChainEpoch
|
UpgradeClausHeight abi.ChainEpoch
|
||||||
UpgradeNorwegianHeight abi.ChainEpoch
|
UpgradeTrustHeight abi.ChainEpoch
|
||||||
UpgradeTurboHeight abi.ChainEpoch
|
UpgradeNorwegianHeight abi.ChainEpoch
|
||||||
UpgradeHyperdriveHeight abi.ChainEpoch
|
UpgradeTurboHeight abi.ChainEpoch
|
||||||
UpgradeChocolateHeight abi.ChainEpoch
|
UpgradeHyperdriveHeight abi.ChainEpoch
|
||||||
UpgradeOhSnapHeight abi.ChainEpoch
|
UpgradeChocolateHeight abi.ChainEpoch
|
||||||
UpgradeSkyrHeight abi.ChainEpoch
|
UpgradeOhSnapHeight abi.ChainEpoch
|
||||||
UpgradeSharkHeight abi.ChainEpoch
|
UpgradeSkyrHeight abi.ChainEpoch
|
||||||
UpgradeHyggeHeight abi.ChainEpoch
|
UpgradeSharkHeight abi.ChainEpoch
|
||||||
UpgradeLightningHeight abi.ChainEpoch
|
UpgradeHyggeHeight abi.ChainEpoch
|
||||||
UpgradeThunderHeight abi.ChainEpoch
|
UpgradeLightningHeight abi.ChainEpoch
|
||||||
UpgradeWatermelonHeight abi.ChainEpoch
|
UpgradeThunderHeight abi.ChainEpoch
|
||||||
}
|
}
|
||||||
|
|
||||||
type NonceMapType map[address.Address]uint64
|
type NonceMapType map[address.Address]uint64
|
||||||
@@ -400,12 +400,3 @@ func (m *MsgUuidMapType) UnmarshalJSON(b []byte) error {
|
|||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// ChainExportConfig holds configuration for chain ranged exports.
|
|
||||||
type ChainExportConfig struct {
|
|
||||||
WriteBufferSize int
|
|
||||||
NumWorkers int
|
|
||||||
IncludeMessages bool
|
|
||||||
IncludeReceipts bool
|
|
||||||
IncludeStateRoots bool
|
|
||||||
}
|
|
||||||
|
|||||||
+6
-5
@@ -3,18 +3,19 @@ package v0api
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
textselector "github.com/ipld/go-ipld-selector-text-lite"
|
textselector "github.com/ipld/go-ipld-selector-text-lite"
|
||||||
"github.com/libp2p/go-libp2p/core/peer"
|
"github.com/libp2p/go-libp2p/core/peer"
|
||||||
|
|
||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
"github.com/filecoin-project/go-bitfield"
|
"github.com/filecoin-project/go-bitfield"
|
||||||
datatransfer "github.com/filecoin-project/go-data-transfer/v2"
|
datatransfer "github.com/filecoin-project/go-data-transfer"
|
||||||
"github.com/filecoin-project/go-fil-markets/retrievalmarket"
|
"github.com/filecoin-project/go-fil-markets/retrievalmarket"
|
||||||
"github.com/filecoin-project/go-fil-markets/storagemarket"
|
"github.com/filecoin-project/go-fil-markets/storagemarket"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v8/paych"
|
"github.com/filecoin-project/go-state-types/builtin/v8/paych"
|
||||||
|
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
||||||
"github.com/filecoin-project/go-state-types/crypto"
|
"github.com/filecoin-project/go-state-types/crypto"
|
||||||
"github.com/filecoin-project/go-state-types/dline"
|
"github.com/filecoin-project/go-state-types/dline"
|
||||||
@@ -22,7 +23,7 @@ import (
|
|||||||
|
|
||||||
"github.com/filecoin-project/lotus/api"
|
"github.com/filecoin-project/lotus/api"
|
||||||
apitypes "github.com/filecoin-project/lotus/api/types"
|
apitypes "github.com/filecoin-project/lotus/api/types"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
lminer "github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
marketevents "github.com/filecoin-project/lotus/markets/loggers"
|
marketevents "github.com/filecoin-project/lotus/markets/loggers"
|
||||||
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
||||||
@@ -449,9 +450,9 @@ type FullNode interface {
|
|||||||
// expiration epoch
|
// expiration epoch
|
||||||
StateSectorGetInfo(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*miner.SectorOnChainInfo, error) //perm:read
|
StateSectorGetInfo(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*miner.SectorOnChainInfo, error) //perm:read
|
||||||
// StateSectorExpiration returns epoch at which given sector will expire
|
// StateSectorExpiration returns epoch at which given sector will expire
|
||||||
StateSectorExpiration(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*miner.SectorExpiration, error) //perm:read
|
StateSectorExpiration(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*lminer.SectorExpiration, error) //perm:read
|
||||||
// StateSectorPartition finds deadline/partition with the specified sector
|
// StateSectorPartition finds deadline/partition with the specified sector
|
||||||
StateSectorPartition(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, tok types.TipSetKey) (*miner.SectorLocation, error) //perm:read
|
StateSectorPartition(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, tok types.TipSetKey) (*lminer.SectorLocation, error) //perm:read
|
||||||
// StateSearchMsg searches for a message in the chain, and returns its receipt and the tipset where it was executed
|
// StateSearchMsg searches for a message in the chain, and returns its receipt and the tipset where it was executed
|
||||||
//
|
//
|
||||||
// NOTE: If a replacing message is found on chain, this method will return
|
// NOTE: If a replacing message is found on chain, this method will return
|
||||||
|
|||||||
+2
-14
@@ -3,17 +3,16 @@ package v0api
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
|
|
||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
||||||
"github.com/filecoin-project/go-state-types/dline"
|
"github.com/filecoin-project/go-state-types/dline"
|
||||||
abinetwork "github.com/filecoin-project/go-state-types/network"
|
abinetwork "github.com/filecoin-project/go-state-types/network"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/api"
|
"github.com/filecoin-project/lotus/api"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
||||||
)
|
)
|
||||||
@@ -36,12 +35,6 @@ import (
|
|||||||
// * Generate openrpc blobs
|
// * Generate openrpc blobs
|
||||||
|
|
||||||
type Gateway interface {
|
type Gateway interface {
|
||||||
MpoolPending(context.Context, types.TipSetKey) ([]*types.SignedMessage, error)
|
|
||||||
ChainGetBlock(context.Context, cid.Cid) (*types.BlockHeader, error)
|
|
||||||
MinerGetBaseInfo(context.Context, address.Address, abi.ChainEpoch, types.TipSetKey) (*api.MiningBaseInfo, error)
|
|
||||||
StateMinerSectorCount(context.Context, address.Address, types.TipSetKey) (api.MinerSectors, error)
|
|
||||||
GasEstimateGasPremium(context.Context, uint64, address.Address, int64, types.TipSetKey) (types.BigInt, error)
|
|
||||||
StateReplay(context.Context, types.TipSetKey, cid.Cid) (*api.InvocResult, error)
|
|
||||||
ChainHasObj(context.Context, cid.Cid) (bool, error)
|
ChainHasObj(context.Context, cid.Cid) (bool, error)
|
||||||
ChainPutObj(context.Context, blocks.Block) error
|
ChainPutObj(context.Context, blocks.Block) error
|
||||||
ChainHead(ctx context.Context) (*types.TipSet, error)
|
ChainHead(ctx context.Context) (*types.TipSet, error)
|
||||||
@@ -62,11 +55,6 @@ type Gateway interface {
|
|||||||
StateDealProviderCollateralBounds(ctx context.Context, size abi.PaddedPieceSize, verified bool, tsk types.TipSetKey) (api.DealCollateralBounds, error)
|
StateDealProviderCollateralBounds(ctx context.Context, size abi.PaddedPieceSize, verified bool, tsk types.TipSetKey) (api.DealCollateralBounds, error)
|
||||||
StateDecodeParams(ctx context.Context, toAddr address.Address, method abi.MethodNum, params []byte, tsk types.TipSetKey) (interface{}, error)
|
StateDecodeParams(ctx context.Context, toAddr address.Address, method abi.MethodNum, params []byte, tsk types.TipSetKey) (interface{}, error)
|
||||||
StateGetActor(ctx context.Context, actor address.Address, ts types.TipSetKey) (*types.Actor, error)
|
StateGetActor(ctx context.Context, actor address.Address, ts types.TipSetKey) (*types.Actor, error)
|
||||||
StateGetAllocationForPendingDeal(ctx context.Context, dealId abi.DealID, tsk types.TipSetKey) (*verifregtypes.Allocation, error)
|
|
||||||
StateGetAllocation(ctx context.Context, clientAddr address.Address, allocationId verifregtypes.AllocationId, tsk types.TipSetKey) (*verifregtypes.Allocation, error)
|
|
||||||
StateGetAllocations(ctx context.Context, clientAddr address.Address, tsk types.TipSetKey) (map[verifregtypes.AllocationId]verifregtypes.Allocation, error)
|
|
||||||
StateGetClaim(ctx context.Context, providerAddr address.Address, claimId verifregtypes.ClaimId, tsk types.TipSetKey) (*verifregtypes.Claim, error)
|
|
||||||
StateGetClaims(ctx context.Context, providerAddr address.Address, tsk types.TipSetKey) (map[verifregtypes.ClaimId]verifregtypes.Claim, error)
|
|
||||||
StateGetReceipt(context.Context, cid.Cid, types.TipSetKey) (*types.MessageReceipt, error)
|
StateGetReceipt(context.Context, cid.Cid, types.TipSetKey) (*types.MessageReceipt, error)
|
||||||
StateListMiners(ctx context.Context, tsk types.TipSetKey) ([]address.Address, error)
|
StateListMiners(ctx context.Context, tsk types.TipSetKey) ([]address.Address, error)
|
||||||
StateLookupID(ctx context.Context, addr address.Address, tsk types.TipSetKey) (address.Address, error)
|
StateLookupID(ctx context.Context, addr address.Address, tsk types.TipSetKey) (address.Address, error)
|
||||||
|
|||||||
+10
-152
@@ -5,18 +5,19 @@ package v0api
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
"github.com/libp2p/go-libp2p/core/peer"
|
"github.com/libp2p/go-libp2p/core/peer"
|
||||||
"golang.org/x/xerrors"
|
"golang.org/x/xerrors"
|
||||||
|
|
||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
"github.com/filecoin-project/go-bitfield"
|
"github.com/filecoin-project/go-bitfield"
|
||||||
datatransfer "github.com/filecoin-project/go-data-transfer/v2"
|
datatransfer "github.com/filecoin-project/go-data-transfer"
|
||||||
"github.com/filecoin-project/go-fil-markets/retrievalmarket"
|
"github.com/filecoin-project/go-fil-markets/retrievalmarket"
|
||||||
"github.com/filecoin-project/go-fil-markets/storagemarket"
|
"github.com/filecoin-project/go-fil-markets/storagemarket"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v8/paych"
|
"github.com/filecoin-project/go-state-types/builtin/v8/paych"
|
||||||
|
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
||||||
"github.com/filecoin-project/go-state-types/crypto"
|
"github.com/filecoin-project/go-state-types/crypto"
|
||||||
"github.com/filecoin-project/go-state-types/dline"
|
"github.com/filecoin-project/go-state-types/dline"
|
||||||
@@ -24,7 +25,7 @@ import (
|
|||||||
|
|
||||||
"github.com/filecoin-project/lotus/api"
|
"github.com/filecoin-project/lotus/api"
|
||||||
apitypes "github.com/filecoin-project/lotus/api/types"
|
apitypes "github.com/filecoin-project/lotus/api/types"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
lminer "github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
marketevents "github.com/filecoin-project/lotus/markets/loggers"
|
marketevents "github.com/filecoin-project/lotus/markets/loggers"
|
||||||
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
||||||
@@ -354,11 +355,11 @@ type FullNodeMethods struct {
|
|||||||
|
|
||||||
StateSearchMsgLimited func(p0 context.Context, p1 cid.Cid, p2 abi.ChainEpoch) (*api.MsgLookup, error) `perm:"read"`
|
StateSearchMsgLimited func(p0 context.Context, p1 cid.Cid, p2 abi.ChainEpoch) (*api.MsgLookup, error) `perm:"read"`
|
||||||
|
|
||||||
StateSectorExpiration func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorExpiration, error) `perm:"read"`
|
StateSectorExpiration func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorExpiration, error) `perm:"read"`
|
||||||
|
|
||||||
StateSectorGetInfo func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorOnChainInfo, error) `perm:"read"`
|
StateSectorGetInfo func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorOnChainInfo, error) `perm:"read"`
|
||||||
|
|
||||||
StateSectorPartition func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorLocation, error) `perm:"read"`
|
StateSectorPartition func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorLocation, error) `perm:"read"`
|
||||||
|
|
||||||
StateSectorPreCommitInfo func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (miner.SectorPreCommitOnChainInfo, error) `perm:"read"`
|
StateSectorPreCommitInfo func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (miner.SectorPreCommitOnChainInfo, error) `perm:"read"`
|
||||||
|
|
||||||
@@ -430,8 +431,6 @@ type GatewayStruct struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type GatewayMethods struct {
|
type GatewayMethods struct {
|
||||||
ChainGetBlock func(p0 context.Context, p1 cid.Cid) (*types.BlockHeader, error) ``
|
|
||||||
|
|
||||||
ChainGetBlockMessages func(p0 context.Context, p1 cid.Cid) (*api.BlockMessages, error) ``
|
ChainGetBlockMessages func(p0 context.Context, p1 cid.Cid) (*api.BlockMessages, error) ``
|
||||||
|
|
||||||
ChainGetMessage func(p0 context.Context, p1 cid.Cid) (*types.Message, error) ``
|
ChainGetMessage func(p0 context.Context, p1 cid.Cid) (*types.Message, error) ``
|
||||||
@@ -450,16 +449,10 @@ type GatewayMethods struct {
|
|||||||
|
|
||||||
ChainReadObj func(p0 context.Context, p1 cid.Cid) ([]byte, error) ``
|
ChainReadObj func(p0 context.Context, p1 cid.Cid) ([]byte, error) ``
|
||||||
|
|
||||||
GasEstimateGasPremium func(p0 context.Context, p1 uint64, p2 address.Address, p3 int64, p4 types.TipSetKey) (types.BigInt, error) ``
|
|
||||||
|
|
||||||
GasEstimateMessageGas func(p0 context.Context, p1 *types.Message, p2 *api.MessageSendSpec, p3 types.TipSetKey) (*types.Message, error) ``
|
GasEstimateMessageGas func(p0 context.Context, p1 *types.Message, p2 *api.MessageSendSpec, p3 types.TipSetKey) (*types.Message, error) ``
|
||||||
|
|
||||||
MinerGetBaseInfo func(p0 context.Context, p1 address.Address, p2 abi.ChainEpoch, p3 types.TipSetKey) (*api.MiningBaseInfo, error) ``
|
|
||||||
|
|
||||||
MpoolGetNonce func(p0 context.Context, p1 address.Address) (uint64, error) ``
|
MpoolGetNonce func(p0 context.Context, p1 address.Address) (uint64, error) ``
|
||||||
|
|
||||||
MpoolPending func(p0 context.Context, p1 types.TipSetKey) ([]*types.SignedMessage, error) ``
|
|
||||||
|
|
||||||
MpoolPush func(p0 context.Context, p1 *types.SignedMessage) (cid.Cid, error) ``
|
MpoolPush func(p0 context.Context, p1 *types.SignedMessage) (cid.Cid, error) ``
|
||||||
|
|
||||||
MsigGetAvailableBalance func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (types.BigInt, error) ``
|
MsigGetAvailableBalance func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (types.BigInt, error) ``
|
||||||
@@ -478,16 +471,6 @@ type GatewayMethods struct {
|
|||||||
|
|
||||||
StateGetActor func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (*types.Actor, error) ``
|
StateGetActor func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (*types.Actor, error) ``
|
||||||
|
|
||||||
StateGetAllocation func(p0 context.Context, p1 address.Address, p2 verifregtypes.AllocationId, p3 types.TipSetKey) (*verifregtypes.Allocation, error) ``
|
|
||||||
|
|
||||||
StateGetAllocationForPendingDeal func(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifregtypes.Allocation, error) ``
|
|
||||||
|
|
||||||
StateGetAllocations func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifregtypes.AllocationId]verifregtypes.Allocation, error) ``
|
|
||||||
|
|
||||||
StateGetClaim func(p0 context.Context, p1 address.Address, p2 verifregtypes.ClaimId, p3 types.TipSetKey) (*verifregtypes.Claim, error) ``
|
|
||||||
|
|
||||||
StateGetClaims func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifregtypes.ClaimId]verifregtypes.Claim, error) ``
|
|
||||||
|
|
||||||
StateGetReceipt func(p0 context.Context, p1 cid.Cid, p2 types.TipSetKey) (*types.MessageReceipt, error) ``
|
StateGetReceipt func(p0 context.Context, p1 cid.Cid, p2 types.TipSetKey) (*types.MessageReceipt, error) ``
|
||||||
|
|
||||||
StateListMiners func(p0 context.Context, p1 types.TipSetKey) ([]address.Address, error) ``
|
StateListMiners func(p0 context.Context, p1 types.TipSetKey) ([]address.Address, error) ``
|
||||||
@@ -504,14 +487,10 @@ type GatewayMethods struct {
|
|||||||
|
|
||||||
StateMinerProvingDeadline func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (*dline.Info, error) ``
|
StateMinerProvingDeadline func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (*dline.Info, error) ``
|
||||||
|
|
||||||
StateMinerSectorCount func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (api.MinerSectors, error) ``
|
|
||||||
|
|
||||||
StateNetworkName func(p0 context.Context) (dtypes.NetworkName, error) ``
|
StateNetworkName func(p0 context.Context) (dtypes.NetworkName, error) ``
|
||||||
|
|
||||||
StateNetworkVersion func(p0 context.Context, p1 types.TipSetKey) (abinetwork.Version, error) ``
|
StateNetworkVersion func(p0 context.Context, p1 types.TipSetKey) (abinetwork.Version, error) ``
|
||||||
|
|
||||||
StateReplay func(p0 context.Context, p1 types.TipSetKey, p2 cid.Cid) (*api.InvocResult, error) ``
|
|
||||||
|
|
||||||
StateSearchMsg func(p0 context.Context, p1 cid.Cid) (*api.MsgLookup, error) ``
|
StateSearchMsg func(p0 context.Context, p1 cid.Cid) (*api.MsgLookup, error) ``
|
||||||
|
|
||||||
StateSectorGetInfo func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorOnChainInfo, error) ``
|
StateSectorGetInfo func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorOnChainInfo, error) ``
|
||||||
@@ -2244,14 +2223,14 @@ func (s *FullNodeStub) StateSearchMsgLimited(p0 context.Context, p1 cid.Cid, p2
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) StateSectorExpiration(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorExpiration, error) {
|
func (s *FullNodeStruct) StateSectorExpiration(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorExpiration, error) {
|
||||||
if s.Internal.StateSectorExpiration == nil {
|
if s.Internal.StateSectorExpiration == nil {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
return s.Internal.StateSectorExpiration(p0, p1, p2, p3)
|
return s.Internal.StateSectorExpiration(p0, p1, p2, p3)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStub) StateSectorExpiration(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorExpiration, error) {
|
func (s *FullNodeStub) StateSectorExpiration(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorExpiration, error) {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2266,14 +2245,14 @@ func (s *FullNodeStub) StateSectorGetInfo(p0 context.Context, p1 address.Address
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) StateSectorPartition(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorLocation, error) {
|
func (s *FullNodeStruct) StateSectorPartition(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorLocation, error) {
|
||||||
if s.Internal.StateSectorPartition == nil {
|
if s.Internal.StateSectorPartition == nil {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
return s.Internal.StateSectorPartition(p0, p1, p2, p3)
|
return s.Internal.StateSectorPartition(p0, p1, p2, p3)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStub) StateSectorPartition(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorLocation, error) {
|
func (s *FullNodeStub) StateSectorPartition(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorLocation, error) {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2596,17 +2575,6 @@ func (s *FullNodeStub) WalletVerify(p0 context.Context, p1 address.Address, p2 [
|
|||||||
return false, ErrNotSupported
|
return false, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStruct) ChainGetBlock(p0 context.Context, p1 cid.Cid) (*types.BlockHeader, error) {
|
|
||||||
if s.Internal.ChainGetBlock == nil {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.ChainGetBlock(p0, p1)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) ChainGetBlock(p0 context.Context, p1 cid.Cid) (*types.BlockHeader, error) {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) ChainGetBlockMessages(p0 context.Context, p1 cid.Cid) (*api.BlockMessages, error) {
|
func (s *GatewayStruct) ChainGetBlockMessages(p0 context.Context, p1 cid.Cid) (*api.BlockMessages, error) {
|
||||||
if s.Internal.ChainGetBlockMessages == nil {
|
if s.Internal.ChainGetBlockMessages == nil {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
@@ -2706,17 +2674,6 @@ func (s *GatewayStub) ChainReadObj(p0 context.Context, p1 cid.Cid) ([]byte, erro
|
|||||||
return *new([]byte), ErrNotSupported
|
return *new([]byte), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStruct) GasEstimateGasPremium(p0 context.Context, p1 uint64, p2 address.Address, p3 int64, p4 types.TipSetKey) (types.BigInt, error) {
|
|
||||||
if s.Internal.GasEstimateGasPremium == nil {
|
|
||||||
return *new(types.BigInt), ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.GasEstimateGasPremium(p0, p1, p2, p3, p4)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) GasEstimateGasPremium(p0 context.Context, p1 uint64, p2 address.Address, p3 int64, p4 types.TipSetKey) (types.BigInt, error) {
|
|
||||||
return *new(types.BigInt), ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) GasEstimateMessageGas(p0 context.Context, p1 *types.Message, p2 *api.MessageSendSpec, p3 types.TipSetKey) (*types.Message, error) {
|
func (s *GatewayStruct) GasEstimateMessageGas(p0 context.Context, p1 *types.Message, p2 *api.MessageSendSpec, p3 types.TipSetKey) (*types.Message, error) {
|
||||||
if s.Internal.GasEstimateMessageGas == nil {
|
if s.Internal.GasEstimateMessageGas == nil {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
@@ -2728,17 +2685,6 @@ func (s *GatewayStub) GasEstimateMessageGas(p0 context.Context, p1 *types.Messag
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStruct) MinerGetBaseInfo(p0 context.Context, p1 address.Address, p2 abi.ChainEpoch, p3 types.TipSetKey) (*api.MiningBaseInfo, error) {
|
|
||||||
if s.Internal.MinerGetBaseInfo == nil {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.MinerGetBaseInfo(p0, p1, p2, p3)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) MinerGetBaseInfo(p0 context.Context, p1 address.Address, p2 abi.ChainEpoch, p3 types.TipSetKey) (*api.MiningBaseInfo, error) {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) MpoolGetNonce(p0 context.Context, p1 address.Address) (uint64, error) {
|
func (s *GatewayStruct) MpoolGetNonce(p0 context.Context, p1 address.Address) (uint64, error) {
|
||||||
if s.Internal.MpoolGetNonce == nil {
|
if s.Internal.MpoolGetNonce == nil {
|
||||||
return 0, ErrNotSupported
|
return 0, ErrNotSupported
|
||||||
@@ -2750,17 +2696,6 @@ func (s *GatewayStub) MpoolGetNonce(p0 context.Context, p1 address.Address) (uin
|
|||||||
return 0, ErrNotSupported
|
return 0, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStruct) MpoolPending(p0 context.Context, p1 types.TipSetKey) ([]*types.SignedMessage, error) {
|
|
||||||
if s.Internal.MpoolPending == nil {
|
|
||||||
return *new([]*types.SignedMessage), ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.MpoolPending(p0, p1)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) MpoolPending(p0 context.Context, p1 types.TipSetKey) ([]*types.SignedMessage, error) {
|
|
||||||
return *new([]*types.SignedMessage), ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) MpoolPush(p0 context.Context, p1 *types.SignedMessage) (cid.Cid, error) {
|
func (s *GatewayStruct) MpoolPush(p0 context.Context, p1 *types.SignedMessage) (cid.Cid, error) {
|
||||||
if s.Internal.MpoolPush == nil {
|
if s.Internal.MpoolPush == nil {
|
||||||
return *new(cid.Cid), ErrNotSupported
|
return *new(cid.Cid), ErrNotSupported
|
||||||
@@ -2860,61 +2795,6 @@ func (s *GatewayStub) StateGetActor(p0 context.Context, p1 address.Address, p2 t
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStruct) StateGetAllocation(p0 context.Context, p1 address.Address, p2 verifregtypes.AllocationId, p3 types.TipSetKey) (*verifregtypes.Allocation, error) {
|
|
||||||
if s.Internal.StateGetAllocation == nil {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.StateGetAllocation(p0, p1, p2, p3)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) StateGetAllocation(p0 context.Context, p1 address.Address, p2 verifregtypes.AllocationId, p3 types.TipSetKey) (*verifregtypes.Allocation, error) {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) StateGetAllocationForPendingDeal(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifregtypes.Allocation, error) {
|
|
||||||
if s.Internal.StateGetAllocationForPendingDeal == nil {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.StateGetAllocationForPendingDeal(p0, p1, p2)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) StateGetAllocationForPendingDeal(p0 context.Context, p1 abi.DealID, p2 types.TipSetKey) (*verifregtypes.Allocation, error) {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) StateGetAllocations(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifregtypes.AllocationId]verifregtypes.Allocation, error) {
|
|
||||||
if s.Internal.StateGetAllocations == nil {
|
|
||||||
return *new(map[verifregtypes.AllocationId]verifregtypes.Allocation), ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.StateGetAllocations(p0, p1, p2)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) StateGetAllocations(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifregtypes.AllocationId]verifregtypes.Allocation, error) {
|
|
||||||
return *new(map[verifregtypes.AllocationId]verifregtypes.Allocation), ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) StateGetClaim(p0 context.Context, p1 address.Address, p2 verifregtypes.ClaimId, p3 types.TipSetKey) (*verifregtypes.Claim, error) {
|
|
||||||
if s.Internal.StateGetClaim == nil {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.StateGetClaim(p0, p1, p2, p3)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) StateGetClaim(p0 context.Context, p1 address.Address, p2 verifregtypes.ClaimId, p3 types.TipSetKey) (*verifregtypes.Claim, error) {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) StateGetClaims(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifregtypes.ClaimId]verifregtypes.Claim, error) {
|
|
||||||
if s.Internal.StateGetClaims == nil {
|
|
||||||
return *new(map[verifregtypes.ClaimId]verifregtypes.Claim), ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.StateGetClaims(p0, p1, p2)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) StateGetClaims(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (map[verifregtypes.ClaimId]verifregtypes.Claim, error) {
|
|
||||||
return *new(map[verifregtypes.ClaimId]verifregtypes.Claim), ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) StateGetReceipt(p0 context.Context, p1 cid.Cid, p2 types.TipSetKey) (*types.MessageReceipt, error) {
|
func (s *GatewayStruct) StateGetReceipt(p0 context.Context, p1 cid.Cid, p2 types.TipSetKey) (*types.MessageReceipt, error) {
|
||||||
if s.Internal.StateGetReceipt == nil {
|
if s.Internal.StateGetReceipt == nil {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
@@ -3003,17 +2883,6 @@ func (s *GatewayStub) StateMinerProvingDeadline(p0 context.Context, p1 address.A
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStruct) StateMinerSectorCount(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (api.MinerSectors, error) {
|
|
||||||
if s.Internal.StateMinerSectorCount == nil {
|
|
||||||
return *new(api.MinerSectors), ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.StateMinerSectorCount(p0, p1, p2)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) StateMinerSectorCount(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (api.MinerSectors, error) {
|
|
||||||
return *new(api.MinerSectors), ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) StateNetworkName(p0 context.Context) (dtypes.NetworkName, error) {
|
func (s *GatewayStruct) StateNetworkName(p0 context.Context) (dtypes.NetworkName, error) {
|
||||||
if s.Internal.StateNetworkName == nil {
|
if s.Internal.StateNetworkName == nil {
|
||||||
return *new(dtypes.NetworkName), ErrNotSupported
|
return *new(dtypes.NetworkName), ErrNotSupported
|
||||||
@@ -3036,17 +2905,6 @@ func (s *GatewayStub) StateNetworkVersion(p0 context.Context, p1 types.TipSetKey
|
|||||||
return *new(abinetwork.Version), ErrNotSupported
|
return *new(abinetwork.Version), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *GatewayStruct) StateReplay(p0 context.Context, p1 types.TipSetKey, p2 cid.Cid) (*api.InvocResult, error) {
|
|
||||||
if s.Internal.StateReplay == nil {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
return s.Internal.StateReplay(p0, p1, p2)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStub) StateReplay(p0 context.Context, p1 types.TipSetKey, p2 cid.Cid) (*api.InvocResult, error) {
|
|
||||||
return nil, ErrNotSupported
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *GatewayStruct) StateSearchMsg(p0 context.Context, p1 cid.Cid) (*api.MsgLookup, error) {
|
func (s *GatewayStruct) StateSearchMsg(p0 context.Context, p1 cid.Cid) (*api.MsgLookup, error) {
|
||||||
if s.Internal.StateSearchMsg == nil {
|
if s.Internal.StateSearchMsg == nil {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ import (
|
|||||||
|
|
||||||
gomock "github.com/golang/mock/gomock"
|
gomock "github.com/golang/mock/gomock"
|
||||||
uuid "github.com/google/uuid"
|
uuid "github.com/google/uuid"
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
cid "github.com/ipfs/go-cid"
|
cid "github.com/ipfs/go-cid"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
metrics "github.com/libp2p/go-libp2p/core/metrics"
|
metrics "github.com/libp2p/go-libp2p/core/metrics"
|
||||||
network0 "github.com/libp2p/go-libp2p/core/network"
|
network0 "github.com/libp2p/go-libp2p/core/network"
|
||||||
peer "github.com/libp2p/go-libp2p/core/peer"
|
peer "github.com/libp2p/go-libp2p/core/peer"
|
||||||
@@ -20,7 +20,7 @@ import (
|
|||||||
|
|
||||||
address "github.com/filecoin-project/go-address"
|
address "github.com/filecoin-project/go-address"
|
||||||
bitfield "github.com/filecoin-project/go-bitfield"
|
bitfield "github.com/filecoin-project/go-bitfield"
|
||||||
datatransfer "github.com/filecoin-project/go-data-transfer/v2"
|
datatransfer "github.com/filecoin-project/go-data-transfer"
|
||||||
retrievalmarket "github.com/filecoin-project/go-fil-markets/retrievalmarket"
|
retrievalmarket "github.com/filecoin-project/go-fil-markets/retrievalmarket"
|
||||||
storagemarket "github.com/filecoin-project/go-fil-markets/storagemarket"
|
storagemarket "github.com/filecoin-project/go-fil-markets/storagemarket"
|
||||||
auth "github.com/filecoin-project/go-jsonrpc/auth"
|
auth "github.com/filecoin-project/go-jsonrpc/auth"
|
||||||
|
|||||||
@@ -12,11 +12,11 @@ import (
|
|||||||
"github.com/filecoin-project/go-fil-markets/storagemarket"
|
"github.com/filecoin-project/go-fil-markets/storagemarket"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/big"
|
"github.com/filecoin-project/go-state-types/big"
|
||||||
|
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
||||||
"github.com/filecoin-project/go-state-types/crypto"
|
"github.com/filecoin-project/go-state-types/crypto"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/api"
|
"github.com/filecoin-project/lotus/api"
|
||||||
"github.com/filecoin-project/lotus/api/v1api"
|
"github.com/filecoin-project/lotus/api/v1api"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
marketevents "github.com/filecoin-project/lotus/markets/loggers"
|
marketevents "github.com/filecoin-project/lotus/markets/loggers"
|
||||||
)
|
)
|
||||||
|
|||||||
+1
-1
@@ -3,8 +3,8 @@ package blockstore
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
"golang.org/x/xerrors"
|
"golang.org/x/xerrors"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
block "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
ipld "github.com/ipfs/go-ipld-format"
|
ipld "github.com/ipfs/go-ipld-format"
|
||||||
|
block "github.com/ipfs/go-libipfs/blocks"
|
||||||
"golang.org/x/xerrors"
|
"golang.org/x/xerrors"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -13,14 +13,13 @@ import (
|
|||||||
"github.com/dgraph-io/badger/v2"
|
"github.com/dgraph-io/badger/v2"
|
||||||
"github.com/dgraph-io/badger/v2/options"
|
"github.com/dgraph-io/badger/v2/options"
|
||||||
"github.com/dgraph-io/badger/v2/pb"
|
"github.com/dgraph-io/badger/v2/pb"
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
ipld "github.com/ipfs/go-ipld-format"
|
ipld "github.com/ipfs/go-ipld-format"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
logger "github.com/ipfs/go-log/v2"
|
logger "github.com/ipfs/go-log/v2"
|
||||||
pool "github.com/libp2p/go-buffer-pool"
|
pool "github.com/libp2p/go-buffer-pool"
|
||||||
"github.com/multiformats/go-base32"
|
"github.com/multiformats/go-base32"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
"golang.org/x/xerrors"
|
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/blockstore"
|
"github.com/filecoin-project/lotus/blockstore"
|
||||||
)
|
)
|
||||||
@@ -45,8 +44,7 @@ const (
|
|||||||
// MemoryMap is equivalent to badger/options.MemoryMap.
|
// MemoryMap is equivalent to badger/options.MemoryMap.
|
||||||
MemoryMap = options.MemoryMap
|
MemoryMap = options.MemoryMap
|
||||||
// LoadToRAM is equivalent to badger/options.LoadToRAM.
|
// LoadToRAM is equivalent to badger/options.LoadToRAM.
|
||||||
LoadToRAM = options.LoadToRAM
|
LoadToRAM = options.LoadToRAM
|
||||||
defaultGCThreshold = 0.125
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// Options embeds the badger options themselves, and augments them with
|
// Options embeds the badger options themselves, and augments them with
|
||||||
@@ -396,9 +394,6 @@ func (b *Blockstore) doCopy(from, to *badger.DB) error {
|
|||||||
if workers < 2 {
|
if workers < 2 {
|
||||||
workers = 2
|
workers = 2
|
||||||
}
|
}
|
||||||
if workers > 8 {
|
|
||||||
workers = 8
|
|
||||||
}
|
|
||||||
|
|
||||||
stream := from.NewStream()
|
stream := from.NewStream()
|
||||||
stream.NumGo = workers
|
stream.NumGo = workers
|
||||||
@@ -444,7 +439,7 @@ func (b *Blockstore) deleteDB(path string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *Blockstore) onlineGC(ctx context.Context, threshold float64, checkFreq time.Duration, check func() error) error {
|
func (b *Blockstore) onlineGC() error {
|
||||||
b.lockDB()
|
b.lockDB()
|
||||||
defer b.unlockDB()
|
defer b.unlockDB()
|
||||||
|
|
||||||
@@ -453,26 +448,14 @@ func (b *Blockstore) onlineGC(ctx context.Context, threshold float64, checkFreq
|
|||||||
if nworkers < 2 {
|
if nworkers < 2 {
|
||||||
nworkers = 2
|
nworkers = 2
|
||||||
}
|
}
|
||||||
if nworkers > 7 { // max out at 1 goroutine per badger level
|
|
||||||
nworkers = 7
|
|
||||||
}
|
|
||||||
|
|
||||||
err := b.db.Flatten(nworkers)
|
err := b.db.Flatten(nworkers)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
checkTick := time.NewTimer(checkFreq)
|
|
||||||
defer checkTick.Stop()
|
|
||||||
for err == nil {
|
for err == nil {
|
||||||
select {
|
err = b.db.RunValueLogGC(0.125)
|
||||||
case <-ctx.Done():
|
|
||||||
err = ctx.Err()
|
|
||||||
case <-checkTick.C:
|
|
||||||
err = check()
|
|
||||||
checkTick.Reset(checkFreq)
|
|
||||||
default:
|
|
||||||
err = b.db.RunValueLogGC(threshold)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if err == badger.ErrNoRewrite {
|
if err == badger.ErrNoRewrite {
|
||||||
@@ -485,7 +468,7 @@ func (b *Blockstore) onlineGC(ctx context.Context, threshold float64, checkFreq
|
|||||||
|
|
||||||
// CollectGarbage compacts and runs garbage collection on the value log;
|
// CollectGarbage compacts and runs garbage collection on the value log;
|
||||||
// implements the BlockstoreGC trait
|
// implements the BlockstoreGC trait
|
||||||
func (b *Blockstore) CollectGarbage(ctx context.Context, opts ...blockstore.BlockstoreGCOption) error {
|
func (b *Blockstore) CollectGarbage(opts ...blockstore.BlockstoreGCOption) error {
|
||||||
if err := b.access(); err != nil {
|
if err := b.access(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -502,58 +485,8 @@ func (b *Blockstore) CollectGarbage(ctx context.Context, opts ...blockstore.Bloc
|
|||||||
if options.FullGC {
|
if options.FullGC {
|
||||||
return b.movingGC()
|
return b.movingGC()
|
||||||
}
|
}
|
||||||
threshold := options.Threshold
|
|
||||||
if threshold == 0 {
|
|
||||||
threshold = defaultGCThreshold
|
|
||||||
}
|
|
||||||
checkFreq := options.CheckFreq
|
|
||||||
if checkFreq < 30*time.Second { // disallow checking more frequently than block time
|
|
||||||
checkFreq = 30 * time.Second
|
|
||||||
}
|
|
||||||
check := options.Check
|
|
||||||
if check == nil {
|
|
||||||
check = func() error {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return b.onlineGC(ctx, threshold, checkFreq, check)
|
|
||||||
}
|
|
||||||
|
|
||||||
// GCOnce runs garbage collection on the value log;
|
return b.onlineGC()
|
||||||
// implements BlockstoreGCOnce trait
|
|
||||||
func (b *Blockstore) GCOnce(ctx context.Context, opts ...blockstore.BlockstoreGCOption) error {
|
|
||||||
if err := b.access(); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
defer b.viewers.Done()
|
|
||||||
|
|
||||||
var options blockstore.BlockstoreGCOptions
|
|
||||||
for _, opt := range opts {
|
|
||||||
err := opt(&options)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if options.FullGC {
|
|
||||||
return xerrors.Errorf("FullGC option specified for GCOnce but full GC is non incremental")
|
|
||||||
}
|
|
||||||
|
|
||||||
threshold := options.Threshold
|
|
||||||
if threshold == 0 {
|
|
||||||
threshold = defaultGCThreshold
|
|
||||||
}
|
|
||||||
|
|
||||||
b.lockDB()
|
|
||||||
defer b.unlockDB()
|
|
||||||
|
|
||||||
// Note no compaction needed before single GC as we will hit at most one vlog anyway
|
|
||||||
err := b.db.RunValueLogGC(threshold)
|
|
||||||
if err == badger.ErrNoRewrite {
|
|
||||||
// not really an error in this case, it signals the end of GC
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Size returns the aggregate size of the blockstore
|
// Size returns the aggregate size of the blockstore
|
||||||
@@ -618,18 +551,6 @@ func (b *Blockstore) View(ctx context.Context, cid cid.Cid, fn func([]byte) erro
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *Blockstore) Flush(context.Context) error {
|
|
||||||
if err := b.access(); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
defer b.viewers.Done()
|
|
||||||
|
|
||||||
b.lockDB()
|
|
||||||
defer b.unlockDB()
|
|
||||||
|
|
||||||
return b.db.Sync()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Has implements Blockstore.Has.
|
// Has implements Blockstore.Has.
|
||||||
func (b *Blockstore) Has(ctx context.Context, cid cid.Cid) (bool, error) {
|
func (b *Blockstore) Has(ctx context.Context, cid cid.Cid) (bool, error) {
|
||||||
if err := b.access(); err != nil {
|
if err := b.access(); err != nil {
|
||||||
@@ -746,20 +667,6 @@ func (b *Blockstore) Put(ctx context.Context, block blocks.Block) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
put := func(db *badger.DB) error {
|
put := func(db *badger.DB) error {
|
||||||
// Check if we have it before writing it.
|
|
||||||
switch err := db.View(func(txn *badger.Txn) error {
|
|
||||||
_, err := txn.Get(k)
|
|
||||||
return err
|
|
||||||
}); err {
|
|
||||||
case badger.ErrKeyNotFound:
|
|
||||||
case nil:
|
|
||||||
// Already exists, skip the put.
|
|
||||||
return nil
|
|
||||||
default:
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Then write it.
|
|
||||||
err := db.Update(func(txn *badger.Txn) error {
|
err := db.Update(func(txn *badger.Txn) error {
|
||||||
return txn.Set(k, block.RawData())
|
return txn.Set(k, block.RawData())
|
||||||
})
|
})
|
||||||
@@ -815,33 +722,12 @@ func (b *Blockstore) PutMany(ctx context.Context, blocks []blocks.Block) error {
|
|||||||
keys = append(keys, k)
|
keys = append(keys, k)
|
||||||
}
|
}
|
||||||
|
|
||||||
err := b.db.View(func(txn *badger.Txn) error {
|
|
||||||
for i, k := range keys {
|
|
||||||
switch _, err := txn.Get(k); err {
|
|
||||||
case badger.ErrKeyNotFound:
|
|
||||||
case nil:
|
|
||||||
keys[i] = nil
|
|
||||||
default:
|
|
||||||
// Something is actually wrong
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
put := func(db *badger.DB) error {
|
put := func(db *badger.DB) error {
|
||||||
batch := db.NewWriteBatch()
|
batch := db.NewWriteBatch()
|
||||||
defer batch.Cancel()
|
defer batch.Cancel()
|
||||||
|
|
||||||
for i, block := range blocks {
|
for i, block := range blocks {
|
||||||
k := keys[i]
|
k := keys[i]
|
||||||
if k == nil {
|
|
||||||
// skipped because we already have it.
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if err := batch.Set(k, block.RawData()); err != nil {
|
if err := batch.Set(k, block.RawData()); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
"golang.org/x/sync/errgroup"
|
"golang.org/x/sync/errgroup"
|
||||||
|
|
||||||
@@ -145,7 +145,7 @@ func testMove(t *testing.T, optsF func(string) Options) {
|
|||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
g.Go(func() error {
|
g.Go(func() error {
|
||||||
return db.CollectGarbage(ctx, blockstore.WithFullGC(true))
|
return db.CollectGarbage(blockstore.WithFullGC(true))
|
||||||
})
|
})
|
||||||
|
|
||||||
err = g.Wait()
|
err = g.Wait()
|
||||||
@@ -230,7 +230,7 @@ func testMove(t *testing.T, optsF func(string) Options) {
|
|||||||
checkPath()
|
checkPath()
|
||||||
|
|
||||||
// now do another FullGC to test the double move and following of symlinks
|
// now do another FullGC to test the double move and following of symlinks
|
||||||
if err := db.CollectGarbage(ctx, blockstore.WithFullGC(true)); err != nil {
|
if err := db.CollectGarbage(blockstore.WithFullGC(true)); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,10 +9,10 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
u "github.com/ipfs/boxo/util"
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
|
u "github.com/ipfs/go-ipfs-util"
|
||||||
ipld "github.com/ipfs/go-ipld-format"
|
ipld "github.com/ipfs/go-ipld-format"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/blockstore"
|
"github.com/filecoin-project/lotus/blockstore"
|
||||||
|
|||||||
@@ -2,11 +2,10 @@ package blockstore
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"time"
|
|
||||||
|
|
||||||
blockstore "github.com/ipfs/boxo/blockstore"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
ds "github.com/ipfs/go-datastore"
|
ds "github.com/ipfs/go-datastore"
|
||||||
|
blockstore "github.com/ipfs/go-ipfs-blockstore"
|
||||||
logging "github.com/ipfs/go-log/v2"
|
logging "github.com/ipfs/go-log/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -19,7 +18,6 @@ type Blockstore interface {
|
|||||||
blockstore.Blockstore
|
blockstore.Blockstore
|
||||||
blockstore.Viewer
|
blockstore.Viewer
|
||||||
BatchDeleter
|
BatchDeleter
|
||||||
Flusher
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// BasicBlockstore is an alias to the original IPFS Blockstore.
|
// BasicBlockstore is an alias to the original IPFS Blockstore.
|
||||||
@@ -27,10 +25,6 @@ type BasicBlockstore = blockstore.Blockstore
|
|||||||
|
|
||||||
type Viewer = blockstore.Viewer
|
type Viewer = blockstore.Viewer
|
||||||
|
|
||||||
type Flusher interface {
|
|
||||||
Flush(context.Context) error
|
|
||||||
}
|
|
||||||
|
|
||||||
type BatchDeleter interface {
|
type BatchDeleter interface {
|
||||||
DeleteMany(ctx context.Context, cids []cid.Cid) error
|
DeleteMany(ctx context.Context, cids []cid.Cid) error
|
||||||
}
|
}
|
||||||
@@ -42,12 +36,7 @@ type BlockstoreIterator interface {
|
|||||||
|
|
||||||
// BlockstoreGC is a trait for blockstores that support online garbage collection
|
// BlockstoreGC is a trait for blockstores that support online garbage collection
|
||||||
type BlockstoreGC interface {
|
type BlockstoreGC interface {
|
||||||
CollectGarbage(ctx context.Context, options ...BlockstoreGCOption) error
|
CollectGarbage(options ...BlockstoreGCOption) error
|
||||||
}
|
|
||||||
|
|
||||||
// BlockstoreGCOnce is a trait for a blockstore that supports incremental online garbage collection
|
|
||||||
type BlockstoreGCOnce interface {
|
|
||||||
GCOnce(ctx context.Context, options ...BlockstoreGCOption) error
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// BlockstoreGCOption is a functional interface for controlling blockstore GC options
|
// BlockstoreGCOption is a functional interface for controlling blockstore GC options
|
||||||
@@ -56,12 +45,6 @@ type BlockstoreGCOption = func(*BlockstoreGCOptions) error
|
|||||||
// BlockstoreGCOptions is a struct with GC options
|
// BlockstoreGCOptions is a struct with GC options
|
||||||
type BlockstoreGCOptions struct {
|
type BlockstoreGCOptions struct {
|
||||||
FullGC bool
|
FullGC bool
|
||||||
// fraction of garbage in badger vlog before its worth processing in online GC
|
|
||||||
Threshold float64
|
|
||||||
// how often to call the check function
|
|
||||||
CheckFreq time.Duration
|
|
||||||
// function to call periodically to pause or early terminate GC
|
|
||||||
Check func() error
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func WithFullGC(fullgc bool) BlockstoreGCOption {
|
func WithFullGC(fullgc bool) BlockstoreGCOption {
|
||||||
@@ -71,27 +54,6 @@ func WithFullGC(fullgc bool) BlockstoreGCOption {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func WithThreshold(threshold float64) BlockstoreGCOption {
|
|
||||||
return func(opts *BlockstoreGCOptions) error {
|
|
||||||
opts.Threshold = threshold
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func WithCheckFreq(f time.Duration) BlockstoreGCOption {
|
|
||||||
return func(opts *BlockstoreGCOptions) error {
|
|
||||||
opts.CheckFreq = f
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func WithCheck(check func() error) BlockstoreGCOption {
|
|
||||||
return func(opts *BlockstoreGCOptions) error {
|
|
||||||
opts.Check = check
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// BlockstoreSize is a trait for on-disk blockstores that can report their size
|
// BlockstoreSize is a trait for on-disk blockstores that can report their size
|
||||||
type BlockstoreSize interface {
|
type BlockstoreSize interface {
|
||||||
Size() (int64, error)
|
Size() (int64, error)
|
||||||
@@ -130,13 +92,6 @@ type adaptedBlockstore struct {
|
|||||||
|
|
||||||
var _ Blockstore = (*adaptedBlockstore)(nil)
|
var _ Blockstore = (*adaptedBlockstore)(nil)
|
||||||
|
|
||||||
func (a *adaptedBlockstore) Flush(ctx context.Context) error {
|
|
||||||
if flusher, canFlush := a.Blockstore.(Flusher); canFlush {
|
|
||||||
return flusher.Flush(ctx)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (a *adaptedBlockstore) View(ctx context.Context, cid cid.Cid, callback func([]byte) error) error {
|
func (a *adaptedBlockstore) View(ctx context.Context, cid cid.Cid, callback func([]byte) error) error {
|
||||||
blk, err := a.Get(ctx, cid)
|
blk, err := a.Get(ctx, cid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
block "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
ipld "github.com/ipfs/go-ipld-format"
|
ipld "github.com/ipfs/go-ipld-format"
|
||||||
|
block "github.com/ipfs/go-libipfs/blocks"
|
||||||
)
|
)
|
||||||
|
|
||||||
// buflog is a logger for the buffered blockstore. It is subscoped from the
|
// buflog is a logger for the buffered blockstore. It is subscoped from the
|
||||||
@@ -46,8 +46,6 @@ var (
|
|||||||
_ Viewer = (*BufferedBlockstore)(nil)
|
_ Viewer = (*BufferedBlockstore)(nil)
|
||||||
)
|
)
|
||||||
|
|
||||||
func (bs *BufferedBlockstore) Flush(ctx context.Context) error { return bs.write.Flush(ctx) }
|
|
||||||
|
|
||||||
func (bs *BufferedBlockstore) AllKeysChan(ctx context.Context) (<-chan cid.Cid, error) {
|
func (bs *BufferedBlockstore) AllKeysChan(ctx context.Context) (<-chan cid.Cid, error) {
|
||||||
a, err := bs.read.AllKeysChan(ctx)
|
a, err := bs.read.AllKeysChan(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
+7
-25
@@ -52,11 +52,9 @@ func (t *NetRpcReq) MarshalCBOR(w io.Writer) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for _, v := range t.Cid {
|
for _, v := range t.Cid {
|
||||||
|
if err := cbg.WriteCid(w, v); err != nil {
|
||||||
if err := cbg.WriteCid(cw, v); err != nil {
|
return xerrors.Errorf("failed writing cid field t.Cid: %w", err)
|
||||||
return xerrors.Errorf("failed to write cid field v: %w", err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.Data ([][]uint8) (slice)
|
// t.Data ([][]uint8) (slice)
|
||||||
@@ -153,25 +151,12 @@ func (t *NetRpcReq) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
{
|
|
||||||
var maj byte
|
|
||||||
var extra uint64
|
|
||||||
var err error
|
|
||||||
_ = maj
|
|
||||||
_ = extra
|
|
||||||
_ = err
|
|
||||||
|
|
||||||
{
|
c, err := cbg.ReadCid(cr)
|
||||||
|
if err != nil {
|
||||||
c, err := cbg.ReadCid(cr)
|
return xerrors.Errorf("reading cid field t.Cid failed: %w", err)
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("failed to read cid field t.Cid[i]: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
t.Cid[i] = c
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
t.Cid[i] = c
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.Data ([][]uint8) (slice)
|
// t.Data ([][]uint8) (slice)
|
||||||
@@ -198,9 +183,6 @@ func (t *NetRpcReq) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
var maj byte
|
var maj byte
|
||||||
var extra uint64
|
var extra uint64
|
||||||
var err error
|
var err error
|
||||||
_ = maj
|
|
||||||
_ = extra
|
|
||||||
_ = err
|
|
||||||
|
|
||||||
maj, extra, err = cr.ReadHeader()
|
maj, extra, err = cr.ReadHeader()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -368,7 +350,7 @@ func (t *NetRpcErr) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Msg))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Msg))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := cw.WriteString(string(t.Msg)); err != nil {
|
if _, err := io.WriteString(w, string(t.Msg)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"io"
|
"io"
|
||||||
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
)
|
)
|
||||||
|
|
||||||
var _ Blockstore = (*discardstore)(nil)
|
var _ Blockstore = (*discardstore)(nil)
|
||||||
@@ -38,10 +38,6 @@ func (b *discardstore) View(ctx context.Context, cid cid.Cid, f func([]byte) err
|
|||||||
return b.bs.View(ctx, cid, f)
|
return b.bs.View(ctx, cid, f)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *discardstore) Flush(ctx context.Context) error {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (b *discardstore) Put(ctx context.Context, blk blocks.Block) error {
|
func (b *discardstore) Put(ctx context.Context, blk blocks.Block) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
ipld "github.com/ipfs/go-ipld-format"
|
ipld "github.com/ipfs/go-ipld-format"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
"golang.org/x/xerrors"
|
"golang.org/x/xerrors"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"io"
|
"io"
|
||||||
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
mh "github.com/multiformats/go-multihash"
|
mh "github.com/multiformats/go-multihash"
|
||||||
"golang.org/x/xerrors"
|
"golang.org/x/xerrors"
|
||||||
)
|
)
|
||||||
@@ -179,7 +179,3 @@ func (b *idstore) Close() error {
|
|||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *idstore) Flush(ctx context.Context) error {
|
|
||||||
return b.bs.Flush(ctx)
|
|
||||||
}
|
|
||||||
|
|||||||
+9
-10
@@ -3,18 +3,17 @@ package blockstore
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
"io"
|
"io/ioutil"
|
||||||
|
|
||||||
iface "github.com/ipfs/boxo/coreiface"
|
|
||||||
"github.com/ipfs/boxo/coreiface/options"
|
|
||||||
"github.com/ipfs/boxo/coreiface/path"
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
|
httpapi "github.com/ipfs/go-ipfs-http-client"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
|
iface "github.com/ipfs/interface-go-ipfs-core"
|
||||||
|
"github.com/ipfs/interface-go-ipfs-core/options"
|
||||||
|
"github.com/ipfs/interface-go-ipfs-core/path"
|
||||||
"github.com/multiformats/go-multiaddr"
|
"github.com/multiformats/go-multiaddr"
|
||||||
"github.com/multiformats/go-multihash"
|
"github.com/multiformats/go-multihash"
|
||||||
"golang.org/x/xerrors"
|
"golang.org/x/xerrors"
|
||||||
|
|
||||||
rpc "github.com/filecoin-project/kubo-api-client"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type IPFSBlockstore struct {
|
type IPFSBlockstore struct {
|
||||||
@@ -25,7 +24,7 @@ type IPFSBlockstore struct {
|
|||||||
var _ BasicBlockstore = (*IPFSBlockstore)(nil)
|
var _ BasicBlockstore = (*IPFSBlockstore)(nil)
|
||||||
|
|
||||||
func NewLocalIPFSBlockstore(ctx context.Context, onlineMode bool) (Blockstore, error) {
|
func NewLocalIPFSBlockstore(ctx context.Context, onlineMode bool) (Blockstore, error) {
|
||||||
localApi, err := rpc.NewLocalApi()
|
localApi, err := httpapi.NewLocalApi()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, xerrors.Errorf("getting local ipfs api: %w", err)
|
return nil, xerrors.Errorf("getting local ipfs api: %w", err)
|
||||||
}
|
}
|
||||||
@@ -52,7 +51,7 @@ func NewLocalIPFSBlockstore(ctx context.Context, onlineMode bool) (Blockstore, e
|
|||||||
}
|
}
|
||||||
|
|
||||||
func NewRemoteIPFSBlockstore(ctx context.Context, maddr multiaddr.Multiaddr, onlineMode bool) (Blockstore, error) {
|
func NewRemoteIPFSBlockstore(ctx context.Context, maddr multiaddr.Multiaddr, onlineMode bool) (Blockstore, error) {
|
||||||
httpApi, err := rpc.NewApi(maddr)
|
httpApi, err := httpapi.NewApi(maddr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, xerrors.Errorf("setting remote ipfs api: %w", err)
|
return nil, xerrors.Errorf("setting remote ipfs api: %w", err)
|
||||||
}
|
}
|
||||||
@@ -104,7 +103,7 @@ func (i *IPFSBlockstore) Get(ctx context.Context, cid cid.Cid) (blocks.Block, er
|
|||||||
return nil, xerrors.Errorf("getting ipfs block: %w", err)
|
return nil, xerrors.Errorf("getting ipfs block: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
data, err := io.ReadAll(rd)
|
data, err := ioutil.ReadAll(rd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-3
@@ -3,9 +3,9 @@ package blockstore
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
ipld "github.com/ipfs/go-ipld-format"
|
ipld "github.com/ipfs/go-ipld-format"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
)
|
)
|
||||||
|
|
||||||
// NewMemory returns a temporary memory-backed blockstore.
|
// NewMemory returns a temporary memory-backed blockstore.
|
||||||
@@ -17,8 +17,6 @@ func NewMemory() MemBlockstore {
|
|||||||
// To match behavior of badger blockstore we index by multihash only.
|
// To match behavior of badger blockstore we index by multihash only.
|
||||||
type MemBlockstore map[string]blocks.Block
|
type MemBlockstore map[string]blocks.Block
|
||||||
|
|
||||||
func (MemBlockstore) Flush(context.Context) error { return nil }
|
|
||||||
|
|
||||||
func (m MemBlockstore) DeleteBlock(ctx context.Context, k cid.Cid) error {
|
func (m MemBlockstore) DeleteBlock(ctx context.Context, k cid.Cid) error {
|
||||||
delete(m, string(k.Hash()))
|
delete(m, string(k.Hash()))
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
mh "github.com/multiformats/go-multihash"
|
mh "github.com/multiformats/go-multihash"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|||||||
+1
-3
@@ -8,9 +8,9 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
ipld "github.com/ipfs/go-ipld-format"
|
ipld "github.com/ipfs/go-ipld-format"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
"github.com/libp2p/go-msgio"
|
"github.com/libp2p/go-msgio"
|
||||||
cbg "github.com/whyrusleeping/cbor-gen"
|
cbg "github.com/whyrusleeping/cbor-gen"
|
||||||
"golang.org/x/xerrors"
|
"golang.org/x/xerrors"
|
||||||
@@ -410,8 +410,6 @@ func (n *NetworkStore) HashOnRead(enabled bool) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*NetworkStore) Flush(context.Context) error { return nil }
|
|
||||||
|
|
||||||
func (n *NetworkStore) Stop(ctx context.Context) error {
|
func (n *NetworkStore) Stop(ctx context.Context) error {
|
||||||
close(n.closing)
|
close(n.closing)
|
||||||
|
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"encoding/binary"
|
"encoding/binary"
|
||||||
|
|
||||||
block "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
ipld "github.com/ipfs/go-ipld-format"
|
ipld "github.com/ipfs/go-ipld-format"
|
||||||
|
block "github.com/ipfs/go-libipfs/blocks"
|
||||||
"github.com/libp2p/go-msgio"
|
"github.com/libp2p/go-msgio"
|
||||||
cbg "github.com/whyrusleeping/cbor-gen"
|
cbg "github.com/whyrusleeping/cbor-gen"
|
||||||
"golang.org/x/xerrors"
|
"golang.org/x/xerrors"
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
block "github.com/ipfs/go-block-format"
|
|
||||||
ipld "github.com/ipfs/go-ipld-format"
|
ipld "github.com/ipfs/go-ipld-format"
|
||||||
|
block "github.com/ipfs/go-libipfs/blocks"
|
||||||
"github.com/libp2p/go-msgio"
|
"github.com/libp2p/go-msgio"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
"go.uber.org/multierr"
|
"go.uber.org/multierr"
|
||||||
"golang.org/x/xerrors"
|
"golang.org/x/xerrors"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -11,8 +11,6 @@ import (
|
|||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
"golang.org/x/xerrors"
|
"golang.org/x/xerrors"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/system"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type BadgerMarkSetEnv struct {
|
type BadgerMarkSetEnv struct {
|
||||||
@@ -351,7 +349,7 @@ func (s *BadgerMarkSet) write(seqno int) (err error) {
|
|||||||
persist := s.persist
|
persist := s.persist
|
||||||
s.mx.RUnlock()
|
s.mx.RUnlock()
|
||||||
|
|
||||||
if persist && !system.BadgerFsyncDisable { // WARNING: disabling sync makes recovery from crash during critical section unsound
|
if persist {
|
||||||
return s.db.Sync()
|
return s.db.Sync()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,10 +8,10 @@ import (
|
|||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
dstore "github.com/ipfs/go-datastore"
|
dstore "github.com/ipfs/go-datastore"
|
||||||
ipld "github.com/ipfs/go-ipld-format"
|
ipld "github.com/ipfs/go-ipld-format"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
logging "github.com/ipfs/go-log/v2"
|
logging "github.com/ipfs/go-log/v2"
|
||||||
"go.opencensus.io/stats"
|
"go.opencensus.io/stats"
|
||||||
"go.uber.org/multierr"
|
"go.uber.org/multierr"
|
||||||
@@ -115,23 +115,6 @@ type Config struct {
|
|||||||
// A positive value is the number of compactions before a full GC is performed;
|
// A positive value is the number of compactions before a full GC is performed;
|
||||||
// a value of 1 will perform full GC in every compaction.
|
// a value of 1 will perform full GC in every compaction.
|
||||||
HotStoreFullGCFrequency uint64
|
HotStoreFullGCFrequency uint64
|
||||||
|
|
||||||
// HotstoreMaxSpaceTarget suggests the max allowed space the hotstore can take.
|
|
||||||
// This is not a hard limit, it is possible for the hotstore to exceed the target
|
|
||||||
// for example if state grows massively between compactions. The splitstore
|
|
||||||
// will make a best effort to avoid overflowing the target and in practice should
|
|
||||||
// never overflow. This field is used when doing GC at the end of a compaction to
|
|
||||||
// adaptively choose moving GC
|
|
||||||
HotstoreMaxSpaceTarget uint64
|
|
||||||
|
|
||||||
// Moving GC will be triggered when total moving size exceeds
|
|
||||||
// HotstoreMaxSpaceTarget - HotstoreMaxSpaceThreshold
|
|
||||||
HotstoreMaxSpaceThreshold uint64
|
|
||||||
|
|
||||||
// Safety buffer to prevent moving GC from overflowing disk.
|
|
||||||
// Moving GC will not occur when total moving size exceeds
|
|
||||||
// HotstoreMaxSpaceTarget - HotstoreMaxSpaceSafetyBuffer
|
|
||||||
HotstoreMaxSpaceSafetyBuffer uint64
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ChainAccessor allows the Splitstore to access the chain. It will most likely
|
// ChainAccessor allows the Splitstore to access the chain. It will most likely
|
||||||
@@ -164,7 +147,7 @@ type SplitStore struct {
|
|||||||
path string
|
path string
|
||||||
|
|
||||||
mx sync.Mutex
|
mx sync.Mutex
|
||||||
warmupEpoch atomic.Int64
|
warmupEpoch abi.ChainEpoch // protected by mx
|
||||||
baseEpoch abi.ChainEpoch // protected by compaction lock
|
baseEpoch abi.ChainEpoch // protected by compaction lock
|
||||||
pruneEpoch abi.ChainEpoch // protected by compaction lock
|
pruneEpoch abi.ChainEpoch // protected by compaction lock
|
||||||
|
|
||||||
@@ -182,16 +165,10 @@ type SplitStore struct {
|
|||||||
|
|
||||||
compactionIndex int64
|
compactionIndex int64
|
||||||
pruneIndex int64
|
pruneIndex int64
|
||||||
onlineGCCnt int64
|
|
||||||
|
|
||||||
ctx context.Context
|
ctx context.Context
|
||||||
cancel func()
|
cancel func()
|
||||||
|
|
||||||
outOfSync int32 // for fast checking
|
|
||||||
chainSyncMx sync.Mutex
|
|
||||||
chainSyncCond sync.Cond
|
|
||||||
chainSyncFinished bool // protected by chainSyncMx
|
|
||||||
|
|
||||||
debug *debugLog
|
debug *debugLog
|
||||||
|
|
||||||
// transactional protection for concurrent read/writes during compaction
|
// transactional protection for concurrent read/writes during compaction
|
||||||
@@ -218,17 +195,6 @@ type SplitStore struct {
|
|||||||
|
|
||||||
// registered protectors
|
// registered protectors
|
||||||
protectors []func(func(cid.Cid) error) error
|
protectors []func(func(cid.Cid) error) error
|
||||||
|
|
||||||
// dag sizes measured during latest compaction
|
|
||||||
// logged and used for GC strategy
|
|
||||||
|
|
||||||
// protected by compaction lock
|
|
||||||
szWalk int64
|
|
||||||
szProtectedTxns int64
|
|
||||||
szKeys int64 // approximate, not counting keys protected when entering critical section
|
|
||||||
|
|
||||||
// protected by txnLk
|
|
||||||
szMarkedLiveRefs int64
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ bstore.Blockstore = (*SplitStore)(nil)
|
var _ bstore.Blockstore = (*SplitStore)(nil)
|
||||||
@@ -266,7 +232,6 @@ func Open(path string, ds dstore.Datastore, hot, cold bstore.Blockstore, cfg *Co
|
|||||||
|
|
||||||
ss.txnViewsCond.L = &ss.txnViewsMx
|
ss.txnViewsCond.L = &ss.txnViewsMx
|
||||||
ss.txnSyncCond.L = &ss.txnSyncMx
|
ss.txnSyncCond.L = &ss.txnSyncMx
|
||||||
ss.chainSyncCond.L = &ss.chainSyncMx
|
|
||||||
ss.ctx, ss.cancel = context.WithCancel(context.Background())
|
ss.ctx, ss.cancel = context.WithCancel(context.Background())
|
||||||
|
|
||||||
ss.reifyCond.L = &ss.reifyMx
|
ss.reifyCond.L = &ss.reifyMx
|
||||||
@@ -482,23 +447,6 @@ func (s *SplitStore) GetSize(ctx context.Context, cid cid.Cid) (int, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *SplitStore) Flush(ctx context.Context) error {
|
|
||||||
s.txnLk.RLock()
|
|
||||||
defer s.txnLk.RUnlock()
|
|
||||||
|
|
||||||
if err := s.cold.Flush(ctx); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := s.hot.Flush(ctx); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := s.ds.Sync(ctx, dstore.Key{}); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *SplitStore) Put(ctx context.Context, blk blocks.Block) error {
|
func (s *SplitStore) Put(ctx context.Context, blk blocks.Block) error {
|
||||||
if isIdentiyCid(blk.Cid()) {
|
if isIdentiyCid(blk.Cid()) {
|
||||||
return nil
|
return nil
|
||||||
@@ -684,7 +632,9 @@ func (s *SplitStore) View(ctx context.Context, cid cid.Cid, cb func([]byte) erro
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *SplitStore) isWarm() bool {
|
func (s *SplitStore) isWarm() bool {
|
||||||
return s.warmupEpoch.Load() > 0
|
s.mx.Lock()
|
||||||
|
defer s.mx.Unlock()
|
||||||
|
return s.warmupEpoch > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
// State tracking
|
// State tracking
|
||||||
@@ -755,7 +705,7 @@ func (s *SplitStore) Start(chain ChainAccessor, us stmgr.UpgradeSchedule) error
|
|||||||
bs, err = s.ds.Get(s.ctx, warmupEpochKey)
|
bs, err = s.ds.Get(s.ctx, warmupEpochKey)
|
||||||
switch err {
|
switch err {
|
||||||
case nil:
|
case nil:
|
||||||
s.warmupEpoch.Store(bytesToInt64(bs))
|
s.warmupEpoch = bytesToEpoch(bs)
|
||||||
|
|
||||||
case dstore.ErrNotFound:
|
case dstore.ErrNotFound:
|
||||||
warmup = true
|
warmup = true
|
||||||
@@ -789,7 +739,7 @@ func (s *SplitStore) Start(chain ChainAccessor, us stmgr.UpgradeSchedule) error
|
|||||||
return xerrors.Errorf("error loading compaction index: %w", err)
|
return xerrors.Errorf("error loading compaction index: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Infow("starting splitstore", "baseEpoch", s.baseEpoch, "warmupEpoch", s.warmupEpoch.Load())
|
log.Infow("starting splitstore", "baseEpoch", s.baseEpoch, "warmupEpoch", s.warmupEpoch)
|
||||||
|
|
||||||
if warmup {
|
if warmup {
|
||||||
err = s.warmup(curTs)
|
err = s.warmup(curTs)
|
||||||
@@ -826,11 +776,6 @@ func (s *SplitStore) Close() error {
|
|||||||
s.txnSyncCond.Broadcast()
|
s.txnSyncCond.Broadcast()
|
||||||
s.txnSyncMx.Unlock()
|
s.txnSyncMx.Unlock()
|
||||||
|
|
||||||
s.chainSyncMx.Lock()
|
|
||||||
s.chainSyncFinished = true
|
|
||||||
s.chainSyncCond.Broadcast()
|
|
||||||
s.chainSyncMx.Unlock()
|
|
||||||
|
|
||||||
log.Warn("close with ongoing compaction in progress; waiting for it to finish...")
|
log.Warn("close with ongoing compaction in progress; waiting for it to finish...")
|
||||||
for atomic.LoadInt32(&s.compacting) == 1 {
|
for atomic.LoadInt32(&s.compacting) == 1 {
|
||||||
time.Sleep(time.Second)
|
time.Sleep(time.Second)
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ func (s *SplitStore) doCheck(curTs *types.TipSet) error {
|
|||||||
}
|
}
|
||||||
defer visitor.Close() //nolint
|
defer visitor.Close() //nolint
|
||||||
|
|
||||||
size := s.walkChain(curTs, boundaryEpoch, boundaryEpoch, visitor,
|
err = s.walkChain(curTs, boundaryEpoch, boundaryEpoch, visitor,
|
||||||
func(c cid.Cid) error {
|
func(c cid.Cid) error {
|
||||||
if isUnitaryObject(c) {
|
if isUnitaryObject(c) {
|
||||||
return errStopWalk
|
return errStopWalk
|
||||||
@@ -133,7 +133,7 @@ func (s *SplitStore) doCheck(curTs *types.TipSet) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Infow("check done", "cold", *coldCnt, "missing", *missingCnt, "walk size", size)
|
log.Infow("check done", "cold", *coldCnt, "missing", *missingCnt)
|
||||||
write("--")
|
write("--")
|
||||||
write("cold: %d missing: %d", *coldCnt, *missingCnt)
|
write("cold: %d missing: %d", *coldCnt, *missingCnt)
|
||||||
write("DONE")
|
write("DONE")
|
||||||
@@ -145,7 +145,7 @@ func (s *SplitStore) doCheck(curTs *types.TipSet) error {
|
|||||||
func (s *SplitStore) Info() map[string]interface{} {
|
func (s *SplitStore) Info() map[string]interface{} {
|
||||||
info := make(map[string]interface{})
|
info := make(map[string]interface{})
|
||||||
info["base epoch"] = s.baseEpoch
|
info["base epoch"] = s.baseEpoch
|
||||||
info["warmup epoch"] = s.warmupEpoch.Load()
|
info["warmup epoch"] = s.warmupEpoch
|
||||||
info["compactions"] = s.compactionIndex
|
info["compactions"] = s.compactionIndex
|
||||||
info["prunes"] = s.pruneIndex
|
info["prunes"] = s.pruneIndex
|
||||||
info["compacting"] = s.compacting == 1
|
info["compacting"] = s.compacting == 1
|
||||||
|
|||||||
@@ -10,9 +10,9 @@ import (
|
|||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
ipld "github.com/ipfs/go-ipld-format"
|
ipld "github.com/ipfs/go-ipld-format"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
cbg "github.com/whyrusleeping/cbor-gen"
|
cbg "github.com/whyrusleeping/cbor-gen"
|
||||||
"go.opencensus.io/stats"
|
"go.opencensus.io/stats"
|
||||||
"golang.org/x/sync/errgroup"
|
"golang.org/x/sync/errgroup"
|
||||||
@@ -66,8 +66,7 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
batchSize = 16384
|
batchSize = 16384
|
||||||
cidKeySize = 128
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func (s *SplitStore) HeadChange(_, apply []*types.TipSet) error {
|
func (s *SplitStore) HeadChange(_, apply []*types.TipSet) error {
|
||||||
@@ -91,35 +90,7 @@ func (s *SplitStore) HeadChange(_, apply []*types.TipSet) error {
|
|||||||
// Regardless, we put a mutex in HeadChange just to be safe
|
// Regardless, we put a mutex in HeadChange just to be safe
|
||||||
|
|
||||||
if !atomic.CompareAndSwapInt32(&s.compacting, 0, 1) {
|
if !atomic.CompareAndSwapInt32(&s.compacting, 0, 1) {
|
||||||
// we are currently compacting
|
// we are currently compacting -- protect the new tipset(s)
|
||||||
// 1. Signal sync condition to yield compaction when out of sync and resume when in sync
|
|
||||||
timestamp := time.Unix(int64(curTs.MinTimestamp()), 0)
|
|
||||||
if CheckSyncGap && time.Since(timestamp) > SyncGapTime {
|
|
||||||
/* Chain out of sync */
|
|
||||||
if atomic.CompareAndSwapInt32(&s.outOfSync, 0, 1) {
|
|
||||||
// transition from in sync to out of sync
|
|
||||||
s.chainSyncMx.Lock()
|
|
||||||
s.chainSyncFinished = false
|
|
||||||
s.chainSyncMx.Unlock()
|
|
||||||
}
|
|
||||||
// already out of sync, no signaling necessary
|
|
||||||
|
|
||||||
}
|
|
||||||
// TODO: ok to use hysteresis with no transitions between 30s and 1m?
|
|
||||||
if time.Since(timestamp) < SyncWaitTime {
|
|
||||||
/* Chain in sync */
|
|
||||||
if atomic.CompareAndSwapInt32(&s.outOfSync, 0, 0) {
|
|
||||||
// already in sync, no signaling necessary
|
|
||||||
} else {
|
|
||||||
// transition from out of sync to in sync
|
|
||||||
s.chainSyncMx.Lock()
|
|
||||||
s.chainSyncFinished = true
|
|
||||||
s.chainSyncCond.Broadcast()
|
|
||||||
s.chainSyncMx.Unlock()
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
// 2. protect the new tipset(s)
|
|
||||||
s.protectTipSets(apply)
|
s.protectTipSets(apply)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@@ -144,6 +115,8 @@ func (s *SplitStore) HeadChange(_, apply []*types.TipSet) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Prioritize hot store compaction over cold store prune
|
||||||
|
|
||||||
if epoch-s.baseEpoch > CompactionThreshold {
|
if epoch-s.baseEpoch > CompactionThreshold {
|
||||||
// it's time to compact -- prepare the transaction and go!
|
// it's time to compact -- prepare the transaction and go!
|
||||||
s.beginTxnProtect()
|
s.beginTxnProtect()
|
||||||
@@ -203,8 +176,6 @@ func (s *SplitStore) protectTipSets(apply []*types.TipSet) {
|
|||||||
timestamp := time.Unix(int64(curTs.MinTimestamp()), 0)
|
timestamp := time.Unix(int64(curTs.MinTimestamp()), 0)
|
||||||
doSync := time.Since(timestamp) < SyncWaitTime
|
doSync := time.Since(timestamp) < SyncWaitTime
|
||||||
go func() {
|
go func() {
|
||||||
// we are holding the txnLk while marking
|
|
||||||
// so critical section cannot delete
|
|
||||||
if doSync {
|
if doSync {
|
||||||
defer func() {
|
defer func() {
|
||||||
s.txnSyncMx.Lock()
|
s.txnSyncMx.Lock()
|
||||||
@@ -228,11 +199,9 @@ func (s *SplitStore) markLiveRefs(cids []cid.Cid) {
|
|||||||
log.Debugf("marking %d live refs", len(cids))
|
log.Debugf("marking %d live refs", len(cids))
|
||||||
startMark := time.Now()
|
startMark := time.Now()
|
||||||
|
|
||||||
szMarked := new(int64)
|
|
||||||
|
|
||||||
count := new(int32)
|
count := new(int32)
|
||||||
visitor := newConcurrentVisitor()
|
visitor := newConcurrentVisitor()
|
||||||
walkObject := func(c cid.Cid) (int64, error) {
|
walkObject := func(c cid.Cid) error {
|
||||||
return s.walkObjectIncomplete(c, visitor,
|
return s.walkObjectIncomplete(c, visitor,
|
||||||
func(c cid.Cid) error {
|
func(c cid.Cid) error {
|
||||||
if isUnitaryObject(c) {
|
if isUnitaryObject(c) {
|
||||||
@@ -259,12 +228,10 @@ func (s *SplitStore) markLiveRefs(cids []cid.Cid) {
|
|||||||
|
|
||||||
// optimize the common case of single put
|
// optimize the common case of single put
|
||||||
if len(cids) == 1 {
|
if len(cids) == 1 {
|
||||||
sz, err := walkObject(cids[0])
|
if err := walkObject(cids[0]); err != nil {
|
||||||
if err != nil {
|
|
||||||
log.Errorf("error marking tipset refs: %s", err)
|
log.Errorf("error marking tipset refs: %s", err)
|
||||||
}
|
}
|
||||||
log.Debugw("marking live refs done", "took", time.Since(startMark), "marked", *count)
|
log.Debugw("marking live refs done", "took", time.Since(startMark), "marked", *count)
|
||||||
atomic.AddInt64(szMarked, sz)
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -276,11 +243,9 @@ func (s *SplitStore) markLiveRefs(cids []cid.Cid) {
|
|||||||
|
|
||||||
worker := func() error {
|
worker := func() error {
|
||||||
for c := range workch {
|
for c := range workch {
|
||||||
sz, err := walkObject(c)
|
if err := walkObject(c); err != nil {
|
||||||
if err != nil {
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
atomic.AddInt64(szMarked, sz)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
@@ -303,8 +268,7 @@ func (s *SplitStore) markLiveRefs(cids []cid.Cid) {
|
|||||||
log.Errorf("error marking tipset refs: %s", err)
|
log.Errorf("error marking tipset refs: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Debugw("marking live refs done", "took", time.Since(startMark), "marked", *count, "size marked", *szMarked)
|
log.Debugw("marking live refs done", "took", time.Since(startMark), "marked", *count)
|
||||||
s.szMarkedLiveRefs += atomic.LoadInt64(szMarked)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// transactionally protect a view
|
// transactionally protect a view
|
||||||
@@ -397,7 +361,6 @@ func (s *SplitStore) protectTxnRefs(markSet MarkSet) error {
|
|||||||
|
|
||||||
log.Infow("protecting transactional references", "refs", len(txnRefs))
|
log.Infow("protecting transactional references", "refs", len(txnRefs))
|
||||||
count := 0
|
count := 0
|
||||||
sz := new(int64)
|
|
||||||
workch := make(chan cid.Cid, len(txnRefs))
|
workch := make(chan cid.Cid, len(txnRefs))
|
||||||
startProtect := time.Now()
|
startProtect := time.Now()
|
||||||
|
|
||||||
@@ -430,11 +393,10 @@ func (s *SplitStore) protectTxnRefs(markSet MarkSet) error {
|
|||||||
|
|
||||||
worker := func() error {
|
worker := func() error {
|
||||||
for c := range workch {
|
for c := range workch {
|
||||||
szTxn, err := s.doTxnProtect(c, markSet)
|
err := s.doTxnProtect(c, markSet)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return xerrors.Errorf("error protecting transactional references to %s: %w", c, err)
|
return xerrors.Errorf("error protecting transactional references to %s: %w", c, err)
|
||||||
}
|
}
|
||||||
atomic.AddInt64(sz, szTxn)
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@@ -447,16 +409,16 @@ func (s *SplitStore) protectTxnRefs(markSet MarkSet) error {
|
|||||||
if err := g.Wait(); err != nil {
|
if err := g.Wait(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
s.szProtectedTxns += atomic.LoadInt64(sz)
|
|
||||||
log.Infow("protecting transactional refs done", "took", time.Since(startProtect), "protected", count, "protected size", sz)
|
log.Infow("protecting transactional refs done", "took", time.Since(startProtect), "protected", count)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// transactionally protect a reference by walking the object and marking.
|
// transactionally protect a reference by walking the object and marking.
|
||||||
// concurrent markings are short circuited by checking the markset.
|
// concurrent markings are short circuited by checking the markset.
|
||||||
func (s *SplitStore) doTxnProtect(root cid.Cid, markSet MarkSet) (int64, error) {
|
func (s *SplitStore) doTxnProtect(root cid.Cid, markSet MarkSet) error {
|
||||||
if err := s.checkClosing(); err != nil {
|
if err := s.checkClosing(); err != nil {
|
||||||
return 0, err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Note: cold objects are deleted heaviest first, so the consituents of an object
|
// Note: cold objects are deleted heaviest first, so the consituents of an object
|
||||||
@@ -480,7 +442,7 @@ func (s *SplitStore) doTxnProtect(root cid.Cid, markSet MarkSet) (int64, error)
|
|||||||
},
|
},
|
||||||
func(c cid.Cid) error {
|
func(c cid.Cid) error {
|
||||||
if s.txnMissing != nil {
|
if s.txnMissing != nil {
|
||||||
log.Debugf("missing object reference %s in %s", c, root)
|
log.Warnf("missing object reference %s in %s", c, root)
|
||||||
s.txnRefsMx.Lock()
|
s.txnRefsMx.Lock()
|
||||||
s.txnMissing[c] = struct{}{}
|
s.txnMissing[c] = struct{}{}
|
||||||
s.txnRefsMx.Unlock()
|
s.txnRefsMx.Unlock()
|
||||||
@@ -547,7 +509,6 @@ func (s *SplitStore) doCompact(curTs *types.TipSet) error {
|
|||||||
// might be potentially inconsistent; abort compaction and notify the user to intervene.
|
// might be potentially inconsistent; abort compaction and notify the user to intervene.
|
||||||
return xerrors.Errorf("checkpoint exists; aborting compaction")
|
return xerrors.Errorf("checkpoint exists; aborting compaction")
|
||||||
}
|
}
|
||||||
s.clearSizeMeasurements()
|
|
||||||
|
|
||||||
currentEpoch := curTs.Height()
|
currentEpoch := curTs.Height()
|
||||||
boundaryEpoch := currentEpoch - CompactionBoundary
|
boundaryEpoch := currentEpoch - CompactionBoundary
|
||||||
@@ -573,7 +534,7 @@ func (s *SplitStore) doCompact(curTs *types.TipSet) error {
|
|||||||
}
|
}
|
||||||
defer coldSet.Close() //nolint:errcheck
|
defer coldSet.Close() //nolint:errcheck
|
||||||
|
|
||||||
if err := s.checkYield(); err != nil {
|
if err := s.checkClosing(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -637,6 +598,7 @@ func (s *SplitStore) doCompact(curTs *types.TipSet) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
err = s.walkChain(curTs, boundaryEpoch, inclMsgsEpoch, &noopVisitor{}, fHot, fCold)
|
err = s.walkChain(curTs, boundaryEpoch, inclMsgsEpoch, &noopVisitor{}, fHot, fCold)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return xerrors.Errorf("error marking: %w", err)
|
return xerrors.Errorf("error marking: %w", err)
|
||||||
}
|
}
|
||||||
@@ -645,7 +607,7 @@ func (s *SplitStore) doCompact(curTs *types.TipSet) error {
|
|||||||
|
|
||||||
log.Infow("marking done", "took", time.Since(startMark), "marked", *count)
|
log.Infow("marking done", "took", time.Since(startMark), "marked", *count)
|
||||||
|
|
||||||
if err := s.checkYield(); err != nil {
|
if err := s.checkClosing(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -655,7 +617,7 @@ func (s *SplitStore) doCompact(curTs *types.TipSet) error {
|
|||||||
return xerrors.Errorf("error protecting transactional refs: %w", err)
|
return xerrors.Errorf("error protecting transactional refs: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := s.checkYield(); err != nil {
|
if err := s.checkClosing(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -676,7 +638,7 @@ func (s *SplitStore) doCompact(curTs *types.TipSet) error {
|
|||||||
defer purgew.Close() //nolint:errcheck
|
defer purgew.Close() //nolint:errcheck
|
||||||
|
|
||||||
// some stats for logging
|
// some stats for logging
|
||||||
var hotCnt, coldCnt, purgeCnt int64
|
var hotCnt, coldCnt, purgeCnt int
|
||||||
err = s.hot.ForEachKey(func(c cid.Cid) error {
|
err = s.hot.ForEachKey(func(c cid.Cid) error {
|
||||||
// was it marked?
|
// was it marked?
|
||||||
mark, err := markSet.Has(c)
|
mark, err := markSet.Has(c)
|
||||||
@@ -727,12 +689,11 @@ func (s *SplitStore) doCompact(curTs *types.TipSet) error {
|
|||||||
|
|
||||||
log.Infow("cold collection done", "took", time.Since(startCollect))
|
log.Infow("cold collection done", "took", time.Since(startCollect))
|
||||||
|
|
||||||
log.Infow("compaction stats", "hot", hotCnt, "cold", coldCnt, "purge", purgeCnt)
|
log.Infow("compaction stats", "hot", hotCnt, "cold", coldCnt)
|
||||||
s.szKeys = hotCnt * cidKeySize
|
stats.Record(s.ctx, metrics.SplitstoreCompactionHot.M(int64(hotCnt)))
|
||||||
stats.Record(s.ctx, metrics.SplitstoreCompactionHot.M(hotCnt))
|
stats.Record(s.ctx, metrics.SplitstoreCompactionCold.M(int64(coldCnt)))
|
||||||
stats.Record(s.ctx, metrics.SplitstoreCompactionCold.M(coldCnt))
|
|
||||||
|
|
||||||
if err := s.checkYield(); err != nil {
|
if err := s.checkClosing(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -741,7 +702,7 @@ func (s *SplitStore) doCompact(curTs *types.TipSet) error {
|
|||||||
// possibly delete objects we didn't have when we were collecting cold objects)
|
// possibly delete objects we didn't have when we were collecting cold objects)
|
||||||
s.waitForMissingRefs(markSet)
|
s.waitForMissingRefs(markSet)
|
||||||
|
|
||||||
if err := s.checkYield(); err != nil {
|
if err := s.checkClosing(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -761,7 +722,7 @@ func (s *SplitStore) doCompact(curTs *types.TipSet) error {
|
|||||||
}
|
}
|
||||||
log.Infow("moving done", "took", time.Since(startMove))
|
log.Infow("moving done", "took", time.Since(startMove))
|
||||||
|
|
||||||
if err := s.checkYield(); err != nil {
|
if err := s.checkClosing(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -792,7 +753,7 @@ func (s *SplitStore) doCompact(curTs *types.TipSet) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// wait for the head to catch up so that the current tipset is marked
|
// wait for the head to catch up so that the current tipset is marked
|
||||||
s.waitForTxnSync()
|
s.waitForSync()
|
||||||
|
|
||||||
if err := s.checkClosing(); err != nil {
|
if err := s.checkClosing(); err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -812,8 +773,8 @@ func (s *SplitStore) doCompact(curTs *types.TipSet) error {
|
|||||||
return xerrors.Errorf("error purging cold objects: %w", err)
|
return xerrors.Errorf("error purging cold objects: %w", err)
|
||||||
}
|
}
|
||||||
log.Infow("purging cold objects from hotstore done", "took", time.Since(startPurge))
|
log.Infow("purging cold objects from hotstore done", "took", time.Since(startPurge))
|
||||||
|
|
||||||
s.endCriticalSection()
|
s.endCriticalSection()
|
||||||
log.Infow("critical section done", "total protected size", s.szProtectedTxns, "total marked live size", s.szMarkedLiveRefs)
|
|
||||||
|
|
||||||
if err := checkpoint.Close(); err != nil {
|
if err := checkpoint.Close(); err != nil {
|
||||||
log.Warnf("error closing checkpoint: %s", err)
|
log.Warnf("error closing checkpoint: %s", err)
|
||||||
@@ -827,13 +788,10 @@ func (s *SplitStore) doCompact(curTs *types.TipSet) error {
|
|||||||
if err := os.Remove(s.coldSetPath()); err != nil {
|
if err := os.Remove(s.coldSetPath()); err != nil {
|
||||||
log.Warnf("error removing coldset: %s", err)
|
log.Warnf("error removing coldset: %s", err)
|
||||||
}
|
}
|
||||||
if err := os.Remove(s.discardSetPath()); err != nil {
|
|
||||||
log.Warnf("error removing discardset: %s", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are done; do some housekeeping
|
// we are done; do some housekeeping
|
||||||
s.endTxnProtect()
|
s.endTxnProtect()
|
||||||
s.gcHotAfterCompaction()
|
s.gcHotstore()
|
||||||
|
|
||||||
err = s.setBaseEpoch(boundaryEpoch)
|
err = s.setBaseEpoch(boundaryEpoch)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -893,7 +851,7 @@ func (s *SplitStore) beginCriticalSection(markSet MarkSet) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *SplitStore) waitForTxnSync() {
|
func (s *SplitStore) waitForSync() {
|
||||||
log.Info("waiting for sync")
|
log.Info("waiting for sync")
|
||||||
if !CheckSyncGap {
|
if !CheckSyncGap {
|
||||||
log.Warnf("If you see this outside of test it is a serious splitstore issue")
|
log.Warnf("If you see this outside of test it is a serious splitstore issue")
|
||||||
@@ -912,25 +870,6 @@ func (s *SplitStore) waitForTxnSync() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Block compaction operations if chain sync has fallen behind
|
|
||||||
func (s *SplitStore) waitForSync() {
|
|
||||||
if atomic.LoadInt32(&s.outOfSync) == 0 {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
s.chainSyncMx.Lock()
|
|
||||||
defer s.chainSyncMx.Unlock()
|
|
||||||
|
|
||||||
for !s.chainSyncFinished {
|
|
||||||
s.chainSyncCond.Wait()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Combined sync and closing check
|
|
||||||
func (s *SplitStore) checkYield() error {
|
|
||||||
s.waitForSync()
|
|
||||||
return s.checkClosing()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *SplitStore) endTxnProtect() {
|
func (s *SplitStore) endTxnProtect() {
|
||||||
s.txnLk.Lock()
|
s.txnLk.Lock()
|
||||||
defer s.txnLk.Unlock()
|
defer s.txnLk.Unlock()
|
||||||
@@ -965,7 +904,6 @@ func (s *SplitStore) walkChain(ts *types.TipSet, inclState, inclMsgs abi.ChainEp
|
|||||||
copy(toWalk, ts.Cids())
|
copy(toWalk, ts.Cids())
|
||||||
walkCnt := new(int64)
|
walkCnt := new(int64)
|
||||||
scanCnt := new(int64)
|
scanCnt := new(int64)
|
||||||
szWalk := new(int64)
|
|
||||||
|
|
||||||
tsRef := func(blkCids []cid.Cid) (cid.Cid, error) {
|
tsRef := func(blkCids []cid.Cid) (cid.Cid, error) {
|
||||||
return types.NewTipSetKey(blkCids...).Cid()
|
return types.NewTipSetKey(blkCids...).Cid()
|
||||||
@@ -1001,64 +939,48 @@ func (s *SplitStore) walkChain(ts *types.TipSet, inclState, inclMsgs abi.ChainEp
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return xerrors.Errorf("error computing cid reference to parent tipset")
|
return xerrors.Errorf("error computing cid reference to parent tipset")
|
||||||
}
|
}
|
||||||
sz, err := s.walkObjectIncomplete(pRef, visitor, fHot, stopWalk)
|
if err := s.walkObjectIncomplete(pRef, visitor, fHot, stopWalk); err != nil {
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("error walking parent tipset cid reference")
|
return xerrors.Errorf("error walking parent tipset cid reference")
|
||||||
}
|
}
|
||||||
atomic.AddInt64(szWalk, sz)
|
|
||||||
|
|
||||||
// message are retained if within the inclMsgs boundary
|
// message are retained if within the inclMsgs boundary
|
||||||
if hdr.Height >= inclMsgs && hdr.Height > 0 {
|
if hdr.Height >= inclMsgs && hdr.Height > 0 {
|
||||||
if inclMsgs < inclState {
|
if inclMsgs < inclState {
|
||||||
// we need to use walkObjectIncomplete here, as messages/receipts may be missing early on if we
|
// we need to use walkObjectIncomplete here, as messages/receipts may be missing early on if we
|
||||||
// synced from snapshot and have a long HotStoreMessageRetentionPolicy.
|
// synced from snapshot and have a long HotStoreMessageRetentionPolicy.
|
||||||
sz, err := s.walkObjectIncomplete(hdr.Messages, visitor, fHot, stopWalk)
|
if err := s.walkObjectIncomplete(hdr.Messages, visitor, fHot, stopWalk); err != nil {
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("error walking messages (cid: %s): %w", hdr.Messages, err)
|
return xerrors.Errorf("error walking messages (cid: %s): %w", hdr.Messages, err)
|
||||||
}
|
}
|
||||||
atomic.AddInt64(szWalk, sz)
|
|
||||||
|
|
||||||
sz, err = s.walkObjectIncomplete(hdr.ParentMessageReceipts, visitor, fHot, stopWalk)
|
if err := s.walkObjectIncomplete(hdr.ParentMessageReceipts, visitor, fHot, stopWalk); err != nil {
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("error walking messages receipts (cid: %s): %w", hdr.ParentMessageReceipts, err)
|
return xerrors.Errorf("error walking messages receipts (cid: %s): %w", hdr.ParentMessageReceipts, err)
|
||||||
}
|
}
|
||||||
atomic.AddInt64(szWalk, sz)
|
|
||||||
} else {
|
} else {
|
||||||
sz, err = s.walkObject(hdr.Messages, visitor, fHot)
|
if err := s.walkObject(hdr.Messages, visitor, fHot); err != nil {
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("error walking messages (cid: %s): %w", hdr.Messages, err)
|
return xerrors.Errorf("error walking messages (cid: %s): %w", hdr.Messages, err)
|
||||||
}
|
}
|
||||||
atomic.AddInt64(szWalk, sz)
|
|
||||||
|
|
||||||
sz, err := s.walkObjectIncomplete(hdr.ParentMessageReceipts, visitor, fHot, stopWalk)
|
if err := s.walkObjectIncomplete(hdr.ParentMessageReceipts, visitor, fHot, stopWalk); err != nil {
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("error walking message receipts (cid: %s): %w", hdr.ParentMessageReceipts, err)
|
return xerrors.Errorf("error walking message receipts (cid: %s): %w", hdr.ParentMessageReceipts, err)
|
||||||
}
|
}
|
||||||
atomic.AddInt64(szWalk, sz)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// messages and receipts outside of inclMsgs are included in the cold store
|
// messages and receipts outside of inclMsgs are included in the cold store
|
||||||
if hdr.Height < inclMsgs && hdr.Height > 0 {
|
if hdr.Height < inclMsgs && hdr.Height > 0 {
|
||||||
sz, err := s.walkObjectIncomplete(hdr.Messages, visitor, fCold, stopWalk)
|
if err := s.walkObjectIncomplete(hdr.Messages, visitor, fCold, stopWalk); err != nil {
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("error walking messages (cid: %s): %w", hdr.Messages, err)
|
return xerrors.Errorf("error walking messages (cid: %s): %w", hdr.Messages, err)
|
||||||
}
|
}
|
||||||
atomic.AddInt64(szWalk, sz)
|
if err := s.walkObjectIncomplete(hdr.ParentMessageReceipts, visitor, fCold, stopWalk); err != nil {
|
||||||
sz, err = s.walkObjectIncomplete(hdr.ParentMessageReceipts, visitor, fCold, stopWalk)
|
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("error walking messages receipts (cid: %s): %w", hdr.ParentMessageReceipts, err)
|
return xerrors.Errorf("error walking messages receipts (cid: %s): %w", hdr.ParentMessageReceipts, err)
|
||||||
}
|
}
|
||||||
atomic.AddInt64(szWalk, sz)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// state is only retained if within the inclState boundary, with the exception of genesis
|
// state is only retained if within the inclState boundary, with the exception of genesis
|
||||||
if hdr.Height >= inclState || hdr.Height == 0 {
|
if hdr.Height >= inclState || hdr.Height == 0 {
|
||||||
sz, err := s.walkObject(hdr.ParentStateRoot, visitor, fHot)
|
if err := s.walkObject(hdr.ParentStateRoot, visitor, fHot); err != nil {
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("error walking state root (cid: %s): %w", hdr.ParentStateRoot, err)
|
return xerrors.Errorf("error walking state root (cid: %s): %w", hdr.ParentStateRoot, err)
|
||||||
}
|
}
|
||||||
atomic.AddInt64(szWalk, sz)
|
|
||||||
atomic.AddInt64(scanCnt, 1)
|
atomic.AddInt64(scanCnt, 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1076,15 +998,13 @@ func (s *SplitStore) walkChain(ts *types.TipSet, inclState, inclMsgs abi.ChainEp
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return xerrors.Errorf("error computing cid reference to parent tipset")
|
return xerrors.Errorf("error computing cid reference to parent tipset")
|
||||||
}
|
}
|
||||||
sz, err := s.walkObjectIncomplete(hRef, visitor, fHot, stopWalk)
|
if err := s.walkObjectIncomplete(hRef, visitor, fHot, stopWalk); err != nil {
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("error walking parent tipset cid reference")
|
return xerrors.Errorf("error walking parent tipset cid reference")
|
||||||
}
|
}
|
||||||
atomic.AddInt64(szWalk, sz)
|
|
||||||
|
|
||||||
for len(toWalk) > 0 {
|
for len(toWalk) > 0 {
|
||||||
// walking can take a while, so check this with every opportunity
|
// walking can take a while, so check this with every opportunity
|
||||||
if err := s.checkYield(); err != nil {
|
if err := s.checkClosing(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1114,143 +1034,133 @@ func (s *SplitStore) walkChain(ts *types.TipSet, inclState, inclMsgs abi.ChainEp
|
|||||||
if err := walkBlock(c); err != nil {
|
if err := walkBlock(c); err != nil {
|
||||||
return xerrors.Errorf("error walking block (cid: %s): %w", c, err)
|
return xerrors.Errorf("error walking block (cid: %s): %w", c, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := s.checkYield(); err != nil {
|
|
||||||
return xerrors.Errorf("check yield: %w", err)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := g.Wait(); err != nil {
|
if err := g.Wait(); err != nil {
|
||||||
return xerrors.Errorf("walkBlock workers errored: %w", err)
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Infow("chain walk done", "walked", *walkCnt, "scanned", *scanCnt, "walk size", szWalk)
|
log.Infow("chain walk done", "walked", *walkCnt, "scanned", *scanCnt)
|
||||||
s.szWalk = atomic.LoadInt64(szWalk)
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *SplitStore) walkObject(c cid.Cid, visitor ObjectVisitor, f func(cid.Cid) error) (int64, error) {
|
func (s *SplitStore) walkObject(c cid.Cid, visitor ObjectVisitor, f func(cid.Cid) error) error {
|
||||||
var sz int64
|
|
||||||
visit, err := visitor.Visit(c)
|
visit, err := visitor.Visit(c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, xerrors.Errorf("error visiting object: %w", err)
|
return xerrors.Errorf("error visiting object: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if !visit {
|
if !visit {
|
||||||
return sz, nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := f(c); err != nil {
|
if err := f(c); err != nil {
|
||||||
if err == errStopWalk {
|
if err == errStopWalk {
|
||||||
return sz, nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0, err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.Prefix().Codec != cid.DagCBOR {
|
if c.Prefix().Codec != cid.DagCBOR {
|
||||||
return sz, nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// check this before recursing
|
// check this before recursing
|
||||||
if err := s.checkClosing(); err != nil {
|
if err := s.checkClosing(); err != nil {
|
||||||
return 0, xerrors.Errorf("check closing: %w", err)
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
var links []cid.Cid
|
var links []cid.Cid
|
||||||
err = s.view(c, func(data []byte) error {
|
err = s.view(c, func(data []byte) error {
|
||||||
sz += int64(len(data))
|
|
||||||
return cbg.ScanForLinks(bytes.NewReader(data), func(c cid.Cid) {
|
return cbg.ScanForLinks(bytes.NewReader(data), func(c cid.Cid) {
|
||||||
links = append(links, c)
|
links = append(links, c)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, xerrors.Errorf("error scanning linked block (cid: %s): %w", c, err)
|
return xerrors.Errorf("error scanning linked block (cid: %s): %w", c, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, c := range links {
|
for _, c := range links {
|
||||||
szLink, err := s.walkObject(c, visitor, f)
|
err := s.walkObject(c, visitor, f)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, xerrors.Errorf("error walking link (cid: %s): %w", c, err)
|
return xerrors.Errorf("error walking link (cid: %s): %w", c, err)
|
||||||
}
|
}
|
||||||
sz += szLink
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return sz, nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// like walkObject, but the object may be potentially incomplete (references missing)
|
// like walkObject, but the object may be potentially incomplete (references missing)
|
||||||
func (s *SplitStore) walkObjectIncomplete(c cid.Cid, visitor ObjectVisitor, f, missing func(cid.Cid) error) (int64, error) {
|
func (s *SplitStore) walkObjectIncomplete(c cid.Cid, visitor ObjectVisitor, f, missing func(cid.Cid) error) error {
|
||||||
var sz int64
|
|
||||||
visit, err := visitor.Visit(c)
|
visit, err := visitor.Visit(c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, xerrors.Errorf("error visiting object: %w", err)
|
return xerrors.Errorf("error visiting object: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if !visit {
|
if !visit {
|
||||||
return sz, nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// occurs check -- only for DAGs
|
// occurs check -- only for DAGs
|
||||||
if c.Prefix().Codec == cid.DagCBOR {
|
if c.Prefix().Codec == cid.DagCBOR {
|
||||||
has, err := s.has(c)
|
has, err := s.has(c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, xerrors.Errorf("error occur checking %s: %w", c, err)
|
return xerrors.Errorf("error occur checking %s: %w", c, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if !has {
|
if !has {
|
||||||
err = missing(c)
|
err = missing(c)
|
||||||
if err == errStopWalk {
|
if err == errStopWalk {
|
||||||
return sz, nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0, err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := f(c); err != nil {
|
if err := f(c); err != nil {
|
||||||
if err == errStopWalk {
|
if err == errStopWalk {
|
||||||
return sz, nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0, err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.Prefix().Codec != cid.DagCBOR {
|
if c.Prefix().Codec != cid.DagCBOR {
|
||||||
return sz, nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// check this before recursing
|
// check this before recursing
|
||||||
if err := s.checkClosing(); err != nil {
|
if err := s.checkClosing(); err != nil {
|
||||||
return sz, xerrors.Errorf("check closing: %w", err)
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
var links []cid.Cid
|
var links []cid.Cid
|
||||||
err = s.view(c, func(data []byte) error {
|
err = s.view(c, func(data []byte) error {
|
||||||
sz += int64(len(data))
|
|
||||||
return cbg.ScanForLinks(bytes.NewReader(data), func(c cid.Cid) {
|
return cbg.ScanForLinks(bytes.NewReader(data), func(c cid.Cid) {
|
||||||
links = append(links, c)
|
links = append(links, c)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, xerrors.Errorf("error scanning linked block (cid: %s): %w", c, err)
|
return xerrors.Errorf("error scanning linked block (cid: %s): %w", c, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, c := range links {
|
for _, c := range links {
|
||||||
szLink, err := s.walkObjectIncomplete(c, visitor, f, missing)
|
err := s.walkObjectIncomplete(c, visitor, f, missing)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, xerrors.Errorf("error walking link (cid: %s): %w", c, err)
|
return xerrors.Errorf("error walking link (cid: %s): %w", c, err)
|
||||||
}
|
}
|
||||||
sz += szLink
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return sz, nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// internal version used during compaction and related operations
|
// internal version used during compaction and related operations
|
||||||
@@ -1313,7 +1223,7 @@ func (s *SplitStore) moveColdBlocks(coldr *ColdSetReader) error {
|
|||||||
batch := make([]blocks.Block, 0, batchSize)
|
batch := make([]blocks.Block, 0, batchSize)
|
||||||
|
|
||||||
err := coldr.ForEach(func(c cid.Cid) error {
|
err := coldr.ForEach(func(c cid.Cid) error {
|
||||||
if err := s.checkYield(); err != nil {
|
if err := s.checkClosing(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
blk, err := s.hot.Get(s.ctx, c)
|
blk, err := s.hot.Get(s.ctx, c)
|
||||||
@@ -1516,9 +1426,8 @@ func (s *SplitStore) completeCompaction() error {
|
|||||||
}
|
}
|
||||||
s.compactType = none
|
s.compactType = none
|
||||||
|
|
||||||
// Note: at this point we can start the splitstore; base epoch is not
|
// Note: at this point we can start the splitstore; a compaction should run on
|
||||||
// incremented here so a compaction should run on the first head
|
// the first head change, which will trigger gc on the hotstore.
|
||||||
// change, which will trigger gc on the hotstore.
|
|
||||||
// We don't mind the second (back-to-back) compaction as the head will
|
// We don't mind the second (back-to-back) compaction as the head will
|
||||||
// have advanced during marking and coldset accumulation.
|
// have advanced during marking and coldset accumulation.
|
||||||
return nil
|
return nil
|
||||||
@@ -1576,13 +1485,6 @@ func (s *SplitStore) completePurge(coldr *ColdSetReader, checkpoint *Checkpoint,
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *SplitStore) clearSizeMeasurements() {
|
|
||||||
s.szKeys = 0
|
|
||||||
s.szMarkedLiveRefs = 0
|
|
||||||
s.szProtectedTxns = 0
|
|
||||||
s.szWalk = 0
|
|
||||||
}
|
|
||||||
|
|
||||||
// I really don't like having this code, but we seem to have some occasional DAG references with
|
// I really don't like having this code, but we seem to have some occasional DAG references with
|
||||||
// missing constituents. During testing in mainnet *some* of these references *sometimes* appeared
|
// missing constituents. During testing in mainnet *some* of these references *sometimes* appeared
|
||||||
// after a little bit.
|
// after a little bit.
|
||||||
@@ -1623,7 +1525,7 @@ func (s *SplitStore) waitForMissingRefs(markSet MarkSet) {
|
|||||||
missing = make(map[cid.Cid]struct{})
|
missing = make(map[cid.Cid]struct{})
|
||||||
|
|
||||||
for c := range towalk {
|
for c := range towalk {
|
||||||
_, err := s.walkObjectIncomplete(c, visitor,
|
err := s.walkObjectIncomplete(c, visitor,
|
||||||
func(c cid.Cid) error {
|
func(c cid.Cid) error {
|
||||||
if isUnitaryObject(c) {
|
if isUnitaryObject(c) {
|
||||||
return errStopWalk
|
return errStopWalk
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
ipld "github.com/ipfs/go-ipld-format"
|
ipld "github.com/ipfs/go-ipld-format"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
|
|
||||||
bstore "github.com/filecoin-project/lotus/blockstore"
|
bstore "github.com/filecoin-project/lotus/blockstore"
|
||||||
)
|
)
|
||||||
@@ -77,10 +77,6 @@ func (es *exposedSplitStore) GetSize(ctx context.Context, c cid.Cid) (int, error
|
|||||||
return size, err
|
return size, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (es *exposedSplitStore) Flush(ctx context.Context) error {
|
|
||||||
return es.s.Flush(ctx)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (es *exposedSplitStore) Put(ctx context.Context, blk blocks.Block) error {
|
func (es *exposedSplitStore) Put(ctx context.Context, blk blocks.Block) error {
|
||||||
return es.s.Put(ctx, blk)
|
return es.s.Put(ctx, blk)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,74 +7,23 @@ import (
|
|||||||
bstore "github.com/filecoin-project/lotus/blockstore"
|
bstore "github.com/filecoin-project/lotus/blockstore"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
func (s *SplitStore) gcHotstore() {
|
||||||
// Fraction of garbage in badger vlog for online GC traversal to collect garbage
|
|
||||||
AggressiveOnlineGCThreshold = 0.0001
|
|
||||||
)
|
|
||||||
|
|
||||||
func (s *SplitStore) gcHotAfterCompaction() {
|
|
||||||
// Measure hotstore size, determine if we should do full GC, determine if we can do full GC.
|
|
||||||
// We should do full GC if
|
|
||||||
// FullGCFrequency is specified and compaction index matches frequency
|
|
||||||
// OR HotstoreMaxSpaceTarget is specified and total moving space is within 150 GB of target
|
|
||||||
// We can do full if
|
|
||||||
// HotstoreMaxSpaceTarget is not specified
|
|
||||||
// OR total moving space would not exceed 50 GB below target
|
|
||||||
//
|
|
||||||
// a) If we should not do full GC => online GC
|
|
||||||
// b) If we should do full GC and can => moving GC
|
|
||||||
// c) If we should do full GC and can't => aggressive online GC
|
|
||||||
getSize := func() int64 {
|
|
||||||
sizer, ok := s.hot.(bstore.BlockstoreSize)
|
|
||||||
if ok {
|
|
||||||
size, err := sizer.Size()
|
|
||||||
if err != nil {
|
|
||||||
log.Warnf("error getting hotstore size: %s, estimating empty hot store for targeting", err)
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
return size
|
|
||||||
}
|
|
||||||
log.Errorf("Could not measure hotstore size, assuming it is 0 bytes, which it is not")
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
hotSize := getSize()
|
|
||||||
|
|
||||||
copySizeApprox := s.szKeys + s.szMarkedLiveRefs + s.szProtectedTxns + s.szWalk
|
|
||||||
shouldTarget := s.cfg.HotstoreMaxSpaceTarget > 0 && hotSize+copySizeApprox > int64(s.cfg.HotstoreMaxSpaceTarget)-int64(s.cfg.HotstoreMaxSpaceThreshold)
|
|
||||||
shouldFreq := s.cfg.HotStoreFullGCFrequency > 0 && s.compactionIndex%int64(s.cfg.HotStoreFullGCFrequency) == 0
|
|
||||||
shouldDoFull := shouldTarget || shouldFreq
|
|
||||||
canDoFull := s.cfg.HotstoreMaxSpaceTarget == 0 || hotSize+copySizeApprox < int64(s.cfg.HotstoreMaxSpaceTarget)-int64(s.cfg.HotstoreMaxSpaceSafetyBuffer)
|
|
||||||
log.Debugw("approximating new hot store size", "key size", s.szKeys, "marked live refs", s.szMarkedLiveRefs, "protected txns", s.szProtectedTxns, "walked DAG", s.szWalk)
|
|
||||||
log.Infof("measured hot store size: %d, approximate new size: %d, should do full %t, can do full %t", hotSize, copySizeApprox, shouldDoFull, canDoFull)
|
|
||||||
|
|
||||||
var opts []bstore.BlockstoreGCOption
|
var opts []bstore.BlockstoreGCOption
|
||||||
if shouldDoFull && canDoFull {
|
if s.cfg.HotStoreFullGCFrequency > 0 && s.compactionIndex%int64(s.cfg.HotStoreFullGCFrequency) == 0 {
|
||||||
opts = append(opts, bstore.WithFullGC(true))
|
opts = append(opts, bstore.WithFullGC(true))
|
||||||
} else if shouldDoFull && !canDoFull {
|
|
||||||
log.Warnf("Attention! Estimated moving GC size %d is not within safety buffer %d of target max %d, performing aggressive online GC to attempt to bring hotstore size down safely", copySizeApprox, s.cfg.HotstoreMaxSpaceSafetyBuffer, s.cfg.HotstoreMaxSpaceTarget)
|
|
||||||
log.Warn("If problem continues you can 1) temporarily allocate more disk space to hotstore and 2) reflect in HotstoreMaxSpaceTarget OR trigger manual move with `lotus chain prune hot-moving`")
|
|
||||||
log.Warn("If problem continues and you do not have any more disk space you can run continue to manually trigger online GC at aggressive thresholds (< 0.01) with `lotus chain prune hot`")
|
|
||||||
|
|
||||||
opts = append(opts, bstore.WithThreshold(AggressiveOnlineGCThreshold))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := s.gcBlockstore(s.hot, opts); err != nil {
|
if err := s.gcBlockstore(s.hot, opts); err != nil {
|
||||||
log.Warnf("error garbage collecting hostore: %s", err)
|
log.Warnf("error garbage collecting hostore: %s", err)
|
||||||
}
|
}
|
||||||
log.Infof("measured hot store size after GC: %d", getSize())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *SplitStore) gcBlockstore(b bstore.Blockstore, opts []bstore.BlockstoreGCOption) error {
|
func (s *SplitStore) gcBlockstore(b bstore.Blockstore, opts []bstore.BlockstoreGCOption) error {
|
||||||
if err := s.checkYield(); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if gc, ok := b.(bstore.BlockstoreGC); ok {
|
if gc, ok := b.(bstore.BlockstoreGC); ok {
|
||||||
log.Info("garbage collecting blockstore")
|
log.Info("garbage collecting blockstore")
|
||||||
startGC := time.Now()
|
startGC := time.Now()
|
||||||
|
|
||||||
opts = append(opts, bstore.WithCheckFreq(90*time.Second))
|
if err := gc.CollectGarbage(opts...); err != nil {
|
||||||
opts = append(opts, bstore.WithCheck(s.checkYield))
|
|
||||||
if err := gc.CollectGarbage(s.ctx, opts...); err != nil {
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -84,19 +33,3 @@ func (s *SplitStore) gcBlockstore(b bstore.Blockstore, opts []bstore.BlockstoreG
|
|||||||
|
|
||||||
return fmt.Errorf("blockstore doesn't support garbage collection: %T", b)
|
return fmt.Errorf("blockstore doesn't support garbage collection: %T", b)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *SplitStore) gcBlockstoreOnce(b bstore.Blockstore, opts []bstore.BlockstoreGCOption) error {
|
|
||||||
if gc, ok := b.(bstore.BlockstoreGCOnce); ok {
|
|
||||||
log.Debug("gc blockstore once")
|
|
||||||
startGC := time.Now()
|
|
||||||
|
|
||||||
if err := gc.GCOnce(s.ctx, opts...); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Debugw("gc blockstore once done", "took", time.Since(startGC))
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
return fmt.Errorf("blockstore doesn't support gc once: %T", b)
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -47,23 +47,6 @@ var (
|
|||||||
PruneThreshold = 7 * build.Finality
|
PruneThreshold = 7 * build.Finality
|
||||||
)
|
)
|
||||||
|
|
||||||
// GCHotstore runs online GC on the chain state in the hotstore according the to options specified
|
|
||||||
func (s *SplitStore) GCHotStore(opts api.HotGCOpts) error {
|
|
||||||
if opts.Moving {
|
|
||||||
gcOpts := []bstore.BlockstoreGCOption{bstore.WithFullGC(true)}
|
|
||||||
return s.gcBlockstore(s.hot, gcOpts)
|
|
||||||
}
|
|
||||||
|
|
||||||
gcOpts := []bstore.BlockstoreGCOption{bstore.WithThreshold(opts.Threshold)}
|
|
||||||
var err error
|
|
||||||
if opts.Periodic {
|
|
||||||
err = s.gcBlockstore(s.hot, gcOpts)
|
|
||||||
} else {
|
|
||||||
err = s.gcBlockstoreOnce(s.hot, gcOpts)
|
|
||||||
}
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// PruneChain instructs the SplitStore to prune chain state in the coldstore, according to the
|
// PruneChain instructs the SplitStore to prune chain state in the coldstore, according to the
|
||||||
// options specified.
|
// options specified.
|
||||||
func (s *SplitStore) PruneChain(opts api.PruneOpts) error {
|
func (s *SplitStore) PruneChain(opts api.PruneOpts) error {
|
||||||
@@ -346,9 +329,9 @@ func (s *SplitStore) doPrune(curTs *types.TipSet, retainStateP func(int64) bool,
|
|||||||
}
|
}
|
||||||
|
|
||||||
s.pruneIndex++
|
s.pruneIndex++
|
||||||
err = s.ds.Put(s.ctx, pruneIndexKey, int64ToBytes(s.pruneIndex))
|
err = s.ds.Put(s.ctx, pruneIndexKey, int64ToBytes(s.compactionIndex))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return xerrors.Errorf("error saving prune index: %w", err)
|
return xerrors.Errorf("error saving compaction index: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import (
|
|||||||
"runtime"
|
"runtime"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
"golang.org/x/xerrors"
|
"golang.org/x/xerrors"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -101,7 +101,7 @@ func (s *SplitStore) doReify(c cid.Cid) {
|
|||||||
defer s.txnLk.RUnlock()
|
defer s.txnLk.RUnlock()
|
||||||
|
|
||||||
count := 0
|
count := 0
|
||||||
_, err := s.walkObjectIncomplete(c, newTmpVisitor(),
|
err := s.walkObjectIncomplete(c, newTmpVisitor(),
|
||||||
func(c cid.Cid) error {
|
func(c cid.Cid) error {
|
||||||
if isUnitaryObject(c) {
|
if isUnitaryObject(c) {
|
||||||
return errStopWalk
|
return errStopWalk
|
||||||
|
|||||||
@@ -11,11 +11,11 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
"github.com/ipfs/go-datastore"
|
"github.com/ipfs/go-datastore"
|
||||||
dssync "github.com/ipfs/go-datastore/sync"
|
dssync "github.com/ipfs/go-datastore/sync"
|
||||||
ipld "github.com/ipfs/go-ipld-format"
|
ipld "github.com/ipfs/go-ipld-format"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
logging "github.com/ipfs/go-log/v2"
|
logging "github.com/ipfs/go-log/v2"
|
||||||
mh "github.com/multiformats/go-multihash"
|
mh "github.com/multiformats/go-multihash"
|
||||||
|
|
||||||
@@ -429,7 +429,7 @@ func testSplitStoreReification(t *testing.T, f func(context.Context, blockstore.
|
|||||||
}
|
}
|
||||||
defer ss.Close() //nolint
|
defer ss.Close() //nolint
|
||||||
|
|
||||||
ss.warmupEpoch.Store(1)
|
ss.warmupEpoch = 1
|
||||||
go ss.reifyOrchestrator()
|
go ss.reifyOrchestrator()
|
||||||
|
|
||||||
waitForReification := func() {
|
waitForReification := func() {
|
||||||
@@ -529,7 +529,7 @@ func testSplitStoreReificationLimit(t *testing.T, f func(context.Context, blocks
|
|||||||
}
|
}
|
||||||
defer ss.Close() //nolint
|
defer ss.Close() //nolint
|
||||||
|
|
||||||
ss.warmupEpoch.Store(1)
|
ss.warmupEpoch = 1
|
||||||
go ss.reifyOrchestrator()
|
go ss.reifyOrchestrator()
|
||||||
|
|
||||||
waitForReification := func() {
|
waitForReification := func() {
|
||||||
@@ -757,8 +757,6 @@ func (b *mockStore) DeleteMany(_ context.Context, cids []cid.Cid) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *mockStore) Flush(context.Context) error { return nil }
|
|
||||||
|
|
||||||
func (b *mockStore) AllKeysChan(ctx context.Context) (<-chan cid.Cid, error) {
|
func (b *mockStore) AllKeysChan(ctx context.Context) (<-chan cid.Cid, error) {
|
||||||
return nil, errors.New("not implemented")
|
return nil, errors.New("not implemented")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ import (
|
|||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
ipld "github.com/ipfs/go-ipld-format"
|
ipld "github.com/ipfs/go-ipld-format"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
"golang.org/x/xerrors"
|
"golang.org/x/xerrors"
|
||||||
|
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
@@ -136,8 +136,9 @@ func (s *SplitStore) doWarmup(curTs *types.TipSet) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return xerrors.Errorf("error saving warm up epoch: %w", err)
|
return xerrors.Errorf("error saving warm up epoch: %w", err)
|
||||||
}
|
}
|
||||||
|
s.mx.Lock()
|
||||||
s.warmupEpoch.Store(int64(epoch))
|
s.warmupEpoch = epoch
|
||||||
|
s.mx.Unlock()
|
||||||
|
|
||||||
// also save the compactionIndex, as this is used as an indicator of warmup for upgraded nodes
|
// also save the compactionIndex, as this is used as an indicator of warmup for upgraded nodes
|
||||||
err = s.ds.Put(s.ctx, compactionIndexKey, int64ToBytes(s.compactionIndex))
|
err = s.ds.Put(s.ctx, compactionIndexKey, int64ToBytes(s.compactionIndex))
|
||||||
|
|||||||
+1
-3
@@ -4,8 +4,8 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
)
|
)
|
||||||
|
|
||||||
// NewMemorySync returns a thread-safe in-memory blockstore.
|
// NewMemorySync returns a thread-safe in-memory blockstore.
|
||||||
@@ -20,8 +20,6 @@ type SyncBlockstore struct {
|
|||||||
bs MemBlockstore // specifically use a memStore to save indirection overhead.
|
bs MemBlockstore // specifically use a memStore to save indirection overhead.
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*SyncBlockstore) Flush(context.Context) error { return nil }
|
|
||||||
|
|
||||||
func (m *SyncBlockstore) DeleteBlock(ctx context.Context, k cid.Cid) error {
|
func (m *SyncBlockstore) DeleteBlock(ctx context.Context, k cid.Cid) error {
|
||||||
m.mu.Lock()
|
m.mu.Lock()
|
||||||
defer m.mu.Unlock()
|
defer m.mu.Unlock()
|
||||||
|
|||||||
+1
-11
@@ -6,9 +6,9 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
ipld "github.com/ipfs/go-ipld-format"
|
ipld "github.com/ipfs/go-ipld-format"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
"github.com/raulk/clock"
|
"github.com/raulk/clock"
|
||||||
"go.uber.org/multierr"
|
"go.uber.org/multierr"
|
||||||
)
|
)
|
||||||
@@ -93,16 +93,6 @@ func (t *TimedCacheBlockstore) rotate() {
|
|||||||
t.mu.Unlock()
|
t.mu.Unlock()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *TimedCacheBlockstore) Flush(ctx context.Context) error {
|
|
||||||
t.mu.Lock()
|
|
||||||
defer t.mu.Unlock()
|
|
||||||
|
|
||||||
if err := t.active.Flush(ctx); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return t.inactive.Flush(ctx)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t *TimedCacheBlockstore) Put(ctx context.Context, b blocks.Block) error {
|
func (t *TimedCacheBlockstore) Put(ctx context.Context, b blocks.Block) error {
|
||||||
// Don't check the inactive set here. We want to keep this block for at
|
// Don't check the inactive set here. We want to keep this block for at
|
||||||
// least one interval.
|
// least one interval.
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
"github.com/raulk/clock"
|
"github.com/raulk/clock"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|||||||
+1
-10
@@ -3,9 +3,9 @@ package blockstore
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
ipld "github.com/ipfs/go-ipld-format"
|
ipld "github.com/ipfs/go-ipld-format"
|
||||||
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
)
|
)
|
||||||
|
|
||||||
type unionBlockstore []Blockstore
|
type unionBlockstore []Blockstore
|
||||||
@@ -55,15 +55,6 @@ func (m unionBlockstore) GetSize(ctx context.Context, cid cid.Cid) (size int, er
|
|||||||
return size, err
|
return size, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m unionBlockstore) Flush(ctx context.Context) (err error) {
|
|
||||||
for _, bs := range m {
|
|
||||||
if err = bs.Flush(ctx); err != nil {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m unionBlockstore) Put(ctx context.Context, block blocks.Block) (err error) {
|
func (m unionBlockstore) Put(ctx context.Context, block blocks.Block) (err error) {
|
||||||
for _, bs := range m {
|
for _, bs := range m {
|
||||||
if err = bs.Put(ctx, block); err != nil {
|
if err = bs.Put(ctx, block); err != nil {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
blocks "github.com/ipfs/go-block-format"
|
blocks "github.com/ipfs/go-libipfs/blocks"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -1,2 +1,2 @@
|
|||||||
/dns4/bootstrap-0.butterfly.fildev.network/tcp/1347/p2p/12D3KooWNwAkUtWuLtKCyyFP2vBzmpTHSrQao7KQx7Xfa8YvSg1N
|
/dns4/bootstrap-0.butterfly.fildev.network/tcp/1347/p2p/12D3KooWEwwFTMAi8rMnVX4fzih9pW5xZgTMbcacAFPinaT1g4wo
|
||||||
/dns4/bootstrap-1.butterfly.fildev.network/tcp/1347/p2p/12D3KooWPn8BDeNcctAcAGuxxiic8uMw2pAi3G5vgdFtfgRs5zBu
|
/dns4/bootstrap-1.butterfly.fildev.network/tcp/1347/p2p/12D3KooWSJ8KShJSdW8cqz29K7k3AR5frbAaun8gdW3ELFV3T4Ck
|
||||||
|
|||||||
+2
-16
@@ -42,13 +42,6 @@ func init() {
|
|||||||
if err := loadManifests(NetworkBundle); err != nil {
|
if err := loadManifests(NetworkBundle); err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// The following code cid existed temporarily on the calibnet testnet, as a "buggy" storage miner actor implementation.
|
|
||||||
// We include them in our builtin bundle, but intentionally omit from metadata.
|
|
||||||
if NetworkBundle == "calibrationnet" {
|
|
||||||
actors.AddActorMeta("storageminer", cid.MustParse("bafk2bzacecnh2ouohmonvebq7uughh4h3ppmg4cjsk74dzxlbbtlcij4xbzxq"), actorstypes.Version12)
|
|
||||||
actors.AddActorMeta("storageminer", cid.MustParse("bafk2bzaced7emkbbnrewv5uvrokxpf5tlm4jslu2jsv77ofw2yqdglg657uie"), actorstypes.Version12)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// UseNetworkBundle switches to a different network bundle, by name.
|
// UseNetworkBundle switches to a different network bundle, by name.
|
||||||
@@ -190,13 +183,6 @@ func readEmbeddedBuiltinActorsMetadata(bundle string) ([]*BuiltinActorsMetadata,
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, xerrors.Errorf("error loading builtin actors bundle: %w", err)
|
return nil, xerrors.Errorf("error loading builtin actors bundle: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// The following manifest cids existed temporarily on the calibnet testnet
|
|
||||||
// We include them in our builtin bundle, but intentionally omit from metadata
|
|
||||||
if root == cid.MustParse("bafy2bzacedrunxfqta5skb7q7x32lnp4efz2oq7fn226ffm7fu5iqs62jkmvs") ||
|
|
||||||
root == cid.MustParse("bafy2bzacebl4w5ptfvuw6746w7ev562idkbf5ppq72e6zub22435ws2rukzru") {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
bundles = append(bundles, &BuiltinActorsMetadata{
|
bundles = append(bundles, &BuiltinActorsMetadata{
|
||||||
Network: name,
|
Network: name,
|
||||||
Version: actorstypes.Version(version),
|
Version: actorstypes.Version(version),
|
||||||
@@ -246,7 +232,7 @@ func readBundleManifest(r io.Reader) (cid.Cid, map[string]cid.Cid, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GetEmbeddedBuiltinActorsBundle returns the builtin-actors bundle for the given actors version.
|
// GetEmbeddedBuiltinActorsBundle returns the builtin-actors bundle for the given actors version.
|
||||||
func GetEmbeddedBuiltinActorsBundle(version actorstypes.Version, networkBundleName string) ([]byte, bool) {
|
func GetEmbeddedBuiltinActorsBundle(version actorstypes.Version) ([]byte, bool) {
|
||||||
fi, err := embeddedBuiltinActorReleases.Open(fmt.Sprintf("actors/v%d.tar.zst", version))
|
fi, err := embeddedBuiltinActorReleases.Open(fmt.Sprintf("actors/v%d.tar.zst", version))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, false
|
return nil, false
|
||||||
@@ -257,7 +243,7 @@ func GetEmbeddedBuiltinActorsBundle(version actorstypes.Version, networkBundleNa
|
|||||||
defer uncompressed.Close() //nolint
|
defer uncompressed.Close() //nolint
|
||||||
|
|
||||||
tarReader := tar.NewReader(uncompressed)
|
tarReader := tar.NewReader(uncompressed)
|
||||||
targetFileName := fmt.Sprintf("builtin-actors-%s.car", networkBundleName)
|
targetFileName := fmt.Sprintf("builtin-actors-%s.car", NetworkBundle)
|
||||||
for {
|
for {
|
||||||
header, err := tarReader.Next()
|
header, err := tarReader.Next()
|
||||||
switch err {
|
switch err {
|
||||||
|
|||||||
+112
-273
@@ -71,51 +71,28 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
|
|||||||
"system": MustParseCid("bafk2bzacebojf25kc5yo7gskdbdgg5f52oppej2jp6nknzlvrww4ue5vkddd2"),
|
"system": MustParseCid("bafk2bzacebojf25kc5yo7gskdbdgg5f52oppej2jp6nknzlvrww4ue5vkddd2"),
|
||||||
"verifiedregistry": MustParseCid("bafk2bzaceavue3zekq4wmvttck2vgxlcensrsgh5niu5qhna2owejycorftcc"),
|
"verifiedregistry": MustParseCid("bafk2bzaceavue3zekq4wmvttck2vgxlcensrsgh5niu5qhna2owejycorftcc"),
|
||||||
},
|
},
|
||||||
}, {
|
|
||||||
Network: "butterflynet",
|
|
||||||
Version: 11,
|
|
||||||
|
|
||||||
ManifestCid: MustParseCid("bafy2bzaceaiy4dsxxus5xp5n5i4tjzkb7sc54mjz7qnk2efhgmsrobjesxnza"),
|
|
||||||
Actors: map[string]cid.Cid{
|
|
||||||
"account": MustParseCid("bafk2bzacecfdqb7p3jakhaa3cqnzpt7hxmhghrbxvafsylqno3febx55fnidw"),
|
|
||||||
"cron": MustParseCid("bafk2bzaceavmqu2qihgbe3xdaotgypuzvdpiifnm7ll6rolks2u4lac6voosk"),
|
|
||||||
"datacap": MustParseCid("bafk2bzacealtvh65rzb34fmyzw4m2np2htnio4w3pn4alzqovwxkdbf23dvpo"),
|
|
||||||
"eam": MustParseCid("bafk2bzacedko6hcjmwpuwgma5pb4gr2wgyvregk3nqqjxit7dv4es6vh5cjoc"),
|
|
||||||
"ethaccount": MustParseCid("bafk2bzacedhcei2xnr34poxr4xziypm2obqlibke4cs2cjfnr3sz6nf6h7fyy"),
|
|
||||||
"evm": MustParseCid("bafk2bzacebn5lwxboiikhz67ajwa34v2lc4qevnhpwdnipbmrnutkvrrqkb46"),
|
|
||||||
"init": MustParseCid("bafk2bzacea6vw4esh5tg7mprv5jkbx5xcyilcy4vvf64lss32mjyuvv2mh5ng"),
|
|
||||||
"multisig": MustParseCid("bafk2bzacedq2afnwcfipay5twv5mgzjoio5bbjvyo4yqchdwqcr7wrareyx54"),
|
|
||||||
"paymentchannel": MustParseCid("bafk2bzacebbsvr7i7mqmaadyjibe5wxnv7bwvvec2wlgknuwda6ep45amnd5w"),
|
|
||||||
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
|
||||||
"reward": MustParseCid("bafk2bzaceafuh6idvaqqkj353vs4qdl42tcmvnymewu5zf4rq2nruxdyunses"),
|
|
||||||
"storagemarket": MustParseCid("bafk2bzaceb7bx4honi3byjllpdk6fea32dpu3vqvil3okodybdk5m3erlnwjw"),
|
|
||||||
"storageminer": MustParseCid("bafk2bzacebxjhofdr3sb2uhy2ky2vcijh4nhmwkh5xijtbgk6dzkknji2kn7a"),
|
|
||||||
"storagepower": MustParseCid("bafk2bzaceabskmmkas6njbowols7t4ib3bipa5abpomk3jtgfwojtzd7mjzfm"),
|
|
||||||
"system": MustParseCid("bafk2bzacedtuh7cht3fud7fb4avl4g2zbz57lc4ohiaufpaex6dkmdokn5rgo"),
|
|
||||||
"verifiedregistry": MustParseCid("bafk2bzaceb37hxeuoo5rgf6ansrdl2ykm5v5zp6kireubn4orcopr67jbxv6k"),
|
|
||||||
},
|
|
||||||
}, {
|
}, {
|
||||||
Network: "butterflynet",
|
Network: "butterflynet",
|
||||||
Version: 12,
|
Version: 11,
|
||||||
BundleGitTag: "v12.0.0-rc.3",
|
BundleGitTag: "v11.0.0-rc2",
|
||||||
ManifestCid: MustParseCid("bafy2bzacectxvbk77ntedhztd6sszp2btrtvsmy7lp2ypnrk6yl74zb34t2cq"),
|
ManifestCid: MustParseCid("bafy2bzaceajj76ms4q2ka3ckzj2iiifl7ewxqdpolshcmhml32sqwolrmsh6e"),
|
||||||
Actors: map[string]cid.Cid{
|
Actors: map[string]cid.Cid{
|
||||||
"account": MustParseCid("bafk2bzacebp7anjdtg2sohyt6lromx4xs7nujtwdfcsffnptphaayabx7ysxs"),
|
"account": MustParseCid("bafk2bzacecsf7v7mm4osq7cqbygyudg5zkwqbpbkmi3iluakugzvbd2cuucfw"),
|
||||||
"cron": MustParseCid("bafk2bzacecu2y3awtemmglpkroiglulc2fj3gpdn6eazdqr6avcautiaighrg"),
|
"cron": MustParseCid("bafk2bzacediqvwudrujh7ejowrcumrnara7k2fonr35vulnggpwwwh3o32pmu"),
|
||||||
"datacap": MustParseCid("bafk2bzacebbh5aynu3v3fluqqrcdsphleodoig42xkid2ccwdnff3avhbdop4"),
|
"datacap": MustParseCid("bafk2bzaceb7jkx5kxwwbkw5ehz63sq2b6urouegn4cdczlziaw5ea44u67ock"),
|
||||||
"eam": MustParseCid("bafk2bzacebzwt4v4hqoltiblhliwrnttxpr2dggbu3wsrvq4pwzisp7idu5w4"),
|
"eam": MustParseCid("bafk2bzacebq2zzzkcra7ahantiq7xlkgcrkoq2azmeqpwhoie5gxcxhurbdp2"),
|
||||||
"ethaccount": MustParseCid("bafk2bzaceb5f6vgjkl7ic6ry5sjspqm2iij6qlcdovwi3haodb7wn37pgebii"),
|
"ethaccount": MustParseCid("bafk2bzacebrtwz4nyl3nkgjfpvtqjrjixnbujkr72fwzf5bqhpqfo4hgbjqo2"),
|
||||||
"evm": MustParseCid("bafk2bzacebygt6zh6p52rkg2ugehm4k5yuu6f56i2pu6ywrmjez4n4zsje4p4"),
|
"evm": MustParseCid("bafk2bzacecoxcwxbukue76b4rrqhnjywgzjdlhbbemma4kqdzalpkgtdpog7q"),
|
||||||
"init": MustParseCid("bafk2bzaceagyf3pwsthod7klfi25ow2zf2i5isfrrgr5ua3lvkgfojalrdbhw"),
|
"init": MustParseCid("bafk2bzacebwfs5wna2dculc4mpl4a25cjrmguoscbebeb5g5yft4ntfpku7cu"),
|
||||||
"multisig": MustParseCid("bafk2bzacedgfo5mw2zqjwi37lah27sfxj4cw2abylgtxf3ucep4dyhgnppmqe"),
|
"multisig": MustParseCid("bafk2bzaceavnestm7obwlj3moeewcnuomzigfzys4lt26s3l3psjeligf4hju"),
|
||||||
"paymentchannel": MustParseCid("bafk2bzacebm37tgu52cgzmiln6iip6etfmq73fd3qqz2j5gxlhtvachs7kw4c"),
|
"paymentchannel": MustParseCid("bafk2bzaceb4vefsbgswrciqo26wnacvqwpicqjfyicwsdjmv4rbcc4zeae72g"),
|
||||||
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
||||||
"reward": MustParseCid("bafk2bzacedebvitdsztwebi44t5es4ls3p3hor252igzawr3s6uznmbvzh2ou"),
|
"reward": MustParseCid("bafk2bzacedyl4uerjbw3tu5mcgkn7ftvr3j3poy4uv5tuzyuvcdinjb75cz3w"),
|
||||||
"storagemarket": MustParseCid("bafk2bzaceb2tdeqtt2eqpzeb3gezuchb7g7uzbd52bgvcdt6bg3ckq7oisb74"),
|
"storagemarket": MustParseCid("bafk2bzacechvhqru32tw7zii2raii3upjrkybiubepjtartyhzibnac57gxyo"),
|
||||||
"storageminer": MustParseCid("bafk2bzaceb62clldtod2jimnri5k2koxttf6vqtlsvkjhnwduzs7sgsoakglw"),
|
"storageminer": MustParseCid("bafk2bzacedu6tzfpxwzqym3z2j252d57gqj3jduap7ijf5mczvhmsirs6wxfs"),
|
||||||
"storagepower": MustParseCid("bafk2bzacedxvlj5xmhytdjrjqyonz37duvxb2ioyzk75c27yypkqalxuh3xh6"),
|
"storagepower": MustParseCid("bafk2bzacebdoeoiayvshg4zaxygmpuituux3ccd4gxfl3ile7ckpsyy7kpnms"),
|
||||||
"system": MustParseCid("bafk2bzacec3vwj2chzaram3iqupkbfiein5h2l5qiltlrngbju2vg5umelclm"),
|
"system": MustParseCid("bafk2bzaceatn5cj3jqmrug65ur26jhrzcgmishv5hjfswvsyxsieccchhwies"),
|
||||||
"verifiedregistry": MustParseCid("bafk2bzacedv2irkql7nil3w5v3ohqq3e54w62pxeoppjmaktzokolaaoh5ksu"),
|
"verifiedregistry": MustParseCid("bafk2bzacecjshlgoyim3r2uvhtjthu5udxpq5fvjy4pmpi3sy4v6a4chjvb4k"),
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
Network: "calibrationnet",
|
Network: "calibrationnet",
|
||||||
@@ -178,10 +155,10 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
|
|||||||
"verifiedregistry": MustParseCid("bafk2bzacec67wuchq64k7kgrujguukjvdlsl24pgighqdx5vgjhyk6bycrwnc"),
|
"verifiedregistry": MustParseCid("bafk2bzacec67wuchq64k7kgrujguukjvdlsl24pgighqdx5vgjhyk6bycrwnc"),
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
Network: "calibrationnet",
|
Network: "calibrationnet",
|
||||||
Version: 11,
|
Version: 11,
|
||||||
|
BundleGitTag: "v11.0.0-rc2",
|
||||||
ManifestCid: MustParseCid("bafy2bzacedhuowetjy2h4cxnijz2l64h4mzpk5m256oywp4evarpono3cjhco"),
|
ManifestCid: MustParseCid("bafy2bzacedhuowetjy2h4cxnijz2l64h4mzpk5m256oywp4evarpono3cjhco"),
|
||||||
Actors: map[string]cid.Cid{
|
Actors: map[string]cid.Cid{
|
||||||
"account": MustParseCid("bafk2bzacebor5mnjnsav34cmm5pcd3dy4wubbv4wtcrvba7depy3sct7ie4sy"),
|
"account": MustParseCid("bafk2bzacebor5mnjnsav34cmm5pcd3dy4wubbv4wtcrvba7depy3sct7ie4sy"),
|
||||||
"cron": MustParseCid("bafk2bzacebetehhedh55alfn4rcx2mhjhvuiustxlhtxc3drkemnpttws5eqw"),
|
"cron": MustParseCid("bafk2bzacebetehhedh55alfn4rcx2mhjhvuiustxlhtxc3drkemnpttws5eqw"),
|
||||||
@@ -200,29 +177,6 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
|
|||||||
"system": MustParseCid("bafk2bzacedqvik2n3phnj3cni3h2k5mtvz43nyq7mdmv7k7euejysvajywdug"),
|
"system": MustParseCid("bafk2bzacedqvik2n3phnj3cni3h2k5mtvz43nyq7mdmv7k7euejysvajywdug"),
|
||||||
"verifiedregistry": MustParseCid("bafk2bzaceceoo5jlom2zweh7kpye2vkj33wgqnkjshlsw2neemqkfg5g2rmvg"),
|
"verifiedregistry": MustParseCid("bafk2bzaceceoo5jlom2zweh7kpye2vkj33wgqnkjshlsw2neemqkfg5g2rmvg"),
|
||||||
},
|
},
|
||||||
}, {
|
|
||||||
Network: "calibrationnet",
|
|
||||||
Version: 12,
|
|
||||||
BundleGitTag: "v12.0.0-rc.3",
|
|
||||||
ManifestCid: MustParseCid("bafy2bzacednzb3pkrfnbfhmoqtb3bc6dgvxszpqklf3qcc7qzcage4ewzxsca"),
|
|
||||||
Actors: map[string]cid.Cid{
|
|
||||||
"account": MustParseCid("bafk2bzacechwwxdqvggkdylm37zldjsra2ivkdzwp7fee56bzxbzs544wv6u6"),
|
|
||||||
"cron": MustParseCid("bafk2bzacec4gdxxkqwxqqodsv6ug5dmdbqdfqwyqfek3yhxc2wweh5psxaeq6"),
|
|
||||||
"datacap": MustParseCid("bafk2bzacecq5ppfskxgv3iea3jarsix6jdduuhwsn4fbvngtbmzelzmlygorm"),
|
|
||||||
"eam": MustParseCid("bafk2bzacecb6cnwftvavpph4p34zs4psuy5xvbrhf7vszkva4npw6mw3c42xe"),
|
|
||||||
"ethaccount": MustParseCid("bafk2bzaceajmc3y3sedsqymfla3dzzqzmbu5kmr2iskm26ga2u34ll5fpztfw"),
|
|
||||||
"evm": MustParseCid("bafk2bzaced4sozr7m6rzcgpobzeiupghthfw6afumysu3oz6bxxirv74uo3vw"),
|
|
||||||
"init": MustParseCid("bafk2bzaceaewh7b6zl2egclm7fqzx2lsqr57i75lb6cj43ndoa4mal3k5ld3m"),
|
|
||||||
"multisig": MustParseCid("bafk2bzacednkwcpw5yzxjceoaliajgupzj6iqxe7ks2ll3unspbprbo5f2now"),
|
|
||||||
"paymentchannel": MustParseCid("bafk2bzacebaxhk4itfiuvbftg7kz5zxugqnvdgerobitjq4vl6q4orcwk6wqg"),
|
|
||||||
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
|
||||||
"reward": MustParseCid("bafk2bzacedra77pcglf7vdca2itcaa4vd6xrxynxmgfgdjdxqxfwqyhtoxehy"),
|
|
||||||
"storagemarket": MustParseCid("bafk2bzacea7g46y7xxu2zjq2h75x6mmx3utz2uxnlvnwi6tzpsvulna3bmiva"),
|
|
||||||
"storageminer": MustParseCid("bafk2bzaceb7qzqsi5uyxe4o5iuasi47l2hnznvmqr2eu4pl3qscvarjqlnuxo"),
|
|
||||||
"storagepower": MustParseCid("bafk2bzacedd3ka44k7d46ckbinjhv3diyuu2epgbyvhqqyjkc64qlrg3wlgzi"),
|
|
||||||
"system": MustParseCid("bafk2bzacecioupndtcnyw6iq2hbrxag3aufvczlv5nobnfbkbywqzcyfaa376"),
|
|
||||||
"verifiedregistry": MustParseCid("bafk2bzaceavldupmf7bimeeacs67z5xdfdlfca6p7sn6bev3mt5ggepfqvhqo"),
|
|
||||||
},
|
|
||||||
}, {
|
}, {
|
||||||
Network: "caterpillarnet",
|
Network: "caterpillarnet",
|
||||||
Version: 8,
|
Version: 8,
|
||||||
@@ -292,51 +246,28 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
|
|||||||
"system": MustParseCid("bafk2bzacecfivztuulqqv4o5oyvvvrkblwix4hqt24pqru6ivnpioefhuhria"),
|
"system": MustParseCid("bafk2bzacecfivztuulqqv4o5oyvvvrkblwix4hqt24pqru6ivnpioefhuhria"),
|
||||||
"verifiedregistry": MustParseCid("bafk2bzacecdhw6x7dfrxfysmn6tdbn2ny464omgqppxhjuawxauscidppd7pc"),
|
"verifiedregistry": MustParseCid("bafk2bzacecdhw6x7dfrxfysmn6tdbn2ny464omgqppxhjuawxauscidppd7pc"),
|
||||||
},
|
},
|
||||||
}, {
|
|
||||||
Network: "caterpillarnet",
|
|
||||||
Version: 11,
|
|
||||||
|
|
||||||
ManifestCid: MustParseCid("bafy2bzacebexc2jgzwr5ngn6jdnkwdqwwmcapajuypdgvopoe6bnvp4yxm4o2"),
|
|
||||||
Actors: map[string]cid.Cid{
|
|
||||||
"account": MustParseCid("bafk2bzaceanjiq5m3feytue5m7hhxfkob2ofg2greoct5tr77reuhrjglo66g"),
|
|
||||||
"cron": MustParseCid("bafk2bzaceavgd5qj6n744tukhdrvxejygzs3jnlizmcvjsdnxkgiimrd5jrys"),
|
|
||||||
"datacap": MustParseCid("bafk2bzacedmdywxwrzop2gmf4ys5stydlmvbe35j3nyr2efmf273briksuvse"),
|
|
||||||
"eam": MustParseCid("bafk2bzacec7qo7s72li7tqysllstlrxxm2dhfqv2w32pytel2e775cki4ozqm"),
|
|
||||||
"ethaccount": MustParseCid("bafk2bzaceaygtkliu26ubb7ivljrvaeesp5sbjlis5okzl35ishxioa2tlx4w"),
|
|
||||||
"evm": MustParseCid("bafk2bzacebo7iqzy2ophz4f3civzwlltec7q5fut7kmtfckr6vy33r6ic5eqe"),
|
|
||||||
"init": MustParseCid("bafk2bzaceb7uzzlsquqwrqhb2vpbvk3jgr4wp5i3smu2splnag2v5sppdehns"),
|
|
||||||
"multisig": MustParseCid("bafk2bzacebwibfqrytobl4pjtny244zkmfoomazbap3r5gddjryckx5js4csi"),
|
|
||||||
"paymentchannel": MustParseCid("bafk2bzacecuaa5esuxpouigxoamyl5gire2qqqhvyhewsig2x2j73f6ksh7go"),
|
|
||||||
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
|
||||||
"reward": MustParseCid("bafk2bzaced4xxqhv63njf2ibvsqshlwikafctxev7aho5lgsfxyt2javjwvtw"),
|
|
||||||
"storagemarket": MustParseCid("bafk2bzacedwtx3xokqmbgkgkoqkdt6lam4ymdjb3eznlbtec5wcrtx74l2bpc"),
|
|
||||||
"storageminer": MustParseCid("bafk2bzacebbbe4sdo3xxkez7x7lkl6j46w34vx7eg7xswmdzhp7moa44p3wjg"),
|
|
||||||
"storagepower": MustParseCid("bafk2bzacedfgz6n24tjsor4pcayomim2f5f3a3fgyatmjgwxxeejna7okndda"),
|
|
||||||
"system": MustParseCid("bafk2bzacebxfzeom3d7ahcz2n2nlwp7ncv767bdbbrisugks4l6v7lcu2tmyg"),
|
|
||||||
"verifiedregistry": MustParseCid("bafk2bzacedaws3or3twy45ltcxucgvqijsje4x675ph6vup2w35smlfneamno"),
|
|
||||||
},
|
|
||||||
}, {
|
}, {
|
||||||
Network: "caterpillarnet",
|
Network: "caterpillarnet",
|
||||||
Version: 12,
|
Version: 11,
|
||||||
BundleGitTag: "v12.0.0-rc.3",
|
BundleGitTag: "v11.0.0-rc2",
|
||||||
ManifestCid: MustParseCid("bafy2bzacebxiub6qsy67asvl5cx33x5vjbuqinalmf3xtnbmokxmmklzdkvei"),
|
ManifestCid: MustParseCid("bafy2bzacedeberqleewemblnbpwufbs6hnric73jy2anlb2sef4o72jf6mxsu"),
|
||||||
Actors: map[string]cid.Cid{
|
Actors: map[string]cid.Cid{
|
||||||
"account": MustParseCid("bafk2bzacecereuhejfvodut5357cai4lmhsyr7uenhcxvmw6jpmhe6auuly32"),
|
"account": MustParseCid("bafk2bzacearzuvg6ugk4evuvgjkap2cyln2efrpano75ecgam4bzyl5l2enn6"),
|
||||||
"cron": MustParseCid("bafk2bzacebo2whgy6jla4jsf5j4ovlqm2e4eepedlpw5wadas33yxmunis4b4"),
|
"cron": MustParseCid("bafk2bzaceas3ku3ol6pwlab7g7zgttfn5bhdo2qbc6vpkbgb2wbrzqsldsv6u"),
|
||||||
"datacap": MustParseCid("bafk2bzacecjjncl7ftgj4mrzxxfxld74pt3pyfrxmcru7a5auab25b3aoixm6"),
|
"datacap": MustParseCid("bafk2bzacebyrneejblvplw6if36hhxx765hx7efnk7a4sj3lqsuupz6m7rgqm"),
|
||||||
"eam": MustParseCid("bafk2bzacebyvawfzoxy7k4yxrj5nd3amg4rcopmnslxdwpzumfhsz5ezk4sws"),
|
"eam": MustParseCid("bafk2bzaceaclwxphuqwymjozzomza3q2jhf6ib4mqewlrrgmkkqzupvpbaksk"),
|
||||||
"ethaccount": MustParseCid("bafk2bzaceaccs76uc6osvb2iy6w2pumqei3wdjtxq7rgtsotobncmqoi7kzcg"),
|
"ethaccount": MustParseCid("bafk2bzacebikzogkoy4fzkqrc3vdirr4h7eq3zzty7csc7aaabevocf65nfds"),
|
||||||
"evm": MustParseCid("bafk2bzaceawxgjzjkhbqwj36wzxeqbtngdh6y2tp4wsi27k7tbg2ujhw5rsjg"),
|
"evm": MustParseCid("bafk2bzacectdxa4ctrobwmq5h42aqbras42b6hjea7krgkc3ghatuitgset4i"),
|
||||||
"init": MustParseCid("bafk2bzacedws5od7o6ktqyo2hudmipxuubsv2lwxz45xxjn2zguze72t6zoik"),
|
"init": MustParseCid("bafk2bzacecdtsmhlxakdoyojcntubtj7kdplwq67dlodihs22zlz762ljkico"),
|
||||||
"multisig": MustParseCid("bafk2bzacecb4wk6n4lrmml3tssn6cszd4dc7ttux3kzjatrawhg4o6ovrng6w"),
|
"multisig": MustParseCid("bafk2bzacebgwns6gt4sv44ey7hz7nfqmk2z6g3yjrr32ovz5iuklrrc6xujn6"),
|
||||||
"paymentchannel": MustParseCid("bafk2bzacea3eb556mkjvosfbqfbyfg6dgu52rfnuctwzjy3b2bh2azredxzbo"),
|
"paymentchannel": MustParseCid("bafk2bzacedxwn53sstmkmakev6yjvwezfsozbeoljnk2ls2yfmndvytkcw3iq"),
|
||||||
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
||||||
"reward": MustParseCid("bafk2bzaceb2x5zgkrho373l3ippp6krs7brugssg6hj2tib22xmqjzdm2o25a"),
|
"reward": MustParseCid("bafk2bzacedjwx5vlghmudjd4zbgzjs7cgk5yyzn7hxb5usqyfwhhumhfse2wq"),
|
||||||
"storagemarket": MustParseCid("bafk2bzaced5j6drzmsebpxbf2dtptrc5tyidlbftdljqxavxqb57s2qpbvdek"),
|
"storagemarket": MustParseCid("bafk2bzacedxnxuwq64g5jsoz6dejx2lm6gjis5evzglaxdnb2rrb4oh2tvjhg"),
|
||||||
"storageminer": MustParseCid("bafk2bzaceckgusfenkczxolfczvnygnuhxbou5to2skwwngbkihla7hgdv4yy"),
|
"storageminer": MustParseCid("bafk2bzacedpmjackp3e3wucnu2kx4r6gl7cues2ogyfffvuv4x7ec5mwbwlie"),
|
||||||
"storagepower": MustParseCid("bafk2bzaceagp6ilkltsltwii66nz6a4zen4qtfk7rdkvdv3gzq7fbv4ivox3u"),
|
"storagepower": MustParseCid("bafk2bzacecjlefvghymezg6lrccaedviwirjg3vmu5sd5qz6aps3khjjvhlxm"),
|
||||||
"system": MustParseCid("bafk2bzacedye5j5uxox7knb6zlnhseaadztyav76mjbyk5qslhhbpiy5cdtt2"),
|
"system": MustParseCid("bafk2bzacec6p5l2no77yiaznaxogzg5zwgocfn32h7ebzry7vyxnbfqvn3oqa"),
|
||||||
"verifiedregistry": MustParseCid("bafk2bzacecduww5pirr7dvaijjijw4gf6ygf7vipgxh4scvv6vseo46gueb46"),
|
"verifiedregistry": MustParseCid("bafk2bzacebmi44uxzpu3xhzlkjkczrjz2sv4brj3thxwc7c6nvhcjoc4divca"),
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
Network: "devnet",
|
Network: "devnet",
|
||||||
@@ -398,51 +329,28 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
|
|||||||
"system": MustParseCid("bafk2bzaceairk5qz5hyzt4yyaxa356aszyifswiust5ilxizwxujcmtzvjzoa"),
|
"system": MustParseCid("bafk2bzaceairk5qz5hyzt4yyaxa356aszyifswiust5ilxizwxujcmtzvjzoa"),
|
||||||
"verifiedregistry": MustParseCid("bafk2bzaced2mkyqobpgna5jevosym3adv2bvraggigyz2jgn5cxymirxj4x3i"),
|
"verifiedregistry": MustParseCid("bafk2bzaced2mkyqobpgna5jevosym3adv2bvraggigyz2jgn5cxymirxj4x3i"),
|
||||||
},
|
},
|
||||||
}, {
|
|
||||||
Network: "devnet",
|
|
||||||
Version: 11,
|
|
||||||
|
|
||||||
ManifestCid: MustParseCid("bafy2bzaceay35go4xbjb45km6o46e5bib3bi46panhovcbedrynzwmm3drr4i"),
|
|
||||||
Actors: map[string]cid.Cid{
|
|
||||||
"account": MustParseCid("bafk2bzacecf2pprkbdlpm4e2xz3ufunxtgrgyh2ie3stuqiyhibsvdze7kvri"),
|
|
||||||
"cron": MustParseCid("bafk2bzaceasr5d2skowvzv5mzsyak6waqrgc46ewj6rzbapkfi5woom6n6bwa"),
|
|
||||||
"datacap": MustParseCid("bafk2bzaceaqd77gptubupda7rp7daxkxbkzwc253dxhiyoezxvj2tljmkgpny"),
|
|
||||||
"eam": MustParseCid("bafk2bzacedve6p4ye6zxydjbfs4ode5r2equ7rqzpyltujsq2lu6wyxnijfx4"),
|
|
||||||
"ethaccount": MustParseCid("bafk2bzacea25xfsxwew3h2crer6jlb4c5vwu2gtch2jh73ocuxjhupenyrugy"),
|
|
||||||
"evm": MustParseCid("bafk2bzacece5hivtkmi757lyfahgti7xuqgofodb2u65pxgf6oizfwiiwlcsi"),
|
|
||||||
"init": MustParseCid("bafk2bzacecxnr5y7qifzdqqiwfbjxv2yr7lbkcyu3e2mf5zjdncteupxdlquu"),
|
|
||||||
"multisig": MustParseCid("bafk2bzaceayap4k4u3lbysaeeixct5fvhmafy3fa5eagvdpk3i4a7ubfdpobe"),
|
|
||||||
"paymentchannel": MustParseCid("bafk2bzaceafgrz5wepbein35gie7rnsu7zttxvgllgdneuefmmy4j5izydtza"),
|
|
||||||
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
|
||||||
"reward": MustParseCid("bafk2bzacedwbtfqlx47fdkxjrb5mwiatheci44x3zkpx33smybc2cme23ymuo"),
|
|
||||||
"storagemarket": MustParseCid("bafk2bzaceaj74fmooaf3gj3ebwon64ky7hhdh7kytdr3agclqfrqzmpzykh7g"),
|
|
||||||
"storageminer": MustParseCid("bafk2bzacedb7bokkzzs7hnbhivp74pgcpermuy7j6b3ncodylksukkxtnn7ze"),
|
|
||||||
"storagepower": MustParseCid("bafk2bzacedilnkegizkxz3nuutib4d4wwlk4bkla22loepia2h53yf4hysmq6"),
|
|
||||||
"system": MustParseCid("bafk2bzacedpyoncjbl4oxkjm5e77ngvpy2xfajjc4myfsv2vltvzxioattlu2"),
|
|
||||||
"verifiedregistry": MustParseCid("bafk2bzacebdqi5tr5pjnem5nylg2zbqcugvi7oxi35bhnrfudx4y4ufhlit2k"),
|
|
||||||
},
|
|
||||||
}, {
|
}, {
|
||||||
Network: "devnet",
|
Network: "devnet",
|
||||||
Version: 12,
|
Version: 11,
|
||||||
BundleGitTag: "v12.0.0-rc.3",
|
BundleGitTag: "v11.0.0-rc2",
|
||||||
ManifestCid: MustParseCid("bafy2bzaceasjdukhhyjbegpli247vbf5h64f7uvxhhebdihuqsj2mwisdwa6o"),
|
ManifestCid: MustParseCid("bafy2bzacec2nca2tmntojbsjmi6gpt7gnslv3phratoara3lpamv5w3do2qh2"),
|
||||||
Actors: map[string]cid.Cid{
|
Actors: map[string]cid.Cid{
|
||||||
"account": MustParseCid("bafk2bzacedki4apynvdxxuoigmqkgaktgy2erjftoxqxqaklnelgveyaqknfu"),
|
"account": MustParseCid("bafk2bzacedxucublg7o7zdy4vw4zr46vngpiflysif333saptv3tfzrh7ktcs"),
|
||||||
"cron": MustParseCid("bafk2bzacebjpczf7qtcisy3zdp3sqoohxe75tgupmdo5dr26vh7orzrsjn3b2"),
|
"cron": MustParseCid("bafk2bzacebnihuzok7gxzmopayqmou42j3uwfpsdzpqkzxf4xvxbxco76cx42"),
|
||||||
"datacap": MustParseCid("bafk2bzacecz4esatk7gizdc7yvl6soigkelhix7izbc75q6eqtb7gjzavpcqc"),
|
"datacap": MustParseCid("bafk2bzacebcz2agc2pojoqecllda5bytbtfns7uxozk6hexuzgktl3d447k3g"),
|
||||||
"eam": MustParseCid("bafk2bzacebhtpd5mxfyovi7fgsfj62nhtmh4t5guob4sgq73ymgsk7473ltig"),
|
"eam": MustParseCid("bafk2bzacedmy4fvb26m7rxom55tcjlekpprxieecgfqpxivum6cv72ca5ld3k"),
|
||||||
"ethaccount": MustParseCid("bafk2bzacebvdbbw5ag4qnxd7cif5mtakrw4wzv63diwl7awta5plaidfay4vg"),
|
"ethaccount": MustParseCid("bafk2bzacedlthlzuuaay4ouhvrdbcmljhudihgwtguxlqc5bqwem3hcymeiee"),
|
||||||
"evm": MustParseCid("bafk2bzacebb7vrhprnshn52bzfmypjdpcrcfecapk232a6gapk3kghu2mp67q"),
|
"evm": MustParseCid("bafk2bzaceboozl4smxva6g6z6dqegtzszq2qheewgr3gbvd32bbvs64simorc"),
|
||||||
"init": MustParseCid("bafk2bzaceaw4iouukgqxmwukfpt3sakdvsu75ftjvw47swnwtdftz5oszbt4w"),
|
"init": MustParseCid("bafk2bzacectfoykh2du5w2odxgtcu6jttdeup3j3sh6tke6zbgqzzmhqlc7vw"),
|
||||||
"multisig": MustParseCid("bafk2bzaceahyjwf6re4mnuwhopglo3qzh6aboluboncpijm7vuiz3u4bkazho"),
|
"multisig": MustParseCid("bafk2bzaceawofhfckab5zwthkgyos5ornbrg7aeudhavgd6jglfb67tezjxpo"),
|
||||||
"paymentchannel": MustParseCid("bafk2bzaceaupjw3djghaqw3g3hd4tw7uuas3njkszgzx2fhmgqh5eh4e6q2by"),
|
"paymentchannel": MustParseCid("bafk2bzacebmw7foxdepc44p6wtwkoshvczi6lagspwivfy3o5zc6xcq7e2uzw"),
|
||||||
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
||||||
"reward": MustParseCid("bafk2bzacebzso6xkjxdscbpncw7el2d4hap6lfkgwqzrbc76lzp33vkwk6obc"),
|
"reward": MustParseCid("bafk2bzacebeclhjkqqstbnvhzsqf5b54257sblr673kuaqemz7mm4kapyepgw"),
|
||||||
"storagemarket": MustParseCid("bafk2bzacebzg74vyk3gzbhnz4zviwvxblyar574mtd6ayognmsvlkriejmunu"),
|
"storagemarket": MustParseCid("bafk2bzacea6jtlm65dcihroldmnfk6qxqrsjxxfw5hniftm4rnhuopm2gk6yg"),
|
||||||
"storageminer": MustParseCid("bafk2bzacecs262232b3awcrilyzpdketeayyqzzwgoavtxilgjvayrz55ovk4"),
|
"storageminer": MustParseCid("bafk2bzacebpzfxjn2z2fk3ariehjldy6l5yker3o57etnup3thqmiqd4vbbdo"),
|
||||||
"storagepower": MustParseCid("bafk2bzacebbtj2m2ajawfuzxqz5nmdep7xevjo2qfjqa5tx3vr5m6qojolya4"),
|
"storagepower": MustParseCid("bafk2bzaceced2xdnoob5yb4tgyhdr2y2f5c5xo7k2ghe5kna5xuevapbvjwpw"),
|
||||||
"system": MustParseCid("bafk2bzacecnau5wddulbsvwn75tc3w75jrlvkybgrlxs4ngonqab6xq3eowvg"),
|
"system": MustParseCid("bafk2bzacea356un67ewdbot57dqreil7gqatzj6uy333xbgah5j6zpdwnpu2k"),
|
||||||
"verifiedregistry": MustParseCid("bafk2bzacec37mddea65nvh4htsagtryfa3sq6i67utcupslyhzbhjhoy6hopa"),
|
"verifiedregistry": MustParseCid("bafk2bzacea6jep5uswr6rfwuizfliy5bzbqahuednohmbgeo2lk443yugq2ho"),
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
Network: "hyperspace",
|
Network: "hyperspace",
|
||||||
@@ -527,51 +435,28 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
|
|||||||
"system": MustParseCid("bafk2bzacedakk5nofebyup4m7nvx6djksfwhnxzrfuq4oyemhpl4lllaikr64"),
|
"system": MustParseCid("bafk2bzacedakk5nofebyup4m7nvx6djksfwhnxzrfuq4oyemhpl4lllaikr64"),
|
||||||
"verifiedregistry": MustParseCid("bafk2bzacedfel6edzqpe5oujno7fog4i526go4dtcs6vwrdtbpy2xq6htvcg6"),
|
"verifiedregistry": MustParseCid("bafk2bzacedfel6edzqpe5oujno7fog4i526go4dtcs6vwrdtbpy2xq6htvcg6"),
|
||||||
},
|
},
|
||||||
}, {
|
|
||||||
Network: "mainnet",
|
|
||||||
Version: 11,
|
|
||||||
|
|
||||||
ManifestCid: MustParseCid("bafy2bzacecnhaiwcrpyjvzl4uv4q3jzoif26okl3m66q3cijp3dfwlcxwztwo"),
|
|
||||||
Actors: map[string]cid.Cid{
|
|
||||||
"account": MustParseCid("bafk2bzacealnlr7st6lkwoh6wxpf2hnrlex5sknaopgmkr2tuhg7vmbfy45so"),
|
|
||||||
"cron": MustParseCid("bafk2bzacebpewdvvgt6tk2o2u4rcovdgym67tadiis5usemlbejg7k3kt567o"),
|
|
||||||
"datacap": MustParseCid("bafk2bzacebslykoyrb2hm7aacjngqgd5n2wmeii2goadrs5zaya3pvdf6pdnq"),
|
|
||||||
"eam": MustParseCid("bafk2bzaceaelwt4yfsfvsu3pa3miwalsvy3cfkcjvmt4sqoeopsppnrmj2mf2"),
|
|
||||||
"ethaccount": MustParseCid("bafk2bzaceclkmc4yidxc6lgcjpfypbde2eddnevcveo4j5kmh4ek6inqysz2k"),
|
|
||||||
"evm": MustParseCid("bafk2bzacediwh6etwzwmb5pivtclpdplewdjzphouwqpppce6opisjv2fjqfe"),
|
|
||||||
"init": MustParseCid("bafk2bzaceckwf3w6n2nw6eh77ktmsxqgsvshonvgnyk5q5syyngtetxvasfxg"),
|
|
||||||
"multisig": MustParseCid("bafk2bzaceafajceqwg5ybiz7xw6rxammuirkgtuv625gzaehsqfprm4bazjmk"),
|
|
||||||
"paymentchannel": MustParseCid("bafk2bzaceb4e6cnsnviegmqvsmoxzncruvhra54piq7bwiqfqevle6oob2gvo"),
|
|
||||||
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
|
||||||
"reward": MustParseCid("bafk2bzacebwjw2vxkobs7r2kwjdqqb42h2kucyuk6flbnyzw4odg5s4mogamo"),
|
|
||||||
"storagemarket": MustParseCid("bafk2bzaceazu2j2zu4p24tr22btnqzkhzjvyjltlvsagaj6w3syevikeb5d7m"),
|
|
||||||
"storageminer": MustParseCid("bafk2bzacec24okjqrp7c7rj3hbrs5ez5apvwah2ruka6haesgfngf37mhk6us"),
|
|
||||||
"storagepower": MustParseCid("bafk2bzaceaxgloxuzg35vu7l7tohdgaq2frsfp4ejmuo7tkoxjp5zqrze6sf4"),
|
|
||||||
"system": MustParseCid("bafk2bzaced7npe5mt5nh72jxr2igi2sofoa7gedt4w6kueeke7i3xxugqpjfm"),
|
|
||||||
"verifiedregistry": MustParseCid("bafk2bzacedej3dnr62g2je2abmyjg3xqv4otvh6e26du5fcrhvw7zgcaaez3a"),
|
|
||||||
},
|
|
||||||
}, {
|
}, {
|
||||||
Network: "mainnet",
|
Network: "mainnet",
|
||||||
Version: 12,
|
Version: 11,
|
||||||
BundleGitTag: "v12.0.0-rc.3",
|
BundleGitTag: "v11.0.0-rc2",
|
||||||
ManifestCid: MustParseCid("bafy2bzaceapkgfggvxyllnmuogtwasmsv5qi2qzhc2aybockd6kag2g5lzaio"),
|
ManifestCid: MustParseCid("bafy2bzacebgfsebvidddy6l6zplsgmibmuqiyfwxotnvoxknvnnhxerjnrgke"),
|
||||||
Actors: map[string]cid.Cid{
|
Actors: map[string]cid.Cid{
|
||||||
"account": MustParseCid("bafk2bzaceboftg75mdiba7xbo2i3uvgtca4brhnr3u5ptihonixgpnrvhpxoa"),
|
"account": MustParseCid("bafk2bzacecrtbcv3sgamwajiigx4j6v3zd6ycdzicycfjheduxksntymovj72"),
|
||||||
"cron": MustParseCid("bafk2bzacechxjkfe2cehx4s7skj3wzfpzf7zolds64khrrrs66bhazsemktls"),
|
"cron": MustParseCid("bafk2bzacecdxzej5q7yodb6zkxjkfrmmuuemu2ykgh4qepnagis6j3gfo73zk"),
|
||||||
"datacap": MustParseCid("bafk2bzacebpiwb2ml4qbnnaayxumtk43ryhc63exdgnhivy3hwgmzemawsmpq"),
|
"datacap": MustParseCid("bafk2bzacecsvwqyxiotzin33zkeqdmt63uokfww6ren6wqvynhow6kwl52oma"),
|
||||||
"eam": MustParseCid("bafk2bzaceb3elj4hfbbjp7g5bptc7su7mptszl4nlqfedilxvstjo5ungm6oe"),
|
"eam": MustParseCid("bafk2bzaceccgh7emq3a2f46l4buukmwchlggbdcdvxjt34snx64h7tq37vkya"),
|
||||||
"ethaccount": MustParseCid("bafk2bzaceb4gkau2vgsijcxpfuq33bd7w3efr2rrhxrwiacjmns2ntdiamswq"),
|
"ethaccount": MustParseCid("bafk2bzaceahuwxxcpnzzcxqkqa5247pvoojxq72koy36qlq223yyn7mhul7xk"),
|
||||||
"evm": MustParseCid("bafk2bzacecmnyfiwb52tkbwmm2dsd7ysi3nvuxl3lmspy7pl26wxj4zj7w4wi"),
|
"evm": MustParseCid("bafk2bzaceafofne3osqnbupdosg23ixb4lsssnd6yo7rdj5gqvfwwxxnwxt22"),
|
||||||
"init": MustParseCid("bafk2bzacebllyegx5r6lggf6ymyetbp7amacwpuxakhtjvjtvoy2bfkzk3vms"),
|
"init": MustParseCid("bafk2bzacedxf5bwugxllkuwpyg4ddleckryydoojbcirngbckmlxpdcrmtkw2"),
|
||||||
"multisig": MustParseCid("bafk2bzacecw5lyp3n3t67xdwrmo36h4z7afc3lobmmr6wg55w6yjzg5jhmh42"),
|
"multisig": MustParseCid("bafk2bzaceakw5rdw67ok44cssjlr655th2kgzjjbcbadbymsl35feplyoljea"),
|
||||||
"paymentchannel": MustParseCid("bafk2bzacectv4cm47bnhga5febf3lo3fq47g72kmmp2xd5s6tcxz7hiqdywa4"),
|
"paymentchannel": MustParseCid("bafk2bzacecj5g34lvlq72wttc65dqdxebrmph4yjftygopsgo6ifabguuf5rm"),
|
||||||
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
||||||
"reward": MustParseCid("bafk2bzacealqnxn5lwzwexd6reav4dppypquklx2ujlnvaxiqk2tzstyvkp5u"),
|
"reward": MustParseCid("bafk2bzacebnz62vsryganusdr4gwhhtm7vj5q5ev43tpcp4usgieh2xnk7dzk"),
|
||||||
"storagemarket": MustParseCid("bafk2bzacedylkg5am446lcuih4voyzdn4yjeqfsxfzh5b6mcuhx4mok5ph5c4"),
|
"storagemarket": MustParseCid("bafk2bzacecprtjtwkfbdzcqglg6bwbqzosamebta7darvistsareszgsxf6ig"),
|
||||||
"storageminer": MustParseCid("bafk2bzacedo75pabe4i2l3hvhtsjmijrcytd2y76xwe573uku25fi7sugqld6"),
|
"storageminer": MustParseCid("bafk2bzacedomhrky77hoodiworfnh7imh66entqwsudm2hsmedfx2ymsprd6e"),
|
||||||
"storagepower": MustParseCid("bafk2bzacecsij5tpfzjpfuckxvccv2p3bdqjklkrfyyoei6lx5dyj5j4fvjm6"),
|
"storagepower": MustParseCid("bafk2bzacecyri3krbroak66cpccmnjwjzjtzyv7a3qbqjscgnhb46yadtp36w"),
|
||||||
"system": MustParseCid("bafk2bzacebfqrja2hip7esf4eafxjmu6xcogoqu5xxtgdg7xa5szgvvdguchu"),
|
"system": MustParseCid("bafk2bzacedehzsjoy5msxblwnkzi7hzuuohdzugh3j3bp427jcnef57xkqevc"),
|
||||||
"verifiedregistry": MustParseCid("bafk2bzacedudgflxc75c77c6zkmfyq4u2xuk7k6xw6dfdccarjrvxx453b77q"),
|
"verifiedregistry": MustParseCid("bafk2bzaceazvpyoiqrsmitkjsaei3r6746d2fqoiy7yjo7htguvwo5ntlxfrq"),
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
Network: "testing",
|
Network: "testing",
|
||||||
@@ -633,51 +518,28 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
|
|||||||
"system": MustParseCid("bafk2bzacecf2jimdz7knhngs64ximfz3eaud6s3kiunmkybgrkupdjyo2dw7o"),
|
"system": MustParseCid("bafk2bzacecf2jimdz7knhngs64ximfz3eaud6s3kiunmkybgrkupdjyo2dw7o"),
|
||||||
"verifiedregistry": MustParseCid("bafk2bzacecdmek2htsgcyoyl35glakyab66cojqo2y335njnm7krleb6yfbps"),
|
"verifiedregistry": MustParseCid("bafk2bzacecdmek2htsgcyoyl35glakyab66cojqo2y335njnm7krleb6yfbps"),
|
||||||
},
|
},
|
||||||
}, {
|
|
||||||
Network: "testing",
|
|
||||||
Version: 11,
|
|
||||||
|
|
||||||
ManifestCid: MustParseCid("bafy2bzacea2vxre32tg3xhpejrktiuzx4d3pcoe7yyazgscfibmegmchr6n42"),
|
|
||||||
Actors: map[string]cid.Cid{
|
|
||||||
"account": MustParseCid("bafk2bzaceccerssb3tgel6ukdghlwvs7dxsolj4fpkgn7dh7owzwapqb6ejpw"),
|
|
||||||
"cron": MustParseCid("bafk2bzacebtfl6fczxnitrqqjhyefskf3asyn3gzuvqcddieoqfsaddk5fd4q"),
|
|
||||||
"datacap": MustParseCid("bafk2bzacediikc55y6uzmnhucf4mik6rqpjulwvgp5gdibogxjhgbvusmzff2"),
|
|
||||||
"eam": MustParseCid("bafk2bzaceazqi5ezossp6kvqogaaba6hxlfarqgniktmb7iy5qonha3eflz6m"),
|
|
||||||
"ethaccount": MustParseCid("bafk2bzaceb77ospgfqqmf67v23wkyeg7lr2mu53ybaacu3bslx7s7nhttdueo"),
|
|
||||||
"evm": MustParseCid("bafk2bzacedvgt7mv22hux4vrnklylq7qmw43kfrqwam6wdsfzkdnaewr33qbu"),
|
|
||||||
"init": MustParseCid("bafk2bzacealzb3nk2oypway5ubz3hs5py5ok5tuw545454vg4d3mwbslef4js"),
|
|
||||||
"multisig": MustParseCid("bafk2bzacec45ppn4hrwizmopp2v2atkxw35tb6yem6uqhqilrv7aiaknnnxmu"),
|
|
||||||
"paymentchannel": MustParseCid("bafk2bzaceajbr3t6cngzh3katqteflbcrtwtdgbthnlfemon5tg6rytf2uonw"),
|
|
||||||
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
|
||||||
"reward": MustParseCid("bafk2bzacea7ycf53kbq4robcuh3ziy7qwwhaqamc5krn3lugypgpxhlewdaiq"),
|
|
||||||
"storagemarket": MustParseCid("bafk2bzacedskmbcpaeb6bezs32szh52jrukvihobluadauayroo5gzrt32tkm"),
|
|
||||||
"storageminer": MustParseCid("bafk2bzaced3yg5lctmswnbkxyd6cleg3llyux7fu2vbddyd2ho36fpym423mq"),
|
|
||||||
"storagepower": MustParseCid("bafk2bzacebvpdf372fzxgixztbz2r7ayxyvx7jmdxwlfuqt2cq7tnqgie3klw"),
|
|
||||||
"system": MustParseCid("bafk2bzaceaatvscbnkv36ixhtt2zel4er5oskxevgumh5gegqkv7uzah36f24"),
|
|
||||||
"verifiedregistry": MustParseCid("bafk2bzacebp2r56wxadvfzpfbmqwfi3dlnwpmoc5u4tau2hfftbkuafkhye64"),
|
|
||||||
},
|
|
||||||
}, {
|
}, {
|
||||||
Network: "testing",
|
Network: "testing",
|
||||||
Version: 12,
|
Version: 11,
|
||||||
BundleGitTag: "v12.0.0-rc.3",
|
BundleGitTag: "v11.0.0-rc2",
|
||||||
ManifestCid: MustParseCid("bafy2bzaceaaxd6ytavsek5bi5soqo7qamezuqfyfjy42es2clpbzu3pwzcmye"),
|
ManifestCid: MustParseCid("bafy2bzacedsxzhzzkfbexqyspkiwqyyn27xplscxtpria4babxsxqmvwvgzmg"),
|
||||||
Actors: map[string]cid.Cid{
|
Actors: map[string]cid.Cid{
|
||||||
"account": MustParseCid("bafk2bzacea74qqkfvacykmq5emzqblh4f4nmxdkiyixxpzs7kkcfnbfa7cb6m"),
|
"account": MustParseCid("bafk2bzacecn3i4m2utctacfctwf3tord3a2z364yffacydc6h3mtv37exehxo"),
|
||||||
"cron": MustParseCid("bafk2bzacecotbu7k6awdzfzakf7g5iaas6gswtunjnnb2xm2klqoshjgb4imy"),
|
"cron": MustParseCid("bafk2bzacedpt2d3ckjirv45esiug4hoousgqixdu3ya6yydhebjuklx6lkzuw"),
|
||||||
"datacap": MustParseCid("bafk2bzaceduhmqcyailiwdupt2ottfzh5hcrjoyeyiaipf3idk3mu7y3uz2mc"),
|
"datacap": MustParseCid("bafk2bzacebfp7bklbkomcexam2r5aawv2ucuqzkdmeamch7bigsprmadfvxvk"),
|
||||||
"eam": MustParseCid("bafk2bzaceb2yzzw6dcmcmhnt3mqnm4kah66f23pc4escnto3vwa552t6ctr7i"),
|
"eam": MustParseCid("bafk2bzaceds3dguvp5pvqnq7cwvz46mqbqem35nfril5frwumcauzdliamvam"),
|
||||||
"ethaccount": MustParseCid("bafk2bzacebwkvvbmttkcjjlicp4ineozc52i5sc6d46pcoq6lzzs2p5i2youa"),
|
"ethaccount": MustParseCid("bafk2bzaceab3egffns45nwvvgtbncoq6jyqgyt4czvwrayz6x6isotbob55ve"),
|
||||||
"evm": MustParseCid("bafk2bzacedetwacs6wmoksxwjlbpp4442uav7fd3pagadejm2cph7ucym7eck"),
|
"evm": MustParseCid("bafk2bzacealplkpnbvap6qrz4vuiebkuutum3e5nasnscepfx5pw4grrvkfpe"),
|
||||||
"init": MustParseCid("bafk2bzacedhpoycn4sz7dragmbo5yqjspqriydxhplqdeguaqck2hmq5hgwqg"),
|
"init": MustParseCid("bafk2bzaced7mmznvvjh3vrlm3s3iostm7iwwvust3lcpujbldh4dmmrecoxia"),
|
||||||
"multisig": MustParseCid("bafk2bzaceacc3m23yvnpzoeekstqtr2acutfv4zvsgncorjdrsucymjohzxs4"),
|
"multisig": MustParseCid("bafk2bzaceajadbzimbpdjzddi56p6hih5ro6p7pvwb635ivk6byktbjy2a3rq"),
|
||||||
"paymentchannel": MustParseCid("bafk2bzaceac6i76vfexefqf6qgebkhkf2cb4g664d5nmfh2dric5spgykevd2"),
|
"paymentchannel": MustParseCid("bafk2bzacech2ns3zv7j3xxmbw37zldh5brg4j4shurf5scnf2q74ksow7f6tg"),
|
||||||
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
||||||
"reward": MustParseCid("bafk2bzaceaajyncjxcrl7wbb6ukzkueyqz4uyekxpmtn4mpndkf7ksmggopzq"),
|
"reward": MustParseCid("bafk2bzacearazt2oxjp5vbzymu2zfur2p5wj7giabxunj42w5embrmgi2byh2"),
|
||||||
"storagemarket": MustParseCid("bafk2bzaced6cexdcinwjhtfvuxgkxukiejp3goylaxtvhqfd24rs5z7g2z7dm"),
|
"storagemarket": MustParseCid("bafk2bzacecqtfzdcwygdjo7jyeonkfvhuyit6hv6an2bit6t6xdmliyiaxpyy"),
|
||||||
"storageminer": MustParseCid("bafk2bzacecvkbsjhufq2zr2dojohukdnql3gkqzdkmtp2hxvn5kczxp3tu6ko"),
|
"storageminer": MustParseCid("bafk2bzaceah46gbb5ls2dor2ajr7quofchee3bwghtq3btcjve3dpyrxo56tc"),
|
||||||
"storagepower": MustParseCid("bafk2bzacedexrf5qplrrl5xzijfrthjdqwodfs5e6zj5kpztc7qnywbqdyiii"),
|
"storagepower": MustParseCid("bafk2bzacedmz4i6cslncm65si47tnpmdbn5owvvm7kjisvbfvvkvdv2viucck"),
|
||||||
"system": MustParseCid("bafk2bzacecp4roanbxq3bflftlkipsoqqxio5etjjnzxus5pcu7lq43fnxb34"),
|
"system": MustParseCid("bafk2bzaceably72ppjsvbtm2pmc7zzczvxsc7qaab5off6jy2qntwhax3klqa"),
|
||||||
"verifiedregistry": MustParseCid("bafk2bzaceandytrgcnuvizfi47sijbqh6c243vjtzlzumexm6kjv7s7hye45g"),
|
"verifiedregistry": MustParseCid("bafk2bzacecozu2vc3tqk7az7koqdiejcgk2q476542pnv7tmx5beomtvtjbzc"),
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
Network: "testing-fake-proofs",
|
Network: "testing-fake-proofs",
|
||||||
@@ -739,50 +601,27 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
|
|||||||
"system": MustParseCid("bafk2bzacecf2jimdz7knhngs64ximfz3eaud6s3kiunmkybgrkupdjyo2dw7o"),
|
"system": MustParseCid("bafk2bzacecf2jimdz7knhngs64ximfz3eaud6s3kiunmkybgrkupdjyo2dw7o"),
|
||||||
"verifiedregistry": MustParseCid("bafk2bzacecdmek2htsgcyoyl35glakyab66cojqo2y335njnm7krleb6yfbps"),
|
"verifiedregistry": MustParseCid("bafk2bzacecdmek2htsgcyoyl35glakyab66cojqo2y335njnm7krleb6yfbps"),
|
||||||
},
|
},
|
||||||
}, {
|
|
||||||
Network: "testing-fake-proofs",
|
|
||||||
Version: 11,
|
|
||||||
|
|
||||||
ManifestCid: MustParseCid("bafy2bzacecojemqglhzzhjnhgtrcbsgkyv67ziytvtbhwlr4ym4oxqofv7zui"),
|
|
||||||
Actors: map[string]cid.Cid{
|
|
||||||
"account": MustParseCid("bafk2bzaceccerssb3tgel6ukdghlwvs7dxsolj4fpkgn7dh7owzwapqb6ejpw"),
|
|
||||||
"cron": MustParseCid("bafk2bzacebtfl6fczxnitrqqjhyefskf3asyn3gzuvqcddieoqfsaddk5fd4q"),
|
|
||||||
"datacap": MustParseCid("bafk2bzacediikc55y6uzmnhucf4mik6rqpjulwvgp5gdibogxjhgbvusmzff2"),
|
|
||||||
"eam": MustParseCid("bafk2bzaceazqi5ezossp6kvqogaaba6hxlfarqgniktmb7iy5qonha3eflz6m"),
|
|
||||||
"ethaccount": MustParseCid("bafk2bzaceb77ospgfqqmf67v23wkyeg7lr2mu53ybaacu3bslx7s7nhttdueo"),
|
|
||||||
"evm": MustParseCid("bafk2bzacedvgt7mv22hux4vrnklylq7qmw43kfrqwam6wdsfzkdnaewr33qbu"),
|
|
||||||
"init": MustParseCid("bafk2bzacealzb3nk2oypway5ubz3hs5py5ok5tuw545454vg4d3mwbslef4js"),
|
|
||||||
"multisig": MustParseCid("bafk2bzacec45ppn4hrwizmopp2v2atkxw35tb6yem6uqhqilrv7aiaknnnxmu"),
|
|
||||||
"paymentchannel": MustParseCid("bafk2bzaceajbr3t6cngzh3katqteflbcrtwtdgbthnlfemon5tg6rytf2uonw"),
|
|
||||||
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
|
||||||
"reward": MustParseCid("bafk2bzacea7ycf53kbq4robcuh3ziy7qwwhaqamc5krn3lugypgpxhlewdaiq"),
|
|
||||||
"storagemarket": MustParseCid("bafk2bzacedskmbcpaeb6bezs32szh52jrukvihobluadauayroo5gzrt32tkm"),
|
|
||||||
"storageminer": MustParseCid("bafk2bzacebqeztpa5exztccqjwqhan5droiy7ga6zekm6f2gzxoe655vneczm"),
|
|
||||||
"storagepower": MustParseCid("bafk2bzaceb2tlyuwxncdxsh3hc4fwcjnpxaijkiv54ustwdjbrqabxdsc27km"),
|
|
||||||
"system": MustParseCid("bafk2bzaceaatvscbnkv36ixhtt2zel4er5oskxevgumh5gegqkv7uzah36f24"),
|
|
||||||
"verifiedregistry": MustParseCid("bafk2bzacebp2r56wxadvfzpfbmqwfi3dlnwpmoc5u4tau2hfftbkuafkhye64"),
|
|
||||||
},
|
|
||||||
}, {
|
}, {
|
||||||
Network: "testing-fake-proofs",
|
Network: "testing-fake-proofs",
|
||||||
Version: 12,
|
Version: 11,
|
||||||
BundleGitTag: "v12.0.0-rc.3",
|
BundleGitTag: "v11.0.0-rc2",
|
||||||
ManifestCid: MustParseCid("bafy2bzacecver4l5d6jiuzubhrtcxjjfdx6jnxbmyp4bselol2atgkhz3e3um"),
|
ManifestCid: MustParseCid("bafy2bzacebebmxp3bmls3erhyyothy243ljtet4wtey54ufbygat3nhs6rody"),
|
||||||
Actors: map[string]cid.Cid{
|
Actors: map[string]cid.Cid{
|
||||||
"account": MustParseCid("bafk2bzacea74qqkfvacykmq5emzqblh4f4nmxdkiyixxpzs7kkcfnbfa7cb6m"),
|
"account": MustParseCid("bafk2bzacecn3i4m2utctacfctwf3tord3a2z364yffacydc6h3mtv37exehxo"),
|
||||||
"cron": MustParseCid("bafk2bzacecotbu7k6awdzfzakf7g5iaas6gswtunjnnb2xm2klqoshjgb4imy"),
|
"cron": MustParseCid("bafk2bzacedpt2d3ckjirv45esiug4hoousgqixdu3ya6yydhebjuklx6lkzuw"),
|
||||||
"datacap": MustParseCid("bafk2bzaceduhmqcyailiwdupt2ottfzh5hcrjoyeyiaipf3idk3mu7y3uz2mc"),
|
"datacap": MustParseCid("bafk2bzacebfp7bklbkomcexam2r5aawv2ucuqzkdmeamch7bigsprmadfvxvk"),
|
||||||
"eam": MustParseCid("bafk2bzaceb2yzzw6dcmcmhnt3mqnm4kah66f23pc4escnto3vwa552t6ctr7i"),
|
"eam": MustParseCid("bafk2bzaceds3dguvp5pvqnq7cwvz46mqbqem35nfril5frwumcauzdliamvam"),
|
||||||
"ethaccount": MustParseCid("bafk2bzacebwkvvbmttkcjjlicp4ineozc52i5sc6d46pcoq6lzzs2p5i2youa"),
|
"ethaccount": MustParseCid("bafk2bzaceab3egffns45nwvvgtbncoq6jyqgyt4czvwrayz6x6isotbob55ve"),
|
||||||
"evm": MustParseCid("bafk2bzacedetwacs6wmoksxwjlbpp4442uav7fd3pagadejm2cph7ucym7eck"),
|
"evm": MustParseCid("bafk2bzacealplkpnbvap6qrz4vuiebkuutum3e5nasnscepfx5pw4grrvkfpe"),
|
||||||
"init": MustParseCid("bafk2bzacedhpoycn4sz7dragmbo5yqjspqriydxhplqdeguaqck2hmq5hgwqg"),
|
"init": MustParseCid("bafk2bzaced7mmznvvjh3vrlm3s3iostm7iwwvust3lcpujbldh4dmmrecoxia"),
|
||||||
"multisig": MustParseCid("bafk2bzaceacc3m23yvnpzoeekstqtr2acutfv4zvsgncorjdrsucymjohzxs4"),
|
"multisig": MustParseCid("bafk2bzaceajadbzimbpdjzddi56p6hih5ro6p7pvwb635ivk6byktbjy2a3rq"),
|
||||||
"paymentchannel": MustParseCid("bafk2bzaceac6i76vfexefqf6qgebkhkf2cb4g664d5nmfh2dric5spgykevd2"),
|
"paymentchannel": MustParseCid("bafk2bzacech2ns3zv7j3xxmbw37zldh5brg4j4shurf5scnf2q74ksow7f6tg"),
|
||||||
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
||||||
"reward": MustParseCid("bafk2bzaceaajyncjxcrl7wbb6ukzkueyqz4uyekxpmtn4mpndkf7ksmggopzq"),
|
"reward": MustParseCid("bafk2bzacearazt2oxjp5vbzymu2zfur2p5wj7giabxunj42w5embrmgi2byh2"),
|
||||||
"storagemarket": MustParseCid("bafk2bzaced6cexdcinwjhtfvuxgkxukiejp3goylaxtvhqfd24rs5z7g2z7dm"),
|
"storagemarket": MustParseCid("bafk2bzacecqtfzdcwygdjo7jyeonkfvhuyit6hv6an2bit6t6xdmliyiaxpyy"),
|
||||||
"storageminer": MustParseCid("bafk2bzacedapzgrbc2rsmuqex76ftt2b62q6opi56gh2dr2oyyzuwin62rweg"),
|
"storageminer": MustParseCid("bafk2bzacec6ntijn67h3gnn5htgbnlpwfp7g47t4nlkr3llr6trnaj35p3kas"),
|
||||||
"storagepower": MustParseCid("bafk2bzacecdwijcbbryinjtm27pdinqqkyzoskri24pwsvsadwcq2alkkjpnc"),
|
"storagepower": MustParseCid("bafk2bzaceasdxhi4r4ksy6ageji3xhajr5m5rgixk2w6ojp456kbacmjvxqai"),
|
||||||
"system": MustParseCid("bafk2bzacecp4roanbxq3bflftlkipsoqqxio5etjjnzxus5pcu7lq43fnxb34"),
|
"system": MustParseCid("bafk2bzaceably72ppjsvbtm2pmc7zzczvxsc7qaab5off6jy2qntwhax3klqa"),
|
||||||
"verifiedregistry": MustParseCid("bafk2bzaceandytrgcnuvizfi47sijbqh6c243vjtzlzumexm6kjv7s7hye45g"),
|
"verifiedregistry": MustParseCid("bafk2bzacecozu2vc3tqk7az7koqdiejcgk2q476542pnv7tmx5beomtvtjbzc"),
|
||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+3
-14
@@ -23,7 +23,7 @@ var NetworkBundle = "devnet"
|
|||||||
var BundleOverrides map[actorstypes.Version]string
|
var BundleOverrides map[actorstypes.Version]string
|
||||||
var ActorDebugging = true
|
var ActorDebugging = true
|
||||||
|
|
||||||
const GenesisNetworkVersion = network.Version20
|
const GenesisNetworkVersion = network.Version18
|
||||||
|
|
||||||
var UpgradeBreezeHeight = abi.ChainEpoch(-1)
|
var UpgradeBreezeHeight = abi.ChainEpoch(-1)
|
||||||
|
|
||||||
@@ -61,17 +61,9 @@ var UpgradeSharkHeight = abi.ChainEpoch(-20)
|
|||||||
|
|
||||||
var UpgradeHyggeHeight = abi.ChainEpoch(-21)
|
var UpgradeHyggeHeight = abi.ChainEpoch(-21)
|
||||||
|
|
||||||
var UpgradeLightningHeight = abi.ChainEpoch(-22)
|
var UpgradeLightningHeight = abi.ChainEpoch(30)
|
||||||
|
|
||||||
var UpgradeThunderHeight = abi.ChainEpoch(-23)
|
var UpgradeThunderHeight = abi.ChainEpoch(1000)
|
||||||
|
|
||||||
var UpgradeWatermelonHeight = abi.ChainEpoch(200)
|
|
||||||
|
|
||||||
// This fix upgrade only ran on calibrationnet
|
|
||||||
const UpgradeWatermelonFixHeight = -100
|
|
||||||
|
|
||||||
// This fix upgrade only ran on calibrationnet
|
|
||||||
const UpgradeWatermelonFix2Height = -101
|
|
||||||
|
|
||||||
var DrandSchedule = map[abi.ChainEpoch]DrandEnum{
|
var DrandSchedule = map[abi.ChainEpoch]DrandEnum{
|
||||||
0: DrandMainnet,
|
0: DrandMainnet,
|
||||||
@@ -128,7 +120,6 @@ func init() {
|
|||||||
UpgradeHyggeHeight = getUpgradeHeight("LOTUS_HYGGE_HEIGHT", UpgradeHyggeHeight)
|
UpgradeHyggeHeight = getUpgradeHeight("LOTUS_HYGGE_HEIGHT", UpgradeHyggeHeight)
|
||||||
UpgradeLightningHeight = getUpgradeHeight("LOTUS_LIGHTNING_HEIGHT", UpgradeLightningHeight)
|
UpgradeLightningHeight = getUpgradeHeight("LOTUS_LIGHTNING_HEIGHT", UpgradeLightningHeight)
|
||||||
UpgradeThunderHeight = getUpgradeHeight("LOTUS_THUNDER_HEIGHT", UpgradeThunderHeight)
|
UpgradeThunderHeight = getUpgradeHeight("LOTUS_THUNDER_HEIGHT", UpgradeThunderHeight)
|
||||||
UpgradeWatermelonHeight = getUpgradeHeight("LOTUS_WATERMELON_HEIGHT", UpgradeWatermelonHeight)
|
|
||||||
|
|
||||||
BuildType |= Build2k
|
BuildType |= Build2k
|
||||||
|
|
||||||
@@ -138,8 +129,6 @@ const BlockDelaySecs = uint64(4)
|
|||||||
|
|
||||||
const PropagationDelaySecs = uint64(1)
|
const PropagationDelaySecs = uint64(1)
|
||||||
|
|
||||||
var EquivocationDelaySecs = uint64(0)
|
|
||||||
|
|
||||||
// SlashablePowerDelay is the number of epochs after ElectionPeriodStart, after
|
// SlashablePowerDelay is the number of epochs after ElectionPeriodStart, after
|
||||||
// which the miner is slashed
|
// which the miner is slashed
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ var DrandSchedule = map[abi.ChainEpoch]DrandEnum{
|
|||||||
0: DrandMainnet,
|
0: DrandMainnet,
|
||||||
}
|
}
|
||||||
|
|
||||||
const GenesisNetworkVersion = network.Version20
|
const GenesisNetworkVersion = network.Version18
|
||||||
|
|
||||||
var NetworkBundle = "butterflynet"
|
var NetworkBundle = "butterflynet"
|
||||||
var BundleOverrides map[actorstypes.Version]string
|
var BundleOverrides map[actorstypes.Version]string
|
||||||
@@ -52,16 +52,10 @@ const UpgradeOhSnapHeight = -18
|
|||||||
const UpgradeSkyrHeight = -19
|
const UpgradeSkyrHeight = -19
|
||||||
const UpgradeSharkHeight = -20
|
const UpgradeSharkHeight = -20
|
||||||
const UpgradeHyggeHeight = -21
|
const UpgradeHyggeHeight = -21
|
||||||
const UpgradeLightningHeight = -22
|
|
||||||
const UpgradeThunderHeight = -23
|
|
||||||
|
|
||||||
const UpgradeWatermelonHeight = 400
|
const UpgradeLightningHeight = 50
|
||||||
|
|
||||||
// This fix upgrade only ran on calibrationnet
|
const UpgradeThunderHeight = UpgradeLightningHeight + 360
|
||||||
const UpgradeWatermelonFixHeight = -100
|
|
||||||
|
|
||||||
// This fix upgrade only ran on calibrationnet
|
|
||||||
const UpgradeWatermelonFix2Height = -101
|
|
||||||
|
|
||||||
var SupportedProofTypes = []abi.RegisteredSealProof{
|
var SupportedProofTypes = []abi.RegisteredSealProof{
|
||||||
abi.RegisteredSealProof_StackedDrg512MiBV1,
|
abi.RegisteredSealProof_StackedDrg512MiBV1,
|
||||||
@@ -89,8 +83,6 @@ const BlockDelaySecs = uint64(builtin2.EpochDurationSeconds)
|
|||||||
|
|
||||||
const PropagationDelaySecs = uint64(6)
|
const PropagationDelaySecs = uint64(6)
|
||||||
|
|
||||||
var EquivocationDelaySecs = uint64(2)
|
|
||||||
|
|
||||||
// BootstrapPeerThreshold is the minimum number peers we need to track for a sync worker to start
|
// BootstrapPeerThreshold is the minimum number peers we need to track for a sync worker to start
|
||||||
const BootstrapPeerThreshold = 2
|
const BootstrapPeerThreshold = 2
|
||||||
|
|
||||||
|
|||||||
@@ -79,15 +79,6 @@ const UpgradeLightningHeight = 489094
|
|||||||
// 2023-04-21T16:00:00Z
|
// 2023-04-21T16:00:00Z
|
||||||
const UpgradeThunderHeight = UpgradeLightningHeight + 3120
|
const UpgradeThunderHeight = UpgradeLightningHeight + 3120
|
||||||
|
|
||||||
// 2023-10-19T13:00:00Z
|
|
||||||
const UpgradeWatermelonHeight = 1013134
|
|
||||||
|
|
||||||
// 2023-11-07T13:00:00Z
|
|
||||||
const UpgradeWatermelonFixHeight = 1070494
|
|
||||||
|
|
||||||
// 2023-11-21T13:00:00Z
|
|
||||||
const UpgradeWatermelonFix2Height = 1108174
|
|
||||||
|
|
||||||
var SupportedProofTypes = []abi.RegisteredSealProof{
|
var SupportedProofTypes = []abi.RegisteredSealProof{
|
||||||
abi.RegisteredSealProof_StackedDrg32GiBV1,
|
abi.RegisteredSealProof_StackedDrg32GiBV1,
|
||||||
abi.RegisteredSealProof_StackedDrg64GiBV1,
|
abi.RegisteredSealProof_StackedDrg64GiBV1,
|
||||||
@@ -129,8 +120,6 @@ const BlockDelaySecs = uint64(builtin2.EpochDurationSeconds)
|
|||||||
|
|
||||||
var PropagationDelaySecs = uint64(10)
|
var PropagationDelaySecs = uint64(10)
|
||||||
|
|
||||||
var EquivocationDelaySecs = uint64(2)
|
|
||||||
|
|
||||||
// BootstrapPeerThreshold is the minimum number peers we need to track for a sync worker to start
|
// BootstrapPeerThreshold is the minimum number peers we need to track for a sync worker to start
|
||||||
const BootstrapPeerThreshold = 4
|
const BootstrapPeerThreshold = 4
|
||||||
|
|
||||||
|
|||||||
+7
-11
@@ -49,18 +49,16 @@ var UpgradeHyperdriveHeight = abi.ChainEpoch(-16)
|
|||||||
var UpgradeChocolateHeight = abi.ChainEpoch(-17)
|
var UpgradeChocolateHeight = abi.ChainEpoch(-17)
|
||||||
var UpgradeOhSnapHeight = abi.ChainEpoch(-18)
|
var UpgradeOhSnapHeight = abi.ChainEpoch(-18)
|
||||||
var UpgradeSkyrHeight = abi.ChainEpoch(-19)
|
var UpgradeSkyrHeight = abi.ChainEpoch(-19)
|
||||||
var UpgradeSharkHeight = abi.ChainEpoch(-20)
|
|
||||||
var UpgradeHyggeHeight = abi.ChainEpoch(-21)
|
|
||||||
var UpgradeLightningHeight = abi.ChainEpoch(-22)
|
|
||||||
var UpgradeThunderHeight = abi.ChainEpoch(-23)
|
|
||||||
|
|
||||||
const UpgradeWatermelonHeight = 50
|
const UpgradeSharkHeight = abi.ChainEpoch(-20)
|
||||||
|
|
||||||
// This fix upgrade only ran on calibrationnet
|
const UpgradeHyggeHeight = abi.ChainEpoch(100)
|
||||||
const UpgradeWatermelonFixHeight = -1
|
|
||||||
|
|
||||||
// This fix upgrade only ran on calibrationnet
|
// ??????????
|
||||||
const UpgradeWatermelonFix2Height = -2
|
const UpgradeLightningHeight = 200
|
||||||
|
|
||||||
|
// ??????????????????
|
||||||
|
const UpgradeThunderHeight = 300
|
||||||
|
|
||||||
var DrandSchedule = map[abi.ChainEpoch]DrandEnum{
|
var DrandSchedule = map[abi.ChainEpoch]DrandEnum{
|
||||||
0: DrandMainnet,
|
0: DrandMainnet,
|
||||||
@@ -127,8 +125,6 @@ const BlockDelaySecs = uint64(builtin2.EpochDurationSeconds)
|
|||||||
|
|
||||||
const PropagationDelaySecs = uint64(6)
|
const PropagationDelaySecs = uint64(6)
|
||||||
|
|
||||||
var EquivocationDelaySecs = uint64(2)
|
|
||||||
|
|
||||||
// BootstrapPeerThreshold is the minimum number peers we need to track for a sync worker to start
|
// BootstrapPeerThreshold is the minimum number peers we need to track for a sync worker to start
|
||||||
const BootstrapPeerThreshold = 2
|
const BootstrapPeerThreshold = 2
|
||||||
|
|
||||||
|
|||||||
+10
-17
@@ -89,20 +89,11 @@ const UpgradeSharkHeight = 2383680
|
|||||||
// 2023-03-14T15:14:00Z
|
// 2023-03-14T15:14:00Z
|
||||||
const UpgradeHyggeHeight = 2683348
|
const UpgradeHyggeHeight = 2683348
|
||||||
|
|
||||||
// 2023-04-27T13:00:00Z
|
// ??????????
|
||||||
const UpgradeLightningHeight = 2809800
|
var UpgradeLightningHeight = abi.ChainEpoch(9999999999)
|
||||||
|
|
||||||
// 2023-05-18T13:00:00Z
|
// ??????????
|
||||||
const UpgradeThunderHeight = UpgradeLightningHeight + 2880*21
|
var UpgradeThunderHeight = UpgradeLightningHeight + 1
|
||||||
|
|
||||||
// 2023-12-12T13:30:00Z
|
|
||||||
var UpgradeWatermelonHeight = abi.ChainEpoch(3469380)
|
|
||||||
|
|
||||||
// This fix upgrade only ran on calibrationnet
|
|
||||||
const UpgradeWatermelonFixHeight = -1
|
|
||||||
|
|
||||||
// This fix upgrade only ran on calibrationnet
|
|
||||||
const UpgradeWatermelonFix2Height = -2
|
|
||||||
|
|
||||||
var SupportedProofTypes = []abi.RegisteredSealProof{
|
var SupportedProofTypes = []abi.RegisteredSealProof{
|
||||||
abi.RegisteredSealProof_StackedDrg32GiBV1,
|
abi.RegisteredSealProof_StackedDrg32GiBV1,
|
||||||
@@ -112,15 +103,17 @@ var ConsensusMinerMinPower = abi.NewStoragePower(10 << 40)
|
|||||||
var PreCommitChallengeDelay = abi.ChainEpoch(150)
|
var PreCommitChallengeDelay = abi.ChainEpoch(150)
|
||||||
var PropagationDelaySecs = uint64(10)
|
var PropagationDelaySecs = uint64(10)
|
||||||
|
|
||||||
var EquivocationDelaySecs = uint64(2)
|
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
if os.Getenv("LOTUS_USE_TEST_ADDRESSES") != "1" {
|
if os.Getenv("LOTUS_USE_TEST_ADDRESSES") != "1" {
|
||||||
SetAddressNetwork(address.Mainnet)
|
SetAddressNetwork(address.Mainnet)
|
||||||
}
|
}
|
||||||
|
|
||||||
if os.Getenv("LOTUS_DISABLE_WATERMELON") == "1" {
|
if os.Getenv("LOTUS_DISABLE_LIGHTNING") == "1" {
|
||||||
UpgradeWatermelonHeight = math.MaxInt64
|
UpgradeLightningHeight = math.MaxInt64
|
||||||
|
}
|
||||||
|
|
||||||
|
if os.Getenv("LOTUS_DISABLE_THUNDER") == "1" {
|
||||||
|
UpgradeThunderHeight = math.MaxInt64
|
||||||
}
|
}
|
||||||
|
|
||||||
// NOTE: DO NOT change this unless you REALLY know what you're doing. This is not consensus critical, however,
|
// NOTE: DO NOT change this unless you REALLY know what you're doing. This is not consensus critical, however,
|
||||||
|
|||||||
@@ -26,13 +26,17 @@ const UnixfsLinksPerLevel = 1024
|
|||||||
|
|
||||||
const AllowableClockDriftSecs = uint64(1)
|
const AllowableClockDriftSecs = uint64(1)
|
||||||
|
|
||||||
// Used by tests and some obscure tooling
|
// TODO: nv19: Re-enable when migration is setup
|
||||||
/* inline-gen template
|
//// Used by tests and some obscure tooling
|
||||||
const TestNetworkVersion = network.Version{{.latestNetworkVersion}}
|
///* inline-gen template
|
||||||
/* inline-gen start */
|
//
|
||||||
const TestNetworkVersion = network.Version21
|
//const TestNetworkVersion = network.Version{{.latestNetworkVersion}}
|
||||||
|
//
|
||||||
|
///* inline-gen start */
|
||||||
|
|
||||||
/* inline-gen end */
|
const TestNetworkVersion = network.Version18
|
||||||
|
|
||||||
|
///* inline-gen end */
|
||||||
|
|
||||||
// Epochs
|
// Epochs
|
||||||
const ForkLengthThreshold = Finality
|
const ForkLengthThreshold = Finality
|
||||||
|
|||||||
+22
-26
@@ -33,7 +33,6 @@ var (
|
|||||||
MinimumBaseFee = int64(100)
|
MinimumBaseFee = int64(100)
|
||||||
BlockDelaySecs = uint64(builtin2.EpochDurationSeconds)
|
BlockDelaySecs = uint64(builtin2.EpochDurationSeconds)
|
||||||
PropagationDelaySecs = uint64(6)
|
PropagationDelaySecs = uint64(6)
|
||||||
EquivocationDelaySecs = uint64(2)
|
|
||||||
SupportedProofTypes = []abi.RegisteredSealProof{
|
SupportedProofTypes = []abi.RegisteredSealProof{
|
||||||
abi.RegisteredSealProof_StackedDrg32GiBV1,
|
abi.RegisteredSealProof_StackedDrg32GiBV1,
|
||||||
abi.RegisteredSealProof_StackedDrg64GiBV1,
|
abi.RegisteredSealProof_StackedDrg64GiBV1,
|
||||||
@@ -87,31 +86,28 @@ var (
|
|||||||
UpgradeBreezeHeight abi.ChainEpoch = -1
|
UpgradeBreezeHeight abi.ChainEpoch = -1
|
||||||
BreezeGasTampingDuration abi.ChainEpoch = 0
|
BreezeGasTampingDuration abi.ChainEpoch = 0
|
||||||
|
|
||||||
UpgradeSmokeHeight abi.ChainEpoch = -1
|
UpgradeSmokeHeight abi.ChainEpoch = -1
|
||||||
UpgradeIgnitionHeight abi.ChainEpoch = -2
|
UpgradeIgnitionHeight abi.ChainEpoch = -2
|
||||||
UpgradeRefuelHeight abi.ChainEpoch = -3
|
UpgradeRefuelHeight abi.ChainEpoch = -3
|
||||||
UpgradeTapeHeight abi.ChainEpoch = -4
|
UpgradeTapeHeight abi.ChainEpoch = -4
|
||||||
UpgradeAssemblyHeight abi.ChainEpoch = 10
|
UpgradeAssemblyHeight abi.ChainEpoch = 10
|
||||||
UpgradeLiftoffHeight abi.ChainEpoch = -5
|
UpgradeLiftoffHeight abi.ChainEpoch = -5
|
||||||
UpgradeKumquatHeight abi.ChainEpoch = -6
|
UpgradeKumquatHeight abi.ChainEpoch = -6
|
||||||
UpgradeCalicoHeight abi.ChainEpoch = -8
|
UpgradeCalicoHeight abi.ChainEpoch = -8
|
||||||
UpgradePersianHeight abi.ChainEpoch = -9
|
UpgradePersianHeight abi.ChainEpoch = -9
|
||||||
UpgradeOrangeHeight abi.ChainEpoch = -10
|
UpgradeOrangeHeight abi.ChainEpoch = -10
|
||||||
UpgradeClausHeight abi.ChainEpoch = -11
|
UpgradeClausHeight abi.ChainEpoch = -11
|
||||||
UpgradeTrustHeight abi.ChainEpoch = -12
|
UpgradeTrustHeight abi.ChainEpoch = -12
|
||||||
UpgradeNorwegianHeight abi.ChainEpoch = -13
|
UpgradeNorwegianHeight abi.ChainEpoch = -13
|
||||||
UpgradeTurboHeight abi.ChainEpoch = -14
|
UpgradeTurboHeight abi.ChainEpoch = -14
|
||||||
UpgradeHyperdriveHeight abi.ChainEpoch = -15
|
UpgradeHyperdriveHeight abi.ChainEpoch = -15
|
||||||
UpgradeChocolateHeight abi.ChainEpoch = -16
|
UpgradeChocolateHeight abi.ChainEpoch = -16
|
||||||
UpgradeOhSnapHeight abi.ChainEpoch = -17
|
UpgradeOhSnapHeight abi.ChainEpoch = -17
|
||||||
UpgradeSkyrHeight abi.ChainEpoch = -18
|
UpgradeSkyrHeight abi.ChainEpoch = -18
|
||||||
UpgradeSharkHeight abi.ChainEpoch = -19
|
UpgradeSharkHeight abi.ChainEpoch = -19
|
||||||
UpgradeHyggeHeight abi.ChainEpoch = -20
|
UpgradeHyggeHeight abi.ChainEpoch = -20
|
||||||
UpgradeLightningHeight abi.ChainEpoch = -21
|
UpgradeLightningHeight abi.ChainEpoch = -21
|
||||||
UpgradeThunderHeight abi.ChainEpoch = -22
|
UpgradeThunderHeight abi.ChainEpoch = -22
|
||||||
UpgradeWatermelonHeight abi.ChainEpoch = -23
|
|
||||||
UpgradeWatermelonFixHeight abi.ChainEpoch = -24
|
|
||||||
UpgradeWatermelonFix2Height abi.ChainEpoch = -25
|
|
||||||
|
|
||||||
DrandSchedule = map[abi.ChainEpoch]DrandEnum{
|
DrandSchedule = map[abi.ChainEpoch]DrandEnum{
|
||||||
0: DrandMainnet,
|
0: DrandMainnet,
|
||||||
|
|||||||
+1
-1
@@ -37,7 +37,7 @@ func BuildTypeString() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// BuildVersion is the local build version
|
// BuildVersion is the local build version
|
||||||
const BuildVersion = "1.25.0-rc5"
|
const BuildVersion = "1.22.0-rc4"
|
||||||
|
|
||||||
func UserVersion() string {
|
func UserVersion() string {
|
||||||
if os.Getenv("LOTUS_VERSION_IGNORE_COMMIT") == "1" {
|
if os.Getenv("LOTUS_VERSION_IGNORE_COMMIT") == "1" {
|
||||||
|
|||||||
+13
-12
@@ -4,6 +4,7 @@ import (
|
|||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"go/format"
|
"go/format"
|
||||||
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strconv"
|
"strconv"
|
||||||
@@ -65,7 +66,7 @@ func generateAdapters() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
af, err := os.ReadFile(filepath.Join(actDir, "actor.go.template"))
|
af, err := ioutil.ReadFile(filepath.Join(actDir, "actor.go.template"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return xerrors.Errorf("loading actor template: %w", err)
|
return xerrors.Errorf("loading actor template: %w", err)
|
||||||
}
|
}
|
||||||
@@ -89,7 +90,7 @@ func generateAdapters() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := os.WriteFile(filepath.Join(actDir, fmt.Sprintf("%s.go", act)), fmted, 0666); err != nil {
|
if err := ioutil.WriteFile(filepath.Join(actDir, fmt.Sprintf("%s.go", act)), fmted, 0666); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -99,7 +100,7 @@ func generateAdapters() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func generateState(actDir string, versions []int) error {
|
func generateState(actDir string, versions []int) error {
|
||||||
af, err := os.ReadFile(filepath.Join(actDir, "state.go.template"))
|
af, err := ioutil.ReadFile(filepath.Join(actDir, "state.go.template"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if os.IsNotExist(err) {
|
if os.IsNotExist(err) {
|
||||||
return nil // skip
|
return nil // skip
|
||||||
@@ -122,7 +123,7 @@ func generateState(actDir string, versions []int) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := os.WriteFile(filepath.Join(actDir, fmt.Sprintf("v%d.go", version)), b.Bytes(), 0666); err != nil {
|
if err := ioutil.WriteFile(filepath.Join(actDir, fmt.Sprintf("v%d.go", version)), b.Bytes(), 0666); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -131,7 +132,7 @@ func generateState(actDir string, versions []int) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func generateMessages(actDir string) error {
|
func generateMessages(actDir string) error {
|
||||||
af, err := os.ReadFile(filepath.Join(actDir, "message.go.template"))
|
af, err := ioutil.ReadFile(filepath.Join(actDir, "message.go.template"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if os.IsNotExist(err) {
|
if os.IsNotExist(err) {
|
||||||
return nil // skip
|
return nil // skip
|
||||||
@@ -154,7 +155,7 @@ func generateMessages(actDir string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := os.WriteFile(filepath.Join(actDir, fmt.Sprintf("message%d.go", version)), b.Bytes(), 0666); err != nil {
|
if err := ioutil.WriteFile(filepath.Join(actDir, fmt.Sprintf("message%d.go", version)), b.Bytes(), 0666); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -164,7 +165,7 @@ func generateMessages(actDir string) error {
|
|||||||
|
|
||||||
func generatePolicy(policyPath string) error {
|
func generatePolicy(policyPath string) error {
|
||||||
|
|
||||||
pf, err := os.ReadFile(policyPath + ".template")
|
pf, err := ioutil.ReadFile(policyPath + ".template")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if os.IsNotExist(err) {
|
if os.IsNotExist(err) {
|
||||||
return nil // skip
|
return nil // skip
|
||||||
@@ -186,7 +187,7 @@ func generatePolicy(policyPath string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := os.WriteFile(policyPath, b.Bytes(), 0666); err != nil {
|
if err := ioutil.WriteFile(policyPath, b.Bytes(), 0666); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -195,7 +196,7 @@ func generatePolicy(policyPath string) error {
|
|||||||
|
|
||||||
func generateBuiltin(builtinPath string) error {
|
func generateBuiltin(builtinPath string) error {
|
||||||
|
|
||||||
bf, err := os.ReadFile(builtinPath + ".template")
|
bf, err := ioutil.ReadFile(builtinPath + ".template")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if os.IsNotExist(err) {
|
if os.IsNotExist(err) {
|
||||||
return nil // skip
|
return nil // skip
|
||||||
@@ -217,7 +218,7 @@ func generateBuiltin(builtinPath string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := os.WriteFile(builtinPath, b.Bytes(), 0666); err != nil {
|
if err := ioutil.WriteFile(builtinPath, b.Bytes(), 0666); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -226,7 +227,7 @@ func generateBuiltin(builtinPath string) error {
|
|||||||
|
|
||||||
func generateRegistry(registryPath string) error {
|
func generateRegistry(registryPath string) error {
|
||||||
|
|
||||||
bf, err := os.ReadFile(registryPath + ".template")
|
bf, err := ioutil.ReadFile(registryPath + ".template")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if os.IsNotExist(err) {
|
if os.IsNotExist(err) {
|
||||||
return nil // skip
|
return nil // skip
|
||||||
@@ -247,7 +248,7 @@ func generateRegistry(registryPath string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := os.WriteFile(registryPath, b.Bytes(), 0666); err != nil {
|
if err := ioutil.WriteFile(registryPath, b.Bytes(), 0666); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import (
|
|||||||
|
|
||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
||||||
builtin12 "github.com/filecoin-project/go-state-types/builtin"
|
builtin11 "github.com/filecoin-project/go-state-types/builtin"
|
||||||
"github.com/filecoin-project/go-state-types/cbor"
|
"github.com/filecoin-project/go-state-types/cbor"
|
||||||
"github.com/filecoin-project/go-state-types/manifest"
|
"github.com/filecoin-project/go-state-types/manifest"
|
||||||
builtin0 "github.com/filecoin-project/specs-actors/actors/builtin"
|
builtin0 "github.com/filecoin-project/specs-actors/actors/builtin"
|
||||||
@@ -22,7 +22,7 @@ import (
|
|||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
var Methods = builtin12.MethodsAccount
|
var Methods = builtin11.MethodsAccount
|
||||||
|
|
||||||
func Load(store adt.Store, act *types.Actor) (State, error) {
|
func Load(store adt.Store, act *types.Actor) (State, error) {
|
||||||
if name, av, ok := actors.GetActorMetaByCode(act.Code); ok {
|
if name, av, ok := actors.GetActorMetaByCode(act.Code); ok {
|
||||||
@@ -44,9 +44,6 @@ func Load(store adt.Store, act *types.Actor) (State, error) {
|
|||||||
case actorstypes.Version11:
|
case actorstypes.Version11:
|
||||||
return load11(store, act.Head)
|
return load11(store, act.Head)
|
||||||
|
|
||||||
case actorstypes.Version12:
|
|
||||||
return load12(store, act.Head)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -114,9 +111,6 @@ func MakeState(store adt.Store, av actorstypes.Version, addr address.Address) (S
|
|||||||
case actorstypes.Version11:
|
case actorstypes.Version11:
|
||||||
return make11(store, addr)
|
return make11(store, addr)
|
||||||
|
|
||||||
case actorstypes.Version12:
|
|
||||||
return make12(store, addr)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return nil, xerrors.Errorf("unknown actor version %d", av)
|
return nil, xerrors.Errorf("unknown actor version %d", av)
|
||||||
}
|
}
|
||||||
@@ -145,6 +139,5 @@ func AllCodes() []cid.Cid {
|
|||||||
(&state9{}).Code(),
|
(&state9{}).Code(),
|
||||||
(&state10{}).Code(),
|
(&state10{}).Code(),
|
||||||
(&state11{}).Code(),
|
(&state11{}).Code(),
|
||||||
(&state12{}).Code(),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
-62
@@ -1,62 +0,0 @@
|
|||||||
package account
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
"github.com/ipfs/go-cid"
|
|
||||||
|
|
||||||
"github.com/filecoin-project/go-address"
|
|
||||||
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
|
||||||
account12 "github.com/filecoin-project/go-state-types/builtin/v12/account"
|
|
||||||
"github.com/filecoin-project/go-state-types/manifest"
|
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors"
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors/adt"
|
|
||||||
)
|
|
||||||
|
|
||||||
var _ State = (*state12)(nil)
|
|
||||||
|
|
||||||
func load12(store adt.Store, root cid.Cid) (State, error) {
|
|
||||||
out := state12{store: store}
|
|
||||||
err := store.Get(store.Context(), root, &out)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return &out, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func make12(store adt.Store, addr address.Address) (State, error) {
|
|
||||||
out := state12{store: store}
|
|
||||||
out.State = account12.State{Address: addr}
|
|
||||||
return &out, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type state12 struct {
|
|
||||||
account12.State
|
|
||||||
store adt.Store
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) PubkeyAddress() (address.Address, error) {
|
|
||||||
return s.Address, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) GetState() interface{} {
|
|
||||||
return &s.State
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) ActorKey() string {
|
|
||||||
return manifest.AccountKey
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) ActorVersion() actorstypes.Version {
|
|
||||||
return actorstypes.Version12
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) Code() cid.Cid {
|
|
||||||
code, ok := actors.GetActorCodeID(s.ActorVersion(), s.ActorKey())
|
|
||||||
if !ok {
|
|
||||||
panic(fmt.Errorf("didn't find actor %v code id for actor version %d", s.ActorKey(), s.ActorVersion()))
|
|
||||||
}
|
|
||||||
|
|
||||||
return code
|
|
||||||
}
|
|
||||||
@@ -23,7 +23,6 @@ import (
|
|||||||
"github.com/filecoin-project/lotus/chain/actors"
|
"github.com/filecoin-project/lotus/chain/actors"
|
||||||
)
|
)
|
||||||
|
|
||||||
var InitActorAddr = builtin.InitActorAddr
|
|
||||||
var SystemActorAddr = builtin.SystemActorAddr
|
var SystemActorAddr = builtin.SystemActorAddr
|
||||||
var BurntFundsActorAddr = builtin.BurntFundsActorAddr
|
var BurntFundsActorAddr = builtin.BurntFundsActorAddr
|
||||||
var CronActorAddr = builtin.CronActorAddr
|
var CronActorAddr = builtin.CronActorAddr
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ import (
|
|||||||
smoothingtypes "github.com/filecoin-project/go-state-types/builtin/v8/util/smoothing"
|
smoothingtypes "github.com/filecoin-project/go-state-types/builtin/v8/util/smoothing"
|
||||||
)
|
)
|
||||||
|
|
||||||
var InitActorAddr = builtin.InitActorAddr
|
|
||||||
var SystemActorAddr = builtin.SystemActorAddr
|
var SystemActorAddr = builtin.SystemActorAddr
|
||||||
var BurntFundsActorAddr = builtin.BurntFundsActorAddr
|
var BurntFundsActorAddr = builtin.BurntFundsActorAddr
|
||||||
var CronActorAddr = builtin.CronActorAddr
|
var CronActorAddr = builtin.CronActorAddr
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import (
|
|||||||
"golang.org/x/xerrors"
|
"golang.org/x/xerrors"
|
||||||
|
|
||||||
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
||||||
builtin12 "github.com/filecoin-project/go-state-types/builtin"
|
builtin11 "github.com/filecoin-project/go-state-types/builtin"
|
||||||
"github.com/filecoin-project/go-state-types/manifest"
|
"github.com/filecoin-project/go-state-types/manifest"
|
||||||
builtin0 "github.com/filecoin-project/specs-actors/actors/builtin"
|
builtin0 "github.com/filecoin-project/specs-actors/actors/builtin"
|
||||||
builtin2 "github.com/filecoin-project/specs-actors/v2/actors/builtin"
|
builtin2 "github.com/filecoin-project/specs-actors/v2/actors/builtin"
|
||||||
@@ -40,9 +40,6 @@ func Load(store adt.Store, act *types.Actor) (State, error) {
|
|||||||
case actorstypes.Version11:
|
case actorstypes.Version11:
|
||||||
return load11(store, act.Head)
|
return load11(store, act.Head)
|
||||||
|
|
||||||
case actorstypes.Version12:
|
|
||||||
return load12(store, act.Head)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -110,16 +107,13 @@ func MakeState(store adt.Store, av actorstypes.Version) (State, error) {
|
|||||||
case actorstypes.Version11:
|
case actorstypes.Version11:
|
||||||
return make11(store)
|
return make11(store)
|
||||||
|
|
||||||
case actorstypes.Version12:
|
|
||||||
return make12(store)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return nil, xerrors.Errorf("unknown actor version %d", av)
|
return nil, xerrors.Errorf("unknown actor version %d", av)
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
Address = builtin12.CronActorAddr
|
Address = builtin11.CronActorAddr
|
||||||
Methods = builtin12.MethodsCron
|
Methods = builtin11.MethodsCron
|
||||||
)
|
)
|
||||||
|
|
||||||
type State interface {
|
type State interface {
|
||||||
@@ -143,6 +137,5 @@ func AllCodes() []cid.Cid {
|
|||||||
(&state9{}).Code(),
|
(&state9{}).Code(),
|
||||||
(&state10{}).Code(),
|
(&state10{}).Code(),
|
||||||
(&state11{}).Code(),
|
(&state11{}).Code(),
|
||||||
(&state12{}).Code(),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
-57
@@ -1,57 +0,0 @@
|
|||||||
package cron
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
"github.com/ipfs/go-cid"
|
|
||||||
|
|
||||||
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
|
||||||
cron12 "github.com/filecoin-project/go-state-types/builtin/v12/cron"
|
|
||||||
"github.com/filecoin-project/go-state-types/manifest"
|
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors"
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors/adt"
|
|
||||||
)
|
|
||||||
|
|
||||||
var _ State = (*state12)(nil)
|
|
||||||
|
|
||||||
func load12(store adt.Store, root cid.Cid) (State, error) {
|
|
||||||
out := state12{store: store}
|
|
||||||
err := store.Get(store.Context(), root, &out)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return &out, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func make12(store adt.Store) (State, error) {
|
|
||||||
out := state12{store: store}
|
|
||||||
out.State = *cron12.ConstructState(cron12.BuiltInEntries())
|
|
||||||
return &out, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type state12 struct {
|
|
||||||
cron12.State
|
|
||||||
store adt.Store
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) GetState() interface{} {
|
|
||||||
return &s.State
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) ActorKey() string {
|
|
||||||
return manifest.CronKey
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) ActorVersion() actorstypes.Version {
|
|
||||||
return actorstypes.Version12
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) Code() cid.Cid {
|
|
||||||
code, ok := actors.GetActorCodeID(s.ActorVersion(), s.ActorKey())
|
|
||||||
if !ok {
|
|
||||||
panic(fmt.Errorf("didn't find actor %v code id for actor version %d", s.ActorKey(), s.ActorVersion()))
|
|
||||||
}
|
|
||||||
|
|
||||||
return code
|
|
||||||
}
|
|
||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
||||||
builtin12 "github.com/filecoin-project/go-state-types/builtin"
|
builtin11 "github.com/filecoin-project/go-state-types/builtin"
|
||||||
"github.com/filecoin-project/go-state-types/cbor"
|
"github.com/filecoin-project/go-state-types/cbor"
|
||||||
"github.com/filecoin-project/go-state-types/manifest"
|
"github.com/filecoin-project/go-state-types/manifest"
|
||||||
|
|
||||||
@@ -17,8 +17,8 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
Address = builtin12.DatacapActorAddr
|
Address = builtin11.DatacapActorAddr
|
||||||
Methods = builtin12.MethodsDatacap
|
Methods = builtin11.MethodsDatacap
|
||||||
)
|
)
|
||||||
|
|
||||||
func Load(store adt.Store, act *types.Actor) (State, error) {
|
func Load(store adt.Store, act *types.Actor) (State, error) {
|
||||||
@@ -38,9 +38,6 @@ func Load(store adt.Store, act *types.Actor) (State, error) {
|
|||||||
case actorstypes.Version11:
|
case actorstypes.Version11:
|
||||||
return load11(store, act.Head)
|
return load11(store, act.Head)
|
||||||
|
|
||||||
case actorstypes.Version12:
|
|
||||||
return load12(store, act.Head)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -59,9 +56,6 @@ func MakeState(store adt.Store, av actorstypes.Version, governor address.Address
|
|||||||
case actorstypes.Version11:
|
case actorstypes.Version11:
|
||||||
return make11(store, governor, bitwidth)
|
return make11(store, governor, bitwidth)
|
||||||
|
|
||||||
case actorstypes.Version12:
|
|
||||||
return make12(store, governor, bitwidth)
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return nil, xerrors.Errorf("datacap actor only valid for actors v9 and above, got %d", av)
|
return nil, xerrors.Errorf("datacap actor only valid for actors v9 and above, got %d", av)
|
||||||
}
|
}
|
||||||
@@ -85,6 +79,5 @@ func AllCodes() []cid.Cid {
|
|||||||
(&state9{}).Code(),
|
(&state9{}).Code(),
|
||||||
(&state10{}).Code(),
|
(&state10{}).Code(),
|
||||||
(&state11{}).Code(),
|
(&state11{}).Code(),
|
||||||
(&state12{}).Code(),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
-82
@@ -1,82 +0,0 @@
|
|||||||
package datacap
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
"github.com/ipfs/go-cid"
|
|
||||||
|
|
||||||
"github.com/filecoin-project/go-address"
|
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
|
||||||
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
|
||||||
datacap12 "github.com/filecoin-project/go-state-types/builtin/v12/datacap"
|
|
||||||
adt12 "github.com/filecoin-project/go-state-types/builtin/v12/util/adt"
|
|
||||||
"github.com/filecoin-project/go-state-types/manifest"
|
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors"
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors/adt"
|
|
||||||
)
|
|
||||||
|
|
||||||
var _ State = (*state12)(nil)
|
|
||||||
|
|
||||||
func load12(store adt.Store, root cid.Cid) (State, error) {
|
|
||||||
out := state12{store: store}
|
|
||||||
err := store.Get(store.Context(), root, &out)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return &out, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func make12(store adt.Store, governor address.Address, bitwidth uint64) (State, error) {
|
|
||||||
out := state12{store: store}
|
|
||||||
s, err := datacap12.ConstructState(store, governor, bitwidth)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
out.State = *s
|
|
||||||
|
|
||||||
return &out, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type state12 struct {
|
|
||||||
datacap12.State
|
|
||||||
store adt.Store
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) Governor() (address.Address, error) {
|
|
||||||
return s.State.Governor, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) GetState() interface{} {
|
|
||||||
return &s.State
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) ForEachClient(cb func(addr address.Address, dcap abi.StoragePower) error) error {
|
|
||||||
return forEachClient(s.store, actors.Version12, s.verifiedClients, cb)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) verifiedClients() (adt.Map, error) {
|
|
||||||
return adt12.AsMap(s.store, s.Token.Balances, int(s.Token.HamtBitWidth))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) VerifiedClientDataCap(addr address.Address) (bool, abi.StoragePower, error) {
|
|
||||||
return getDataCap(s.store, actors.Version12, s.verifiedClients, addr)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) ActorKey() string {
|
|
||||||
return manifest.DatacapKey
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) ActorVersion() actorstypes.Version {
|
|
||||||
return actorstypes.Version12
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) Code() cid.Cid {
|
|
||||||
code, ok := actors.GetActorCodeID(s.ActorVersion(), s.ActorKey())
|
|
||||||
if !ok {
|
|
||||||
panic(fmt.Errorf("didn't find actor %v code id for actor version %d", s.ActorKey(), s.ActorVersion()))
|
|
||||||
}
|
|
||||||
|
|
||||||
return code
|
|
||||||
}
|
|
||||||
@@ -5,7 +5,7 @@ import (
|
|||||||
"golang.org/x/xerrors"
|
"golang.org/x/xerrors"
|
||||||
|
|
||||||
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
||||||
builtin12 "github.com/filecoin-project/go-state-types/builtin"
|
builtin11 "github.com/filecoin-project/go-state-types/builtin"
|
||||||
"github.com/filecoin-project/go-state-types/cbor"
|
"github.com/filecoin-project/go-state-types/cbor"
|
||||||
"github.com/filecoin-project/go-state-types/manifest"
|
"github.com/filecoin-project/go-state-types/manifest"
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@ import (
|
|||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
var Methods = builtin12.MethodsEVM
|
var Methods = builtin11.MethodsEVM
|
||||||
|
|
||||||
func Load(store adt.Store, act *types.Actor) (State, error) {
|
func Load(store adt.Store, act *types.Actor) (State, error) {
|
||||||
if name, av, ok := actors.GetActorMetaByCode(act.Code); ok {
|
if name, av, ok := actors.GetActorMetaByCode(act.Code); ok {
|
||||||
@@ -30,9 +30,6 @@ func Load(store adt.Store, act *types.Actor) (State, error) {
|
|||||||
case actorstypes.Version11:
|
case actorstypes.Version11:
|
||||||
return load11(store, act.Head)
|
return load11(store, act.Head)
|
||||||
|
|
||||||
case actorstypes.Version12:
|
|
||||||
return load12(store, act.Head)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -48,9 +45,6 @@ func MakeState(store adt.Store, av actorstypes.Version, bytecode cid.Cid) (State
|
|||||||
case actorstypes.Version11:
|
case actorstypes.Version11:
|
||||||
return make11(store, bytecode)
|
return make11(store, bytecode)
|
||||||
|
|
||||||
case actorstypes.Version12:
|
|
||||||
return make12(store, bytecode)
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return nil, xerrors.Errorf("evm actor only valid for actors v10 and above, got %d", av)
|
return nil, xerrors.Errorf("evm actor only valid for actors v10 and above, got %d", av)
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
-72
@@ -1,72 +0,0 @@
|
|||||||
package evm
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/ipfs/go-cid"
|
|
||||||
|
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
|
||||||
evm12 "github.com/filecoin-project/go-state-types/builtin/v12/evm"
|
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors/adt"
|
|
||||||
)
|
|
||||||
|
|
||||||
var _ State = (*state12)(nil)
|
|
||||||
|
|
||||||
func load12(store adt.Store, root cid.Cid) (State, error) {
|
|
||||||
out := state12{store: store}
|
|
||||||
err := store.Get(store.Context(), root, &out)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return &out, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func make12(store adt.Store, bytecode cid.Cid) (State, error) {
|
|
||||||
out := state12{store: store}
|
|
||||||
s, err := evm12.ConstructState(store, bytecode)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
out.State = *s
|
|
||||||
|
|
||||||
return &out, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type state12 struct {
|
|
||||||
evm12.State
|
|
||||||
store adt.Store
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) Nonce() (uint64, error) {
|
|
||||||
return s.State.Nonce, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) IsAlive() (bool, error) {
|
|
||||||
return s.State.Tombstone == nil, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) GetState() interface{} {
|
|
||||||
return &s.State
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) GetBytecodeCID() (cid.Cid, error) {
|
|
||||||
return s.State.Bytecode, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) GetBytecodeHash() ([32]byte, error) {
|
|
||||||
return s.State.BytecodeHash, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) GetBytecode() ([]byte, error) {
|
|
||||||
bc, err := s.GetBytecodeCID()
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var byteCode abi.CborBytesTransparent
|
|
||||||
if err := s.store.Get(s.store.Context(), bc, &byteCode); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return byteCode, nil
|
|
||||||
}
|
|
||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
||||||
builtin12 "github.com/filecoin-project/go-state-types/builtin"
|
builtin11 "github.com/filecoin-project/go-state-types/builtin"
|
||||||
"github.com/filecoin-project/go-state-types/cbor"
|
"github.com/filecoin-project/go-state-types/cbor"
|
||||||
"github.com/filecoin-project/go-state-types/manifest"
|
"github.com/filecoin-project/go-state-types/manifest"
|
||||||
builtin0 "github.com/filecoin-project/specs-actors/actors/builtin"
|
builtin0 "github.com/filecoin-project/specs-actors/actors/builtin"
|
||||||
@@ -25,8 +25,8 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
Address = builtin12.InitActorAddr
|
Address = builtin11.InitActorAddr
|
||||||
Methods = builtin12.MethodsInit
|
Methods = builtin11.MethodsInit
|
||||||
)
|
)
|
||||||
|
|
||||||
func Load(store adt.Store, act *types.Actor) (State, error) {
|
func Load(store adt.Store, act *types.Actor) (State, error) {
|
||||||
@@ -49,9 +49,6 @@ func Load(store adt.Store, act *types.Actor) (State, error) {
|
|||||||
case actorstypes.Version11:
|
case actorstypes.Version11:
|
||||||
return load11(store, act.Head)
|
return load11(store, act.Head)
|
||||||
|
|
||||||
case actorstypes.Version12:
|
|
||||||
return load12(store, act.Head)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -119,9 +116,6 @@ func MakeState(store adt.Store, av actorstypes.Version, networkName string) (Sta
|
|||||||
case actorstypes.Version11:
|
case actorstypes.Version11:
|
||||||
return make11(store, networkName)
|
return make11(store, networkName)
|
||||||
|
|
||||||
case actorstypes.Version12:
|
|
||||||
return make12(store, networkName)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return nil, xerrors.Errorf("unknown actor version %d", av)
|
return nil, xerrors.Errorf("unknown actor version %d", av)
|
||||||
}
|
}
|
||||||
@@ -173,6 +167,5 @@ func AllCodes() []cid.Cid {
|
|||||||
(&state9{}).Code(),
|
(&state9{}).Code(),
|
||||||
(&state10{}).Code(),
|
(&state10{}).Code(),
|
||||||
(&state11{}).Code(),
|
(&state11{}).Code(),
|
||||||
(&state12{}).Code(),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
-147
@@ -1,147 +0,0 @@
|
|||||||
package init
|
|
||||||
|
|
||||||
import (
|
|
||||||
"crypto/sha256"
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
"github.com/ipfs/go-cid"
|
|
||||||
cbg "github.com/whyrusleeping/cbor-gen"
|
|
||||||
"golang.org/x/xerrors"
|
|
||||||
|
|
||||||
"github.com/filecoin-project/go-address"
|
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
|
||||||
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
|
||||||
builtin12 "github.com/filecoin-project/go-state-types/builtin"
|
|
||||||
init12 "github.com/filecoin-project/go-state-types/builtin/v12/init"
|
|
||||||
adt12 "github.com/filecoin-project/go-state-types/builtin/v12/util/adt"
|
|
||||||
"github.com/filecoin-project/go-state-types/manifest"
|
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors"
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors/adt"
|
|
||||||
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
|
||||||
)
|
|
||||||
|
|
||||||
var _ State = (*state12)(nil)
|
|
||||||
|
|
||||||
func load12(store adt.Store, root cid.Cid) (State, error) {
|
|
||||||
out := state12{store: store}
|
|
||||||
err := store.Get(store.Context(), root, &out)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return &out, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func make12(store adt.Store, networkName string) (State, error) {
|
|
||||||
out := state12{store: store}
|
|
||||||
|
|
||||||
s, err := init12.ConstructState(store, networkName)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
out.State = *s
|
|
||||||
|
|
||||||
return &out, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type state12 struct {
|
|
||||||
init12.State
|
|
||||||
store adt.Store
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) ResolveAddress(address address.Address) (address.Address, bool, error) {
|
|
||||||
return s.State.ResolveAddress(s.store, address)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) MapAddressToNewID(address address.Address) (address.Address, error) {
|
|
||||||
return s.State.MapAddressToNewID(s.store, address)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) ForEachActor(cb func(id abi.ActorID, address address.Address) error) error {
|
|
||||||
addrs, err := adt12.AsMap(s.store, s.State.AddressMap, builtin12.DefaultHamtBitwidth)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
var actorID cbg.CborInt
|
|
||||||
return addrs.ForEach(&actorID, func(key string) error {
|
|
||||||
addr, err := address.NewFromBytes([]byte(key))
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return cb(abi.ActorID(actorID), addr)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) NetworkName() (dtypes.NetworkName, error) {
|
|
||||||
return dtypes.NetworkName(s.State.NetworkName), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) SetNetworkName(name string) error {
|
|
||||||
s.State.NetworkName = name
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) SetNextID(id abi.ActorID) error {
|
|
||||||
s.State.NextID = id
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) Remove(addrs ...address.Address) (err error) {
|
|
||||||
m, err := adt12.AsMap(s.store, s.State.AddressMap, builtin12.DefaultHamtBitwidth)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
for _, addr := range addrs {
|
|
||||||
if err = m.Delete(abi.AddrKey(addr)); err != nil {
|
|
||||||
return xerrors.Errorf("failed to delete entry for address: %s; err: %w", addr, err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
amr, err := m.Root()
|
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("failed to get address map root: %w", err)
|
|
||||||
}
|
|
||||||
s.State.AddressMap = amr
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) SetAddressMap(mcid cid.Cid) error {
|
|
||||||
s.State.AddressMap = mcid
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) GetState() interface{} {
|
|
||||||
return &s.State
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) AddressMap() (adt.Map, error) {
|
|
||||||
return adt12.AsMap(s.store, s.State.AddressMap, builtin12.DefaultHamtBitwidth)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) AddressMapBitWidth() int {
|
|
||||||
return builtin12.DefaultHamtBitwidth
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) AddressMapHashFunction() func(input []byte) []byte {
|
|
||||||
return func(input []byte) []byte {
|
|
||||||
res := sha256.Sum256(input)
|
|
||||||
return res[:]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) ActorKey() string {
|
|
||||||
return manifest.InitKey
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) ActorVersion() actorstypes.Version {
|
|
||||||
return actorstypes.Version12
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *state12) Code() cid.Cid {
|
|
||||||
code, ok := actors.GetActorCodeID(s.ActorVersion(), s.ActorKey())
|
|
||||||
if !ok {
|
|
||||||
panic(fmt.Errorf("didn't find actor %v code id for actor version %d", s.ActorKey(), s.ActorVersion()))
|
|
||||||
}
|
|
||||||
|
|
||||||
return code
|
|
||||||
}
|
|
||||||
@@ -55,9 +55,6 @@ func Load(store adt.Store, act *types.Actor) (State, error) {
|
|||||||
case actorstypes.Version11:
|
case actorstypes.Version11:
|
||||||
return load11(store, act.Head)
|
return load11(store, act.Head)
|
||||||
|
|
||||||
case actorstypes.Version12:
|
|
||||||
return load12(store, act.Head)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -125,9 +122,6 @@ func MakeState(store adt.Store, av actorstypes.Version) (State, error) {
|
|||||||
case actorstypes.Version11:
|
case actorstypes.Version11:
|
||||||
return make11(store)
|
return make11(store)
|
||||||
|
|
||||||
case actorstypes.Version12:
|
|
||||||
return make12(store)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return nil, xerrors.Errorf("unknown actor version %d", av)
|
return nil, xerrors.Errorf("unknown actor version %d", av)
|
||||||
}
|
}
|
||||||
@@ -223,9 +217,6 @@ func DecodePublishStorageDealsReturn(b []byte, nv network.Version) (PublishStora
|
|||||||
case actorstypes.Version11:
|
case actorstypes.Version11:
|
||||||
return decodePublishStorageDealsReturn11(b)
|
return decodePublishStorageDealsReturn11(b)
|
||||||
|
|
||||||
case actorstypes.Version12:
|
|
||||||
return decodePublishStorageDealsReturn12(b)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return nil, xerrors.Errorf("unknown actor version %d", av)
|
return nil, xerrors.Errorf("unknown actor version %d", av)
|
||||||
}
|
}
|
||||||
@@ -312,6 +303,5 @@ func AllCodes() []cid.Cid {
|
|||||||
(&state9{}).Code(),
|
(&state9{}).Code(),
|
||||||
(&state10{}).Code(),
|
(&state10{}).Code(),
|
||||||
(&state11{}).Code(),
|
(&state11{}).Code(),
|
||||||
(&state12{}).Code(),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ import (
|
|||||||
"github.com/filecoin-project/lotus/chain/actors/adt"
|
"github.com/filecoin-project/lotus/chain/actors/adt"
|
||||||
"github.com/filecoin-project/lotus/chain/actors"
|
"github.com/filecoin-project/lotus/chain/actors"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg"
|
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
||||||
"github.com/filecoin-project/go-state-types/manifest"
|
"github.com/filecoin-project/go-state-types/manifest"
|
||||||
|
|
||||||
{{if (le .v 7)}}
|
{{if (le .v 7)}}
|
||||||
|
|||||||
Generated
+1
-1
@@ -11,13 +11,13 @@ import (
|
|||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
||||||
|
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
||||||
"github.com/filecoin-project/go-state-types/manifest"
|
"github.com/filecoin-project/go-state-types/manifest"
|
||||||
market0 "github.com/filecoin-project/specs-actors/actors/builtin/market"
|
market0 "github.com/filecoin-project/specs-actors/actors/builtin/market"
|
||||||
adt0 "github.com/filecoin-project/specs-actors/actors/util/adt"
|
adt0 "github.com/filecoin-project/specs-actors/actors/util/adt"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors"
|
"github.com/filecoin-project/lotus/chain/actors"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/adt"
|
"github.com/filecoin-project/lotus/chain/actors/adt"
|
||||||
verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg"
|
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user