Skip to content

Commit 291ff5d

Browse files
committed
feat(AEP-75): implement multi-depositor escrow account
Signed-off-by: Artur Troian <[email protected]>
1 parent 2aa9091 commit 291ff5d

33 files changed

+1444
-949
lines changed

app/modules.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ func appModules(
170170
app.Keepers.Akash.Deployment,
171171
app.Keepers.Akash.Provider,
172172
app.Keepers.Cosmos.Acct,
173+
app.Keepers.Cosmos.Authz,
173174
app.Keepers.Cosmos.Bank,
174175
),
175176
provider.NewAppModule(
@@ -302,6 +303,7 @@ func appSimModules(
302303
app.Keepers.Akash.Deployment,
303304
app.Keepers.Akash.Provider,
304305
app.Keepers.Cosmos.Acct,
306+
app.Keepers.Cosmos.Authz,
305307
app.Keepers.Cosmos.Bank,
306308
),
307309

app/sim_test.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"os"
88
"testing"
99

10+
authzkeeper "github.com/cosmos/cosmos-sdk/x/authz/keeper"
1011
"github.com/spf13/viper"
1112
"github.com/stretchr/testify/assert"
1213
"github.com/stretchr/testify/require"
@@ -23,7 +24,7 @@ import (
2324
"github.com/cosmos/cosmos-sdk/baseapp"
2425
sdksim "github.com/cosmos/cosmos-sdk/types/simulation"
2526
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
26-
authzkeeper "github.com/cosmos/cosmos-sdk/x/authz/keeper"
27+
authzkeys "github.com/cosmos/cosmos-sdk/x/authz/keeper/keys"
2728
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
2829
consensustypes "github.com/cosmos/cosmos-sdk/x/consensus/types"
2930
distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types"
@@ -236,8 +237,9 @@ func TestAppImportExport(t *testing.T) {
236237
appA,
237238
appB,
238239
[][]byte{
239-
authzkeeper.GrantQueuePrefix,
240-
authzkeeper.GranteeKey,
240+
authzkeys.GrantQueuePrefix,
241+
authzkeys.GranteeKey,
242+
authzkeys.GranteeMsgKey,
241243
},
242244
},
243245
{

go.mod

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ require (
4747
google.golang.org/grpc v1.74.2
4848
gopkg.in/yaml.v3 v3.0.1
4949
gotest.tools/v3 v3.5.2
50-
pkg.akt.dev/go v0.0.3-rc12
51-
pkg.akt.dev/go/cli v0.0.3-rc9
52-
pkg.akt.dev/go/sdl v0.0.2-rc5
50+
pkg.akt.dev/go v0.0.3-rc13
51+
pkg.akt.dev/go/cli v0.0.3-rc10
52+
pkg.akt.dev/go/sdl v0.0.2-rc6
5353
)
5454

5555
replace (
@@ -59,7 +59,7 @@ replace (
5959
// use akash fork of cometbft
6060
github.com/cometbft/cometbft => github.com/akash-network/cometbft v0.38.17-akash.2
6161
// use akash fork of cosmos sdk
62-
github.com/cosmos/cosmos-sdk => github.com/akash-network/cosmos-sdk v0.53.3-akash.4
62+
github.com/cosmos/cosmos-sdk => github.com/akash-network/cosmos-sdk v0.53.4-akash.0
6363

6464
github.com/cosmos/gogoproto => github.com/akash-network/gogoproto v1.7.0-akash.2
6565

@@ -255,6 +255,7 @@ require (
255255
go.opentelemetry.io/otel/trace v1.36.0 // indirect
256256
go.uber.org/mock v0.5.2 // indirect
257257
go.uber.org/multierr v1.11.0 // indirect
258+
go.yaml.in/yaml/v2 v2.4.2 // indirect
258259
golang.org/x/arch v0.15.0 // indirect
259260
golang.org/x/crypto v0.40.0 // indirect
260261
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 // indirect
@@ -281,5 +282,5 @@ require (
281282
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
282283
sigs.k8s.io/randfill v1.0.0 // indirect
283284
sigs.k8s.io/structured-merge-diff/v4 v4.6.0 // indirect
284-
sigs.k8s.io/yaml v1.4.0 // indirect
285+
sigs.k8s.io/yaml v1.6.0 // indirect
285286
)

go.sum

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1281,8 +1281,8 @@ github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3
12811281
github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM=
12821282
github.com/akash-network/cometbft v0.38.17-akash.2 h1:ZSlROvuSOUd3f6Jld43Wp5cgAmTY/BgKpSKi3228R7Y=
12831283
github.com/akash-network/cometbft v0.38.17-akash.2/go.mod h1:5l0SkgeLRXi6bBfQuevXjKqML1jjfJJlvI1Ulp02/o4=
1284-
github.com/akash-network/cosmos-sdk v0.53.3-akash.4 h1:MYT0kxrTomP5bF2qS6dRP4dsZrl8xZDLRw6YIDpddCE=
1285-
github.com/akash-network/cosmos-sdk v0.53.3-akash.4/go.mod h1:KuyiP67EkMPTaEQfykEjExnDAI0zDYWLivkCDQ4gTM8=
1284+
github.com/akash-network/cosmos-sdk v0.53.4-akash.0 h1:ZEXJfZeLPaCDjHIg9iu2KWc8vepzZyDF8MZaHtEY5Go=
1285+
github.com/akash-network/cosmos-sdk v0.53.4-akash.0/go.mod h1:UJNjxvMQqI15nc5G2rhPIV/+ol3xDDoE+tif3v/W1pA=
12861286
github.com/akash-network/gogoproto v1.7.0-akash.2 h1:zY5seM6kBOLMBWn15t8vrY1ao4J1HjrhNaEeO/Soro0=
12871287
github.com/akash-network/gogoproto v1.7.0-akash.2/go.mod h1:yWChEv5IUEYURQasfyBW5ffkMHR/90hiHgbNgrtp4j0=
12881288
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
@@ -2294,6 +2294,10 @@ go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9E
22942294
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
22952295
go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
22962296
go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
2297+
go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI=
2298+
go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU=
2299+
go.yaml.in/yaml/v3 v3.0.3 h1:bXOww4E/J3f66rav3pX3m8w6jDE4knZjGOw8b5Y6iNE=
2300+
go.yaml.in/yaml/v3 v3.0.3/go.mod h1:tBHosrYAkRZjRAOREWbDnBXUf08JOwYq++0QNwQiWzI=
22972301
golang.org/x/arch v0.15.0 h1:QtOrQd0bTUnhNVNndMpLHNWrDmYzZ2KDqSrEymqInZw=
22982302
golang.org/x/arch v0.15.0/go.mod h1:JmwW7aLIoRUKgaTzhkiEFxvcEiQGyOg9BMonBJUS7EE=
22992303
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
@@ -3274,12 +3278,12 @@ nhooyr.io/websocket v1.8.11/go.mod h1:rN9OFWIUwuxg4fR5tELlYC04bXYowCP9GX47ivo2l+
32743278
nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50=
32753279
pgregory.net/rapid v0.5.5 h1:jkgx1TjbQPD/feRoK+S/mXw9e1uj6WilpHrXJowi6oA=
32763280
pgregory.net/rapid v0.5.5/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04=
3277-
pkg.akt.dev/go v0.0.3-rc12 h1:TATh7X9GBqU3MCPXvThEHLsncBtVIYtdiUEMnWD/kcY=
3278-
pkg.akt.dev/go v0.0.3-rc12/go.mod h1:LE8ZbMg+SWfFhg9PH38zndtvAaGuv/iFfGf5pqzq5l4=
3279-
pkg.akt.dev/go/cli v0.0.3-rc9 h1:Mnd4+hWp8LQOOWgmZ4kYpQ6KsyLRyrrP1Ed1x+n728I=
3280-
pkg.akt.dev/go/cli v0.0.3-rc9/go.mod h1:/afl2nIQ1zppE7KBzK8oaj4h4ZC1sD+dElfDLsW/fiA=
3281-
pkg.akt.dev/go/sdl v0.0.2-rc5 h1:+9hA8F+K2TjIsS9WiKiptauL/X3xwdad51zvPccvTKA=
3282-
pkg.akt.dev/go/sdl v0.0.2-rc5/go.mod h1:BUyrzQvtbx/6nPu1YGg3RVfAL5V//MS86uP1HznKwsU=
3281+
pkg.akt.dev/go v0.0.3-rc13 h1:PKX8tMJ/IinKXQuaB8Tb2Jdbj5kZ6XNRgiZl3QP3YXk=
3282+
pkg.akt.dev/go v0.0.3-rc13/go.mod h1:TF85k1RuubGnnESQud3FYoDT4/SWWHlccJ/JPw7gDzo=
3283+
pkg.akt.dev/go/cli v0.0.3-rc10 h1:/bz9BQvGckHwwLnr/pocyO/JCOaR6Gi9o70qPXN7U2Y=
3284+
pkg.akt.dev/go/cli v0.0.3-rc10/go.mod h1:5DKQPIhu2nXNp+1LUJZu0Fziu6q4sOQLXMDoHL76d80=
3285+
pkg.akt.dev/go/sdl v0.0.2-rc6 h1:rlaiBL2xTl06Rq/MNePmMRyl6ucWweA5q4Mt9tZzwzM=
3286+
pkg.akt.dev/go/sdl v0.0.2-rc6/go.mod h1:OzXCY9NTPue1T0SZgqIIk1E83G1xEwxS4aCgCumF/cw=
32833287
pkg.akt.dev/specs v0.0.1 h1:OP0zil3Fr4kcCuybFqQ8LWgSlSP2Yn7306meWpu6/S4=
32843288
pkg.akt.dev/specs v0.0.1/go.mod h1:tiFuJAqzn+lkz662lf9qaEdjdrrDr882r3YMDnWkbp4=
32853289
pkg.akt.dev/testdata v0.0.1 h1:yHfqF0Uxf7Rg7WdwSggnyBWMxACtAg5VpBUVFXU+uvM=
@@ -3298,6 +3302,7 @@ sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxO
32983302
sigs.k8s.io/structured-merge-diff/v4 v4.6.0 h1:IUA9nvMmnKWcj5jl84xn+T5MnlZKThmUW1TdblaLVAc=
32993303
sigs.k8s.io/structured-merge-diff/v4 v4.6.0/go.mod h1:dDy58f92j70zLsuZVuUX5Wp9vtxXpaZnkPGWeqDfCps=
33003304
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
3301-
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
33023305
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
3306+
sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs=
3307+
sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4=
33033308
sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU=

testutil/cosmos/keepers.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import (
99
)
1010

1111
type BankKeeper interface {
12+
SpendableCoins(ctx context.Context, addr sdk.AccAddress) sdk.Coins
13+
SpendableCoin(ctx context.Context, addr sdk.AccAddress, denom string) sdk.Coin
1214
SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error
1315
SendCoinsFromModuleToModule(ctx context.Context, senderModule, recipientModule string, amt sdk.Coins) error
1416
SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error
@@ -23,4 +25,5 @@ type AuthzKeeper interface {
2325
GetAuthorization(ctx context.Context, grantee sdk.AccAddress, granter sdk.AccAddress, msgType string) (authz.Authorization, *time.Time)
2426
SaveGrant(ctx context.Context, grantee sdk.AccAddress, granter sdk.AccAddress, authorization authz.Authorization, expiration *time.Time) error
2527
IterateGrants(ctx context.Context, handler func(granterAddr sdk.AccAddress, granteeAddr sdk.AccAddress, grant authz.Grant) bool)
28+
GetGranteeGrantsByMsgType(ctx context.Context, grantee sdk.AccAddress, msgType string, onGrant func(context.Context, sdk.AccAddress, authz.Authorization, *time.Time) bool)
2629
}

testutil/cosmos/mocks/AuthzKeeper_mock.go

Lines changed: 58 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

testutil/cosmos/mocks/BankKeeper_mock.go

Lines changed: 122 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

testutil/state/suite.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,10 @@ func SetupTestSuiteWithKeepers(t testing.TB, keepers Keepers) *TestSuite {
8484
bkeeper.
8585
On("SendCoinsFromModuleToModule", mock.Anything, mock.Anything, mock.Anything, mock.Anything).
8686
Return(nil)
87+
bkeeper.
88+
On("SpendableCoin", mock.Anything, mock.Anything, mock.Anything).
89+
Return(sdk.NewInt64Coin("uakt", 10000000))
90+
8791
keepers.Bank = bkeeper
8892
}
8993

0 commit comments

Comments
 (0)