Skip to content

Commit 6b8d844

Browse files
committed
updated wallet to handle dynamic fees
1 parent 270ab49 commit 6b8d844

28 files changed

+2381
-736
lines changed

vms/platformvm/block/builder/builder_test.go

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,15 @@ func TestBuildBlockBasic(t *testing.T) {
3939
defer env.ctx.Lock.Unlock()
4040

4141
// Create a valid transaction
42-
builder, signer := env.factory.NewWallet(testSubnet1ControlKeys[0], testSubnet1ControlKeys[1])
42+
builder, signer, feeCalc, err := env.factory.NewWallet(testSubnet1ControlKeys[0], testSubnet1ControlKeys[1])
43+
require.NoError(err)
4344
utx, err := builder.NewCreateChainTx(
4445
testSubnet1.ID(),
4546
nil,
4647
constants.AVMID,
4748
nil,
4849
"chain name",
50+
feeCalc,
4951
)
5052
require.NoError(err)
5153
tx, err := walletsigner.SignUnsigned(context.Background(), signer, utx)
@@ -111,7 +113,8 @@ func TestBuildBlockShouldReward(t *testing.T) {
111113
require.NoError(err)
112114

113115
// Create a valid [AddPermissionlessValidatorTx]
114-
builder, txSigner := env.factory.NewWallet(preFundedKeys[0])
116+
builder, txSigner, feeCalc, err := env.factory.NewWallet(preFundedKeys[0])
117+
require.NoError(err)
115118
utx, err := builder.NewAddPermissionlessValidatorTx(
116119
&txs.SubnetValidator{
117120
Validator: txs.Validator{
@@ -133,6 +136,7 @@ func TestBuildBlockShouldReward(t *testing.T) {
133136
Addrs: []ids.ShortID{preFundedKeys[0].PublicKey().Address()},
134137
},
135138
reward.PercentDenominator,
139+
feeCalc,
136140
common.WithChangeOwner(&secp256k1fx.OutputOwners{
137141
Threshold: 1,
138142
Addrs: []ids.ShortID{preFundedKeys[0].PublicKey().Address()},
@@ -251,13 +255,15 @@ func TestBuildBlockForceAdvanceTime(t *testing.T) {
251255
defer env.ctx.Lock.Unlock()
252256

253257
// Create a valid transaction
254-
builder, signer := env.factory.NewWallet(testSubnet1ControlKeys[0], testSubnet1ControlKeys[1])
258+
builder, signer, feeCalc, err := env.factory.NewWallet(testSubnet1ControlKeys[0], testSubnet1ControlKeys[1])
259+
require.NoError(err)
255260
utx, err := builder.NewCreateChainTx(
256261
testSubnet1.ID(),
257262
nil,
258263
constants.AVMID,
259264
nil,
260265
"chain name",
266+
feeCalc,
261267
)
262268
require.NoError(err)
263269
tx, err := walletsigner.SignUnsigned(context.Background(), signer, utx)
@@ -320,7 +326,8 @@ func TestBuildBlockInvalidStakingDurations(t *testing.T) {
320326
sk, err := bls.NewSecretKey()
321327
require.NoError(err)
322328

323-
builder1, signer1 := env.factory.NewWallet(preFundedKeys[0])
329+
builder1, signer1, feeCalc1, err := env.factory.NewWallet(preFundedKeys[0])
330+
require.NoError(err)
324331
utx1, err := builder1.NewAddPermissionlessValidatorTx(
325332
&txs.SubnetValidator{
326333
Validator: txs.Validator{
@@ -342,6 +349,7 @@ func TestBuildBlockInvalidStakingDurations(t *testing.T) {
342349
Addrs: []ids.ShortID{preFundedKeys[0].PublicKey().Address()},
343350
},
344351
reward.PercentDenominator,
352+
feeCalc1,
345353
common.WithChangeOwner(&secp256k1fx.OutputOwners{
346354
Threshold: 1,
347355
Addrs: []ids.ShortID{preFundedKeys[0].PublicKey().Address()},
@@ -361,7 +369,8 @@ func TestBuildBlockInvalidStakingDurations(t *testing.T) {
361369
sk, err = bls.NewSecretKey()
362370
require.NoError(err)
363371

364-
builder2, signer2 := env.factory.NewWallet(preFundedKeys[2])
372+
builder2, signer2, feeCalc2, err := env.factory.NewWallet(preFundedKeys[2])
373+
require.NoError(err)
365374
utx2, err := builder2.NewAddPermissionlessValidatorTx(
366375
&txs.SubnetValidator{
367376
Validator: txs.Validator{
@@ -383,6 +392,7 @@ func TestBuildBlockInvalidStakingDurations(t *testing.T) {
383392
Addrs: []ids.ShortID{preFundedKeys[2].PublicKey().Address()},
384393
},
385394
reward.PercentDenominator,
395+
feeCalc2,
386396
common.WithChangeOwner(&secp256k1fx.OutputOwners{
387397
Threshold: 1,
388398
Addrs: []ids.ShortID{preFundedKeys[2].PublicKey().Address()},
@@ -426,13 +436,15 @@ func TestPreviouslyDroppedTxsCannotBeReAddedToMempool(t *testing.T) {
426436
defer env.ctx.Lock.Unlock()
427437

428438
// Create a valid transaction
429-
builder, signer := env.factory.NewWallet(testSubnet1ControlKeys[0], testSubnet1ControlKeys[1])
439+
builder, signer, feeCalc, err := env.factory.NewWallet(testSubnet1ControlKeys[0], testSubnet1ControlKeys[1])
440+
require.NoError(err)
430441
utx, err := builder.NewCreateChainTx(
431442
testSubnet1.ID(),
432443
nil,
433444
constants.AVMID,
434445
nil,
435446
"chain name",
447+
feeCalc,
436448
)
437449
require.NoError(err)
438450
tx, err := walletsigner.SignUnsigned(context.Background(), signer, utx)

vms/platformvm/block/builder/helpers_test.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ func newEnvironment(t *testing.T, f fork) *environment { //nolint:unparam
153153

154154
res.uptimes = uptime.NewManager(res.state, res.clk)
155155
res.utxosVerifier = utxo.NewVerifier(res.ctx, res.clk, res.fx)
156-
res.factory = txstest.NewWalletFactory(res.ctx, res.config, res.state)
156+
res.factory = txstest.NewWalletFactory(res.ctx, res.config, res.clk, res.state)
157157

158158
genesisID := res.state.GetLastAccepted()
159159
res.backend = txexecutor.Backend{
@@ -236,7 +236,9 @@ func newEnvironment(t *testing.T, f fork) *environment { //nolint:unparam
236236
func addSubnet(t *testing.T, env *environment) {
237237
require := require.New(t)
238238

239-
builder, signer := env.factory.NewWallet(preFundedKeys[0])
239+
builder, signer, feeCalc, err := env.factory.NewWallet(preFundedKeys[0])
240+
require.NoError(err)
241+
240242
utx, err := builder.NewCreateSubnetTx(
241243
&secp256k1fx.OutputOwners{
242244
Threshold: 2,
@@ -246,6 +248,7 @@ func addSubnet(t *testing.T, env *environment) {
246248
preFundedKeys[2].PublicKey().Address(),
247249
},
248250
},
251+
feeCalc,
249252
walletcommon.WithChangeOwner(&secp256k1fx.OutputOwners{
250253
Threshold: 1,
251254
Addrs: []ids.ShortID{preFundedKeys[0].PublicKey().Address()},

vms/platformvm/block/builder/standard_block_test.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,16 @@ func TestAtomicTxImports(t *testing.T) {
6363
}}},
6464
}))
6565

66-
builder, signer := env.factory.NewWallet(recipientKey)
66+
builder, signer, feeCalc, err := env.factory.NewWallet(recipientKey)
67+
require.NoError(err)
68+
6769
utx, err := builder.NewImportTx(
6870
env.ctx.XChainID,
6971
&secp256k1fx.OutputOwners{
7072
Threshold: 1,
7173
Addrs: []ids.ShortID{recipientKey.PublicKey().Address()},
7274
},
75+
feeCalc,
7376
)
7477
require.NoError(err)
7578
tx, err := walletsigner.SignUnsigned(context.Background(), signer, utx)

vms/platformvm/block/executor/helpers_test.go

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ func newEnvironment(t *testing.T, ctrl *gomock.Controller, f fork) *environment
163163
res.factory = txstest.NewWalletFactory(
164164
res.ctx,
165165
res.config,
166+
res.clk,
166167
res.state,
167168
)
168169
} else {
@@ -173,10 +174,12 @@ func newEnvironment(t *testing.T, ctrl *gomock.Controller, f fork) *environment
173174
res.factory = txstest.NewWalletFactory(
174175
res.ctx,
175176
res.config,
177+
res.clk,
176178
res.mockedState,
177179
)
178180

179181
// setup expectations strictly needed for environment creation
182+
res.mockedState.EXPECT().GetTimestamp().Return(time.Time{}).AnyTimes() // to initialize createSubnet/BlockchainTx fee
180183
res.mockedState.EXPECT().GetLastAccepted().Return(genesisBlkID).Times(1)
181184
}
182185

@@ -252,7 +255,11 @@ func newEnvironment(t *testing.T, ctrl *gomock.Controller, f fork) *environment
252255
}
253256

254257
func addSubnet(env *environment) {
255-
builder, signer := env.factory.NewWallet(preFundedKeys[0])
258+
builder, signer, feeCalc, err := env.factory.NewWallet(preFundedKeys[0])
259+
if err != nil {
260+
panic(err)
261+
}
262+
256263
utx, err := builder.NewCreateSubnetTx(
257264
&secp256k1fx.OutputOwners{
258265
Threshold: 2,
@@ -262,6 +269,7 @@ func addSubnet(env *environment) {
262269
preFundedKeys[2].PublicKey().Address(),
263270
},
264271
},
272+
feeCalc,
265273
walletcommon.WithChangeOwner(&secp256k1fx.OutputOwners{
266274
Threshold: 1,
267275
Addrs: []ids.ShortID{preFundedKeys[0].PublicKey().Address()},
@@ -505,7 +513,11 @@ func addPendingValidator(
505513
rewardAddress ids.ShortID,
506514
keys []*secp256k1.PrivateKey,
507515
) (*txs.Tx, error) {
508-
builder, signer := env.factory.NewWallet(keys...)
516+
builder, signer, feeCalc, err := env.factory.NewWallet(keys...)
517+
if err != nil {
518+
return nil, err
519+
}
520+
509521
utx, err := builder.NewAddValidatorTx(
510522
&txs.Validator{
511523
NodeID: nodeID,
@@ -518,6 +530,7 @@ func addPendingValidator(
518530
Addrs: []ids.ShortID{rewardAddress},
519531
},
520532
reward.PercentDenominator,
533+
feeCalc,
521534
)
522535
if err != nil {
523536
return nil, err

0 commit comments

Comments
 (0)