This repository has been archived by the owner on Aug 22, 2023. It is now read-only.
/
address_resolution.go
81 lines (57 loc) 路 3.29 KB
/
address_resolution.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package main
import (
"github.com/filecoin-project/go-state-types/abi"
"github.com/filecoin-project/go-state-types/big"
"github.com/filecoin-project/go-state-types/exitcode"
"github.com/filecoin-project/specs-actors/actors/builtin"
"github.com/filecoin-project/go-address"
"github.com/filecoin-project/lotus/conformance/chaos"
. "github.com/filecoin-project/test-vectors/gen/builders"
)
func actorResolutionIDIdentity(v *MessageVectorBuilder) {
v.Messages.SetDefaults(GasLimit(1_000_000_000), GasPremium(1), GasFeeCap(200))
alice := v.Actors.Account(address.SECP256K1, abi.NewTokenAmount(1_000_000_000_000))
v.CommitPreconditions()
v.Messages.Raw(alice.ID, chaos.Address, chaos.MethodResolveAddress, MustSerialize(&builtin.SystemActorAddr), Nonce(0), Value(big.Zero()))
v.CommitApplies()
v.Assert.EveryMessageResultSatisfies(ExitCode(exitcode.Ok))
v.Assert.EveryMessageResultSatisfies(MessageReturns(&chaos.ResolveAddressResponse{builtin.SystemActorAddr, true}))
}
func actorResolutionInvalidIdentity(v *MessageVectorBuilder) {
v.Messages.SetDefaults(GasLimit(1_000_000_000), GasPremium(1), GasFeeCap(200))
alice := v.Actors.Account(address.SECP256K1, abi.NewTokenAmount(1_000_000_000_000))
v.CommitPreconditions()
invalidIDAddr, _ := address.NewIDAddress(77)
v.Messages.Raw(alice.ID, chaos.Address, chaos.MethodResolveAddress, MustSerialize(&invalidIDAddr), Nonce(0), Value(big.Zero()))
v.CommitApplies()
v.Assert.EveryMessageResultSatisfies(ExitCode(exitcode.Ok))
v.Assert.EveryMessageResultSatisfies(MessageReturns(&chaos.ResolveAddressResponse{invalidIDAddr, true}))
}
func actorResolutionNonexistant(v *MessageVectorBuilder) {
v.Messages.SetDefaults(GasLimit(1_000_000_000), GasPremium(1), GasFeeCap(200))
alice := v.Actors.Account(address.SECP256K1, abi.NewTokenAmount(1_000_000_000_000))
v.CommitPreconditions()
invalidActorAddr, _ := address.NewActorAddress([]byte("invalid"))
v.Messages.Raw(alice.ID, chaos.Address, chaos.MethodResolveAddress, MustSerialize(&invalidActorAddr), Nonce(0), Value(big.Zero()))
v.CommitApplies()
v.Assert.EveryMessageResultSatisfies(ExitCode(exitcode.Ok))
v.Assert.EveryMessageResultSatisfies(MessageReturns(&chaos.ResolveAddressResponse{builtin.SystemActorAddr, false}))
}
func actorResolutionSecpExistant(v *MessageVectorBuilder) {
v.Messages.SetDefaults(GasLimit(1_000_000_000), GasPremium(1), GasFeeCap(200))
alice := v.Actors.Account(address.SECP256K1, abi.NewTokenAmount(1_000_000_000_000))
v.CommitPreconditions()
v.Messages.Raw(alice.ID, chaos.Address, chaos.MethodResolveAddress, MustSerialize(&alice.ID), Nonce(0), Value(big.Zero()))
v.CommitApplies()
v.Assert.EveryMessageResultSatisfies(ExitCode(exitcode.Ok))
v.Assert.EveryMessageResultSatisfies(MessageReturns(&chaos.ResolveAddressResponse{alice.ID, true}))
}
func actorResolutionBlsExistant(v *MessageVectorBuilder) {
v.Messages.SetDefaults(GasLimit(1_000_000_000), GasPremium(1), GasFeeCap(200))
alice := v.Actors.Account(address.BLS, abi.NewTokenAmount(1_000_000_000_000))
v.CommitPreconditions()
v.Messages.Raw(alice.ID, chaos.Address, chaos.MethodResolveAddress, MustSerialize(&alice.ID), Nonce(0), Value(big.Zero()))
v.CommitApplies()
v.Assert.EveryMessageResultSatisfies(ExitCode(exitcode.Ok))
v.Assert.EveryMessageResultSatisfies(MessageReturns(&chaos.ResolveAddressResponse{alice.ID, true}))
}