From fcb7cd0eb08f45ba84e543a60571951d5f069e5f Mon Sep 17 00:00:00 2001 From: Aayush Rajasekaran Date: Mon, 22 Nov 2021 19:49:38 -0500 Subject: [PATCH 1/9] Shed: Add a util to send a batch of messages --- chain/messagepool/messagepool.go | 6 +- cmd/lotus-shed/main.go | 1 + cmd/lotus-shed/send-csv.go | 104 +++++++++++++++++++++++++++++++ 3 files changed, 108 insertions(+), 3 deletions(-) create mode 100644 cmd/lotus-shed/send-csv.go diff --git a/chain/messagepool/messagepool.go b/chain/messagepool/messagepool.go index 06343e9c9..e97dfea7b 100644 --- a/chain/messagepool/messagepool.go +++ b/chain/messagepool/messagepool.go @@ -196,10 +196,10 @@ func ComputeMinRBF(curPrem abi.TokenAmount) abi.TokenAmount { return types.BigAdd(minPrice, types.NewInt(1)) } -func CapGasFee(mff dtypes.DefaultMaxFeeFunc, msg *types.Message, sendSepc *api.MessageSendSpec) { +func CapGasFee(mff dtypes.DefaultMaxFeeFunc, msg *types.Message, sendSpec *api.MessageSendSpec) { var maxFee abi.TokenAmount - if sendSepc != nil { - maxFee = sendSepc.MaxFee + if sendSpec != nil { + maxFee = sendSpec.MaxFee } if maxFee.Int == nil || maxFee.Equals(big.Zero()) { mf, err := mff() diff --git a/cmd/lotus-shed/main.go b/cmd/lotus-shed/main.go index d35fb56dd..f4e6627cb 100644 --- a/cmd/lotus-shed/main.go +++ b/cmd/lotus-shed/main.go @@ -65,6 +65,7 @@ func main() { fr32Cmd, chainCmd, balancerCmd, + sendCsvCmd, } app := &cli.App{ diff --git a/cmd/lotus-shed/send-csv.go b/cmd/lotus-shed/send-csv.go new file mode 100644 index 000000000..072605b8d --- /dev/null +++ b/cmd/lotus-shed/send-csv.go @@ -0,0 +1,104 @@ +package main + +import ( + "encoding/csv" + "fmt" + "os" + "strings" + + "github.com/ipfs/go-cid" + "github.com/urfave/cli/v2" + "golang.org/x/xerrors" + + "github.com/filecoin-project/go-address" + "github.com/filecoin-project/go-state-types/abi" + "github.com/filecoin-project/go-state-types/exitcode" + + lapi "github.com/filecoin-project/lotus/api" + "github.com/filecoin-project/lotus/chain/types" + lcli "github.com/filecoin-project/lotus/cli" +) + +var sendCsvCmd = &cli.Command{ + Name: "send-csv", + Usage: "Utility for sending a batch of balance transfers", + ArgsUsage: "[sender] [csvfile]", + Action: func(cctx *cli.Context) error { + if cctx.NArg() != 2 { + return xerrors.New("must supply sender and path to csv file") + } + + api, closer, err := lcli.GetFullNodeAPIV1(cctx) + if err != nil { + return err + } + + defer closer() + ctx := lcli.ReqContext(cctx) + + sender, err := address.NewFromString(cctx.Args().Get(0)) + if err != nil { + return err + } + + fileReader, err := os.Open(cctx.Args().Get(1)) + if err != nil { + return xerrors.Errorf("read csv: %w", err) + } + + defer fileReader.Close() //nolint:errcheck + r := csv.NewReader(fileReader) + records, err := r.ReadAll() + if err != nil { + return xerrors.Errorf("read csv: %w", err) + } + + var msgCids []cid.Cid + for i, e := range records[1:] { + addr, err := address.NewFromString(e[0]) + if err != nil { + return xerrors.Errorf("failed to parse address in row %d: %w", i, err) + } + + value, err := types.ParseFIL(strings.TrimSpace(e[1])) + if err != nil { + return xerrors.Errorf("failed to parse value balance: %w", err) + } + + smsg, err := api.MpoolPushMessage(ctx, &types.Message{ + To: addr, + From: sender, + Value: abi.TokenAmount(value), + }, nil) + if err != nil { + return err + } + + fmt.Printf("sending %s to %s in msg %s\n", value.String(), addr, smsg.Cid()) + + if i > 0 && i%100 == 0 { + fmt.Printf("catching up until latest message lands") + _, err := api.StateWaitMsg(ctx, smsg.Cid(), 1, lapi.LookbackNoLimit, true) + if err != nil { + return err + } + } + + msgCids = append(msgCids, smsg.Cid()) + } + + fmt.Println("waiting on messages") + + for _, msgCid := range msgCids { + ml, err := api.StateWaitMsg(ctx, msgCid, 5, lapi.LookbackNoLimit, true) + if err != nil { + return err + } + if ml.Receipt.ExitCode != exitcode.Ok { + fmt.Printf("MSG %s NON-ZERO EXITCODE: %s\n", msgCid, ml.Receipt.ExitCode) + } + } + + return nil + }, +} From c9a557e0d97a5240d022573da3f498cbcaef642d Mon Sep 17 00:00:00 2001 From: Aayush Rajasekaran Date: Wed, 24 Nov 2021 14:34:28 -0500 Subject: [PATCH 2/9] Address review --- cmd/lotus-shed/send-csv.go | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/cmd/lotus-shed/send-csv.go b/cmd/lotus-shed/send-csv.go index 072605b8d..2ecd6345b 100644 --- a/cmd/lotus-shed/send-csv.go +++ b/cmd/lotus-shed/send-csv.go @@ -20,12 +20,19 @@ import ( ) var sendCsvCmd = &cli.Command{ - Name: "send-csv", - Usage: "Utility for sending a batch of balance transfers", - ArgsUsage: "[sender] [csvfile]", + Name: "send-csv", + Usage: "Utility for sending a batch of balance transfers", + Flags: []cli.Flag{ + &cli.StringFlag{ + Name: "from", + Usage: "specify the account to send funds from", + Required: true, + }, + }, + ArgsUsage: "[csvfile]", Action: func(cctx *cli.Context) error { - if cctx.NArg() != 2 { - return xerrors.New("must supply sender and path to csv file") + if cctx.NArg() != 1 { + return xerrors.New("must supply path to csv file") } api, closer, err := lcli.GetFullNodeAPIV1(cctx) @@ -36,12 +43,12 @@ var sendCsvCmd = &cli.Command{ defer closer() ctx := lcli.ReqContext(cctx) - sender, err := address.NewFromString(cctx.Args().Get(0)) + sender, err := address.NewFromString(cctx.String("from")) if err != nil { return err } - fileReader, err := os.Open(cctx.Args().Get(1)) + fileReader, err := os.Open(cctx.Args().First()) if err != nil { return xerrors.Errorf("read csv: %w", err) } @@ -53,7 +60,11 @@ var sendCsvCmd = &cli.Command{ return xerrors.Errorf("read csv: %w", err) } - var msgCids []cid.Cid + if strings.TrimSpace(records[0][0]) != "Recipient" || strings.TrimSpace(records[0][1]) != "FIL" { + return xerrors.Errorf("expected header row to be \"Recipient, FIL\"") + } + + var msgs []*types.Message for i, e := range records[1:] { addr, err := address.NewFromString(e[0]) if err != nil { @@ -65,16 +76,21 @@ var sendCsvCmd = &cli.Command{ return xerrors.Errorf("failed to parse value balance: %w", err) } - smsg, err := api.MpoolPushMessage(ctx, &types.Message{ + msgs = append(msgs, &types.Message{ To: addr, From: sender, Value: abi.TokenAmount(value), - }, nil) + }) + } + + var msgCids []cid.Cid + for i, msg := range msgs { + smsg, err := api.MpoolPushMessage(ctx, msg, nil) if err != nil { return err } - fmt.Printf("sending %s to %s in msg %s\n", value.String(), addr, smsg.Cid()) + fmt.Printf("sending %s to %s in msg %s\n", msg.Value.String(), msg.To, smsg.Cid()) if i > 0 && i%100 == 0 { fmt.Printf("catching up until latest message lands") From b0a9a272880b7e72cca5d5b33b9f9ff654e0a883 Mon Sep 17 00:00:00 2001 From: Aayush Rajasekaran Date: Thu, 25 Nov 2021 17:21:50 -0500 Subject: [PATCH 3/9] Shed: Allow send-csv to specify params and method --- cmd/lotus-shed/send-csv.go | 48 +++++++++++++++++++++++++++++++------- 1 file changed, 40 insertions(+), 8 deletions(-) diff --git a/cmd/lotus-shed/send-csv.go b/cmd/lotus-shed/send-csv.go index 2ecd6345b..ce1c8b68a 100644 --- a/cmd/lotus-shed/send-csv.go +++ b/cmd/lotus-shed/send-csv.go @@ -2,8 +2,10 @@ package main import ( "encoding/csv" + "encoding/hex" "fmt" "os" + "strconv" "strings" "github.com/ipfs/go-cid" @@ -43,6 +45,12 @@ var sendCsvCmd = &cli.Command{ defer closer() ctx := lcli.ReqContext(cctx) + srv, err := lcli.GetFullNodeServices(cctx) + if err != nil { + return err + } + defer srv.Close() //nolint:errcheck + sender, err := address.NewFromString(cctx.String("from")) if err != nil { return err @@ -60,8 +68,11 @@ var sendCsvCmd = &cli.Command{ return xerrors.Errorf("read csv: %w", err) } - if strings.TrimSpace(records[0][0]) != "Recipient" || strings.TrimSpace(records[0][1]) != "FIL" { - return xerrors.Errorf("expected header row to be \"Recipient, FIL\"") + if strings.TrimSpace(records[0][0]) != "Recipient" || + strings.TrimSpace(records[0][1]) != "FIL" || + strings.TrimSpace(records[0][2]) != "Method" || + strings.TrimSpace(records[0][3]) != "Params" { + return xerrors.Errorf("expected header row to be \"Recipient, FIL, Method, Params\"") } var msgs []*types.Message @@ -76,21 +87,41 @@ var sendCsvCmd = &cli.Command{ return xerrors.Errorf("failed to parse value balance: %w", err) } + method, err := strconv.Atoi(strings.TrimSpace(e[2])) + if err != nil { + return xerrors.Errorf("failed to parse method number: %w", err) + } + + var params []byte + if strings.TrimSpace(e[3]) != "nil" { + params, err = hex.DecodeString(strings.TrimSpace(e[3])) + if err != nil { + return xerrors.Errorf("failed to parse hexparams: %w", err) + } + } + msgs = append(msgs, &types.Message{ - To: addr, - From: sender, - Value: abi.TokenAmount(value), + To: addr, + From: sender, + Value: abi.TokenAmount(value), + Method: abi.MethodNum(method), + Params: params, }) } + if len(msgs) == 0 { + return nil + } + var msgCids []cid.Cid for i, msg := range msgs { smsg, err := api.MpoolPushMessage(ctx, msg, nil) if err != nil { - return err + fmt.Printf("%d, ERROR %s\n", i, err) + continue } - fmt.Printf("sending %s to %s in msg %s\n", msg.Value.String(), msg.To, smsg.Cid()) + fmt.Printf("%d, %s\n", i, smsg.Cid()) if i > 0 && i%100 == 0 { fmt.Printf("catching up until latest message lands") @@ -103,7 +134,7 @@ var sendCsvCmd = &cli.Command{ msgCids = append(msgCids, smsg.Cid()) } - fmt.Println("waiting on messages") + fmt.Println("waiting on messages...") for _, msgCid := range msgCids { ml, err := api.StateWaitMsg(ctx, msgCid, 5, lapi.LookbackNoLimit, true) @@ -115,6 +146,7 @@ var sendCsvCmd = &cli.Command{ } } + fmt.Println("all sent messages succeeded") return nil }, } From bd1bec5c930491e859a9d2e2906cb3d29bd4c003 Mon Sep 17 00:00:00 2001 From: Cory Schwartz Date: Wed, 15 Dec 2021 14:48:19 -0800 Subject: [PATCH 4/9] remove devel grade --- snap/snapcraft.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 472621c2a..25b84058d 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -17,7 +17,6 @@ description: | https://github.com/filecoin-project/lotus -grade: devel confinement: strict parts: From 145c862ee0752c42404edc9570ea3f199ea49201 Mon Sep 17 00:00:00 2001 From: Cory Schwartz Date: Wed, 15 Dec 2021 14:49:56 -0800 Subject: [PATCH 5/9] tmp: publish to snapcraft edge --- .circleci/config.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index a4a88a090..37caa731a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1042,6 +1042,9 @@ workflows: tags: only: - /^v\d+\.\d+\.\d+(-rc\d+)?$/ + - publish-snapcraft: + name: temporary-snapcraft-publish-edge + channel: edge nightly: triggers: From 2f30322a4e5ffc9546859e7d2bbd0f71fa312986 Mon Sep 17 00:00:00 2001 From: Cory Schwartz Date: Wed, 15 Dec 2021 15:01:42 -0800 Subject: [PATCH 6/9] try stable --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 37caa731a..252e1fff8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1043,8 +1043,8 @@ workflows: only: - /^v\d+\.\d+\.\d+(-rc\d+)?$/ - publish-snapcraft: - name: temporary-snapcraft-publish-edge - channel: edge + name: temporary-snapcraft-publish-stable + channel: stable nightly: triggers: From 65ecca290488dbfd50f2abc55c7ad343bc6ebca0 Mon Sep 17 00:00:00 2001 From: Cory Schwartz Date: Wed, 15 Dec 2021 15:54:40 -0800 Subject: [PATCH 7/9] restore .circleci --- .circleci/config.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 252e1fff8..a4a88a090 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1042,9 +1042,6 @@ workflows: tags: only: - /^v\d+\.\d+\.\d+(-rc\d+)?$/ - - publish-snapcraft: - name: temporary-snapcraft-publish-stable - channel: stable nightly: triggers: From f82a262ffec41b486dbf00b5c3d349ec1fc6a975 Mon Sep 17 00:00:00 2001 From: pefish Date: Wed, 29 Dec 2021 17:37:37 +0800 Subject: [PATCH 8/9] Update wdpost_run.go --- storage/wdpost_run.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/storage/wdpost_run.go b/storage/wdpost_run.go index 038ed3ac7..83802a7f3 100644 --- a/storage/wdpost_run.go +++ b/storage/wdpost_run.go @@ -181,9 +181,10 @@ func (s *WindowPoStScheduler) runSubmitPoST( post.ChainCommitRand = commRand // Submit PoST - sm, submitErr := s.submitPoStMessage(ctx, post) - if submitErr != nil { - log.Errorf("submit window post failed: %+v", submitErr) + sm, err := s.submitPoStMessage(ctx, post) + if err != nil { + log.Errorf("submit window post failed: %+v", err) + submitErr = err } else { s.recordProofsEvent(post.Partitions, sm.Cid()) } From 4172a3c8b778e3f62b20ac37291df275792b9c29 Mon Sep 17 00:00:00 2001 From: zl Date: Tue, 28 Dec 2021 10:38:12 +0800 Subject: [PATCH 9/9] ExampleValue for a silce is nil --- api/docgen/docgen.go | 4 +- build/openrpc/full.json.gz | Bin 25722 -> 26581 bytes build/openrpc/miner.json.gz | Bin 11753 -> 12555 bytes build/openrpc/worker.json.gz | Bin 3691 -> 3803 bytes documentation/en/api-v0-methods-miner.md | 773 ++++++++- documentation/en/api-v0-methods-worker.md | 78 +- documentation/en/api-v0-methods.md | 1535 +++++++++++++++-- documentation/en/api-v1-unstable-methods.md | 1636 +++++++++++++++++-- 8 files changed, 3721 insertions(+), 305 deletions(-) diff --git a/api/docgen/docgen.go b/api/docgen/docgen.go index 03ce9109d..571599935 100644 --- a/api/docgen/docgen.go +++ b/api/docgen/docgen.go @@ -1,6 +1,7 @@ package docgen import ( + "encoding/json" "fmt" "go/ast" "go/parser" @@ -252,6 +253,7 @@ func init() { addExample(map[abi.SectorNumber]string{ 123: "can't acquire read lock", }) + addExample(json.RawMessage(`"json raw message"`)) addExample(map[api.SectorState]int{ api.SectorState(sealing.Proving): 120, }) @@ -348,7 +350,7 @@ func ExampleValue(method string, t, parent reflect.Type) interface{} { switch t.Kind() { case reflect.Slice: out := reflect.New(t).Elem() - reflect.Append(out, reflect.ValueOf(ExampleValue(method, t.Elem(), t))) + out = reflect.Append(out, reflect.ValueOf(ExampleValue(method, t.Elem(), t))) return out.Interface() case reflect.Chan: return ExampleValue(method, t.Elem(), nil) diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index c5b98140478ca8678d72b59367c8df5d52328aaf..7ca7301ff72e35e16c485e85f0cd4c306540d3c5 100644 GIT binary patch literal 26581 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 YMei@~G%w9(00030|Cve8McqaP0D>m3!vFvP literal 25722 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 diff --git a/build/openrpc/miner.json.gz b/build/openrpc/miner.json.gz index b3228b6a69e7199640a2ce7be753fec98c80ac5d..e7083de2449cc0fec7b2962d0b1856b7fc1e71b9 100644 GIT binary patch literal 12555 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 literal 11753 zcmV1`%gtXlGjgcyK({ zdKxARTRZ!vQA{nQooQD#-MZlB`W(EzzSMf!19Dt!6JDb~JRTmI=s|nzX=_ARw&`kT zpT21Xu36Q0*g}Sl$?AFz44Y8&l^&mq|Goq-pm=%g73u-xIJWZ=e7hre6fb~#d`T#B z2()6{fS-Q`1Y4rm9d!`hIt2Vg(3d2|mp$;-aelMuY`fXm4n-!b^2q+>)lxL^Vxzyj zBae6FufP7%dYZdkuc5Qk&NQv3ZJ-0!qLW*P4cUBmw6R^xhsJx&hV*k!bCA2WDEl(r z=qC6}jcfXStZCO+p*3Xm&{w$LSctWwE%g3iIMP1%Sar?@w5}a{gB*%ki3PM=)YIs0 zgIIBU{(s1z+UG~c-``v8AX7V|&K5CdHV!f%WlwmmN6E9EhQ5j+yRZ$HF%$2@drVi` zIdIV0rU+P=+-p5;>sZ>EwxV?7p1pdtONZv0Uv6&O7J?*FGC5GPqUq1s7{BR{-w^4?XNHm!Jp(0Yi2ob^gQ`Ph zNJD~;J+SG6q(ufV;2a-^^>RToEShEaV>HV{W~?8K@7kCd4Em;j_*P!(s>Fsg-G}6B zMHhURlx){?_#vcRh0tkX4k!}x1!;|Uha55ZEK8Kz2N`BwUIql1p^L&Mj`)kL3 zU`Sg@HDeT%iaE!}H)x3&f5^PHXY|^!?L`l42H?|YSCI8S@eN|nhk(KROYmY1H=n}q zFFxUCmpYha`am(ZGL$)kd@0RN4g>2p>mKV$yZS93+SZh$x@v^I7^GU22tgsFV(!-G zo^OypyV+NDK4|i7MU9K2Se>lGa&gd3ZTLH1rCBHux#UAV+?K} zWm#4oO22 z7q(PL;&{7ob4;MKdrJ)4Wb$>U&7q6Nqsa6<3)`#8(SgE!f2e?a2SJM7 zK;wS9sRs8E0xG!ooN$5JQpk=FkwbO~T#hrOo|VTMHTVw~5ZgpxE}q%ML=K=U1l$cW z7;2e-4L@Lmcnoe==#Gf35a0=h3+M_`UWI>_qcs~UrqRxp5KNZf3#Kdf{*GMze*1Cu zpEs}1fBks~an;;XE>h;C1gvLk6mZd*+n|5762oEuwB7jq0%W+t#uq z;L0CHCQkvdTGn^2+=G!^xi8?7&Bf6B^Gd26R+sN$eERH{n602=-tg~`<(Y*9GyO6N z)l!~WjBmN_M>uh|#05*}%;6FN!?rABurUI*(2fjZM}lgQtEyoW7rWF2_5v&rHCD{7aJ$WF{Fe(%NFjJ( zB4~jP+*vj>UxI~WuZ8vW)~kTKox3}iqIC}}5kU^5j1D9K6BB(EHg|&@)|B4>e{)Bu z4HnSA7N(Gi9Hhtr4x$c5572UX%~!U=O!!7@#<4$rDF&{+bqwV4p53mn3z%Yxo?#bY zHghtO$*LGO({=6}h}QWqfHhu<^1f5z{|1h?oXDmWd@#Vmb^v-n&W;W4-&+JW7#Rqh zUtaWtb7H}Nc6Z^p2Xwb?Pmpi{bPymm1<{X#*WB@@$l5VZ;e(CMJ97CufCj}6nC>|9 zhz3s3#<3qTSssH+;!*@nk2)tFA$&);H?zQwO9AANgG|N`c7f-7Eo?S?(Gl?l!(Iga zp6~96sLnXRlz+`A(+;u_^j>=Ou?w~?T5K)Wqc6}|gY8B*Zw5402*f`-6Cd>VmVKPW zw`T=Ci9(^+AeReHAQ3CH4rIdG$)sTcvE>512xXhGD82;X3N&M!{D!^&m;G^kM=mLt zTeflUf-RxgN)FHh6YQ?I>~$XCcWjPMPP5I?6?Q2XkZLhmX)=X8Lb0ru?+=D#i~EI) zb|tSc)`x8C6yZzIV`#jvowZONIJdVHK+E!R@t)XU2vc^B5uxV@ekaxrzz2veKAp1( zpJ#@%LZ;7a=-eafhE}L?htpdv%yc*RvZ7eQ*<^55a8>@9d79%%wrbxX!+t3+>qePn%+$hx+#WulwC$xJJ z+KH|Rk&AyK(hA^8s5T+C60)txt(^T%aQ7p)eML}?9X zKoM3D`$8Yd19JGzbhAP$r`v$w$_ck2yviW6EwE^Lkk!?eC z73_C{yC13;5AO`9Gk#lvgIN|`35br7DuAY9FwIOb3*;IaL5EWpmq!{DZnmR*v=Z6V7>zo z{2`9(_W%Uvwuubz;>!vfD}afK4IbSF!Fp>^Y_PXS8))1kGiZgW$4kCj3Bdro#BcYO8h`Kk&UWRxH;nGBTOF ziXp9X+ldh#Td{dj&Lq2bv6n4}V>|Z7cA-`BjMce?5uxSJR*QP)w#DOU3N)Ld@Rpcw zH@2}V7CwFj=g5-oI$mRBph_nhcuju7wP*zU1M{iMch#?1XSik*I<&-qc`AGDU;|wv zC#YGjRo{Q)BAgXO80S=M1D6oPE9laX8Km}yl!s^v|JjPI80OX$odjZ3bZTjZ3}Gjf4b z4&pOY%2QR036sbfqAl%G=TTNoJVic%?5SoR?M5b`1v=1rR*Bd7b|zVo9BEl- zX1Oq%ZnG+qzh+olK@!Y&>hWyUW2$GxibN%$(Vh1k!c8ei;SKm28X{-EQ<3MRBK@q$ zl$0nmZ$OG{^H*1oR?UZu^-eXOk7^9EVqYSH&~!9GF6o9;q)bpjbv03Tp;MLTqbkF! zsGEo|G#j^&L%1O|DIUI1T}c$|cPjFHRAiJD*E2)3!IfqiHFe@Me_=RZBML4!msbNB zx2?;5x2W9KqH?G2SHtOvA{G!wpYvA9l))b{o#0tF{Qd`-ufP&NAQC>myx_`V(-m^~ zs5ExmQ8E1OC7o_1pROk;#Uh*fgNxy>w*BY(f4=_n>%af^0sZnnbn|}v+I2qu>y7c} z*I(Yen+<+(-`ekQzd9eT9)A5Fx~Lohb)Y$Be>m(LD}u1R5TS^2USPN+wo9>5Z61(G zQH6q@0KWt;ev;J6+IP=vPL6&ATV=M~^E#w$MDy)($Y8R*(>6l}>RU4_i~mEQwrNRFRP52Duxa2Qw@AMl^U&a9br%>kV|P1>0S^ zvOYxal(}@-H${rKACT+9r7XKhPy3yDCD%yWeIAasL}kBcSgDdU@NAyuEnepjZ|dV* zM3qO zXUze(t%RrN^fx^f%q?GJR>(^76HnM+Oz2v8P9^&6116CZK7D;S=xHC|*Yq=S&6Ix$ zUr%FL=u)`euo8W}-_zcH-C)L)_j88+{>|3TMgsQrL|k7qy3s zMU6$2bhB0?!E`(3L(=WE&5#!=cI&h_{P<=^eWUP^xcsK9&`eyz-5L?fN8kZk4AxT* zFNxtG=pv5!C3J)2f zM)G*b2sg74onp4j=+R~L=rVfj8JUKPFl?ctSJ;j1dDhuRPSH}|DG(O&Ryp!Lm=yJ# zs|8X`lsdYt?omr;wgAbA5NjjbRGQx|=Tw(-N>a1SIo0Kys=xaB%q+=?;xJH%s+UAutw?Jel2cMsS(o^Z z6{l6))Fj%-G&+igDq5g)?^?1&3brMNNnNsCEA`qm-))KMo@28-UcdJ5gL`K?!IHRq zZWEfd6czF6JKOQ;i3t$4N!1w;w2C_2@1RR_hL?ZC8{{JAL3rlnxVa>AdrQpo*EiBH zlr=H^fG9K}h1Za-cI=Pqcqb#e$MXs1%T_nYq=T_&oSkb}W&-Ggc_?LLvMe4NcbAM;S_#!yB zT#Sb2j~WP9^G6Hz^a?GZvAcF`Y8$q~HO_Kgui?(Jp;^t@+JEdyJ;#t=j9qea#j&sA zMogJ0&J`j{TG0CbzF4@3mRXQ0#zm1`o~oZf?pD?bMe>wOu^)&m-tm%O>;`_RIF+uu z55>$UD!d70Q)tcn<%Hbg4F_#KGf(I=^XUDxIDb~x2a1xBdq0s945#uvohZo+A16V# zfsE!_nYf}C8hi?q0Dd+YI{iyCuz4C z!IXEXXmU6iTaZ$;-cT1%8#v;9mnp8x6xU^n+Xoo-^~{rrH;6hr&lX7oEy^HaoK()y zqXGyQr`Hs`rMPT84{mqf=n2mobs%sx>JJpx^a!1p)lFhCQzfzB3eU#TJ${3imxOX> zC-Gni;2a;HuOKFTuGa&b5r1?IO%s{HT(<`{C$i_cNHWVvgHaYgg04nABE~V}u2mF? zj#@E$uWNaWPt~TESq{k|a+&r&;sV#2&&LydG~oA*q#a18L5sZ@4jSmh$#>g{&V*cz z`oqlQ>$Ao(T+DJaTyUcz%i~bQ5ag%0s9+Hi47cu3c1bLrdlHKda;`@Gk?LGJCYUVW zu&-YUXM*aA^f|(Zxy73qqM7@u0ikA+m2|a*+sP8i1r_3c--rL~o+g-sU<7vn$)+Czh(+2T*-yKiPP-aFCM64XQ^Y z+#suXh~bZxL3Y$1D~_TDxEKbT)-nnKnQ~?!s8+}@1f`ob4N=}ZBZD-nqm+-Hnm7bE^`egiZfOMC9kkc&#}pbzFJ^ZnvCjPRgfJr&mcsJWuBYz zO;35_kl?qab5Ws5=&mr`&lRSJs)Q3ocz-C3;;))2DE?|h0mWY}s$alsr+l6AwW@qm zMTGFRh0G-qen&OMix7}29h~E1-?7Qmy9lKWor{tyr*?5p;lu0&T^OxCD$!2p1|OlIgSHe5%7G&rR%jR z_SY*ZPMm~lWr0n~@B$j>_#9f67t_qQ_rt}7%@F()FZWg`nR3%M-ge#H+Eh>SW12&D z|FoTZg#}shR52wgDj<>Th?-vbD7)2Pc~QCO!gT|qo{kTb z0aekh2-`&3nI1`_5YJR!b`yb)k{dV@Nfc-jEoZM1Da9RiI*snny`z1(lWoy!U4cf9^gU)(& z*6V<+S45xcMWdI=UzEyL)Y-ev-nD4&CW-@S0<>=stQ|-k&?sfw=C*BBw_-t?&DgGJ z7dng8S*(MxSo=w;+}V=OmK3oiQ^h$-A4Dw#T_iHAq4d$eG8QF9sr`MNM1xHkm1Hlv z{hZFM9E4fvFulWcf$2kCaXi<@u*gig7NSS!)L#SpeM{@i9U_#Pg8F#(x;aD#_6Gy@ zDh(tW)ITnW13DuNgwkOuRxu6>S%4YWfwDYR-(s zde>R9&XOIVB}3gjtg~p(-J+dj=4gmPb=|30NT`xU6G(K9%^K&q;%u~F&bo6=GXA9ysa7SAEDBITxO)PX6$mD`z{`{ zGsp*FkUI?TFxDbGhnN!tf*&`Nb)sPEaW8?vxb8j0;o}WJ}$l zBI8_++i8vjH5bqo0&e)2t{?@_K>!grw^-|#0J_31z{I7H80fh61uTg!r#@QxeZJCv z(!{mmnsA@}zZhnQ`LjMi=N?g4`+PX7PY0@T6GcVtIemM1?zZ+qPbU7nlJ8)5~v< zSw=odwULXWC9JA(D8+%fU2mA77Q}!n-UB8v=GHwb}}v? zg?tZ#zvfp$lZE{fyb!I3yPUIiG{sGZD;}j<$`6-!I)8iPwP^x=**BmzfCShZM1aeQ z9fQjSAh!3*1z#{-0YvQWas}KCG!S>vS%uymL71+P!^|%F;?)3Ouw{Wc0)~T_4EBKS z2tVF{mgT**Y~voVnSlk?wuA17-EX7}~M=(EIEZ)~r? zOTu0oW9lz>#}uTXBYC}@Ti9KlV^du3-U}{WKN$@N;uqu8cA=%6wQ;w6C<5LsZhs&L zFEBD$)BZ@DTNn|looNfbKNya*o_6in57=aWTKMb=&XJW|=jmxP3LW}(V;d{hL|^as zw70~JKk#7e+QA08MvnJV(<3dN+m;0>au`?qgsCdv(ojMcc7rn}dR0qTA>L1n&i)Qd^k ziNwn?>kZSM=GEh1T@s@Fs)fE)Fw6hJE;t_b6^RGDpadQ{^Um73)vjVpQBhsX&nJ#z zWr`Pm1F5mPL78jbDdL$I^{ZN_;C9FRqnarvnZxTfGBKpc+5s04)8#kVv-e;vHgSZ@ z?R&&mHOWqJD@X}#Iy%lHzd43M7J*1%|>I8Ytc zv1>$3u?15Pr93(+oQhu7Ulf}>l9}ifrCS-1Lf-Q+$!E&nl!L&+E(P`iY`ixfHu-Qw zZ8kq==mPlu90CM=r6EfBIMe|4LoLV^bnF+&S7Qb3426z0P(h#7y~)yS6`xB)#jZQ@-U7xS_bQ;j zct>r%cwbw4V?9rO&*a;7R^i5a@W0B7aR;haCyG;UfdKFik1SYcEj>!6DFq4$wyQN! zzH?M1do6A3v z9uxwX{6(M;WOCMlINWq=K;0TpM1!ZwkZ$(jZqV9(sN+`)0*(38f?P9xbii6xC}pHk zhyTYr8X*>B7LL6R!qUJc1*VO-g{H_^V*)9kaN6X^SV2sB;L8ddD_}r!N9G8aHu3xc z(ax=3=@{@PnQlX30%C^**)t12phyImWdQ?jT?9gHVbB0ArW(x#X?2r;L)YgMT^TaX z54|+LrmLW+()jrDQJ%Uhh&QAEYR>ZjLB*Ea(i(1-T7EYROr3UKjZXTRan`eDmWF59 zOT*RlFlTMJg7QUqETC~A1MVR#1$R36Ty%1f8C}IA1jDnVm31;grZI0gO0*%hjI)`m zmQe=$(*e-3kO^!OxTu(bx9bhv0owt8LQF5X7V<+!?j4~vpblOxkrSLuLeQ~xo#Xmr zso^j)fGC(7)zHC!Mq>&XP;5r~q73G#Uf6Un*Nja~{YfWy!KQ^|$;=(K0Ssr7Ht`mO z7T9s=%O0yu?g-pcdkraOdb|rJy_m)(yPb0WSjsudj1&rFvF_GVoREBt_a_6J$LHA0 zU)_yUYv>@Zl+8kls@^3ESBr9Yi6Yv&r+p%SywjO@!WTIzE8Ufe6FbKyaG2;bo?Sj& zwiZXC%$$1{9t~)k4su;&0vu4|OK+I_`DS&AK&|b7A(ku0hlxt9AwPynzijA!WonV!xq3L35 z5G&p)ko4CoihQT?hpF<@%#bAa1}$o-I;$@?e`~n;B!ucS6H{m*^9C&nC^aLQq0Dl+ zRTSFey>_gyO!Vbkrbb#>tjL-3=|tD{$m#RT3!dgKdIEhkIXNBcJx4BxI*x^CJ+yW8EI>nZZgfvkKc<+ASy)T_5IIsl4=X-X|styMV@v zW^!{*@w8SI^gQTAcGm9qh>8_s!HvBD5G?USkZcOfci{5k2U_aQ%JEjI22NdCc7FL{p>nT}>iPi0_cW*n=BH9S+ZzIB{*I;blVyyeAe_s(Bx)Y}M#EmQ6q8 z31_>J{=sJ}GVD26+@D`DG36&Rl*#TH9ITN`;d)c7=eG_t zGPC9@9iLFG3Z>=pFss@~1o`zURO_;{b=ldv>}=n8cDAS>@GFDLjY)O+u0ByLf}nAa ztF-P3C+eHVx4YRNb4;MKdrJ(P?;W0LbLgV+DAIITJ8xDECKK8)fMj-z+_vrxB3aK8%Ruh zO_1yMz~%(_VPLtzvTlP{6iP=SnpvN5%-C!Fs-D;g7gR9ednoVe;l9i**NI7`n|KZ; z$R<8T@;lXH0^hv!{0hl$@vec9KAbdh-9S3I|95$7!bq_#5QUYB`}$A07an%-q>Gbn zFiy4$zP}ochnWY|+>aZx-nkf$LaANPSS(Yn;pg<5viUx6*S z(bvWzYtn;KVj`-Yju-vuWHLWOi=lorGEdRbe29#rDI5<@7o#~mffKE#eZ08}!aDr* z(b1r%eSly6tCacgb4X^33@!vPdMa~1`Wy%MW|M#QIAC#4%kZ_@xnSjY6rDJ>-slfYEq+mD#h2+OA zRcOoNi4j5yjp{Zc9YsnqS)~ypCvSKh;XxdjfzeO?oQ;=8X zUTHa3e{Tr|8Z>R+k)x5`+IzYqGe6wqW2!pn?g5iyZyG@EfJ(!#T>!0vrkjH5XkYd^ zgXl22!|1(YbO(@Eqf=d#7C^wkJ50>_02xxr-%R%~GQ*P{rWb5{=QgsA;_dL3S*Quw zEVNRSY@y0}O>AWL>K1oMRy;87(2*=R9`3ta);c7oS*`IIOIebl?Jj85SesI;GhI7a z@GGm+Eh^PAyM0y04k0n`5xugF`-(X`;xy!^NRr^jix#kvKGh5hDJ5OSI7WKVN^Tx0 zqq%0lFIB{1in3vX31xhHe=uY!;$X@|T<__$l6l^ z89XMco#GbFH+?E?4ZmIrf+sy~jY;?;i5lU!9gL3=iQe}<*i#M950~labf7wWmtmAk zU?!`dyN2VTXX$-lRxAfL>u&&iJ=jB(;o+>oz|3A0Bp~z&cbN&lCe* zJv(w(KPx??2PU6`3DgBLtOA&tlO{QXcolHX%$M9qqDU#LifoapvPB@Q5PB)se0Xxn z#G=UApp|rzdvoQUx8F2Uot5$gyY9IQ)uD@&f(z^|qS@->7ZTO>&UIALX^-!MO4oR$Y?VS0cC>o zy_~>4qy?B<%u0NuqDh%4q+)BUnG;YwO_Jugq^(e;jP-f#j##03N33e6jq4!$YIHiu zK6K?BKdcPZtbUPo^4NLD0+T*gEMv|WKh9iXvgh&r!>^7f&!KjwRG$-sK9kA%H2dJq zt+T5;U-w9~J!O9}x9uW}*&aJ`02JS)JmiIa?B?;^JieR9heptgD13@A!vlrfiLN*< z^QZ0HBj?;EgegE3#Ens?oSi8~rS9ZC$&%VDj5kY>Wx3+6VcSH2+N>|)jSar=qAs|( zK5sCOO_$MW|GLmuoQx2{@GpB_Ejlx-uHG)&Zn1g%@nf*JD=;>wndM4^6p!@jaz zswPSyX5%2(v$qMq#pF-&2&TEZ8BChT<249A@VNVg9BqY-bIbSeuZd zBZ}8ZcK?b{k_uO6J+s;MWS}^KAh2;pA+2NIc>N*6kGTo@4iBv zm$`-xv@B#{cdecElaJnCf8+(9Cylj(FgI++gQpCNR?KHUVukEyJy1%y5zUcniPJ-k<+fL%-KHE+sB(?(+VpBtz)ZK!`P7n`#L6d>%oKD!on%U}w9edI z!j!_D-5Zz|Zokplc^yWw*E+-LjcVG{>?|X5xl=U>i#>0Ro91A(tdKU1s}+Q_fw_5O zLYneKpHxVb0Q;0e8bR1CalM37oum5H?m*|Lc8+T2sD4L|>LWwaw*=0uFf!2#ulj(! zM!cW!EC2a^vlYQqdQUs&fAiIY?6}`D*{MC6MdCpN#--^5eMY~fEBdi%jfEj6BidvP z#a@>g5gwmbWIWz`C5xvqj78ZMI=SkH*_9|<^jK;nvajIT*l;{Egs&O7OsG)7&k@sD zi6BO_z2Ldwn8KH@!x5oSwK9Dz5=&m~NgRJl$PkCGeP)w5)bQ=$iT3#T`SJe;00960 LJa@|?%{Kx7_PQX9 diff --git a/build/openrpc/worker.json.gz b/build/openrpc/worker.json.gz index 1a0cb26b543ca19a460774835bc329b0e76b2aca..717eeaacb2879bc3d4445218e554bffe547f727c 100644 GIT binary patch literal 3803 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 R{|^8F|NkJWl}sqf008mFeN_Me literal 3691 zcmV-x4wUg9iwFP!00000|Lk2`bK5o+{wo;nOWdJlillCy=|k$YScJM)1)^AcHziZ}fmSxm_` zN}z(zs~T>XsuG}oLL4AlIb}hJ_+a<}vLNFrQR9~CX0-IeXjN!KtuZ5^@D#9L_;C=0f+Njp;g(${qJwxnf(%`hufiyNVO zT2-wnoPk;#-SSK{bQrHY;Vo~kN;%DCsAB_So3YgnaAj7sQT*R=$v>=B|ZHfvw1iL0dhTt zfP=}sqAFqFD5uJtF`u5EoZLlOdY0#&%n}H3><1p_>%`%3kj;~1GnM?-in{%yXCpyS8?o9IqFwbvJvb|I>ko)qtK_~rP}c&YD+1G^hSrig zg(B!+a;K!2qAZ9~+JTt``%sTB*Ly&XnUY9TBF)!^G|fQ;Jir7x_&Z9*LJ%ip3X3j( zttN>J41_^Va~7-E{0)YP< ztkq_+s-zMgm5<21m@g={prf3cy2=x-DHqA)$JJNpXMSwHo?Tqi_^t=?DbaIP) zY^q(VijiZ*)F)i|^~o^9N;fZY zBb$>$kBBwlNi# z&2Efoqfy8k(`RHQZ%m(!m7+1#cQB>}YrbD(x&wJ}V>;|>!@fQ;N?h&^d~B#`CDzo? z^}enT%#p5DFr#U;*f}oeXIS9JFpa@vWQ>jBxWuFmO;a}q+Qc-qymV-NZDI}w!yO{1|S6dO&x^{IRVwyLs&n>2T>-xN6nliDoD8{nHzVknq1GP(1`VAc3j`suHNaAfUQj3I9QnLYn^9x{C=5>tP-Fc z$7$6GgnXamT!(rV7|n-fX5z={kXVP531p5#&T1B@pE=W?K4c69HWh z+r8`S?N~5d(H7lX*CwWLc|OZEFD}TPO8|-OxquS_-VA(=S`BDiUIll_(QG@(=q$k3 zIU-5E8{)_G0A(;>VmI}csr0(hh2cqmsd3v=Er;F74Y5zV;MbvM{eGpIJ)leEJJ^EP zz6}{FP92`qwR{bYu04n@8r=MCHoOj@gq^Ntapf(ScMTpSMm>aCoxBR+8LvXvdVQiC znZp>F;vJH5WaRZBa&bp4?zD!4b-gYUE;?{gB&@fJgjL`V)+G}Y`()+wHKS#PNpk8dDj7~ZzMLh&yF0ag&{!{wTSM5K|ir45a zQS>sCsN3X)s=Otf;>7NszdMROV7UY2m6ZEE5&xF3!bz9Av{mfy3HY7OQPA3Z#_4v} z)bZ_ zr4|LIDZ<^s(roJ_C_Mz-KQK_5k>bulX+-HP2>{);s8)#oln_-yR0&ac_M*dzSDmg9 zbk3rCSwuq_QzgYbXbkP3a~Vb55=3dVhs%>A7X~ecA5bBOnRmUJ9p0G48Ma0DbyLmg z${%NYO77!I&%DJm7qz3|en(3&-;LtBw{3@R)$8ccH0Uu^Qv9|Co|?eO-$T|I z=5`jgm~EU~bUG;AJOpT46ylc$_oSbbe(tsTxpBpPvJy02s*kr=IDco$%ym80Prp+7r zdjSn{@_cZrdI*4_RGMENW{{pwdcIfY`TG5eTiKdj$F}=DY+YTz_SDU5AMicO-6p4k zX~@9(N;Z;2ET`^S<62;23a1XIE$>+SLGD=V>lJsbT_N@>iKIbTZ&n4XVB*yCoGmf) zn+kS~o6oSaC3b#8(1pQ01#FI1S^+6Q@wbzecJ#m}j{!D^{2xpKMT}u`cSBsb01VzE z0Kp7>1r%8xu_<64;N~6PL5BDb2I)QE;%2H;Bmp$}JUcA@{d zIPkYLD*d?JHZfk;yk%cfa#Q_=#2&M&#-Ibr#&p z-};S0UYkC;^~#ryMis|$;_%&QPg78PQYD){2z5<-XxqsCWx>!nvC+5n`JC04sQN4X z9YyDIO2ah<4X-3m@!!>UOSX&Tc^tX#QtNT4f?9O zx%h2JO&!m=rywK@JAlnmfB*~-An`681wlwiw70jT#QtcDQMxu!mdo4a{{sL3|NoQ& JrGG@n003TMK^_1A diff --git a/documentation/en/api-v0-methods-miner.md b/documentation/en/api-v0-methods-miner.md index 49e8c7a1e..013aed641 100644 --- a/documentation/en/api-v0-methods-miner.md +++ b/documentation/en/api-v0-methods-miner.md @@ -242,10 +242,18 @@ Inputs: `null` Response: ```json { - "PreCommitControl": null, - "CommitControl": null, - "TerminateControl": null, - "DealPublishControl": null, + "PreCommitControl": [ + "f01234" + ], + "CommitControl": [ + "f01234" + ], + "TerminateControl": [ + "f01234" + ], + "DealPublishControl": [ + "f01234" + ], "DisableOwnerFallback": true, "DisableWorkerFallback": true } @@ -276,7 +284,9 @@ Perms: admin Inputs: ```json [ - null + [ + "write" + ] ] ``` @@ -294,7 +304,12 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + "write" +] +``` ## Check @@ -308,7 +323,15 @@ Inputs: ```json [ 8, - null, + [ + { + "ID": { + "Miner": 1000, + "Number": 9 + }, + "ProofType": 8 + } + ], true ] ``` @@ -331,12 +354,28 @@ Perms: read Inputs: ```json [ - null, - null + [ + { + "SealProof": 8, + "SectorNumber": 9, + "SealedCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + } + ], + "Bw==" ] ``` -Response: `null` +Response: +```json +[ + { + "PoStProof": 8, + "ProofBytes": "Ynl0ZSBhcnJheQ==" + } +] +``` ## Create @@ -370,7 +409,16 @@ Perms: admin Inputs: `null` -Response: `null` +Response: +```json +[ + { + "Key": "baga6ea4seaqecmtz7iak33dsfshi627abz4i4665dfuzr3qfs4bmad6dx3iigdq", + "Success": false, + "Error": "\u003cerror\u003e" + } +] +``` ### DagstoreInitializeAll DagstoreInitializeAll initializes all uninitialized shards in bulk, @@ -446,7 +494,16 @@ Perms: read Inputs: `null` -Response: `null` +Response: +```json +[ + { + "Key": "baga6ea4seaqecmtz7iak33dsfshi627abz4i4665dfuzr3qfs4bmad6dx3iigdq", + "State": "ShardStateAvailable", + "Error": "\u003cerror\u003e" + } +] +``` ### DagstoreRecoverShard DagstoreRecoverShard attempts to recover a failed shard. @@ -548,7 +605,33 @@ Perms: admin Inputs: `null` -Response: `null` +Response: +```json +[ + { + "Proposal": { + "PieceCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "PieceSize": 1032, + "VerifiedDeal": true, + "Client": "f01234", + "Provider": "f01234", + "Label": "string value", + "StartEpoch": 10101, + "EndEpoch": 10101, + "StoragePricePerEpoch": "0", + "ProviderCollateral": "0", + "ClientCollateral": "0" + }, + "State": { + "SectorStartEpoch": 10101, + "LastUpdatedEpoch": 10101, + "SlashEpoch": 10101 + } + } +] +``` ### DealsPieceCidBlocklist @@ -557,7 +640,14 @@ Perms: admin Inputs: `null` -Response: `null` +Response: +```json +[ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } +] +``` ### DealsSetConsiderOfflineRetrievalDeals @@ -651,7 +741,11 @@ Perms: admin Inputs: ```json [ - null + [ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + ] ] ``` @@ -679,7 +773,28 @@ Perms: admin Inputs: `null` -Response: `null` +Response: +```json +[ + { + "Type": { + "System": "string value", + "Subsystem": "string value" + }, + "Active": true, + "LastActive": { + "Type": "string value", + "Message": "json raw message", + "Time": "0001-01-01T00:00:00Z" + }, + "LastResolved": { + "Type": "string value", + "Message": "json raw message", + "Time": "0001-01-01T00:00:00Z" + } + } +] +``` ### LogList @@ -688,7 +803,12 @@ Perms: write Inputs: `null` -Response: `null` +Response: +```json +[ + "string value" +] +``` ### LogSetLevel @@ -741,8 +861,94 @@ Inputs: Response: ```json { - "ReceivingTransfers": null, - "SendingTransfers": null + "ReceivingTransfers": [ + { + "RequestID": 4, + "RequestState": "string value", + "IsCurrentChannelRequest": true, + "ChannelID": { + "Initiator": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "Responder": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "ID": 3 + }, + "ChannelState": { + "TransferID": 3, + "Status": 1, + "BaseCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "IsInitiator": true, + "IsSender": true, + "Voucher": "string value", + "Message": "string value", + "OtherPeer": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "Transferred": 42, + "Stages": { + "Stages": [ + { + "Name": "string value", + "Description": "string value", + "CreatedTime": "0001-01-01T00:00:00Z", + "UpdatedTime": "0001-01-01T00:00:00Z", + "Logs": [ + { + "Log": "string value", + "UpdatedTime": "0001-01-01T00:00:00Z" + } + ] + } + ] + } + }, + "Diagnostics": [ + "string value" + ] + } + ], + "SendingTransfers": [ + { + "RequestID": 4, + "RequestState": "string value", + "IsCurrentChannelRequest": true, + "ChannelID": { + "Initiator": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "Responder": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "ID": 3 + }, + "ChannelState": { + "TransferID": 3, + "Status": 1, + "BaseCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "IsInitiator": true, + "IsSender": true, + "Voucher": "string value", + "Message": "string value", + "OtherPeer": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "Transferred": 42, + "Stages": { + "Stages": [ + { + "Name": "string value", + "Description": "string value", + "CreatedTime": "0001-01-01T00:00:00Z", + "UpdatedTime": "0001-01-01T00:00:00Z", + "Logs": [ + { + "Log": "string value", + "UpdatedTime": "0001-01-01T00:00:00Z" + } + ] + } + ] + } + }, + "Diagnostics": [ + "string value" + ] + } + ] } ``` @@ -768,7 +974,20 @@ Response: "OtherPeer": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", "Transferred": 42, "Stages": { - "Stages": null + "Stages": [ + { + "Name": "string value", + "Description": "string value", + "CreatedTime": "0001-01-01T00:00:00Z", + "UpdatedTime": "0001-01-01T00:00:00Z", + "Logs": [ + { + "Log": "string value", + "UpdatedTime": "0001-01-01T00:00:00Z" + } + ] + } + ] } } ``` @@ -906,7 +1125,40 @@ Perms: write Inputs: `null` -Response: `null` +Response: +```json +[ + { + "TransferID": 3, + "Status": 1, + "BaseCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "IsInitiator": true, + "IsSender": true, + "Voucher": "string value", + "Message": "string value", + "OtherPeer": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "Transferred": 42, + "Stages": { + "Stages": [ + { + "Name": "string value", + "Description": "string value", + "CreatedTime": "0001-01-01T00:00:00Z", + "UpdatedTime": "0001-01-01T00:00:00Z", + "Logs": [ + { + "Log": "string value", + "UpdatedTime": "0001-01-01T00:00:00Z" + } + ] + } + ] + } + } +] +``` ### MarketListDeals @@ -915,7 +1167,33 @@ Perms: read Inputs: `null` -Response: `null` +Response: +```json +[ + { + "Proposal": { + "PieceCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "PieceSize": 1032, + "VerifiedDeal": true, + "Client": "f01234", + "Provider": "f01234", + "Label": "string value", + "StartEpoch": 10101, + "EndEpoch": 10101, + "StoragePricePerEpoch": "0", + "ProviderCollateral": "0", + "ClientCollateral": "0" + }, + "State": { + "SectorStartEpoch": 10101, + "LastUpdatedEpoch": 10101, + "SlashEpoch": 10101 + } + } +] +``` ### MarketListIncompleteDeals @@ -924,7 +1202,65 @@ Perms: read Inputs: `null` -Response: `null` +Response: +```json +[ + { + "Proposal": { + "PieceCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "PieceSize": 1032, + "VerifiedDeal": true, + "Client": "f01234", + "Provider": "f01234", + "Label": "string value", + "StartEpoch": 10101, + "EndEpoch": 10101, + "StoragePricePerEpoch": "0", + "ProviderCollateral": "0", + "ClientCollateral": "0" + }, + "ClientSignature": { + "Type": 2, + "Data": "Ynl0ZSBhcnJheQ==" + }, + "ProposalCid": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "AddFundsCid": null, + "PublishCid": null, + "Miner": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "Client": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "State": 42, + "PiecePath": ".lotusminer/fstmp123", + "MetadataPath": ".lotusminer/fstmp123", + "SlashEpoch": 10101, + "FastRetrieval": true, + "Message": "string value", + "FundsReserved": "0", + "Ref": { + "TransferType": "string value", + "Root": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "PieceCid": null, + "PieceSize": 1024, + "RawBlockSize": 42 + }, + "AvailableForRetrieval": true, + "DealID": 5432, + "CreationTime": "0001-01-01T00:00:00Z", + "TransferChannelId": { + "Initiator": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "Responder": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "ID": 3 + }, + "SectorNumber": 9, + "InboundCAR": "string value" + } +] +``` ### MarketListRetrievalDeals @@ -933,7 +1269,51 @@ Perms: read Inputs: `null` -Response: `null` +Response: +```json +[ + { + "PayloadCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "ID": 5, + "Selector": { + "Raw": "Ynl0ZSBhcnJheQ==" + }, + "PieceCID": null, + "PricePerByte": "0", + "PaymentInterval": 42, + "PaymentIntervalIncrease": 42, + "UnsealPrice": "0", + "StoreID": 42, + "ChannelID": { + "Initiator": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "Responder": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "ID": 3 + }, + "PieceInfo": { + "PieceCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "Deals": [ + { + "DealID": 5432, + "SectorID": 9, + "Offset": 1032, + "Length": 1032 + } + ] + }, + "Status": 0, + "Receiver": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "TotalSent": 42, + "FundsReceived": "0", + "Message": "string value", + "CurrentInterval": 42, + "LegacyProtocol": true + } +] +``` ### MarketPendingDeals @@ -945,7 +1325,29 @@ Inputs: `null` Response: ```json { - "Deals": null, + "Deals": [ + { + "Proposal": { + "PieceCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "PieceSize": 1032, + "VerifiedDeal": true, + "Client": "f01234", + "Provider": "f01234", + "Label": "string value", + "StartEpoch": 10101, + "EndEpoch": 10101, + "StoragePricePerEpoch": "0", + "ProviderCollateral": "0", + "ClientCollateral": "0" + }, + "ClientSignature": { + "Type": 2, + "Data": "Ynl0ZSBhcnJheQ==" + } + } + ], "PublishPeriodStart": "0001-01-01T00:00:00Z", "PublishPeriod": 60000000000 } @@ -1063,7 +1465,9 @@ Response: ```json { "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", - "Addrs": [] + "Addrs": [ + "/ip4/52.36.61.156/tcp/1347/p2p/12D3KooWFETiESTf1v4PGUvtnxMAcEFMzLZbJGg4tjWfGEimYior" + ] } ``` @@ -1160,9 +1564,15 @@ Inputs: ```json [ { - "Peers": null, - "IPAddrs": null, - "IPSubnets": null + "Peers": [ + "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf" + ], + "IPAddrs": [ + "string value" + ], + "IPSubnets": [ + "string value" + ] } ] ``` @@ -1179,9 +1589,15 @@ Inputs: `null` Response: ```json { - "Peers": null, - "IPAddrs": null, - "IPSubnets": null + "Peers": [ + "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf" + ], + "IPAddrs": [ + "string value" + ], + "IPSubnets": [ + "string value" + ] } ``` @@ -1194,9 +1610,15 @@ Inputs: ```json [ { - "Peers": null, - "IPAddrs": null, - "IPSubnets": null + "Peers": [ + "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf" + ], + "IPAddrs": [ + "string value" + ], + "IPSubnets": [ + "string value" + ] } ] ``` @@ -1213,7 +1635,9 @@ Inputs: [ { "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", - "Addrs": [] + "Addrs": [ + "/ip4/52.36.61.156/tcp/1347/p2p/12D3KooWFETiESTf1v4PGUvtnxMAcEFMzLZbJGg4tjWfGEimYior" + ] } ] ``` @@ -1264,7 +1688,9 @@ Response: ```json { "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", - "Addrs": [] + "Addrs": [ + "/ip4/52.36.61.156/tcp/1347/p2p/12D3KooWFETiESTf1v4PGUvtnxMAcEFMzLZbJGg4tjWfGEimYior" + ] } ``` @@ -1285,8 +1711,12 @@ Response: { "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", "Agent": "string value", - "Addrs": null, - "Protocols": null, + "Addrs": [ + "string value" + ], + "Protocols": [ + "string value" + ], "ConnMgrMeta": { "FirstSeen": "0001-01-01T00:00:00Z", "Value": 123, @@ -1307,7 +1737,17 @@ Perms: read Inputs: `null` -Response: `null` +Response: +```json +[ + { + "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "Addrs": [ + "/ip4/52.36.61.156/tcp/1347/p2p/12D3KooWFETiESTf1v4PGUvtnxMAcEFMzLZbJGg4tjWfGEimYior" + ] + } +] +``` ### NetPubsubScores @@ -1316,7 +1756,28 @@ Perms: read Inputs: `null` -Response: `null` +Response: +```json +[ + { + "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "Score": { + "Score": 12.3, + "Topics": { + "/blocks": { + "TimeInMesh": 60000000000, + "FirstMessageDeliveries": 122, + "MeshMessageDeliveries": 1234, + "InvalidMessageDeliveries": 3 + } + }, + "AppSpecificScore": 12.3, + "IPColocationFactor": 12.3, + "BehaviourPenalty": 12.3 + } + } +] +``` ## Pieces @@ -1341,7 +1802,15 @@ Response: "CID": { "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" }, - "PieceBlockLocations": null + "PieceBlockLocations": [ + { + "RelOffset": 42, + "BlockSize": 42, + "PieceCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + } + ] } ``` @@ -1365,7 +1834,14 @@ Response: "PieceCID": { "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" }, - "Deals": null + "Deals": [ + { + "DealID": 5432, + "SectorID": 9, + "Offset": 1032, + "Length": 1032 + } + ] } ``` @@ -1376,7 +1852,14 @@ Perms: read Inputs: `null` -Response: `null` +Response: +```json +[ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } +] +``` ### PiecesListPieces @@ -1385,7 +1868,14 @@ Perms: read Inputs: `null` -Response: `null` +Response: +```json +[ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } +] +``` ## Pledge @@ -1551,7 +2041,9 @@ Inputs: }, "ID": "07070707-0707-0707-0707-070707070707" }, - null, + [ + "Ynl0ZSBhcnJheQ==" + ], { "Code": 0, "Message": "string value" @@ -1576,7 +2068,7 @@ Inputs: }, "ID": "07070707-0707-0707-0707-070707070707" }, - null, + "Bw==", { "Code": 0, "Message": "string value" @@ -1682,7 +2174,7 @@ Inputs: }, "ID": "07070707-0707-0707-0707-070707070707" }, - null, + "Bw==", { "Code": 0, "Message": "string value" @@ -1707,7 +2199,7 @@ Inputs: }, "ID": "07070707-0707-0707-0707-070707070707" }, - null, + "Bw==", { "Code": 0, "Message": "string value" @@ -1732,7 +2224,7 @@ Inputs: }, "ID": "07070707-0707-0707-0707-070707070707" }, - null, + "Bw==", { "Code": 0, "Message": "string value" @@ -1918,7 +2410,22 @@ Perms: admin Inputs: `null` -Response: `null` +Response: +```json +[ + { + "Sectors": [ + 123, + 124 + ], + "FailedSectors": { + "123": "can't acquire read lock" + }, + "Msg": null, + "Error": "string value" + } +] +``` ### SectorCommitPending SectorCommitPending returns a list of pending Commit sectors to be sent in the next aggregate message @@ -1928,7 +2435,15 @@ Perms: admin Inputs: `null` -Response: `null` +Response: +```json +[ + { + "Miner": 1000, + "Number": 9 + } +] +``` ### SectorGetExpectedSealDuration SectorGetExpectedSealDuration gets the expected time for a sector to seal @@ -1974,7 +2489,19 @@ Perms: admin Inputs: `null` -Response: `null` +Response: +```json +[ + { + "Sectors": [ + 123, + 124 + ], + "Msg": null, + "Error": "string value" + } +] +``` ### SectorPreCommitPending SectorPreCommitPending returns a list of pending PreCommit sectors to be sent in the next batch message @@ -1984,7 +2511,15 @@ Perms: admin Inputs: `null` -Response: `null` +Response: +```json +[ + { + "Miner": 1000, + "Number": 9 + } +] +``` ### SectorRemove SectorRemove removes the sector from storage. It doesn't terminate it on-chain, which can @@ -2084,7 +2619,15 @@ Perms: admin Inputs: `null` -Response: `null` +Response: +```json +[ + { + "Miner": 1000, + "Number": 9 + } +] +``` ## Sectors @@ -2114,7 +2657,9 @@ Perms: read Inputs: ```json [ - null + [ + "Proving" + ] ] ``` @@ -2168,14 +2713,49 @@ Response: "CommD": null, "CommR": null, "Proof": "Ynl0ZSBhcnJheQ==", - "Deals": null, - "Pieces": null, + "Deals": [ + 5432 + ], + "Pieces": [ + { + "Piece": { + "Size": 1032, + "PieceCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + }, + "DealInfo": { + "PublishCid": null, + "DealID": 5432, + "DealProposal": { + "PieceCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "PieceSize": 1032, + "VerifiedDeal": true, + "Client": "f01234", + "Provider": "f01234", + "Label": "string value", + "StartEpoch": 10101, + "EndEpoch": 10101, + "StoragePricePerEpoch": "0", + "ProviderCollateral": "0", + "ClientCollateral": "0" + }, + "DealSchedule": { + "StartEpoch": 10101, + "EndEpoch": 10101 + }, + "KeepUnsealed": true + } + } + ], "Ticket": { - "Value": null, + "Value": "Bw==", "Epoch": 10101 }, "Seed": { - "Value": null, + "Value": "Bw==", "Epoch": 10101 }, "PreCommitMsg": null, @@ -2183,7 +2763,14 @@ Response: "Retries": 42, "ToUpgrade": true, "LastErr": "string value", - "Log": null, + "Log": [ + { + "Kind": "string value", + "Timestamp": 42, + "Trace": "string value", + "Message": "string value" + } + ], "SealProof": 8, "Activation": 10101, "Expiration": 10101, @@ -2227,7 +2814,7 @@ Inputs: }, 1040384, 1024, - null, + "Bw==", null ] ``` @@ -2277,13 +2864,19 @@ Inputs: [ { "ID": "76f1988b-ef30-4d7e-b3ec-9a627f4ba5a8", - "URLs": null, + "URLs": [ + "string value" + ], "Weight": 42, "MaxStorage": 42, "CanSeal": true, "CanStore": true, - "Groups": null, - "AllowTo": null + "Groups": [ + "string value" + ], + "AllowTo": [ + "string value" + ] }, { "Capacity": 9, @@ -2312,7 +2905,27 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "ID": "76f1988b-ef30-4d7e-b3ec-9a627f4ba5a8", + "URLs": [ + "string value" + ], + "Weight": 42, + "MaxStorage": 42, + "CanSeal": true, + "CanStore": true, + "Groups": [ + "string value" + ], + "AllowTo": [ + "string value" + ] + } +] +``` ### StorageDeclareSector @@ -2371,7 +2984,21 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "ID": "76f1988b-ef30-4d7e-b3ec-9a627f4ba5a8", + "URLs": [ + "string value" + ], + "Weight": 42, + "CanSeal": true, + "CanStore": true, + "Primary": true + } +] +``` ### StorageGetLocks @@ -2424,13 +3051,19 @@ Response: ```json { "ID": "76f1988b-ef30-4d7e-b3ec-9a627f4ba5a8", - "URLs": null, + "URLs": [ + "string value" + ], "Weight": 42, "MaxStorage": 42, "CanSeal": true, "CanStore": true, - "Groups": null, - "AllowTo": null + "Groups": [ + "string value" + ], + "AllowTo": [ + "string value" + ] } ``` diff --git a/documentation/en/api-v0-methods-worker.md b/documentation/en/api-v0-methods-worker.md index 35f337121..566a650fa 100644 --- a/documentation/en/api-v0-methods-worker.md +++ b/documentation/en/api-v0-methods-worker.md @@ -103,7 +103,9 @@ Response: "MemSwap": 42, "MemSwapUsed": 42, "CPUs": 42, - "GPUs": null, + "GPUs": [ + "string value" + ], "Resources": { "seal/v0/addpiece": { "0": { @@ -691,7 +693,18 @@ Perms: admin Inputs: `null` -Response: `null` +Response: +```json +[ + { + "ID": "76f1988b-ef30-4d7e-b3ec-9a627f4ba5a8", + "Weight": 42, + "LocalPath": "string value", + "CanSeal": true, + "CanStore": true + } +] +``` ### Remove Storage / Other @@ -749,7 +762,9 @@ Inputs: }, "ProofType": 8 }, - null, + [ + 1024 + ], 1024, {} ] @@ -784,7 +799,12 @@ Inputs: }, "ProofType": 8 }, - null + [ + { + "Offset": 1024, + "Size": 1024 + } + ] ] ``` @@ -946,7 +966,9 @@ Inputs: { "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" }, - null + [ + "Ynl0ZSBhcnJheQ==" + ] ] ``` @@ -979,7 +1001,12 @@ Inputs: }, "ProofType": 8 }, - null + [ + { + "Offset": 1024, + "Size": 1024 + } + ] ] ``` @@ -1012,7 +1039,14 @@ Inputs: }, "ProofType": 8 }, - null + [ + { + "Size": 1032, + "PieceCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + } + ] ] ``` @@ -1045,9 +1079,16 @@ Inputs: }, "ProofType": 8 }, - null, - null, - null, + "Bw==", + "Bw==", + [ + { + "Size": 1032, + "PieceCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + } + ], { "Unsealed": { "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" @@ -1085,7 +1126,7 @@ Inputs: }, "ProofType": 8 }, - null + "Bw==" ] ``` @@ -1115,8 +1156,15 @@ Inputs: }, "ProofType": 8 }, - null, - null + "Bw==", + [ + { + "Size": 1032, + "PieceCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + } + ] ] ``` @@ -1146,7 +1194,7 @@ Inputs: }, "ProofType": 8 }, - null + "Bw==" ] ``` @@ -1263,7 +1311,7 @@ Inputs: }, 1040384, 1024, - null, + "Bw==", { "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" } diff --git a/documentation/en/api-v0-methods.md b/documentation/en/api-v0-methods.md index 0544a9acc..59dfb09f6 100644 --- a/documentation/en/api-v0-methods.md +++ b/documentation/en/api-v0-methods.md @@ -299,7 +299,9 @@ Perms: admin Inputs: ```json [ - null + [ + "write" + ] ] ``` @@ -317,7 +319,12 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + "write" +] +``` ## Beacon The Beacon method group contains methods for interacting with the random beacon (DRAND) @@ -422,9 +429,23 @@ Response: "WinCount": 9, "VRFProof": "Ynl0ZSBhcnJheQ==" }, - "BeaconEntries": null, - "WinPoStProof": null, - "Parents": null, + "BeaconEntries": [ + { + "Round": 42, + "Data": "Ynl0ZSBhcnJheQ==" + } + ], + "WinPoStProof": [ + { + "PoStProof": 8, + "ProofBytes": "Ynl0ZSBhcnJheQ==" + } + ], + "Parents": [ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + ], "ParentWeight": "0", "Height": 10101, "ParentStateRoot": { @@ -479,9 +500,54 @@ Inputs: Response: ```json { - "BlsMessages": null, - "SecpkMessages": null, - "Cids": null + "BlsMessages": [ + { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } + ], + "SecpkMessages": [ + { + "Message": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "Signature": { + "Type": 2, + "Data": "Ynl0ZSBhcnJheQ==" + }, + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } + ], + "Cids": [ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + ] } ``` @@ -557,7 +623,31 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "Cid": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "Message": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } + } +] +``` ### ChainGetNode @@ -597,7 +687,31 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "Cid": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "Message": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } + } +] +``` ### ChainGetParentReceipts ChainGetParentReceipts returns receipts for messages in parent tipset of @@ -616,7 +730,16 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "ExitCode": 0, + "Return": "Ynl0ZSBhcnJheQ==", + "GasUsed": 9 + } +] +``` ### ChainGetPath ChainGetPath returns a set of revert/apply operations needed to get from @@ -658,7 +781,19 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "Type": "string value", + "Val": { + "Cids": null, + "Blocks": null, + "Height": 0 + } + } +] +``` ### ChainGetRandomnessFromBeacon ChainGetRandomnessFromBeacon is used to sample the beacon for randomness. @@ -683,7 +818,7 @@ Inputs: ] ``` -Response: `null` +Response: `"Bw=="` ### ChainGetRandomnessFromTickets ChainGetRandomnessFromTickets is used to sample the chain for randomness. @@ -708,7 +843,7 @@ Inputs: ] ``` -Response: `null` +Response: `"Bw=="` ### ChainGetTipSet ChainGetTipSet returns the tipset specified by the given TipSetKey. @@ -814,7 +949,19 @@ Perms: read Inputs: `null` -Response: `null` +Response: +```json +[ + { + "Type": "string value", + "Val": { + "Cids": null, + "Blocks": null, + "Height": 0 + } + } +] +``` ### ChainReadObj ChainReadObj reads ipld nodes referenced by the specified CID from chain @@ -988,7 +1135,20 @@ Response: "OtherPeer": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", "Transferred": 42, "Stages": { - "Stages": null + "Stages": [ + { + "Name": "string value", + "Description": "string value", + "CreatedTime": "0001-01-01T00:00:00Z", + "UpdatedTime": "0001-01-01T00:00:00Z", + "Logs": [ + { + "Log": "string value", + "UpdatedTime": "0001-01-01T00:00:00Z" + } + ] + } + ] } } ``` @@ -1058,7 +1218,30 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "Err": "string value", + "Root": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "Piece": null, + "Size": 42, + "MinPrice": "0", + "UnsealPrice": "0", + "PricePerByte": "0", + "PaymentInterval": 42, + "PaymentIntervalIncrease": 42, + "Miner": "f01234", + "MinerPeer": { + "Address": "f01234", + "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "PieceCID": null + } + } +] +``` ### ClientGenCar ClientGenCar generates a CAR file for the specified file. @@ -1103,7 +1286,21 @@ Response: "State": 42, "Message": "string value", "DealStages": { - "Stages": null + "Stages": [ + { + "Name": "string value", + "Description": "string value", + "ExpectedDuration": "string value", + "CreatedTime": "0001-01-01T00:00:00Z", + "UpdatedTime": "0001-01-01T00:00:00Z", + "Logs": [ + { + "Log": "string value", + "UpdatedTime": "0001-01-01T00:00:00Z" + } + ] + } + ] }, "Provider": "f01234", "DataRef": { @@ -1142,7 +1339,20 @@ Response: "OtherPeer": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", "Transferred": 42, "Stages": { - "Stages": null + "Stages": [ + { + "Name": "string value", + "Description": "string value", + "CreatedTime": "0001-01-01T00:00:00Z", + "UpdatedTime": "0001-01-01T00:00:00Z", + "Logs": [ + { + "Log": "string value", + "UpdatedTime": "0001-01-01T00:00:00Z" + } + ] + } + ] } } } @@ -1180,7 +1390,21 @@ Response: "State": 42, "Message": "string value", "DealStages": { - "Stages": null + "Stages": [ + { + "Name": "string value", + "Description": "string value", + "ExpectedDuration": "string value", + "CreatedTime": "0001-01-01T00:00:00Z", + "UpdatedTime": "0001-01-01T00:00:00Z", + "Logs": [ + { + "Log": "string value", + "UpdatedTime": "0001-01-01T00:00:00Z" + } + ] + } + ] }, "Provider": "f01234", "DataRef": { @@ -1219,7 +1443,20 @@ Response: "OtherPeer": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", "Transferred": 42, "Stages": { - "Stages": null + "Stages": [ + { + "Name": "string value", + "Description": "string value", + "CreatedTime": "0001-01-01T00:00:00Z", + "UpdatedTime": "0001-01-01T00:00:00Z", + "Logs": [ + { + "Log": "string value", + "UpdatedTime": "0001-01-01T00:00:00Z" + } + ] + } + ] } } } @@ -1267,7 +1504,20 @@ Response: "OtherPeer": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", "Transferred": 42, "Stages": { - "Stages": null + "Stages": [ + { + "Name": "string value", + "Description": "string value", + "CreatedTime": "0001-01-01T00:00:00Z", + "UpdatedTime": "0001-01-01T00:00:00Z", + "Logs": [ + { + "Log": "string value", + "UpdatedTime": "0001-01-01T00:00:00Z" + } + ] + } + ] } }, "Event": 5 @@ -1325,7 +1575,40 @@ Perms: write Inputs: `null` -Response: `null` +Response: +```json +[ + { + "TransferID": 3, + "Status": 1, + "BaseCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "IsInitiator": true, + "IsSender": true, + "Voucher": "string value", + "Message": "string value", + "OtherPeer": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "Transferred": 42, + "Stages": { + "Stages": [ + { + "Name": "string value", + "Description": "string value", + "CreatedTime": "0001-01-01T00:00:00Z", + "UpdatedTime": "0001-01-01T00:00:00Z", + "Logs": [ + { + "Log": "string value", + "UpdatedTime": "0001-01-01T00:00:00Z" + } + ] + } + ] + } + } +] +``` ### ClientListDeals ClientListDeals returns information about the deals made by the local client. @@ -1335,7 +1618,88 @@ Perms: write Inputs: `null` -Response: `null` +Response: +```json +[ + { + "ProposalCid": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "State": 42, + "Message": "string value", + "DealStages": { + "Stages": [ + { + "Name": "string value", + "Description": "string value", + "ExpectedDuration": "string value", + "CreatedTime": "0001-01-01T00:00:00Z", + "UpdatedTime": "0001-01-01T00:00:00Z", + "Logs": [ + { + "Log": "string value", + "UpdatedTime": "0001-01-01T00:00:00Z" + } + ] + } + ] + }, + "Provider": "f01234", + "DataRef": { + "TransferType": "string value", + "Root": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "PieceCid": null, + "PieceSize": 1024, + "RawBlockSize": 42 + }, + "PieceCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "Size": 42, + "PricePerEpoch": "0", + "Duration": 42, + "DealID": 5432, + "CreationTime": "0001-01-01T00:00:00Z", + "Verified": true, + "TransferChannelID": { + "Initiator": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "Responder": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "ID": 3 + }, + "DataTransfer": { + "TransferID": 3, + "Status": 1, + "BaseCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "IsInitiator": true, + "IsSender": true, + "Voucher": "string value", + "Message": "string value", + "OtherPeer": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "Transferred": 42, + "Stages": { + "Stages": [ + { + "Name": "string value", + "Description": "string value", + "CreatedTime": "0001-01-01T00:00:00Z", + "UpdatedTime": "0001-01-01T00:00:00Z", + "Logs": [ + { + "Log": "string value", + "UpdatedTime": "0001-01-01T00:00:00Z" + } + ] + } + ] + } + } + } +] +``` ### ClientListImports ClientListImports lists imported files and their root CIDs @@ -1345,7 +1709,19 @@ Perms: write Inputs: `null` -Response: `null` +Response: +```json +[ + { + "Key": 50, + "Err": "string value", + "Root": null, + "Source": "string value", + "FilePath": "string value", + "CARPath": "string value" + } +] +``` ### ClientListRetrievals ClientQueryAsk returns a signed StorageAsk from the specified miner. @@ -1356,7 +1732,61 @@ Perms: write Inputs: `null` -Response: `null` +Response: +```json +[ + { + "PayloadCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "ID": 5, + "PieceCID": null, + "PricePerByte": "0", + "UnsealPrice": "0", + "Status": 0, + "Message": "string value", + "Provider": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "BytesReceived": 42, + "BytesPaidFor": 42, + "TotalPaid": "0", + "TransferChannelID": { + "Initiator": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "Responder": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "ID": 3 + }, + "DataTransfer": { + "TransferID": 3, + "Status": 1, + "BaseCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "IsInitiator": true, + "IsSender": true, + "Voucher": "string value", + "Message": "string value", + "OtherPeer": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "Transferred": 42, + "Stages": { + "Stages": [ + { + "Name": "string value", + "Description": "string value", + "CreatedTime": "0001-01-01T00:00:00Z", + "UpdatedTime": "0001-01-01T00:00:00Z", + "Logs": [ + { + "Log": "string value", + "UpdatedTime": "0001-01-01T00:00:00Z" + } + ] + } + ] + } + }, + "Event": 5 + } +] +``` ### ClientMinerQueryOffer ClientMinerQueryOffer returns a QueryOffer for the specific miner and file. @@ -1830,7 +2260,28 @@ Perms: admin Inputs: `null` -Response: `null` +Response: +```json +[ + { + "Type": { + "System": "string value", + "Subsystem": "string value" + }, + "Active": true, + "LastActive": { + "Type": "string value", + "Message": "json raw message", + "Time": "0001-01-01T00:00:00Z" + }, + "LastResolved": { + "Type": "string value", + "Message": "json raw message", + "Time": "0001-01-01T00:00:00Z" + } + } +] +``` ### LogList @@ -1839,7 +2290,12 @@ Perms: write Inputs: `null` -Response: `null` +Response: +```json +[ + "string value" +] +``` ### LogSetLevel @@ -1984,11 +2440,46 @@ Inputs: "WinCount": 9, "VRFProof": "Ynl0ZSBhcnJheQ==" }, - "BeaconValues": null, - "Messages": null, + "BeaconValues": [ + { + "Round": 42, + "Data": "Ynl0ZSBhcnJheQ==" + } + ], + "Messages": [ + { + "Message": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "Signature": { + "Type": 2, + "Data": "Ynl0ZSBhcnJheQ==" + }, + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } + ], "Epoch": 10101, "Timestamp": 42, - "WinningPoStProof": null + "WinningPoStProof": [ + { + "PoStProof": 8, + "ProofBytes": "Ynl0ZSBhcnJheQ==" + } + ] } ] ``` @@ -2005,9 +2496,23 @@ Response: "WinCount": 9, "VRFProof": "Ynl0ZSBhcnJheQ==" }, - "BeaconEntries": null, - "WinPoStProof": null, - "Parents": null, + "BeaconEntries": [ + { + "Round": 42, + "Data": "Ynl0ZSBhcnJheQ==" + } + ], + "WinPoStProof": [ + { + "PoStProof": 8, + "ProofBytes": "Ynl0ZSBhcnJheQ==" + } + ], + "Parents": [ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + ], "ParentWeight": "0", "Height": 10101, "ParentStateRoot": { @@ -2031,8 +2536,16 @@ Response: "ForkSignaling": 42, "ParentBaseFee": "0" }, - "BlsMessages": null, - "SecpkMessages": null + "BlsMessages": [ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + ], + "SecpkMessages": [ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + ] } ``` @@ -2062,14 +2575,27 @@ Response: { "MinerPower": "0", "NetworkPower": "0", - "Sectors": null, + "Sectors": [ + { + "SealProof": 8, + "SectorNumber": 9, + "SealedCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + } + ], "WorkerKey": "f01234", "SectorSize": 34359738368, "PrevBeaconEntry": { "Round": 42, "Data": "Ynl0ZSBhcnJheQ==" }, - "BeaconEntries": null, + "BeaconEntries": [ + { + "Round": 42, + "Data": "Ynl0ZSBhcnJheQ==" + } + ], "EligibleForMining": true } ``` @@ -2088,11 +2614,43 @@ Perms: write Inputs: ```json [ - null + [ + { + "Message": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "Signature": { + "Type": 2, + "Data": "Ynl0ZSBhcnJheQ==" + }, + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } + ] ] ``` -Response: `null` +Response: +```json +[ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } +] +``` ### MpoolBatchPushMessage MpoolBatchPushMessage batch pushes a unsigned message to mempool. @@ -2103,14 +2661,58 @@ Perms: sign Inputs: ```json [ - null, + [ + { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } + ], { "MaxFee": "0" } ] ``` -Response: `null` +Response: +```json +[ + { + "Message": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "Signature": { + "Type": 2, + "Data": "Ynl0ZSBhcnJheQ==" + }, + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } +] +``` ### MpoolBatchPushUntrusted MpoolBatchPushUntrusted batch pushes a signed message to mempool from untrusted sources. @@ -2121,11 +2723,43 @@ Perms: write Inputs: ```json [ - null + [ + { + "Message": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "Signature": { + "Type": 2, + "Data": "Ynl0ZSBhcnJheQ==" + }, + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } + ] ] ``` -Response: `null` +Response: +```json +[ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } +] +``` ### MpoolClear MpoolClear clears pending messages from the mpool @@ -2153,7 +2787,9 @@ Inputs: `null` Response: ```json { - "PriorityAddrs": null, + "PriorityAddrs": [ + "f01234" + ], "SizeLimitHigh": 123, "SizeLimitLow": 123, "ReplaceByFeeRatio": 12.3, @@ -2198,7 +2834,35 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "Message": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "Signature": { + "Type": 2, + "Data": "Ynl0ZSBhcnJheQ==" + }, + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } +] +``` ### MpoolPush MpoolPush pushes a signed message to mempool. @@ -2370,7 +3034,35 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "Message": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "Signature": { + "Type": 2, + "Data": "Ynl0ZSBhcnJheQ==" + }, + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } +] +``` ### MpoolSetConfig MpoolSetConfig sets the mpool config to (a copy of) the supplied config @@ -2382,7 +3074,9 @@ Inputs: ```json [ { - "PriorityAddrs": null, + "PriorityAddrs": [ + "f01234" + ], "SizeLimitHigh": 123, "SizeLimitLow": 123, "ReplaceByFeeRatio": 12.3, @@ -2610,7 +3304,9 @@ Inputs: ```json [ 42, - null, + [ + "f01234" + ], 10101, "0", "f01234", @@ -2671,7 +3367,21 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "ID": 9, + "To": "f01234", + "Value": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "Approved": [ + "f01234" + ] + } +] +``` ### MsigGetVested MsigGetVested returns the amount of FIL that vested in a multisig in a certain period. @@ -2881,7 +3591,9 @@ Response: ```json { "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", - "Addrs": [] + "Addrs": [ + "/ip4/52.36.61.156/tcp/1347/p2p/12D3KooWFETiESTf1v4PGUvtnxMAcEFMzLZbJGg4tjWfGEimYior" + ] } ``` @@ -2978,9 +3690,15 @@ Inputs: ```json [ { - "Peers": null, - "IPAddrs": null, - "IPSubnets": null + "Peers": [ + "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf" + ], + "IPAddrs": [ + "string value" + ], + "IPSubnets": [ + "string value" + ] } ] ``` @@ -2997,9 +3715,15 @@ Inputs: `null` Response: ```json { - "Peers": null, - "IPAddrs": null, - "IPSubnets": null + "Peers": [ + "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf" + ], + "IPAddrs": [ + "string value" + ], + "IPSubnets": [ + "string value" + ] } ``` @@ -3012,9 +3736,15 @@ Inputs: ```json [ { - "Peers": null, - "IPAddrs": null, - "IPSubnets": null + "Peers": [ + "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf" + ], + "IPAddrs": [ + "string value" + ], + "IPSubnets": [ + "string value" + ] } ] ``` @@ -3031,7 +3761,9 @@ Inputs: [ { "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", - "Addrs": [] + "Addrs": [ + "/ip4/52.36.61.156/tcp/1347/p2p/12D3KooWFETiESTf1v4PGUvtnxMAcEFMzLZbJGg4tjWfGEimYior" + ] } ] ``` @@ -3082,7 +3814,9 @@ Response: ```json { "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", - "Addrs": [] + "Addrs": [ + "/ip4/52.36.61.156/tcp/1347/p2p/12D3KooWFETiESTf1v4PGUvtnxMAcEFMzLZbJGg4tjWfGEimYior" + ] } ``` @@ -3103,8 +3837,12 @@ Response: { "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", "Agent": "string value", - "Addrs": null, - "Protocols": null, + "Addrs": [ + "string value" + ], + "Protocols": [ + "string value" + ], "ConnMgrMeta": { "FirstSeen": "0001-01-01T00:00:00Z", "Value": 123, @@ -3125,7 +3863,17 @@ Perms: read Inputs: `null` -Response: `null` +Response: +```json +[ + { + "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "Addrs": [ + "/ip4/52.36.61.156/tcp/1347/p2p/12D3KooWFETiESTf1v4PGUvtnxMAcEFMzLZbJGg4tjWfGEimYior" + ] + } +] +``` ### NetPubsubScores @@ -3134,7 +3882,28 @@ Perms: read Inputs: `null` -Response: `null` +Response: +```json +[ + { + "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "Score": { + "Score": 12.3, + "Topics": { + "/blocks": { + "TimeInMesh": 60000000000, + "FirstMessageDeliveries": 122, + "MeshMessageDeliveries": 1234, + "InvalidMessageDeliveries": 3 + } + }, + "AppSpecificScore": 12.3, + "IPColocationFactor": 12.3, + "BehaviourPenalty": 12.3 + } + } +] +``` ## Paych The Paych methods are for interacting with and managing payment channels @@ -3273,7 +4042,12 @@ Perms: read Inputs: `null` -Response: `null` +Response: +```json +[ + "f01234" +] +``` ### PaychNewPayment @@ -3285,7 +4059,19 @@ Inputs: [ "f01234", "f01234", - null + [ + { + "Amount": "0", + "TimeLockMin": 10101, + "TimeLockMax": 10101, + "MinSettle": 10101, + "Extra": { + "Actor": "f01234", + "Method": 1, + "Data": "Ynl0ZSBhcnJheQ==" + } + } + ] ] ``` @@ -3296,7 +4082,33 @@ Response: "WaitSentinel": { "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" }, - "Vouchers": null + "Vouchers": [ + { + "ChannelAddr": "f01234", + "TimeLockMin": 10101, + "TimeLockMax": 10101, + "SecretPreimage": "Ynl0ZSBhcnJheQ==", + "Extra": { + "Actor": "f01234", + "Method": 1, + "Data": "Ynl0ZSBhcnJheQ==" + }, + "Lane": 42, + "Nonce": 42, + "Amount": "0", + "MinSettleHeight": 10101, + "Merges": [ + { + "Lane": 42, + "Nonce": 42 + } + ], + "Signature": { + "Type": 2, + "Data": "Ynl0ZSBhcnJheQ==" + } + } + ] } ``` @@ -3362,7 +4174,12 @@ Inputs: "Nonce": 42, "Amount": "0", "MinSettleHeight": 10101, - "Merges": null, + "Merges": [ + { + "Lane": 42, + "Nonce": 42 + } + ], "Signature": { "Type": 2, "Data": "Ynl0ZSBhcnJheQ==" @@ -3398,7 +4215,12 @@ Inputs: "Nonce": 42, "Amount": "0", "MinSettleHeight": 10101, - "Merges": null, + "Merges": [ + { + "Lane": 42, + "Nonce": 42 + } + ], "Signature": { "Type": 2, "Data": "Ynl0ZSBhcnJheQ==" @@ -3434,7 +4256,12 @@ Inputs: "Nonce": 42, "Amount": "0", "MinSettleHeight": 10101, - "Merges": null, + "Merges": [ + { + "Lane": 42, + "Nonce": 42 + } + ], "Signature": { "Type": 2, "Data": "Ynl0ZSBhcnJheQ==" @@ -3476,7 +4303,12 @@ Response: "Nonce": 42, "Amount": "0", "MinSettleHeight": 10101, - "Merges": null, + "Merges": [ + { + "Lane": 42, + "Nonce": 42 + } + ], "Signature": { "Type": 2, "Data": "Ynl0ZSBhcnJheQ==" @@ -3498,7 +4330,36 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "ChannelAddr": "f01234", + "TimeLockMin": 10101, + "TimeLockMax": 10101, + "SecretPreimage": "Ynl0ZSBhcnJheQ==", + "Extra": { + "Actor": "f01234", + "Method": 1, + "Data": "Ynl0ZSBhcnJheQ==" + }, + "Lane": 42, + "Nonce": 42, + "Amount": "0", + "MinSettleHeight": 10101, + "Merges": [ + { + "Lane": 42, + "Nonce": 42 + } + ], + "Signature": { + "Type": 2, + "Data": "Ynl0ZSBhcnJheQ==" + } + } +] +``` ### PaychVoucherSubmit @@ -3523,7 +4384,12 @@ Inputs: "Nonce": 42, "Amount": "0", "MinSettleHeight": 10101, - "Merges": null, + "Merges": [ + { + "Lane": 42, + "Nonce": 42 + } + ], "Signature": { "Type": 2, "Data": "Ynl0ZSBhcnJheQ==" @@ -3591,7 +4457,15 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "Miner": "f01234", + "Epoch": 10101 + } +] +``` ### StateCall StateCall runs the given message and returns its result without any persisted changes. @@ -3693,8 +4567,73 @@ Response: }, "Error": "string value", "Duration": 60000000000, - "GasCharges": null, - "Subcalls": null + "GasCharges": [ + { + "Name": "string value", + "loc": [ + { + "File": "string value", + "Line": 123, + "Function": "string value" + } + ], + "tg": 9, + "cg": 9, + "sg": 9, + "vtg": 9, + "vcg": 9, + "vsg": 9, + "tt": 60000000000, + "ex": {} + } + ], + "Subcalls": [ + { + "Msg": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "MsgRct": { + "ExitCode": 0, + "Return": "Ynl0ZSBhcnJheQ==", + "GasUsed": 9 + }, + "Error": "string value", + "Duration": 60000000000, + "GasCharges": [ + { + "Name": "string value", + "loc": [ + { + "File": "string value", + "Line": 123, + "Function": "string value" + } + ], + "tg": 9, + "cg": 9, + "sg": 9, + "vtg": 9, + "vcg": 9, + "vsg": 9, + "tt": 60000000000, + "ex": {} + } + ], + "Subcalls": null + } + ] }, "Error": "string value", "Duration": 60000000000 @@ -3800,7 +4739,23 @@ Inputs: ```json [ 10101, - null, + [ + { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } + ], [ { "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" @@ -3818,7 +4773,138 @@ Response: "Root": { "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" }, - "Trace": null + "Trace": [ + { + "MsgCid": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "Msg": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "MsgRct": { + "ExitCode": 0, + "Return": "Ynl0ZSBhcnJheQ==", + "GasUsed": 9 + }, + "GasCost": { + "Message": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "GasUsed": "0", + "BaseFeeBurn": "0", + "OverEstimationBurn": "0", + "MinerPenalty": "0", + "MinerTip": "0", + "Refund": "0", + "TotalCost": "0" + }, + "ExecutionTrace": { + "Msg": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "MsgRct": { + "ExitCode": 0, + "Return": "Ynl0ZSBhcnJheQ==", + "GasUsed": 9 + }, + "Error": "string value", + "Duration": 60000000000, + "GasCharges": [ + { + "Name": "string value", + "loc": [ + { + "File": "string value", + "Line": 123, + "Function": "string value" + } + ], + "tg": 9, + "cg": 9, + "sg": 9, + "vtg": 9, + "vcg": 9, + "vsg": 9, + "tt": 60000000000, + "ex": {} + } + ], + "Subcalls": [ + { + "Msg": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "MsgRct": { + "ExitCode": 0, + "Return": "Ynl0ZSBhcnJheQ==", + "GasUsed": 9 + }, + "Error": "string value", + "Duration": 60000000000, + "GasCharges": [ + { + "Name": "string value", + "loc": [ + { + "File": "string value", + "Line": 123, + "Function": "string value" + } + ], + "tg": 9, + "cg": 9, + "sg": 9, + "vtg": 9, + "vcg": 9, + "vsg": 9, + "tt": 60000000000, + "ex": {} + } + ], + "Subcalls": null + } + ] + }, + "Error": "string value", + "Duration": 60000000000 + } + ] } ``` @@ -3936,7 +5022,7 @@ Inputs: ] ``` -Response: `null` +Response: `"Bw=="` ### StateGetRandomnessFromTickets StateGetRandomnessFromTickets is used to sample the chain for randomness. @@ -3961,7 +5047,7 @@ Inputs: ] ``` -Response: `null` +Response: `"Bw=="` ### StateGetReceipt StateGetReceipt returns the message receipt for the given message or for a @@ -4023,7 +5109,12 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + "f01234" +] +``` ### StateListMessages StateListMessages looks back and returns all messages with a matching to or from address, stopping at the given height. @@ -4050,7 +5141,14 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } +] +``` ### StateListMiners StateListMiners returns the addresses of every miner that has claimed power in the Power Actor @@ -4072,7 +5170,12 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + "f01234" +] +``` ### StateLookupID StateLookupID retrieves the ID address of the given address @@ -4272,7 +5375,29 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "SectorNumber": 9, + "SealProof": 8, + "SealedCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "DealIDs": [ + 5432 + ], + "Activation": 10101, + "Expiration": 10101, + "DealWeight": "0", + "VerifiedDealWeight": "0", + "InitialPledge": "0", + "ExpectedDayReward": "0", + "ExpectedStoragePledge": "0", + "SectorKeyCID": null + } +] +``` ### StateMinerAvailableBalance StateMinerAvailableBalance returns the portion of a miner's balance that can be withdrawn or spent @@ -4318,7 +5443,18 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "PostSubmissions": [ + 5, + 1 + ], + "DisputableProofCount": 42 + } +] +``` ### StateMinerFaults StateMinerFaults returns a bitfield indicating the faulty sectors of the given miner @@ -4376,10 +5512,14 @@ Response: "Owner": "f01234", "Worker": "f01234", "NewWorker": "f01234", - "ControlAddresses": null, + "ControlAddresses": [ + "f01234" + ], "WorkerChangeEpoch": 10101, "PeerId": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", - "Multiaddrs": null, + "Multiaddrs": [ + "Ynl0ZSBhcnJheQ==" + ], "WindowPoStProofType": 8, "SectorSize": 34359738368, "WindowPoStPartitionSectors": 42, @@ -4404,7 +5544,9 @@ Inputs: "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" }, "SealRandEpoch": 10101, - "DealIDs": null, + "DealIDs": [ + 5432 + ], "Expiration": 10101, "ReplaceCapacity": true, "ReplaceSectorDeadline": 42, @@ -4446,7 +5588,33 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "AllSectors": [ + 5, + 1 + ], + "FaultySectors": [ + 5, + 1 + ], + "RecoveringSectors": [ + 5, + 1 + ], + "LiveSectors": [ + 5, + 1 + ], + "ActiveSectors": [ + 5, + 1 + ] + } +] +``` ### StateMinerPower StateMinerPower returns the power of the indicated miner @@ -4501,7 +5669,9 @@ Inputs: "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" }, "SealRandEpoch": 10101, - "DealIDs": null, + "DealIDs": [ + 5432 + ], "Expiration": 10101, "ReplaceCapacity": true, "ReplaceSectorDeadline": 42, @@ -4668,7 +5838,29 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "SectorNumber": 9, + "SealProof": 8, + "SealedCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "DealIDs": [ + 5432 + ], + "Activation": 10101, + "Expiration": 10101, + "DealWeight": "0", + "VerifiedDealWeight": "0", + "InitialPledge": "0", + "ExpectedDayReward": "0", + "ExpectedStoragePledge": "0", + "SectorKeyCID": null + } +] +``` ### StateNetworkName StateNetworkName returns the name of the network the node is synced to @@ -4834,8 +6026,73 @@ Response: }, "Error": "string value", "Duration": 60000000000, - "GasCharges": null, - "Subcalls": null + "GasCharges": [ + { + "Name": "string value", + "loc": [ + { + "File": "string value", + "Line": 123, + "Function": "string value" + } + ], + "tg": 9, + "cg": 9, + "sg": 9, + "vtg": 9, + "vcg": 9, + "vsg": 9, + "tt": 60000000000, + "ex": {} + } + ], + "Subcalls": [ + { + "Msg": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "MsgRct": { + "ExitCode": 0, + "Return": "Ynl0ZSBhcnJheQ==", + "GasUsed": 9 + }, + "Error": "string value", + "Duration": 60000000000, + "GasCharges": [ + { + "Name": "string value", + "loc": [ + { + "File": "string value", + "Line": 123, + "Function": "string value" + } + ], + "tg": 9, + "cg": 9, + "sg": 9, + "vtg": 9, + "vcg": 9, + "vsg": 9, + "tt": 60000000000, + "ex": {} + } + ], + "Subcalls": null + } + ] }, "Error": "string value", "Duration": 60000000000 @@ -5011,7 +6268,9 @@ Response: "SealedCID": { "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" }, - "DealIDs": null, + "DealIDs": [ + 5432 + ], "Activation": 10101, "Expiration": 10101, "DealWeight": "0", @@ -5085,7 +6344,9 @@ Response: "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" }, "SealRandEpoch": 10101, - "DealIDs": null, + "DealIDs": [ + 5432 + ], "Expiration": 10101, "ReplaceCapacity": true, "ReplaceSectorDeadline": 42, @@ -5381,9 +6642,23 @@ Response: "WinCount": 9, "VRFProof": "Ynl0ZSBhcnJheQ==" }, - "BeaconEntries": null, - "WinPoStProof": null, - "Parents": null, + "BeaconEntries": [ + { + "Round": 42, + "Data": "Ynl0ZSBhcnJheQ==" + } + ], + "WinPoStProof": [ + { + "PoStProof": 8, + "ProofBytes": "Ynl0ZSBhcnJheQ==" + } + ], + "Parents": [ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + ], "ParentWeight": "0", "Height": 10101, "ParentStateRoot": { @@ -5438,7 +6713,26 @@ Inputs: `null` Response: ```json { - "ActiveSyncs": null, + "ActiveSyncs": [ + { + "WorkerID": 42, + "Base": { + "Cids": null, + "Blocks": null, + "Height": 0 + }, + "Target": { + "Cids": null, + "Blocks": null, + "Height": 0 + }, + "Stage": 1, + "Height": 10101, + "Start": "0001-01-01T00:00:00Z", + "End": "0001-01-01T00:00:00Z", + "Message": "string value" + } + ], "VMApplied": 42 } ``` @@ -5463,9 +6757,23 @@ Inputs: "WinCount": 9, "VRFProof": "Ynl0ZSBhcnJheQ==" }, - "BeaconEntries": null, - "WinPoStProof": null, - "Parents": null, + "BeaconEntries": [ + { + "Round": 42, + "Data": "Ynl0ZSBhcnJheQ==" + } + ], + "WinPoStProof": [ + { + "PoStProof": 8, + "ProofBytes": "Ynl0ZSBhcnJheQ==" + } + ], + "Parents": [ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + ], "ParentWeight": "0", "Height": 10101, "ParentStateRoot": { @@ -5489,8 +6797,16 @@ Inputs: "ForkSignaling": 42, "ParentBaseFee": "0" }, - "BlsMessages": null, - "SecpkMessages": null + "BlsMessages": [ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + ], + "SecpkMessages": [ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + ] } ] ``` @@ -5651,7 +6967,12 @@ Perms: write Inputs: `null` -Response: `null` +Response: +```json +[ + "f01234" +] +``` ### WalletNew WalletNew creates a new address in the wallet with the given sigType. diff --git a/documentation/en/api-v1-unstable-methods.md b/documentation/en/api-v1-unstable-methods.md index c1d6c76e0..24a142224 100644 --- a/documentation/en/api-v1-unstable-methods.md +++ b/documentation/en/api-v1-unstable-methods.md @@ -305,7 +305,9 @@ Perms: admin Inputs: ```json [ - null + [ + "write" + ] ] ``` @@ -323,7 +325,12 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + "write" +] +``` ## Beacon The Beacon method group contains methods for interacting with the random beacon (DRAND) @@ -454,9 +461,23 @@ Response: "WinCount": 9, "VRFProof": "Ynl0ZSBhcnJheQ==" }, - "BeaconEntries": null, - "WinPoStProof": null, - "Parents": null, + "BeaconEntries": [ + { + "Round": 42, + "Data": "Ynl0ZSBhcnJheQ==" + } + ], + "WinPoStProof": [ + { + "PoStProof": 8, + "ProofBytes": "Ynl0ZSBhcnJheQ==" + } + ], + "Parents": [ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + ], "ParentWeight": "0", "Height": 10101, "ParentStateRoot": { @@ -511,9 +532,54 @@ Inputs: Response: ```json { - "BlsMessages": null, - "SecpkMessages": null, - "Cids": null + "BlsMessages": [ + { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } + ], + "SecpkMessages": [ + { + "Message": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "Signature": { + "Type": 2, + "Data": "Ynl0ZSBhcnJheQ==" + }, + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } + ], + "Cids": [ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + ] } ``` @@ -589,7 +655,31 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "Cid": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "Message": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } + } +] +``` ### ChainGetNode @@ -629,7 +719,31 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "Cid": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "Message": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } + } +] +``` ### ChainGetParentReceipts ChainGetParentReceipts returns receipts for messages in parent tipset of @@ -648,7 +762,16 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "ExitCode": 0, + "Return": "Ynl0ZSBhcnJheQ==", + "GasUsed": 9 + } +] +``` ### ChainGetPath ChainGetPath returns a set of revert/apply operations needed to get from @@ -690,7 +813,19 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "Type": "string value", + "Val": { + "Cids": null, + "Blocks": null, + "Height": 0 + } + } +] +``` ### ChainGetTipSet ChainGetTipSet returns the tipset specified by the given TipSetKey. @@ -828,7 +963,19 @@ Perms: read Inputs: `null` -Response: `null` +Response: +```json +[ + { + "Type": "string value", + "Val": { + "Cids": null, + "Blocks": null, + "Height": 0 + } + } +] +``` ### ChainReadObj ChainReadObj reads ipld nodes referenced by the specified CID from chain @@ -1002,7 +1149,20 @@ Response: "OtherPeer": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", "Transferred": 42, "Stages": { - "Stages": null + "Stages": [ + { + "Name": "string value", + "Description": "string value", + "CreatedTime": "0001-01-01T00:00:00Z", + "UpdatedTime": "0001-01-01T00:00:00Z", + "Logs": [ + { + "Log": "string value", + "UpdatedTime": "0001-01-01T00:00:00Z" + } + ] + } + ] } } ``` @@ -1069,7 +1229,12 @@ Inputs: "Root": { "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" }, - "DAGs": null, + "DAGs": [ + { + "DataSelector": "Links/21/Hash/Links/42/Hash", + "ExportMerkleProof": true + } + ], "FromLocalCAR": "string value", "DealID": 5 }, @@ -1098,7 +1263,30 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "Err": "string value", + "Root": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "Piece": null, + "Size": 42, + "MinPrice": "0", + "UnsealPrice": "0", + "PricePerByte": "0", + "PaymentInterval": 42, + "PaymentIntervalIncrease": 42, + "Miner": "f01234", + "MinerPeer": { + "Address": "f01234", + "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "PieceCID": null + } + } +] +``` ### ClientGenCar ClientGenCar generates a CAR file for the specified file. @@ -1143,7 +1331,21 @@ Response: "State": 42, "Message": "string value", "DealStages": { - "Stages": null + "Stages": [ + { + "Name": "string value", + "Description": "string value", + "ExpectedDuration": "string value", + "CreatedTime": "0001-01-01T00:00:00Z", + "UpdatedTime": "0001-01-01T00:00:00Z", + "Logs": [ + { + "Log": "string value", + "UpdatedTime": "0001-01-01T00:00:00Z" + } + ] + } + ] }, "Provider": "f01234", "DataRef": { @@ -1182,7 +1384,20 @@ Response: "OtherPeer": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", "Transferred": 42, "Stages": { - "Stages": null + "Stages": [ + { + "Name": "string value", + "Description": "string value", + "CreatedTime": "0001-01-01T00:00:00Z", + "UpdatedTime": "0001-01-01T00:00:00Z", + "Logs": [ + { + "Log": "string value", + "UpdatedTime": "0001-01-01T00:00:00Z" + } + ] + } + ] } } } @@ -1220,7 +1435,21 @@ Response: "State": 42, "Message": "string value", "DealStages": { - "Stages": null + "Stages": [ + { + "Name": "string value", + "Description": "string value", + "ExpectedDuration": "string value", + "CreatedTime": "0001-01-01T00:00:00Z", + "UpdatedTime": "0001-01-01T00:00:00Z", + "Logs": [ + { + "Log": "string value", + "UpdatedTime": "0001-01-01T00:00:00Z" + } + ] + } + ] }, "Provider": "f01234", "DataRef": { @@ -1259,7 +1488,20 @@ Response: "OtherPeer": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", "Transferred": 42, "Stages": { - "Stages": null + "Stages": [ + { + "Name": "string value", + "Description": "string value", + "CreatedTime": "0001-01-01T00:00:00Z", + "UpdatedTime": "0001-01-01T00:00:00Z", + "Logs": [ + { + "Log": "string value", + "UpdatedTime": "0001-01-01T00:00:00Z" + } + ] + } + ] } } } @@ -1307,7 +1549,20 @@ Response: "OtherPeer": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", "Transferred": 42, "Stages": { - "Stages": null + "Stages": [ + { + "Name": "string value", + "Description": "string value", + "CreatedTime": "0001-01-01T00:00:00Z", + "UpdatedTime": "0001-01-01T00:00:00Z", + "Logs": [ + { + "Log": "string value", + "UpdatedTime": "0001-01-01T00:00:00Z" + } + ] + } + ] } }, "Event": 5 @@ -1365,7 +1620,40 @@ Perms: write Inputs: `null` -Response: `null` +Response: +```json +[ + { + "TransferID": 3, + "Status": 1, + "BaseCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "IsInitiator": true, + "IsSender": true, + "Voucher": "string value", + "Message": "string value", + "OtherPeer": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "Transferred": 42, + "Stages": { + "Stages": [ + { + "Name": "string value", + "Description": "string value", + "CreatedTime": "0001-01-01T00:00:00Z", + "UpdatedTime": "0001-01-01T00:00:00Z", + "Logs": [ + { + "Log": "string value", + "UpdatedTime": "0001-01-01T00:00:00Z" + } + ] + } + ] + } + } +] +``` ### ClientListDeals ClientListDeals returns information about the deals made by the local client. @@ -1375,7 +1663,88 @@ Perms: write Inputs: `null` -Response: `null` +Response: +```json +[ + { + "ProposalCid": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "State": 42, + "Message": "string value", + "DealStages": { + "Stages": [ + { + "Name": "string value", + "Description": "string value", + "ExpectedDuration": "string value", + "CreatedTime": "0001-01-01T00:00:00Z", + "UpdatedTime": "0001-01-01T00:00:00Z", + "Logs": [ + { + "Log": "string value", + "UpdatedTime": "0001-01-01T00:00:00Z" + } + ] + } + ] + }, + "Provider": "f01234", + "DataRef": { + "TransferType": "string value", + "Root": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "PieceCid": null, + "PieceSize": 1024, + "RawBlockSize": 42 + }, + "PieceCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "Size": 42, + "PricePerEpoch": "0", + "Duration": 42, + "DealID": 5432, + "CreationTime": "0001-01-01T00:00:00Z", + "Verified": true, + "TransferChannelID": { + "Initiator": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "Responder": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "ID": 3 + }, + "DataTransfer": { + "TransferID": 3, + "Status": 1, + "BaseCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "IsInitiator": true, + "IsSender": true, + "Voucher": "string value", + "Message": "string value", + "OtherPeer": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "Transferred": 42, + "Stages": { + "Stages": [ + { + "Name": "string value", + "Description": "string value", + "CreatedTime": "0001-01-01T00:00:00Z", + "UpdatedTime": "0001-01-01T00:00:00Z", + "Logs": [ + { + "Log": "string value", + "UpdatedTime": "0001-01-01T00:00:00Z" + } + ] + } + ] + } + } + } +] +``` ### ClientListImports ClientListImports lists imported files and their root CIDs @@ -1385,7 +1754,19 @@ Perms: write Inputs: `null` -Response: `null` +Response: +```json +[ + { + "Key": 50, + "Err": "string value", + "Root": null, + "Source": "string value", + "FilePath": "string value", + "CARPath": "string value" + } +] +``` ### ClientListRetrievals ClientListRetrievals returns information about retrievals made by the local client @@ -1395,7 +1776,61 @@ Perms: write Inputs: `null` -Response: `null` +Response: +```json +[ + { + "PayloadCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "ID": 5, + "PieceCID": null, + "PricePerByte": "0", + "UnsealPrice": "0", + "Status": 0, + "Message": "string value", + "Provider": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "BytesReceived": 42, + "BytesPaidFor": 42, + "TotalPaid": "0", + "TransferChannelID": { + "Initiator": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "Responder": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "ID": 3 + }, + "DataTransfer": { + "TransferID": 3, + "Status": 1, + "BaseCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "IsInitiator": true, + "IsSender": true, + "Voucher": "string value", + "Message": "string value", + "OtherPeer": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "Transferred": 42, + "Stages": { + "Stages": [ + { + "Name": "string value", + "Description": "string value", + "CreatedTime": "0001-01-01T00:00:00Z", + "UpdatedTime": "0001-01-01T00:00:00Z", + "Logs": [ + { + "Log": "string value", + "UpdatedTime": "0001-01-01T00:00:00Z" + } + ] + } + ] + } + }, + "Event": 5 + } +] +``` ### ClientMinerQueryOffer ClientMinerQueryOffer returns a QueryOffer for the specific miner and file. @@ -1837,7 +2272,28 @@ Perms: admin Inputs: `null` -Response: `null` +Response: +```json +[ + { + "Type": { + "System": "string value", + "Subsystem": "string value" + }, + "Active": true, + "LastActive": { + "Type": "string value", + "Message": "json raw message", + "Time": "0001-01-01T00:00:00Z" + }, + "LastResolved": { + "Type": "string value", + "Message": "json raw message", + "Time": "0001-01-01T00:00:00Z" + } + } +] +``` ### LogList @@ -1846,7 +2302,12 @@ Perms: write Inputs: `null` -Response: `null` +Response: +```json +[ + "string value" +] +``` ### LogSetLevel @@ -1991,11 +2452,46 @@ Inputs: "WinCount": 9, "VRFProof": "Ynl0ZSBhcnJheQ==" }, - "BeaconValues": null, - "Messages": null, + "BeaconValues": [ + { + "Round": 42, + "Data": "Ynl0ZSBhcnJheQ==" + } + ], + "Messages": [ + { + "Message": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "Signature": { + "Type": 2, + "Data": "Ynl0ZSBhcnJheQ==" + }, + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } + ], "Epoch": 10101, "Timestamp": 42, - "WinningPoStProof": null + "WinningPoStProof": [ + { + "PoStProof": 8, + "ProofBytes": "Ynl0ZSBhcnJheQ==" + } + ] } ] ``` @@ -2012,9 +2508,23 @@ Response: "WinCount": 9, "VRFProof": "Ynl0ZSBhcnJheQ==" }, - "BeaconEntries": null, - "WinPoStProof": null, - "Parents": null, + "BeaconEntries": [ + { + "Round": 42, + "Data": "Ynl0ZSBhcnJheQ==" + } + ], + "WinPoStProof": [ + { + "PoStProof": 8, + "ProofBytes": "Ynl0ZSBhcnJheQ==" + } + ], + "Parents": [ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + ], "ParentWeight": "0", "Height": 10101, "ParentStateRoot": { @@ -2038,8 +2548,16 @@ Response: "ForkSignaling": 42, "ParentBaseFee": "0" }, - "BlsMessages": null, - "SecpkMessages": null + "BlsMessages": [ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + ], + "SecpkMessages": [ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + ] } ``` @@ -2069,14 +2587,27 @@ Response: { "MinerPower": "0", "NetworkPower": "0", - "Sectors": null, + "Sectors": [ + { + "SealProof": 8, + "SectorNumber": 9, + "SealedCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + } + ], "WorkerKey": "f01234", "SectorSize": 34359738368, "PrevBeaconEntry": { "Round": 42, "Data": "Ynl0ZSBhcnJheQ==" }, - "BeaconEntries": null, + "BeaconEntries": [ + { + "Round": 42, + "Data": "Ynl0ZSBhcnJheQ==" + } + ], "EligibleForMining": true } ``` @@ -2095,11 +2626,43 @@ Perms: write Inputs: ```json [ - null + [ + { + "Message": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "Signature": { + "Type": 2, + "Data": "Ynl0ZSBhcnJheQ==" + }, + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } + ] ] ``` -Response: `null` +Response: +```json +[ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } +] +``` ### MpoolBatchPushMessage MpoolBatchPushMessage batch pushes a unsigned message to mempool. @@ -2110,14 +2673,58 @@ Perms: sign Inputs: ```json [ - null, + [ + { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } + ], { "MaxFee": "0" } ] ``` -Response: `null` +Response: +```json +[ + { + "Message": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "Signature": { + "Type": 2, + "Data": "Ynl0ZSBhcnJheQ==" + }, + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } +] +``` ### MpoolBatchPushUntrusted MpoolBatchPushUntrusted batch pushes a signed message to mempool from untrusted sources. @@ -2128,11 +2735,43 @@ Perms: write Inputs: ```json [ - null + [ + { + "Message": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "Signature": { + "Type": 2, + "Data": "Ynl0ZSBhcnJheQ==" + }, + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } + ] ] ``` -Response: `null` +Response: +```json +[ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } +] +``` ### MpoolCheckMessages MpoolCheckMessages performs logical checks on a batch of messages @@ -2143,11 +2782,47 @@ Perms: read Inputs: ```json [ - null + [ + { + "Message": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "ValidNonce": true + } + ] ] ``` -Response: `null` +Response: +```json +[ + [ + { + "Cid": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "Code": 0, + "OK": true, + "Err": "string value", + "Hint": { + "abc": 123 + } + } + ] +] +``` ### MpoolCheckPendingMessages MpoolCheckPendingMessages performs logical checks for all pending messages from a given address @@ -2162,7 +2837,24 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + [ + { + "Cid": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "Code": 0, + "OK": true, + "Err": "string value", + "Hint": { + "abc": 123 + } + } + ] +] +``` ### MpoolCheckReplaceMessages MpoolCheckReplaceMessages performs logical checks on pending messages with replacement @@ -2173,11 +2865,44 @@ Perms: read Inputs: ```json [ - null + [ + { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } + ] ] ``` -Response: `null` +Response: +```json +[ + [ + { + "Cid": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "Code": 0, + "OK": true, + "Err": "string value", + "Hint": { + "abc": 123 + } + } + ] +] +``` ### MpoolClear MpoolClear clears pending messages from the mpool @@ -2205,7 +2930,9 @@ Inputs: `null` Response: ```json { - "PriorityAddrs": null, + "PriorityAddrs": [ + "f01234" + ], "SizeLimitHigh": 123, "SizeLimitLow": 123, "ReplaceByFeeRatio": 12.3, @@ -2250,7 +2977,35 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "Message": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "Signature": { + "Type": 2, + "Data": "Ynl0ZSBhcnJheQ==" + }, + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } +] +``` ### MpoolPush MpoolPush pushes a signed message to mempool. @@ -2422,7 +3177,35 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "Message": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "Signature": { + "Type": 2, + "Data": "Ynl0ZSBhcnJheQ==" + }, + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } +] +``` ### MpoolSetConfig MpoolSetConfig sets the mpool config to (a copy of) the supplied config @@ -2434,7 +3217,9 @@ Inputs: ```json [ { - "PriorityAddrs": null, + "PriorityAddrs": [ + "f01234" + ], "SizeLimitHigh": 123, "SizeLimitLow": 123, "ReplaceByFeeRatio": 12.3, @@ -2790,7 +3575,9 @@ Inputs: ```json [ 42, - null, + [ + "f01234" + ], 10101, "0", "f01234", @@ -2866,7 +3653,21 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "ID": 9, + "To": "f01234", + "Value": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "Approved": [ + "f01234" + ] + } +] +``` ### MsigGetVested MsigGetVested returns the amount of FIL that vested in a multisig in a certain period. @@ -3151,7 +3952,9 @@ Response: ```json { "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", - "Addrs": [] + "Addrs": [ + "/ip4/52.36.61.156/tcp/1347/p2p/12D3KooWFETiESTf1v4PGUvtnxMAcEFMzLZbJGg4tjWfGEimYior" + ] } ``` @@ -3248,9 +4051,15 @@ Inputs: ```json [ { - "Peers": null, - "IPAddrs": null, - "IPSubnets": null + "Peers": [ + "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf" + ], + "IPAddrs": [ + "string value" + ], + "IPSubnets": [ + "string value" + ] } ] ``` @@ -3267,9 +4076,15 @@ Inputs: `null` Response: ```json { - "Peers": null, - "IPAddrs": null, - "IPSubnets": null + "Peers": [ + "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf" + ], + "IPAddrs": [ + "string value" + ], + "IPSubnets": [ + "string value" + ] } ``` @@ -3282,9 +4097,15 @@ Inputs: ```json [ { - "Peers": null, - "IPAddrs": null, - "IPSubnets": null + "Peers": [ + "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf" + ], + "IPAddrs": [ + "string value" + ], + "IPSubnets": [ + "string value" + ] } ] ``` @@ -3301,7 +4122,9 @@ Inputs: [ { "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", - "Addrs": [] + "Addrs": [ + "/ip4/52.36.61.156/tcp/1347/p2p/12D3KooWFETiESTf1v4PGUvtnxMAcEFMzLZbJGg4tjWfGEimYior" + ] } ] ``` @@ -3352,7 +4175,9 @@ Response: ```json { "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", - "Addrs": [] + "Addrs": [ + "/ip4/52.36.61.156/tcp/1347/p2p/12D3KooWFETiESTf1v4PGUvtnxMAcEFMzLZbJGg4tjWfGEimYior" + ] } ``` @@ -3373,8 +4198,12 @@ Response: { "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", "Agent": "string value", - "Addrs": null, - "Protocols": null, + "Addrs": [ + "string value" + ], + "Protocols": [ + "string value" + ], "ConnMgrMeta": { "FirstSeen": "0001-01-01T00:00:00Z", "Value": 123, @@ -3395,7 +4224,17 @@ Perms: read Inputs: `null` -Response: `null` +Response: +```json +[ + { + "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "Addrs": [ + "/ip4/52.36.61.156/tcp/1347/p2p/12D3KooWFETiESTf1v4PGUvtnxMAcEFMzLZbJGg4tjWfGEimYior" + ] + } +] +``` ### NetPubsubScores @@ -3404,7 +4243,28 @@ Perms: read Inputs: `null` -Response: `null` +Response: +```json +[ + { + "ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", + "Score": { + "Score": 12.3, + "Topics": { + "/blocks": { + "TimeInMesh": 60000000000, + "FirstMessageDeliveries": 122, + "MeshMessageDeliveries": 1234, + "InvalidMessageDeliveries": 3 + } + }, + "AppSpecificScore": 12.3, + "IPColocationFactor": 12.3, + "BehaviourPenalty": 12.3 + } + } +] +``` ## Node These methods are general node management and status commands @@ -3577,7 +4437,12 @@ Perms: read Inputs: `null` -Response: `null` +Response: +```json +[ + "f01234" +] +``` ### PaychNewPayment @@ -3589,7 +4454,19 @@ Inputs: [ "f01234", "f01234", - null + [ + { + "Amount": "0", + "TimeLockMin": 10101, + "TimeLockMax": 10101, + "MinSettle": 10101, + "Extra": { + "Actor": "f01234", + "Method": 1, + "Data": "Ynl0ZSBhcnJheQ==" + } + } + ] ] ``` @@ -3600,7 +4477,33 @@ Response: "WaitSentinel": { "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" }, - "Vouchers": null + "Vouchers": [ + { + "ChannelAddr": "f01234", + "TimeLockMin": 10101, + "TimeLockMax": 10101, + "SecretPreimage": "Ynl0ZSBhcnJheQ==", + "Extra": { + "Actor": "f01234", + "Method": 1, + "Data": "Ynl0ZSBhcnJheQ==" + }, + "Lane": 42, + "Nonce": 42, + "Amount": "0", + "MinSettleHeight": 10101, + "Merges": [ + { + "Lane": 42, + "Nonce": 42 + } + ], + "Signature": { + "Type": 2, + "Data": "Ynl0ZSBhcnJheQ==" + } + } + ] } ``` @@ -3666,7 +4569,12 @@ Inputs: "Nonce": 42, "Amount": "0", "MinSettleHeight": 10101, - "Merges": null, + "Merges": [ + { + "Lane": 42, + "Nonce": 42 + } + ], "Signature": { "Type": 2, "Data": "Ynl0ZSBhcnJheQ==" @@ -3702,7 +4610,12 @@ Inputs: "Nonce": 42, "Amount": "0", "MinSettleHeight": 10101, - "Merges": null, + "Merges": [ + { + "Lane": 42, + "Nonce": 42 + } + ], "Signature": { "Type": 2, "Data": "Ynl0ZSBhcnJheQ==" @@ -3738,7 +4651,12 @@ Inputs: "Nonce": 42, "Amount": "0", "MinSettleHeight": 10101, - "Merges": null, + "Merges": [ + { + "Lane": 42, + "Nonce": 42 + } + ], "Signature": { "Type": 2, "Data": "Ynl0ZSBhcnJheQ==" @@ -3780,7 +4698,12 @@ Response: "Nonce": 42, "Amount": "0", "MinSettleHeight": 10101, - "Merges": null, + "Merges": [ + { + "Lane": 42, + "Nonce": 42 + } + ], "Signature": { "Type": 2, "Data": "Ynl0ZSBhcnJheQ==" @@ -3802,7 +4725,36 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "ChannelAddr": "f01234", + "TimeLockMin": 10101, + "TimeLockMax": 10101, + "SecretPreimage": "Ynl0ZSBhcnJheQ==", + "Extra": { + "Actor": "f01234", + "Method": 1, + "Data": "Ynl0ZSBhcnJheQ==" + }, + "Lane": 42, + "Nonce": 42, + "Amount": "0", + "MinSettleHeight": 10101, + "Merges": [ + { + "Lane": 42, + "Nonce": 42 + } + ], + "Signature": { + "Type": 2, + "Data": "Ynl0ZSBhcnJheQ==" + } + } +] +``` ### PaychVoucherSubmit @@ -3827,7 +4779,12 @@ Inputs: "Nonce": 42, "Amount": "0", "MinSettleHeight": 10101, - "Merges": null, + "Merges": [ + { + "Lane": 42, + "Nonce": 42 + } + ], "Signature": { "Type": 2, "Data": "Ynl0ZSBhcnJheQ==" @@ -3895,7 +4852,15 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "Miner": "f01234", + "Epoch": 10101 + } +] +``` ### StateCall StateCall runs the given message and returns its result without any persisted changes. @@ -3997,8 +4962,73 @@ Response: }, "Error": "string value", "Duration": 60000000000, - "GasCharges": null, - "Subcalls": null + "GasCharges": [ + { + "Name": "string value", + "loc": [ + { + "File": "string value", + "Line": 123, + "Function": "string value" + } + ], + "tg": 9, + "cg": 9, + "sg": 9, + "vtg": 9, + "vcg": 9, + "vsg": 9, + "tt": 60000000000, + "ex": {} + } + ], + "Subcalls": [ + { + "Msg": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "MsgRct": { + "ExitCode": 0, + "Return": "Ynl0ZSBhcnJheQ==", + "GasUsed": 9 + }, + "Error": "string value", + "Duration": 60000000000, + "GasCharges": [ + { + "Name": "string value", + "loc": [ + { + "File": "string value", + "Line": 123, + "Function": "string value" + } + ], + "tg": 9, + "cg": 9, + "sg": 9, + "vtg": 9, + "vcg": 9, + "vsg": 9, + "tt": 60000000000, + "ex": {} + } + ], + "Subcalls": null + } + ] }, "Error": "string value", "Duration": 60000000000 @@ -4104,7 +5134,23 @@ Inputs: ```json [ 10101, - null, + [ + { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + } + ], [ { "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" @@ -4122,7 +5168,138 @@ Response: "Root": { "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" }, - "Trace": null + "Trace": [ + { + "MsgCid": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "Msg": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "MsgRct": { + "ExitCode": 0, + "Return": "Ynl0ZSBhcnJheQ==", + "GasUsed": 9 + }, + "GasCost": { + "Message": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "GasUsed": "0", + "BaseFeeBurn": "0", + "OverEstimationBurn": "0", + "MinerPenalty": "0", + "MinerTip": "0", + "Refund": "0", + "TotalCost": "0" + }, + "ExecutionTrace": { + "Msg": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "MsgRct": { + "ExitCode": 0, + "Return": "Ynl0ZSBhcnJheQ==", + "GasUsed": 9 + }, + "Error": "string value", + "Duration": 60000000000, + "GasCharges": [ + { + "Name": "string value", + "loc": [ + { + "File": "string value", + "Line": 123, + "Function": "string value" + } + ], + "tg": 9, + "cg": 9, + "sg": 9, + "vtg": 9, + "vcg": 9, + "vsg": 9, + "tt": 60000000000, + "ex": {} + } + ], + "Subcalls": [ + { + "Msg": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "MsgRct": { + "ExitCode": 0, + "Return": "Ynl0ZSBhcnJheQ==", + "GasUsed": 9 + }, + "Error": "string value", + "Duration": 60000000000, + "GasCharges": [ + { + "Name": "string value", + "loc": [ + { + "File": "string value", + "Line": 123, + "Function": "string value" + } + ], + "tg": 9, + "cg": 9, + "sg": 9, + "vtg": 9, + "vcg": 9, + "vsg": 9, + "tt": 60000000000, + "ex": {} + } + ], + "Subcalls": null + } + ] + }, + "Error": "string value", + "Duration": 60000000000 + } + ] } ``` @@ -4195,7 +5372,7 @@ Inputs: "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" }, 1, - null + "json raw message" ] ``` @@ -4259,7 +5436,7 @@ Inputs: ] ``` -Response: `null` +Response: `"Bw=="` ### StateGetRandomnessFromTickets StateGetRandomnessFromTickets is used to sample the chain for randomness. @@ -4284,7 +5461,7 @@ Inputs: ] ``` -Response: `null` +Response: `"Bw=="` ### StateListActors StateListActors returns the addresses of every actor in the state @@ -4306,7 +5483,12 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + "f01234" +] +``` ### StateListMessages StateListMessages looks back and returns all messages with a matching to or from address, stopping at the given height. @@ -4333,7 +5515,14 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } +] +``` ### StateListMiners StateListMiners returns the addresses of every miner that has claimed power in the Power Actor @@ -4355,7 +5544,12 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + "f01234" +] +``` ### StateLookupID StateLookupID retrieves the ID address of the given address @@ -4555,7 +5749,29 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "SectorNumber": 9, + "SealProof": 8, + "SealedCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "DealIDs": [ + 5432 + ], + "Activation": 10101, + "Expiration": 10101, + "DealWeight": "0", + "VerifiedDealWeight": "0", + "InitialPledge": "0", + "ExpectedDayReward": "0", + "ExpectedStoragePledge": "0", + "SectorKeyCID": null + } +] +``` ### StateMinerAvailableBalance StateMinerAvailableBalance returns the portion of a miner's balance that can be withdrawn or spent @@ -4601,7 +5817,18 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "PostSubmissions": [ + 5, + 1 + ], + "DisputableProofCount": 42 + } +] +``` ### StateMinerFaults StateMinerFaults returns a bitfield indicating the faulty sectors of the given miner @@ -4659,10 +5886,14 @@ Response: "Owner": "f01234", "Worker": "f01234", "NewWorker": "f01234", - "ControlAddresses": null, + "ControlAddresses": [ + "f01234" + ], "WorkerChangeEpoch": 10101, "PeerId": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf", - "Multiaddrs": null, + "Multiaddrs": [ + "Ynl0ZSBhcnJheQ==" + ], "WindowPoStProofType": 8, "SectorSize": 34359738368, "WindowPoStPartitionSectors": 42, @@ -4687,7 +5918,9 @@ Inputs: "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" }, "SealRandEpoch": 10101, - "DealIDs": null, + "DealIDs": [ + 5432 + ], "Expiration": 10101, "ReplaceCapacity": true, "ReplaceSectorDeadline": 42, @@ -4729,7 +5962,33 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "AllSectors": [ + 5, + 1 + ], + "FaultySectors": [ + 5, + 1 + ], + "RecoveringSectors": [ + 5, + 1 + ], + "LiveSectors": [ + 5, + 1 + ], + "ActiveSectors": [ + 5, + 1 + ] + } +] +``` ### StateMinerPower StateMinerPower returns the power of the indicated miner @@ -4784,7 +6043,9 @@ Inputs: "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" }, "SealRandEpoch": 10101, - "DealIDs": null, + "DealIDs": [ + 5432 + ], "Expiration": 10101, "ReplaceCapacity": true, "ReplaceSectorDeadline": 42, @@ -4951,7 +6212,29 @@ Inputs: ] ``` -Response: `null` +Response: +```json +[ + { + "SectorNumber": 9, + "SealProof": 8, + "SealedCID": { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + }, + "DealIDs": [ + 5432 + ], + "Activation": 10101, + "Expiration": 10101, + "DealWeight": "0", + "VerifiedDealWeight": "0", + "InitialPledge": "0", + "ExpectedDayReward": "0", + "ExpectedStoragePledge": "0", + "SectorKeyCID": null + } +] +``` ### StateNetworkName StateNetworkName returns the name of the network the node is synced to @@ -5117,8 +6400,73 @@ Response: }, "Error": "string value", "Duration": 60000000000, - "GasCharges": null, - "Subcalls": null + "GasCharges": [ + { + "Name": "string value", + "loc": [ + { + "File": "string value", + "Line": 123, + "Function": "string value" + } + ], + "tg": 9, + "cg": 9, + "sg": 9, + "vtg": 9, + "vcg": 9, + "vsg": 9, + "tt": 60000000000, + "ex": {} + } + ], + "Subcalls": [ + { + "Msg": { + "Version": 42, + "To": "f01234", + "From": "f01234", + "Nonce": 42, + "Value": "0", + "GasLimit": 9, + "GasFeeCap": "0", + "GasPremium": "0", + "Method": 1, + "Params": "Ynl0ZSBhcnJheQ==", + "CID": { + "/": "bafy2bzacebbpdegvr3i4cosewthysg5xkxpqfn2wfcz6mv2hmoktwbdxkax4s" + } + }, + "MsgRct": { + "ExitCode": 0, + "Return": "Ynl0ZSBhcnJheQ==", + "GasUsed": 9 + }, + "Error": "string value", + "Duration": 60000000000, + "GasCharges": [ + { + "Name": "string value", + "loc": [ + { + "File": "string value", + "Line": 123, + "Function": "string value" + } + ], + "tg": 9, + "cg": 9, + "sg": 9, + "vtg": 9, + "vcg": 9, + "vsg": 9, + "tt": 60000000000, + "ex": {} + } + ], + "Subcalls": null + } + ] }, "Error": "string value", "Duration": 60000000000 @@ -5251,7 +6599,9 @@ Response: "SealedCID": { "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" }, - "DealIDs": null, + "DealIDs": [ + 5432 + ], "Activation": 10101, "Expiration": 10101, "DealWeight": "0", @@ -5325,7 +6675,9 @@ Response: "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" }, "SealRandEpoch": 10101, - "DealIDs": null, + "DealIDs": [ + 5432 + ], "Expiration": 10101, "ReplaceCapacity": true, "ReplaceSectorDeadline": 42, @@ -5568,9 +6920,23 @@ Response: "WinCount": 9, "VRFProof": "Ynl0ZSBhcnJheQ==" }, - "BeaconEntries": null, - "WinPoStProof": null, - "Parents": null, + "BeaconEntries": [ + { + "Round": 42, + "Data": "Ynl0ZSBhcnJheQ==" + } + ], + "WinPoStProof": [ + { + "PoStProof": 8, + "ProofBytes": "Ynl0ZSBhcnJheQ==" + } + ], + "Parents": [ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + ], "ParentWeight": "0", "Height": 10101, "ParentStateRoot": { @@ -5625,7 +6991,26 @@ Inputs: `null` Response: ```json { - "ActiveSyncs": null, + "ActiveSyncs": [ + { + "WorkerID": 42, + "Base": { + "Cids": null, + "Blocks": null, + "Height": 0 + }, + "Target": { + "Cids": null, + "Blocks": null, + "Height": 0 + }, + "Stage": 1, + "Height": 10101, + "Start": "0001-01-01T00:00:00Z", + "End": "0001-01-01T00:00:00Z", + "Message": "string value" + } + ], "VMApplied": 42 } ``` @@ -5650,9 +7035,23 @@ Inputs: "WinCount": 9, "VRFProof": "Ynl0ZSBhcnJheQ==" }, - "BeaconEntries": null, - "WinPoStProof": null, - "Parents": null, + "BeaconEntries": [ + { + "Round": 42, + "Data": "Ynl0ZSBhcnJheQ==" + } + ], + "WinPoStProof": [ + { + "PoStProof": 8, + "ProofBytes": "Ynl0ZSBhcnJheQ==" + } + ], + "Parents": [ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + ], "ParentWeight": "0", "Height": 10101, "ParentStateRoot": { @@ -5676,8 +7075,16 @@ Inputs: "ForkSignaling": 42, "ParentBaseFee": "0" }, - "BlsMessages": null, - "SecpkMessages": null + "BlsMessages": [ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + ], + "SecpkMessages": [ + { + "/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4" + } + ] } ] ``` @@ -5838,7 +7245,12 @@ Perms: write Inputs: `null` -Response: `null` +Response: +```json +[ + "f01234" +] +``` ### WalletNew WalletNew creates a new address in the wallet with the given sigType.