Skip to content

Commit d730edc

Browse files
committed
feat(cli): add offline mode support with context propagation
- Add offline flag support to CLI commands - Propagate offline mode through context to prevent network calls - Fix broadcast command to check offline mode before accessing client - Add context value helpers for client and query client management - Update client initialization to skip when in offline mode
1 parent 5e5fe5d commit d730edc

File tree

14 files changed

+121
-56
lines changed

14 files changed

+121
-56
lines changed

go/cli/broadcast.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,10 @@ $ <appd> tx broadcast ./mytxn.json
2828
PreRunE: TxPersistentPreRunE,
2929
RunE: func(cmd *cobra.Command, args []string) error {
3030
ctx := cmd.Context()
31-
cl := MustClientFromContext(ctx)
32-
cctx := cl.ClientContext()
31+
cctx, err := GetClientTxContext(cmd)
32+
if err != nil {
33+
return err
34+
}
3335

3436
if cctx.Offline {
3537
return errors.New("cannot broadcast tx during offline mode")
@@ -40,6 +42,7 @@ $ <appd> tx broadcast ./mytxn.json
4042
return err
4143
}
4244

45+
cl := MustClientFromContext(ctx)
4346
resp, err := cl.Tx().BroadcastTx(ctx, stdTx)
4447
if err != nil {
4548
return err

go/cli/cctx.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,13 @@ func GetRPCURIFromContext(ctx context.Context) string {
114114
return res
115115
}
116116

117+
func GetProviderURLFromContext(ctx context.Context) string {
118+
val := ctx.Value(ContextTypeProviderURL)
119+
res, _ := val.(string)
120+
121+
return res
122+
}
123+
117124
// ReadPersistentCommandFlags returns a Context with fields set for "persistent"
118125
// or common flags that do not necessarily change with context.
119126
//

go/cli/context.go

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,15 @@ const (
2626
ContextTypeValidatorCodec = ContextType("validator-codec")
2727
ContextTypeRPCURI = ContextType("rpc-uri")
2828
ContextTypeRPCClient = ContextType("rpc-client")
29+
ContextTypeProviderURL = ContextType("provider-url")
2930
)
3031

32+
var ErrContextValueNotSet = errors.New("context does not have value set")
33+
3134
func ClientFromContext(ctx context.Context) (aclient.Client, error) {
3235
val := ctx.Value(ContextTypeClient)
3336
if val == nil {
34-
return nil, errors.New("context does not have client set")
37+
return nil, fmt.Errorf("%w: %s", ErrContextValueNotSet, ContextTypeClient)
3538
}
3639

3740
res, valid := val.(aclient.Client)
@@ -42,6 +45,20 @@ func ClientFromContext(ctx context.Context) (aclient.Client, error) {
4245
return res, nil
4346
}
4447

48+
func QueryClientFromContext(ctx context.Context) (aclient.QueryClient, error) {
49+
val := ctx.Value(ContextTypeQueryClient)
50+
if val == nil {
51+
return nil, fmt.Errorf("%w: %s", ErrContextValueNotSet, ContextTypeQueryClient)
52+
}
53+
54+
res, valid := val.(aclient.QueryClient)
55+
if !valid {
56+
return nil, fmt.Errorf("invalid context value, expected \"aclient.QueryClient\", actual \"%s\"", reflect.TypeOf(val))
57+
}
58+
59+
return res, nil
60+
}
61+
4562
func MustClientFromContext(ctx context.Context) aclient.Client {
4663
cl, err := ClientFromContext(ctx)
4764
if err != nil {
@@ -56,7 +73,7 @@ func LightClientFromContext(ctx context.Context) (aclient.LightClient, error) {
5673
if val == nil {
5774
val = ctx.Value(ContextTypeClient)
5875
if val == nil {
59-
return nil, errors.New("context does not have client set")
76+
return nil, fmt.Errorf("%w: %s", ErrContextValueNotSet, ContextTypeClient)
6077
}
6178
}
6279

@@ -82,7 +99,7 @@ func MustLightClientFromContext(ctx context.Context) aclient.LightClient {
8299
func MustAddressCodecFromContext(ctx context.Context) address.Codec {
83100
val := ctx.Value(ContextTypeAddressCodec)
84101
if val == nil {
85-
panic("context does not have address codec set")
102+
panic(fmt.Errorf("%w: %s", ErrContextValueNotSet, ContextTypeAddressCodec))
86103
}
87104

88105
res, valid := val.(address.Codec)
@@ -96,7 +113,7 @@ func MustAddressCodecFromContext(ctx context.Context) address.Codec {
96113
func MustValidatorCodecFromContext(ctx context.Context) address.Codec {
97114
val := ctx.Value(ContextTypeValidatorCodec)
98115
if val == nil {
99-
panic("context does not have validator codec set")
116+
panic(fmt.Errorf("%w: %s", ErrContextValueNotSet, ContextTypeValidatorCodec))
100117
}
101118

102119
res, valid := val.(address.Codec)

go/cli/flags/flags.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ const (
8686
FlagGSeq = "gseq"
8787
FlagOSeq = "oseq"
8888
FlagProvider = "provider"
89+
FlagProviderURL = "provider-url"
8990
FlagSerial = "serial"
9091
FlagPrice = "price"
9192
FlagDeposit = "deposit"
@@ -310,6 +311,11 @@ func AddQueryFlagsToCmd(cmd *cobra.Command) {
310311
_ = cmd.MarkFlagRequired(FlagChainID)
311312
}
312313

314+
func AddProviderOperationFlagsToCmd(cmd *cobra.Command) {
315+
cmd.Flags().String(FlagProviderURL, "", "Provider URL for off-chain operations")
316+
cmd.Flags().Bool(FlagOffline, false, "Offline mode (does not allow any online functionality)")
317+
}
318+
313319
// AddTxFlagsToCmd adds common flags to a module tx command.
314320
func AddTxFlagsToCmd(cmd *cobra.Command) {
315321
f := cmd.Flags()

go/cli/go.mod

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
module pkg.akt.dev/go/cli
22

3-
go 1.24.3
3+
go 1.25.0
44

5-
toolchain go1.24.4
5+
toolchain go1.25.1
66

77
require (
88
cosmossdk.io/core v0.11.3
@@ -44,6 +44,8 @@ require (
4444
)
4545

4646
replace (
47+
github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0
48+
github.com/bytedance/sonic => github.com/bytedance/sonic v1.14.1
4749
// use akash fork of cometbft
4850
github.com/cometbft/cometbft => github.com/akash-network/cometbft v0.38.17-akash.2
4951
// use akash fork of cosmos sdk
@@ -85,11 +87,12 @@ require (
8587
github.com/bgentry/speakeasy v0.2.0 // indirect
8688
github.com/blang/semver/v4 v4.0.0 // indirect
8789
github.com/boz/go-lifecycle v0.1.1 // indirect
90+
github.com/bytedance/gopkg v0.1.3 // indirect
8891
github.com/bytedance/sonic v1.13.2 // indirect
89-
github.com/bytedance/sonic/loader v0.2.4 // indirect
92+
github.com/bytedance/sonic/loader v0.3.0 // indirect
9093
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
9194
github.com/cespare/xxhash/v2 v2.3.0 // indirect
92-
github.com/cloudwego/base64x v0.1.5 // indirect
95+
github.com/cloudwego/base64x v0.1.6 // indirect
9396
github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 // indirect
9497
github.com/cockroachdb/apd/v2 v2.0.2 // indirect
9598
github.com/cockroachdb/errors v1.12.0 // indirect

go/cli/go.sum

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -648,8 +648,6 @@ gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zum
648648
git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc=
649649
github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs=
650650
github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4=
651-
github.com/99designs/keyring v1.2.2 h1:pZd3neh/EmUzWONb35LxQfvuY7kiSXAq3HQd97+XBn0=
652-
github.com/99designs/keyring v1.2.2/go.mod h1:wes/FrByc8j7lFOAGLGSNEg8f/PaI3cgTBqhFkHUrPk=
653651
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0=
654652
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
655653
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
@@ -734,11 +732,12 @@ github.com/btcsuite/btcd/btcutil v1.1.6 h1:zFL2+c3Lb9gEgqKNzowKUPQNb8jV7v5Oaodi/
734732
github.com/btcsuite/btcd/btcutil v1.1.6/go.mod h1:9dFymx8HpuLqBnsPELrImQeTQfKBQqzqGbbV3jK55aE=
735733
github.com/bufbuild/protocompile v0.14.1 h1:iA73zAf/fyljNjQKwYzUHD6AD4R8KMasmwa/FBatYVw=
736734
github.com/bufbuild/protocompile v0.14.1/go.mod h1:ppVdAIhbr2H8asPk6k4pY7t9zB1OU5DoEw9xY/FUi1c=
737-
github.com/bytedance/sonic v1.13.2 h1:8/H1FempDZqC4VqjptGo14QQlJx8VdZJegxs6wwfqpQ=
738-
github.com/bytedance/sonic v1.13.2/go.mod h1:o68xyaF9u2gvVBuGHPlUVCy+ZfmNNO5ETf1+KgkJhz4=
739-
github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU=
740-
github.com/bytedance/sonic/loader v0.2.4 h1:ZWCw4stuXUsn1/+zQDqeE7JKP+QO47tz7QCNan80NzY=
741-
github.com/bytedance/sonic/loader v0.2.4/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI=
735+
github.com/bytedance/gopkg v0.1.3 h1:TPBSwH8RsouGCBcMBktLt1AymVo2TVsBVCY4b6TnZ/M=
736+
github.com/bytedance/gopkg v0.1.3/go.mod h1:576VvJ+eJgyCzdjS+c4+77QF3p7ubbtiKARP3TxducM=
737+
github.com/bytedance/sonic v1.14.1 h1:FBMC0zVz5XUmE4z9wF4Jey0An5FueFvOsTKKKtwIl7w=
738+
github.com/bytedance/sonic v1.14.1/go.mod h1:gi6uhQLMbTdeP0muCnrjHLeCUPyb70ujhnNlhOylAFc=
739+
github.com/bytedance/sonic/loader v0.3.0 h1:dskwH8edlzNMctoruo8FPTJDF3vLtDT0sXZwvZJyqeA=
740+
github.com/bytedance/sonic/loader v0.3.0/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI=
742741
github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ=
743742
github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4=
744743
github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
@@ -767,9 +766,8 @@ github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6D
767766
github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I=
768767
github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE=
769768
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
770-
github.com/cloudwego/base64x v0.1.5 h1:XPciSp1xaq2VCSt6lF0phncD4koWyULpl5bUxbfCyP4=
771-
github.com/cloudwego/base64x v0.1.5/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w=
772-
github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY=
769+
github.com/cloudwego/base64x v0.1.6 h1:t11wG9AECkCDk5fMSoxmufanudBtJ+/HemLstXDLI2M=
770+
github.com/cloudwego/base64x v0.1.6/go.mod h1:OFcloc187FXDaYHvrNIjxSe8ncn0OOM8gEHfghB2IPU=
773771
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
774772
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
775773
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
@@ -830,6 +828,8 @@ github.com/cosmos/iavl v1.2.2 h1:qHhKW3I70w+04g5KdsdVSHRbFLgt3yY3qTMd4Xa4rC8=
830828
github.com/cosmos/iavl v1.2.2/go.mod h1:GiM43q0pB+uG53mLxLDzimxM9l/5N9UuSY3/D0huuVw=
831829
github.com/cosmos/ics23/go v0.11.0 h1:jk5skjT0TqX5e5QJbEnwXIS2yI2vnmLOgpQPeM5RtnU=
832830
github.com/cosmos/ics23/go v0.11.0/go.mod h1:A8OjxPE67hHST4Icw94hOxxFEJMBG031xIGF/JHNIY0=
831+
github.com/cosmos/keyring v1.2.0 h1:8C1lBP9xhImmIabyXW4c3vFjjLiBdGCmfLUfeZlV1Yo=
832+
github.com/cosmos/keyring v1.2.0/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA=
833833
github.com/cosmos/ledger-cosmos-go v0.14.0 h1:WfCHricT3rPbkPSVKRH+L4fQGKYHuGOK9Edpel8TYpE=
834834
github.com/cosmos/ledger-cosmos-go v0.14.0/go.mod h1:E07xCWSBl3mTGofZ2QnL4cIUzMbbGVyik84QYKbX3RA=
835835
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
@@ -1240,7 +1240,6 @@ github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYW
12401240
github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
12411241
github.com/klauspost/cpuid/v2 v2.2.10 h1:tBs3QSyvjDyFTq3uoc/9xFpCuOsJQFNPiAhYdw2skhE=
12421242
github.com/klauspost/cpuid/v2 v2.2.10/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
1243-
github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M=
12441243
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
12451244
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
12461245
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
@@ -2433,7 +2432,6 @@ modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
24332432
modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8=
24342433
nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k=
24352434
nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0=
2436-
nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50=
24372435
pgregory.net/rapid v1.2.0 h1:keKAYRcjm+e1F0oAuU5F5+YPAWcyxNNRK2wud503Gnk=
24382436
pgregory.net/rapid v1.2.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04=
24392437
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=

go/cli/query.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@ func QueryPersistentPreRunE(cmd *cobra.Command, _ []string) error {
1818
cmd.SetContext(ctx)
1919
}
2020

21+
providerURL, _ := cmd.Flags().GetString(cflags.FlagProviderURL)
22+
if providerURL != "" {
23+
ctx = context.WithValue(ctx, ContextTypeProviderURL, providerURL)
24+
cmd.SetContext(ctx)
25+
}
26+
2127
cctx, err := GetClientQueryContext(cmd)
2228
if err != nil {
2329
return err

go/cli/tx.go

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ import (
77
"github.com/spf13/cobra"
88

99
cflags "pkg.akt.dev/go/cli/flags"
10-
aclient "pkg.akt.dev/go/node/client/discovery"
10+
aclient "pkg.akt.dev/go/node/client"
11+
discovery "pkg.akt.dev/go/node/client/discovery"
1112
)
1213

1314
func TxPersistentPreRunE(cmd *cobra.Command, _ []string) error {
@@ -19,6 +20,12 @@ func TxPersistentPreRunE(cmd *cobra.Command, _ []string) error {
1920
cmd.SetContext(ctx)
2021
}
2122

23+
providerURL, _ := cmd.Flags().GetString(cflags.FlagProviderURL)
24+
if providerURL != "" {
25+
ctx = context.WithValue(ctx, ContextTypeProviderURL, providerURL)
26+
cmd.SetContext(ctx)
27+
}
28+
2229
cctx, err := GetClientTxContext(cmd)
2330
if err != nil {
2431
return err
@@ -38,12 +45,22 @@ func TxPersistentPreRunE(cmd *cobra.Command, _ []string) error {
3845
return err
3946
}
4047

41-
cl, err := aclient.DiscoverClient(ctx, cctx, opts...)
42-
if err != nil {
43-
return err
48+
var cl aclient.Client
49+
var qcl aclient.QueryClient
50+
if !cctx.Offline {
51+
cl, err = discovery.DiscoverClient(ctx, cctx, opts...)
52+
if err != nil {
53+
return err
54+
}
55+
56+
qcl, err = discovery.DiscoverQueryClient(ctx, cctx)
57+
if err != nil {
58+
return err
59+
}
4460
}
4561

4662
ctx = context.WithValue(ctx, ContextTypeClient, cl)
63+
ctx = context.WithValue(ctx, ContextTypeQueryClient, qcl)
4764

4865
cmd.SetContext(ctx)
4966
}

go/go.mod

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module pkg.akt.dev/go
22

3-
go 1.24.3
3+
go 1.25.0
44

55
require (
66
cosmossdk.io/api v0.9.2
@@ -46,6 +46,7 @@ require (
4646
replace (
4747
// use cosmos fork of keyring
4848
github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0
49+
github.com/bytedance/sonic => github.com/bytedance/sonic v1.14.1
4950

5051
// use akash fork of cometbft
5152
github.com/cometbft/cometbft => github.com/akash-network/cometbft v0.38.17-akash.2
@@ -122,11 +123,12 @@ require (
122123
github.com/aokoli/goutils v1.0.1 // indirect
123124
github.com/beorn7/perks v1.0.1 // indirect
124125
github.com/bgentry/speakeasy v0.2.0 // indirect
126+
github.com/bytedance/gopkg v0.1.3 // indirect
125127
github.com/bytedance/sonic v1.13.2 // indirect
126-
github.com/bytedance/sonic/loader v0.2.4 // indirect
128+
github.com/bytedance/sonic/loader v0.3.0 // indirect
127129
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
128130
github.com/cespare/xxhash/v2 v2.3.0 // indirect
129-
github.com/cloudwego/base64x v0.1.5 // indirect
131+
github.com/cloudwego/base64x v0.1.6 // indirect
130132
github.com/cockroachdb/errors v1.12.0 // indirect
131133
github.com/cockroachdb/fifo v0.0.0-20240816210425-c5d0cb0b6fc0 // indirect
132134
github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506 // indirect

go/go.sum

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1298,11 +1298,12 @@ github.com/btcsuite/btcd/btcutil v1.1.6 h1:zFL2+c3Lb9gEgqKNzowKUPQNb8jV7v5Oaodi/
12981298
github.com/btcsuite/btcd/btcutil v1.1.6/go.mod h1:9dFymx8HpuLqBnsPELrImQeTQfKBQqzqGbbV3jK55aE=
12991299
github.com/bufbuild/protocompile v0.14.1 h1:iA73zAf/fyljNjQKwYzUHD6AD4R8KMasmwa/FBatYVw=
13001300
github.com/bufbuild/protocompile v0.14.1/go.mod h1:ppVdAIhbr2H8asPk6k4pY7t9zB1OU5DoEw9xY/FUi1c=
1301-
github.com/bytedance/sonic v1.13.2 h1:8/H1FempDZqC4VqjptGo14QQlJx8VdZJegxs6wwfqpQ=
1302-
github.com/bytedance/sonic v1.13.2/go.mod h1:o68xyaF9u2gvVBuGHPlUVCy+ZfmNNO5ETf1+KgkJhz4=
1303-
github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU=
1304-
github.com/bytedance/sonic/loader v0.2.4 h1:ZWCw4stuXUsn1/+zQDqeE7JKP+QO47tz7QCNan80NzY=
1305-
github.com/bytedance/sonic/loader v0.2.4/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI=
1301+
github.com/bytedance/gopkg v0.1.3 h1:TPBSwH8RsouGCBcMBktLt1AymVo2TVsBVCY4b6TnZ/M=
1302+
github.com/bytedance/gopkg v0.1.3/go.mod h1:576VvJ+eJgyCzdjS+c4+77QF3p7ubbtiKARP3TxducM=
1303+
github.com/bytedance/sonic v1.14.1 h1:FBMC0zVz5XUmE4z9wF4Jey0An5FueFvOsTKKKtwIl7w=
1304+
github.com/bytedance/sonic v1.14.1/go.mod h1:gi6uhQLMbTdeP0muCnrjHLeCUPyb70ujhnNlhOylAFc=
1305+
github.com/bytedance/sonic/loader v0.3.0 h1:dskwH8edlzNMctoruo8FPTJDF3vLtDT0sXZwvZJyqeA=
1306+
github.com/bytedance/sonic/loader v0.3.0/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI=
13061307
github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ=
13071308
github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4=
13081309
github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
@@ -1326,9 +1327,8 @@ github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6D
13261327
github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I=
13271328
github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE=
13281329
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
1329-
github.com/cloudwego/base64x v0.1.5 h1:XPciSp1xaq2VCSt6lF0phncD4koWyULpl5bUxbfCyP4=
1330-
github.com/cloudwego/base64x v0.1.5/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w=
1331-
github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY=
1330+
github.com/cloudwego/base64x v0.1.6 h1:t11wG9AECkCDk5fMSoxmufanudBtJ+/HemLstXDLI2M=
1331+
github.com/cloudwego/base64x v0.1.6/go.mod h1:OFcloc187FXDaYHvrNIjxSe8ncn0OOM8gEHfghB2IPU=
13321332
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
13331333
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
13341334
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
@@ -1814,7 +1814,6 @@ github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYW
18141814
github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
18151815
github.com/klauspost/cpuid/v2 v2.2.10 h1:tBs3QSyvjDyFTq3uoc/9xFpCuOsJQFNPiAhYdw2skhE=
18161816
github.com/klauspost/cpuid/v2 v2.2.10/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
1817-
github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M=
18181817
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
18191818
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
18201819
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
@@ -3145,7 +3144,6 @@ modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
31453144
modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8=
31463145
nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k=
31473146
nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0=
3148-
nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50=
31493147
pgregory.net/rapid v0.5.5 h1:jkgx1TjbQPD/feRoK+S/mXw9e1uj6WilpHrXJowi6oA=
31503148
pgregory.net/rapid v0.5.5/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04=
31513149
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=

0 commit comments

Comments
 (0)