17
17
using Neo . IO ;
18
18
using Neo . Json ;
19
19
using Neo . Network . P2P . Payloads ;
20
+ using Neo . Network . P2P . Payloads . Conditions ;
20
21
using Neo . Persistence ;
21
22
using Neo . SmartContract ;
22
23
using Neo . SmartContract . Native ;
@@ -47,68 +48,68 @@ public partial class UT_RpcServer
47
48
static readonly JArray validatorSigner = [ new JObject ( )
48
49
{
49
50
[ "account" ] = ValidatorScriptHash . ToString ( ) ,
50
- [ "scopes" ] = " CalledByEntry" ,
51
- [ "allowedcontracts" ] = new JArray ( [ NeoScriptHash . ToString ( ) , GasScriptHash . ToString ( ) ] ) ,
51
+ [ "scopes" ] = nameof ( WitnessConditionType . CalledByEntry ) ,
52
+ [ "allowedcontracts" ] = new JArray ( [ NeoToken . NEO . Hash . ToString ( ) , GasToken . GAS . Hash . ToString ( ) ] ) ,
52
53
[ "allowedgroups" ] = new JArray ( [ TestProtocolSettings . SoleNode . StandbyCommittee [ 0 ] . ToString ( ) ] ) ,
53
- [ "rules" ] = new JArray ( [ new JObject ( ) { [ "action" ] = " Allow" , [ "condition" ] = new JObject { [ "type" ] = " CalledByEntry" } } ] ) ,
54
+ [ "rules" ] = new JArray ( [ new JObject ( ) { [ "action" ] = nameof ( WitnessRuleAction . Allow ) , [ "condition" ] = new JObject { [ "type" ] = nameof ( WitnessConditionType . CalledByEntry ) } } ] ) ,
54
55
} ] ;
55
56
static readonly JArray multisigSigner = [ new JObject ( )
56
57
{
57
58
[ "account" ] = MultisigScriptHash . ToString ( ) ,
58
- [ "scopes" ] = " CalledByEntry" ,
59
+ [ "scopes" ] = nameof ( WitnessConditionType . CalledByEntry ) ,
59
60
} ] ;
60
61
61
62
[ TestMethod ]
62
63
public void TestInvokeFunction ( )
63
64
{
64
65
_rpcServer . wallet = _wallet ;
65
66
66
- JObject resp = ( JObject ) _rpcServer . InvokeFunction ( new JArray ( NeoScriptHash . ToString ( ) , "totalSupply" , new JArray ( [ ] ) , validatorSigner , true ) ) ;
67
+ JObject resp = ( JObject ) _rpcServer . InvokeFunction ( new JArray ( NeoToken . NEO . Hash . ToString ( ) , "totalSupply" , new JArray ( [ ] ) , validatorSigner , true ) ) ;
67
68
Assert . AreEqual ( resp . Count , 8 ) ;
68
69
Assert . AreEqual ( resp [ "script" ] , NeoTotalSupplyScript ) ;
69
70
Assert . IsTrue ( resp . ContainsProperty ( "gasconsumed" ) ) ;
70
71
Assert . IsTrue ( resp . ContainsProperty ( "diagnostics" ) ) ;
71
- Assert . AreEqual ( resp [ "diagnostics" ] [ "invokedcontracts" ] [ "call" ] [ 0 ] [ "hash" ] , NeoScriptHash . ToString ( ) ) ;
72
+ Assert . AreEqual ( resp [ "diagnostics" ] [ "invokedcontracts" ] [ "call" ] [ 0 ] [ "hash" ] , NeoToken . NEO . Hash . ToString ( ) ) ;
72
73
Assert . IsTrue ( ( ( JArray ) resp [ "diagnostics" ] [ "storagechanges" ] ) . Count == 0 ) ;
73
74
Assert . AreEqual ( resp [ "state" ] , "HALT" ) ;
74
75
Assert . AreEqual ( resp [ "exception" ] , null ) ;
75
76
Assert . AreEqual ( ( ( JArray ) resp [ "notifications" ] ) . Count , 0 ) ;
76
- Assert . AreEqual ( resp [ "stack" ] [ 0 ] [ "type" ] , " Integer" ) ;
77
+ Assert . AreEqual ( resp [ "stack" ] [ 0 ] [ "type" ] , nameof ( Neo . VM . Types . Integer ) ) ;
77
78
Assert . AreEqual ( resp [ "stack" ] [ 0 ] [ "value" ] , "100000000" ) ;
78
79
Assert . IsTrue ( resp . ContainsProperty ( "tx" ) ) ;
79
80
80
- resp = ( JObject ) _rpcServer . InvokeFunction ( new JArray ( NeoScriptHash . ToString ( ) , "symbol" ) ) ;
81
+ resp = ( JObject ) _rpcServer . InvokeFunction ( new JArray ( NeoToken . NEO . Hash . ToString ( ) , "symbol" ) ) ;
81
82
Assert . AreEqual ( resp . Count , 6 ) ;
82
83
Assert . IsTrue ( resp . ContainsProperty ( "script" ) ) ;
83
84
Assert . IsTrue ( resp . ContainsProperty ( "gasconsumed" ) ) ;
84
85
Assert . AreEqual ( resp [ "state" ] , "HALT" ) ;
85
86
Assert . AreEqual ( resp [ "exception" ] , null ) ;
86
87
Assert . AreEqual ( ( ( JArray ) resp [ "notifications" ] ) . Count , 0 ) ;
87
- Assert . AreEqual ( resp [ "stack" ] [ 0 ] [ "type" ] , " ByteString" ) ;
88
+ Assert . AreEqual ( resp [ "stack" ] [ 0 ] [ "type" ] , nameof ( Neo . VM . Types . ByteString ) ) ;
88
89
Assert . AreEqual ( resp [ "stack" ] [ 0 ] [ "value" ] , Convert . ToBase64String ( Encoding . UTF8 . GetBytes ( "NEO" ) ) ) ;
89
90
90
91
// This call triggers not only NEO but also unclaimed GAS
91
- resp = ( JObject ) _rpcServer . InvokeFunction ( new JArray ( NeoScriptHash . ToString ( ) , "transfer" , new JArray ( [
92
- new JObject ( ) { [ "type" ] = " Hash160" , [ "value" ] = MultisigScriptHash . ToString ( ) } ,
93
- new JObject ( ) { [ "type" ] = " Hash160" , [ "value" ] = ValidatorScriptHash . ToString ( ) } ,
94
- new JObject ( ) { [ "type" ] = " Integer" , [ "value" ] = "1" } ,
95
- new JObject ( ) { [ "type" ] = " Any" } ,
92
+ resp = ( JObject ) _rpcServer . InvokeFunction ( new JArray ( NeoToken . NEO . Hash . ToString ( ) , "transfer" , new JArray ( [
93
+ new JObject ( ) { [ "type" ] = nameof ( ContractParameterType . Hash160 ) , [ "value" ] = MultisigScriptHash . ToString ( ) } ,
94
+ new JObject ( ) { [ "type" ] = nameof ( ContractParameterType . Hash160 ) , [ "value" ] = ValidatorScriptHash . ToString ( ) } ,
95
+ new JObject ( ) { [ "type" ] = nameof ( ContractParameterType . Integer ) , [ "value" ] = "1" } ,
96
+ new JObject ( ) { [ "type" ] = nameof ( ContractParameterType . Any ) } ,
96
97
] ) , multisigSigner , true ) ) ;
97
98
Assert . AreEqual ( resp . Count , 7 ) ;
98
99
Assert . AreEqual ( resp [ "script" ] , NeoTransferScript ) ;
99
100
Assert . IsTrue ( resp . ContainsProperty ( "gasconsumed" ) ) ;
100
101
Assert . IsTrue ( resp . ContainsProperty ( "diagnostics" ) ) ;
101
- Assert . AreEqual ( resp [ "diagnostics" ] [ "invokedcontracts" ] [ "call" ] [ 0 ] [ "hash" ] , NeoScriptHash . ToString ( ) ) ;
102
+ Assert . AreEqual ( resp [ "diagnostics" ] [ "invokedcontracts" ] [ "call" ] [ 0 ] [ "hash" ] , NeoToken . NEO . Hash . ToString ( ) ) ;
102
103
Assert . IsTrue ( ( ( JArray ) resp [ "diagnostics" ] [ "storagechanges" ] ) . Count == 4 ) ;
103
104
Assert . AreEqual ( resp [ "state" ] , "HALT" ) ;
104
105
Assert . AreEqual ( resp [ "exception" ] , $ "The smart contract or address { MultisigScriptHash . ToString ( ) } is not found") ;
105
106
JArray notifications = ( JArray ) resp [ "notifications" ] ;
106
107
Assert . AreEqual ( notifications . Count , 2 ) ;
107
108
Assert . AreEqual ( notifications [ 0 ] [ "eventname" ] . AsString ( ) , "Transfer" ) ;
108
- Assert . AreEqual ( notifications [ 0 ] [ "contract" ] . AsString ( ) , NeoScriptHash . ToString ( ) ) ;
109
+ Assert . AreEqual ( notifications [ 0 ] [ "contract" ] . AsString ( ) , NeoToken . NEO . Hash . ToString ( ) ) ;
109
110
Assert . AreEqual ( notifications [ 0 ] [ "state" ] [ "value" ] [ 2 ] [ "value" ] , "1" ) ;
110
111
Assert . AreEqual ( notifications [ 1 ] [ "eventname" ] . AsString ( ) , "Transfer" ) ;
111
- Assert . AreEqual ( notifications [ 1 ] [ "contract" ] . AsString ( ) , GasScriptHash . ToString ( ) ) ;
112
+ Assert . AreEqual ( notifications [ 1 ] [ "contract" ] . AsString ( ) , GasToken . GAS . Hash . ToString ( ) ) ;
112
113
Assert . AreEqual ( notifications [ 1 ] [ "state" ] [ "value" ] [ 2 ] [ "value" ] , "50000000" ) ;
113
114
114
115
_rpcServer . wallet = null ;
@@ -121,24 +122,24 @@ public void TestInvokeScript()
121
122
Assert . AreEqual ( resp . Count , 7 ) ;
122
123
Assert . IsTrue ( resp . ContainsProperty ( "gasconsumed" ) ) ;
123
124
Assert . IsTrue ( resp . ContainsProperty ( "diagnostics" ) ) ;
124
- Assert . AreEqual ( resp [ "diagnostics" ] [ "invokedcontracts" ] [ "call" ] [ 0 ] [ "hash" ] , NeoScriptHash . ToString ( ) ) ;
125
+ Assert . AreEqual ( resp [ "diagnostics" ] [ "invokedcontracts" ] [ "call" ] [ 0 ] [ "hash" ] , NeoToken . NEO . Hash . ToString ( ) ) ;
125
126
Assert . AreEqual ( resp [ "state" ] , "HALT" ) ;
126
127
Assert . AreEqual ( resp [ "exception" ] , null ) ;
127
128
Assert . AreEqual ( ( ( JArray ) resp [ "notifications" ] ) . Count , 0 ) ;
128
- Assert . AreEqual ( resp [ "stack" ] [ 0 ] [ "type" ] , " Integer" ) ;
129
+ Assert . AreEqual ( resp [ "stack" ] [ 0 ] [ "type" ] , nameof ( Neo . VM . Types . Integer ) ) ;
129
130
Assert . AreEqual ( resp [ "stack" ] [ 0 ] [ "value" ] , "100000000" ) ;
130
131
131
132
resp = ( JObject ) _rpcServer . InvokeScript ( new JArray ( NeoTransferScript ) ) ;
132
133
Assert . AreEqual ( resp . Count , 6 ) ;
133
- Assert . AreEqual ( resp [ "stack" ] [ 0 ] [ "type" ] , " Boolean" ) ;
134
+ Assert . AreEqual ( resp [ "stack" ] [ 0 ] [ "type" ] , nameof ( Neo . VM . Types . Boolean ) ) ;
134
135
Assert . AreEqual ( resp [ "stack" ] [ 0 ] [ "value" ] , false ) ;
135
136
}
136
137
137
138
[ TestMethod ]
138
139
public void TestTraverseIterator ( )
139
140
{
140
141
// GetAllCandidates that should return 0 candidates
141
- JObject resp = ( JObject ) _rpcServer . InvokeFunction ( new JArray ( NeoScriptHash . ToString ( ) , "getAllCandidates" , new JArray ( [ ] ) , validatorSigner , true ) ) ;
142
+ JObject resp = ( JObject ) _rpcServer . InvokeFunction ( new JArray ( NeoToken . NEO . Hash . ToString ( ) , "getAllCandidates" , new JArray ( [ ] ) , validatorSigner , true ) ) ;
142
143
string sessionId = resp [ "session" ] . AsString ( ) ;
143
144
string iteratorId = resp [ "stack" ] [ 0 ] [ "id" ] . AsString ( ) ;
144
145
JArray respArray = ( JArray ) _rpcServer . TraverseIterator ( [ sessionId , iteratorId , 100 ] ) ;
@@ -147,10 +148,10 @@ public void TestTraverseIterator()
147
148
Assert . ThrowsException < RpcException > ( ( ) => ( JArray ) _rpcServer . TraverseIterator ( [ sessionId , iteratorId , 100 ] ) , "Unknown session" ) ;
148
149
149
150
// register candidate in snapshot
150
- resp = ( JObject ) _rpcServer . InvokeFunction ( new JArray ( NeoScriptHash . ToString ( ) , "registerCandidate" ,
151
+ resp = ( JObject ) _rpcServer . InvokeFunction ( new JArray ( NeoToken . NEO . Hash . ToString ( ) , "registerCandidate" ,
151
152
new JArray ( [ new JObject ( )
152
153
{
153
- [ "type" ] = " PublicKey" ,
154
+ [ "type" ] = nameof ( ContractParameterType . PublicKey ) ,
154
155
[ "value" ] = TestProtocolSettings . SoleNode . StandbyCommittee [ 0 ] . ToString ( ) ,
155
156
} ] ) , validatorSigner , true ) ) ;
156
157
Assert . AreEqual ( resp [ "state" ] , "HALT" ) ;
@@ -168,25 +169,25 @@ public void TestTraverseIterator()
168
169
engine . SnapshotCache . Commit ( ) ;
169
170
170
171
// GetAllCandidates that should return 1 candidate
171
- resp = ( JObject ) _rpcServer . InvokeFunction ( new JArray ( NeoScriptHash . ToString ( ) , "getAllCandidates" , new JArray ( [ ] ) , validatorSigner , true ) ) ;
172
+ resp = ( JObject ) _rpcServer . InvokeFunction ( new JArray ( NeoToken . NEO . Hash . ToString ( ) , "getAllCandidates" , new JArray ( [ ] ) , validatorSigner , true ) ) ;
172
173
sessionId = resp [ "session" ] . AsString ( ) ;
173
174
iteratorId = resp [ "stack" ] [ 0 ] [ "id" ] . AsString ( ) ;
174
175
respArray = ( JArray ) _rpcServer . TraverseIterator ( [ sessionId , iteratorId , 100 ] ) ;
175
176
Assert . AreEqual ( respArray . Count , 1 ) ;
176
- Assert . AreEqual ( respArray [ 0 ] [ "type" ] , " Struct" ) ;
177
+ Assert . AreEqual ( respArray [ 0 ] [ "type" ] , nameof ( Neo . VM . Types . Struct ) ) ;
177
178
JArray value = ( JArray ) respArray [ 0 ] [ "value" ] ;
178
179
Assert . AreEqual ( value . Count , 2 ) ;
179
- Assert . AreEqual ( value [ 0 ] [ "type" ] , " ByteString" ) ;
180
+ Assert . AreEqual ( value [ 0 ] [ "type" ] , nameof ( Neo . VM . Types . ByteString ) ) ;
180
181
Assert . AreEqual ( value [ 0 ] [ "value" ] , Convert . ToBase64String ( TestProtocolSettings . SoleNode . StandbyCommittee [ 0 ] . ToArray ( ) ) ) ;
181
- Assert . AreEqual ( value [ 1 ] [ "type" ] , " Integer" ) ;
182
+ Assert . AreEqual ( value [ 1 ] [ "type" ] , nameof ( Neo . VM . Types . Integer ) ) ;
182
183
Assert . AreEqual ( value [ 1 ] [ "value" ] , "0" ) ;
183
184
184
185
// No result when traversed again
185
186
respArray = ( JArray ) _rpcServer . TraverseIterator ( [ sessionId , iteratorId , 100 ] ) ;
186
187
Assert . AreEqual ( respArray . Count , 0 ) ;
187
188
188
189
// GetAllCandidates again
189
- resp = ( JObject ) _rpcServer . InvokeFunction ( new JArray ( NeoScriptHash . ToString ( ) , "getAllCandidates" , new JArray ( [ ] ) , validatorSigner , true ) ) ;
190
+ resp = ( JObject ) _rpcServer . InvokeFunction ( new JArray ( NeoToken . NEO . Hash . ToString ( ) , "getAllCandidates" , new JArray ( [ ] ) , validatorSigner , true ) ) ;
190
191
sessionId = resp [ "session" ] . AsString ( ) ;
191
192
iteratorId = resp [ "stack" ] [ 0 ] [ "id" ] . AsString ( ) ;
192
193
@@ -201,7 +202,7 @@ public void TestTraverseIterator()
201
202
// Mocking session timeout
202
203
Thread . Sleep ( ( int ) _rpcServerSettings . SessionExpirationTime . TotalMilliseconds + 1 ) ;
203
204
// build another session that did not expire
204
- resp = ( JObject ) _rpcServer . InvokeFunction ( new JArray ( NeoScriptHash . ToString ( ) , "getAllCandidates" , new JArray ( [ ] ) , validatorSigner , true ) ) ;
205
+ resp = ( JObject ) _rpcServer . InvokeFunction ( new JArray ( NeoToken . NEO . Hash . ToString ( ) , "getAllCandidates" , new JArray ( [ ] ) , validatorSigner , true ) ) ;
205
206
string notExpiredSessionId = resp [ "session" ] . AsString ( ) ;
206
207
string notExpiredIteratorId = resp [ "stack" ] [ 0 ] [ "id" ] . AsString ( ) ;
207
208
_rpcServer . OnTimer ( new object ( ) ) ;
@@ -212,7 +213,7 @@ public void TestTraverseIterator()
212
213
Assert . AreEqual ( respArray . Count , 1 ) ;
213
214
214
215
// Mocking disposal
215
- resp = ( JObject ) _rpcServer . InvokeFunction ( new JArray ( NeoScriptHash . ToString ( ) , "getAllCandidates" , new JArray ( [ ] ) , validatorSigner , true ) ) ;
216
+ resp = ( JObject ) _rpcServer . InvokeFunction ( new JArray ( NeoToken . NEO . Hash . ToString ( ) , "getAllCandidates" , new JArray ( [ ] ) , validatorSigner , true ) ) ;
216
217
sessionId = resp [ "session" ] . AsString ( ) ;
217
218
iteratorId = resp [ "stack" ] [ 0 ] [ "id" ] . AsString ( ) ;
218
219
_rpcServer . Dispose_SmartContract ( ) ;
0 commit comments