mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-12-24 23:35:19 +00:00
Add ibc packet forward middleware for ibc transfer (#1839)
* Add ibc packet forward middleware for ibc transfer * Update changelog for ibc packet forwarding
This commit is contained in:
parent
322f2ac056
commit
5c0f27b952
@ -44,6 +44,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
|
|||||||
- (cosmos-sdk) [#1811] Upgrades app to cosmos-sdk v0.47.7
|
- (cosmos-sdk) [#1811] Upgrades app to cosmos-sdk v0.47.7
|
||||||
- (validator-vesting) [#1832] Add grpc query service to replace removed legacy querier
|
- (validator-vesting) [#1832] Add grpc query service to replace removed legacy querier
|
||||||
- (incentive) [#1836] Update x/incentive cli to use grpc query client
|
- (incentive) [#1836] Update x/incentive cli to use grpc query client
|
||||||
|
- (ibc) [#1839] Add ibc packet forward middleware for ibc transfers
|
||||||
|
|
||||||
## [v0.25.0]
|
## [v0.25.0]
|
||||||
|
|
||||||
@ -326,6 +327,7 @@ the [changelog](https://github.com/cosmos/cosmos-sdk/blob/v0.38.4/CHANGELOG.md).
|
|||||||
- [#257](https://github.com/Kava-Labs/kava/pulls/257) Include scripts to run
|
- [#257](https://github.com/Kava-Labs/kava/pulls/257) Include scripts to run
|
||||||
large-scale simulations remotely using aws-batch
|
large-scale simulations remotely using aws-batch
|
||||||
|
|
||||||
|
[#1839]: https://github.com/Kava-Labs/kava/pull/1839
|
||||||
[#1836]: https://github.com/Kava-Labs/kava/pull/1836
|
[#1836]: https://github.com/Kava-Labs/kava/pull/1836
|
||||||
[#1832]: https://github.com/Kava-Labs/kava/pull/1832
|
[#1832]: https://github.com/Kava-Labs/kava/pull/1832
|
||||||
[#1811]: https://github.com/Kava-Labs/kava/pull/1811
|
[#1811]: https://github.com/Kava-Labs/kava/pull/1811
|
||||||
|
48
app/app.go
48
app/app.go
@ -79,6 +79,9 @@ import (
|
|||||||
upgradeclient "github.com/cosmos/cosmos-sdk/x/upgrade/client"
|
upgradeclient "github.com/cosmos/cosmos-sdk/x/upgrade/client"
|
||||||
upgradekeeper "github.com/cosmos/cosmos-sdk/x/upgrade/keeper"
|
upgradekeeper "github.com/cosmos/cosmos-sdk/x/upgrade/keeper"
|
||||||
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
|
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
|
||||||
|
"github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward"
|
||||||
|
packetforwardkeeper "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward/keeper"
|
||||||
|
packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward/types"
|
||||||
transfer "github.com/cosmos/ibc-go/v7/modules/apps/transfer"
|
transfer "github.com/cosmos/ibc-go/v7/modules/apps/transfer"
|
||||||
ibctransferkeeper "github.com/cosmos/ibc-go/v7/modules/apps/transfer/keeper"
|
ibctransferkeeper "github.com/cosmos/ibc-go/v7/modules/apps/transfer/keeper"
|
||||||
ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types"
|
ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types"
|
||||||
@ -86,7 +89,7 @@ import (
|
|||||||
ibcclient "github.com/cosmos/ibc-go/v7/modules/core/02-client"
|
ibcclient "github.com/cosmos/ibc-go/v7/modules/core/02-client"
|
||||||
ibcclientclient "github.com/cosmos/ibc-go/v7/modules/core/02-client/client"
|
ibcclientclient "github.com/cosmos/ibc-go/v7/modules/core/02-client/client"
|
||||||
ibcclienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
|
ibcclienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
|
||||||
porttypes "github.com/cosmos/ibc-go/v7/modules/core/05-port/types"
|
ibcporttypes "github.com/cosmos/ibc-go/v7/modules/core/05-port/types"
|
||||||
ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported"
|
ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported"
|
||||||
ibckeeper "github.com/cosmos/ibc-go/v7/modules/core/keeper"
|
ibckeeper "github.com/cosmos/ibc-go/v7/modules/core/keeper"
|
||||||
solomachine "github.com/cosmos/ibc-go/v7/modules/light-clients/06-solomachine"
|
solomachine "github.com/cosmos/ibc-go/v7/modules/light-clients/06-solomachine"
|
||||||
@ -199,6 +202,7 @@ var (
|
|||||||
ibc.AppModuleBasic{},
|
ibc.AppModuleBasic{},
|
||||||
ibctm.AppModuleBasic{},
|
ibctm.AppModuleBasic{},
|
||||||
solomachine.AppModuleBasic{},
|
solomachine.AppModuleBasic{},
|
||||||
|
packetforward.AppModuleBasic{},
|
||||||
upgrade.AppModuleBasic{},
|
upgrade.AppModuleBasic{},
|
||||||
evidence.AppModuleBasic{},
|
evidence.AppModuleBasic{},
|
||||||
authzmodule.AppModuleBasic{},
|
authzmodule.AppModuleBasic{},
|
||||||
@ -307,6 +311,7 @@ type App struct {
|
|||||||
crisisKeeper crisiskeeper.Keeper
|
crisisKeeper crisiskeeper.Keeper
|
||||||
slashingKeeper slashingkeeper.Keeper
|
slashingKeeper slashingkeeper.Keeper
|
||||||
ibcKeeper *ibckeeper.Keeper // IBC Keeper must be a pointer in the app, so we can SetRouter on it correctly
|
ibcKeeper *ibckeeper.Keeper // IBC Keeper must be a pointer in the app, so we can SetRouter on it correctly
|
||||||
|
packetForwardKeeper *packetforwardkeeper.Keeper
|
||||||
evmKeeper *evmkeeper.Keeper
|
evmKeeper *evmkeeper.Keeper
|
||||||
evmutilKeeper evmutilkeeper.Keeper
|
evmutilKeeper evmutilkeeper.Keeper
|
||||||
feeMarketKeeper feemarketkeeper.Keeper
|
feeMarketKeeper feemarketkeeper.Keeper
|
||||||
@ -375,7 +380,7 @@ func NewApp(
|
|||||||
|
|
||||||
keys := sdk.NewKVStoreKeys(
|
keys := sdk.NewKVStoreKeys(
|
||||||
authtypes.StoreKey, banktypes.StoreKey, stakingtypes.StoreKey,
|
authtypes.StoreKey, banktypes.StoreKey, stakingtypes.StoreKey,
|
||||||
distrtypes.StoreKey, slashingtypes.StoreKey,
|
distrtypes.StoreKey, slashingtypes.StoreKey, packetforwardtypes.StoreKey,
|
||||||
govtypes.StoreKey, paramstypes.StoreKey, ibcexported.StoreKey,
|
govtypes.StoreKey, paramstypes.StoreKey, ibcexported.StoreKey,
|
||||||
upgradetypes.StoreKey, evidencetypes.StoreKey, ibctransfertypes.StoreKey,
|
upgradetypes.StoreKey, evidencetypes.StoreKey, ibctransfertypes.StoreKey,
|
||||||
evmtypes.StoreKey, feemarkettypes.StoreKey, authzkeeper.StoreKey,
|
evmtypes.StoreKey, feemarkettypes.StoreKey, authzkeeper.StoreKey,
|
||||||
@ -429,6 +434,7 @@ func NewApp(
|
|||||||
savingsSubspace := app.paramsKeeper.Subspace(savingstypes.ModuleName)
|
savingsSubspace := app.paramsKeeper.Subspace(savingstypes.ModuleName)
|
||||||
ibcSubspace := app.paramsKeeper.Subspace(ibcexported.ModuleName)
|
ibcSubspace := app.paramsKeeper.Subspace(ibcexported.ModuleName)
|
||||||
ibctransferSubspace := app.paramsKeeper.Subspace(ibctransfertypes.ModuleName)
|
ibctransferSubspace := app.paramsKeeper.Subspace(ibctransfertypes.ModuleName)
|
||||||
|
packetforwardSubspace := app.paramsKeeper.Subspace(packetforwardtypes.ModuleName).WithKeyTable(packetforwardtypes.ParamKeyTable())
|
||||||
feemarketSubspace := app.paramsKeeper.Subspace(feemarkettypes.ModuleName)
|
feemarketSubspace := app.paramsKeeper.Subspace(feemarkettypes.ModuleName)
|
||||||
evmSubspace := app.paramsKeeper.Subspace(evmtypes.ModuleName)
|
evmSubspace := app.paramsKeeper.Subspace(evmtypes.ModuleName)
|
||||||
evmutilSubspace := app.paramsKeeper.Subspace(evmutiltypes.ModuleName)
|
evmutilSubspace := app.paramsKeeper.Subspace(evmutiltypes.ModuleName)
|
||||||
@ -551,23 +557,49 @@ func NewApp(
|
|||||||
|
|
||||||
app.evmutilKeeper.SetEvmKeeper(app.evmKeeper)
|
app.evmutilKeeper.SetEvmKeeper(app.evmKeeper)
|
||||||
|
|
||||||
|
// It's important to note that the PFM Keeper must be initialized before the Transfer Keeper
|
||||||
|
app.packetForwardKeeper = packetforwardkeeper.NewKeeper(
|
||||||
|
appCodec,
|
||||||
|
keys[packetforwardtypes.StoreKey],
|
||||||
|
nil, // will be zero-value here, reference is set later on with SetTransferKeeper.
|
||||||
|
app.ibcKeeper.ChannelKeeper,
|
||||||
|
app.distrKeeper,
|
||||||
|
app.bankKeeper,
|
||||||
|
app.ibcKeeper.ChannelKeeper,
|
||||||
|
govAuthAddrStr,
|
||||||
|
)
|
||||||
|
|
||||||
app.transferKeeper = ibctransferkeeper.NewKeeper(
|
app.transferKeeper = ibctransferkeeper.NewKeeper(
|
||||||
appCodec,
|
appCodec,
|
||||||
keys[ibctransfertypes.StoreKey],
|
keys[ibctransfertypes.StoreKey],
|
||||||
ibctransferSubspace,
|
ibctransferSubspace,
|
||||||
app.ibcKeeper.ChannelKeeper,
|
app.packetForwardKeeper,
|
||||||
app.ibcKeeper.ChannelKeeper,
|
app.ibcKeeper.ChannelKeeper,
|
||||||
&app.ibcKeeper.PortKeeper,
|
&app.ibcKeeper.PortKeeper,
|
||||||
app.accountKeeper,
|
app.accountKeeper,
|
||||||
app.bankKeeper,
|
app.bankKeeper,
|
||||||
scopedTransferKeeper,
|
scopedTransferKeeper,
|
||||||
)
|
)
|
||||||
|
app.packetForwardKeeper.SetTransferKeeper(app.transferKeeper)
|
||||||
transferModule := transfer.NewAppModule(app.transferKeeper)
|
transferModule := transfer.NewAppModule(app.transferKeeper)
|
||||||
transferIBCModule := transfer.NewIBCModule(app.transferKeeper)
|
|
||||||
|
// allow ibc packet forwarding for ibc transfers.
|
||||||
|
// transfer stack contains (from top to bottom):
|
||||||
|
// - Packet Forward Middleware
|
||||||
|
// - Transfer
|
||||||
|
var transferStack ibcporttypes.IBCModule
|
||||||
|
transferStack = transfer.NewIBCModule(app.transferKeeper)
|
||||||
|
transferStack = packetforward.NewIBCMiddleware(
|
||||||
|
transferStack,
|
||||||
|
app.packetForwardKeeper,
|
||||||
|
0, // retries on timeout
|
||||||
|
packetforwardkeeper.DefaultForwardTransferPacketTimeoutTimestamp,
|
||||||
|
packetforwardkeeper.DefaultRefundTransferPacketTimeoutTimestamp,
|
||||||
|
)
|
||||||
|
|
||||||
// Create static IBC router, add transfer route, then set and seal it
|
// Create static IBC router, add transfer route, then set and seal it
|
||||||
ibcRouter := porttypes.NewRouter()
|
ibcRouter := ibcporttypes.NewRouter()
|
||||||
ibcRouter.AddRoute(ibctransfertypes.ModuleName, transferIBCModule)
|
ibcRouter.AddRoute(ibctransfertypes.ModuleName, transferStack)
|
||||||
app.ibcKeeper.SetRouter(ibcRouter)
|
app.ibcKeeper.SetRouter(ibcRouter)
|
||||||
|
|
||||||
app.auctionKeeper = auctionkeeper.NewKeeper(
|
app.auctionKeeper = auctionkeeper.NewKeeper(
|
||||||
@ -789,6 +821,7 @@ func NewApp(
|
|||||||
slashing.NewAppModule(appCodec, app.slashingKeeper, app.accountKeeper, app.bankKeeper, app.stakingKeeper, slashingSubspace),
|
slashing.NewAppModule(appCodec, app.slashingKeeper, app.accountKeeper, app.bankKeeper, app.stakingKeeper, slashingSubspace),
|
||||||
consensus.NewAppModule(appCodec, app.consensusParamsKeeper),
|
consensus.NewAppModule(appCodec, app.consensusParamsKeeper),
|
||||||
ibc.NewAppModule(app.ibcKeeper),
|
ibc.NewAppModule(app.ibcKeeper),
|
||||||
|
packetforward.NewAppModule(app.packetForwardKeeper, packetforwardSubspace),
|
||||||
evm.NewAppModule(app.evmKeeper, app.accountKeeper),
|
evm.NewAppModule(app.evmKeeper, app.accountKeeper),
|
||||||
feemarket.NewAppModule(app.feeMarketKeeper, feemarketSubspace),
|
feemarket.NewAppModule(app.feeMarketKeeper, feemarketSubspace),
|
||||||
upgrade.NewAppModule(&app.upgradeKeeper),
|
upgrade.NewAppModule(&app.upgradeKeeper),
|
||||||
@ -870,6 +903,7 @@ func NewApp(
|
|||||||
earntypes.ModuleName,
|
earntypes.ModuleName,
|
||||||
routertypes.ModuleName,
|
routertypes.ModuleName,
|
||||||
consensusparamtypes.ModuleName,
|
consensusparamtypes.ModuleName,
|
||||||
|
packetforwardtypes.ModuleName,
|
||||||
)
|
)
|
||||||
|
|
||||||
// Warning: Some end blockers must run before others. Ensure the dependencies are understood before modifying this list.
|
// Warning: Some end blockers must run before others. Ensure the dependencies are understood before modifying this list.
|
||||||
@ -914,6 +948,7 @@ func NewApp(
|
|||||||
communitytypes.ModuleName,
|
communitytypes.ModuleName,
|
||||||
metricstypes.ModuleName,
|
metricstypes.ModuleName,
|
||||||
consensusparamtypes.ModuleName,
|
consensusparamtypes.ModuleName,
|
||||||
|
packetforwardtypes.ModuleName,
|
||||||
)
|
)
|
||||||
|
|
||||||
// Warning: Some init genesis methods must run before others. Ensure the dependencies are understood before modifying this list
|
// Warning: Some init genesis methods must run before others. Ensure the dependencies are understood before modifying this list
|
||||||
@ -956,6 +991,7 @@ func NewApp(
|
|||||||
routertypes.ModuleName,
|
routertypes.ModuleName,
|
||||||
metricstypes.ModuleName,
|
metricstypes.ModuleName,
|
||||||
consensusparamtypes.ModuleName,
|
consensusparamtypes.ModuleName,
|
||||||
|
packetforwardtypes.ModuleName,
|
||||||
crisistypes.ModuleName, // runs the invariants at genesis, should run after other modules
|
crisistypes.ModuleName, // runs the invariants at genesis, should run after other modules
|
||||||
)
|
)
|
||||||
|
|
||||||
|
6
ci/env/kava-protonet/genesis.json
vendored
6
ci/env/kava-protonet/genesis.json
vendored
@ -3000,6 +3000,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"params": null,
|
"params": null,
|
||||||
|
"packetfowardmiddleware": {
|
||||||
|
"params": {
|
||||||
|
"fee_percentage": "0.000000000000000000"
|
||||||
|
},
|
||||||
|
"in_flight_packets": {}
|
||||||
|
},
|
||||||
"pricefeed": {
|
"pricefeed": {
|
||||||
"params": {
|
"params": {
|
||||||
"markets": [
|
"markets": [
|
||||||
|
2
go.mod
2
go.mod
@ -13,6 +13,7 @@ require (
|
|||||||
github.com/cosmos/cosmos-sdk v0.47.7
|
github.com/cosmos/cosmos-sdk v0.47.7
|
||||||
github.com/cosmos/go-bip39 v1.0.0
|
github.com/cosmos/go-bip39 v1.0.0
|
||||||
github.com/cosmos/gogoproto v1.4.10
|
github.com/cosmos/gogoproto v1.4.10
|
||||||
|
github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7 v7.1.2
|
||||||
github.com/cosmos/ibc-go/v7 v7.3.1
|
github.com/cosmos/ibc-go/v7 v7.3.1
|
||||||
github.com/ethereum/go-ethereum v1.10.26
|
github.com/ethereum/go-ethereum v1.10.26
|
||||||
github.com/evmos/ethermint v0.21.0
|
github.com/evmos/ethermint v0.21.0
|
||||||
@ -133,6 +134,7 @@ require (
|
|||||||
github.com/holiman/uint256 v1.2.1 // indirect
|
github.com/holiman/uint256 v1.2.1 // indirect
|
||||||
github.com/huandu/skiplist v1.2.0 // indirect
|
github.com/huandu/skiplist v1.2.0 // indirect
|
||||||
github.com/huin/goupnp v1.0.3 // indirect
|
github.com/huin/goupnp v1.0.3 // indirect
|
||||||
|
github.com/iancoleman/orderedmap v0.2.0 // indirect
|
||||||
github.com/improbable-eng/grpc-web v0.15.0 // indirect
|
github.com/improbable-eng/grpc-web v0.15.0 // indirect
|
||||||
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||||
github.com/jackpal/go-nat-pmp v1.0.2 // indirect
|
github.com/jackpal/go-nat-pmp v1.0.2 // indirect
|
||||||
|
6
go.sum
6
go.sum
@ -416,6 +416,8 @@ github.com/cosmos/gogoproto v1.4.10 h1:QH/yT8X+c0F4ZDacDv3z+xE3WU1P1Z3wQoLMBRJoK
|
|||||||
github.com/cosmos/gogoproto v1.4.10/go.mod h1:3aAZzeRWpAwr+SS/LLkICX2/kDFyaYVzckBDzygIxek=
|
github.com/cosmos/gogoproto v1.4.10/go.mod h1:3aAZzeRWpAwr+SS/LLkICX2/kDFyaYVzckBDzygIxek=
|
||||||
github.com/cosmos/iavl v0.20.1 h1:rM1kqeG3/HBT85vsZdoSNsehciqUQPWrR4BYmqE2+zg=
|
github.com/cosmos/iavl v0.20.1 h1:rM1kqeG3/HBT85vsZdoSNsehciqUQPWrR4BYmqE2+zg=
|
||||||
github.com/cosmos/iavl v0.20.1/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A=
|
github.com/cosmos/iavl v0.20.1/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A=
|
||||||
|
github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7 v7.1.2 h1:6zjj+yIpMbCTRI2eJ2fXuflElENs3mrUSLH/TSWL8fk=
|
||||||
|
github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7 v7.1.2/go.mod h1:UvDmcGIWJPIytq+Q78/ff5NTOsuX/7IrNgEugTW5i0s=
|
||||||
github.com/cosmos/ibc-go/v7 v7.3.1 h1:bil1IjnHdyWDASFYKfwdRiNtFP6WK3osW7QFEAgU4I8=
|
github.com/cosmos/ibc-go/v7 v7.3.1 h1:bil1IjnHdyWDASFYKfwdRiNtFP6WK3osW7QFEAgU4I8=
|
||||||
github.com/cosmos/ibc-go/v7 v7.3.1/go.mod h1:wvx4pPBofe5ZdMNV3OFRxSI4auEP5Qfqf8JXLLNV04g=
|
github.com/cosmos/ibc-go/v7 v7.3.1/go.mod h1:wvx4pPBofe5ZdMNV3OFRxSI4auEP5Qfqf8JXLLNV04g=
|
||||||
github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM=
|
github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM=
|
||||||
@ -813,6 +815,8 @@ github.com/huin/goupnp v1.0.3-0.20220313090229-ca81a64b4204/go.mod h1:ZxNlw5WqJj
|
|||||||
github.com/huin/goupnp v1.0.3 h1:N8No57ls+MnjlB+JPiCVSOyy/ot7MJTqlo7rn+NYSqQ=
|
github.com/huin/goupnp v1.0.3 h1:N8No57ls+MnjlB+JPiCVSOyy/ot7MJTqlo7rn+NYSqQ=
|
||||||
github.com/huin/goupnp v1.0.3/go.mod h1:ZxNlw5WqJj6wSsRK5+YfflQGXYfccj5VgQsMNixHM7Y=
|
github.com/huin/goupnp v1.0.3/go.mod h1:ZxNlw5WqJj6wSsRK5+YfflQGXYfccj5VgQsMNixHM7Y=
|
||||||
github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o=
|
github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o=
|
||||||
|
github.com/iancoleman/orderedmap v0.2.0 h1:sq1N/TFpYH++aViPcaKjys3bDClUEU7s5B+z6jq8pNA=
|
||||||
|
github.com/iancoleman/orderedmap v0.2.0/go.mod h1:N0Wam8K1arqPXNWjMo21EXnBPOPp36vB07FNRdD2geA=
|
||||||
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
||||||
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
||||||
github.com/improbable-eng/grpc-web v0.15.0 h1:BN+7z6uNXZ1tQGcNAuaU1YjsLTApzkjt2tzCixLaUPQ=
|
github.com/improbable-eng/grpc-web v0.15.0 h1:BN+7z6uNXZ1tQGcNAuaU1YjsLTApzkjt2tzCixLaUPQ=
|
||||||
@ -1292,6 +1296,8 @@ go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqe
|
|||||||
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
||||||
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
||||||
go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
|
go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
|
||||||
|
go.uber.org/mock v0.2.0 h1:TaP3xedm7JaAgScZO7tlvlKrqT0p7I6OsdGB5YNSMDU=
|
||||||
|
go.uber.org/mock v0.2.0/go.mod h1:J0y0rp9L3xiff1+ZBfKxlC1fz2+aO16tw0tsDOixfuM=
|
||||||
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
|
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
|
||||||
go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
|
go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
|
||||||
go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
|
go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
|
||||||
|
Loading…
Reference in New Issue
Block a user