Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
contract-case
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
duanjinfei
contract-case
Commits
c1ac0912
Commit
c1ac0912
authored
Apr 24, 2023
by
duanjinfei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
four commit
parent
c72a9be3
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
356 additions
and
320 deletions
+356
-320
app.json
config/app.json
+8
-8
contractConfig.json
config/contractConfig.json
+141
-142
main.go
main.go
+1
-1
noRelatedCase.go
operator/noRelatedCase.go
+32
-25
operator.go
operator/operator.go
+4
-4
partlyRelatedCase.go
operator/partlyRelatedCase.go
+129
-121
contract_test.go
test/contract_test.go
+14
-3
contract_util.go
util/contract_util.go
+27
-16
No files found.
config/app.json
View file @
c1ac0912
{
{
"deployAddr
1
"
:
"0xe2bA4B27E835f3D5A8f74B53aD6b8b6264D3F501"
,
"deployAddr"
:
"0xe2bA4B27E835f3D5A8f74B53aD6b8b6264D3F501"
,
"deployPrv
1
"
:
"115725efa0b457a764bb0b73b79a26605a54a5025d825b5a627f69354cdbbbf4"
,
"deployPrv"
:
"115725efa0b457a764bb0b73b79a26605a54a5025d825b5a627f69354cdbbbf4"
,
"deployAddr"
:
"0x40EC4256fcBCA69CdbAc942594caeC79FBE10494"
,
"deployAddr
1
"
:
"0x40EC4256fcBCA69CdbAc942594caeC79FBE10494"
,
"deployPrv"
:
"37871f094f89fc95599e73d72d3008c828bb76d0864759011fa14dbaf6cf3c06"
,
"deployPrv
1
"
:
"37871f094f89fc95599e73d72d3008c828bb76d0864759011fa14dbaf6cf3c06"
,
"rpcNode
1"
:
"http://192.168.1.125
:50000"
,
"rpcNode
"
:
"http://54.72.101.87
:50000"
,
"rpcNode"
:
"http://15.161.177.5:26658"
,
"rpcNode
1
"
:
"http://15.161.177.5:26658"
,
"chainId
1
"
:
155
,
"chainId"
:
155
,
"chainId"
:
256256
,
"chainId
1
"
:
256256
,
"goRoutine"
:
1
,
"goRoutine"
:
1
,
"generateAccCount"
:
500
,
"generateAccCount"
:
500
,
"isDeployContract"
:
false
,
"isDeployContract"
:
false
,
...
...
config/contractConfig.json
View file @
c1ac0912
[
[
{
{
"Coin_Transfer"
:
"0xa
cea4c028c233e5d896b5ea28eb1c24d64b937e2
"
,
"Coin_Transfer"
:
"0xa
589cc6ef990fa4f5aa03d522652958a5d55b0b1
"
,
"ERC20"
:
"0x
76e45ce8aa97a3c31d5de9808138e4e31e59fed2
"
,
"ERC20"
:
"0x
b7ca7e3d6a01e3e50628b80d7e532baa91b15595
"
,
"ERC721"
:
"0x
A1C950aA702174E41BCD0ECB7f4c37FDfd672704
"
,
"ERC721"
:
"0x
8d7263a431c9a8029c4584d9d5485130243f456a
"
,
"One_Coin_Transfer"
:
"0x
751d4fe23f0d12b24e58a8e7fc8dccebb5cce2f8
"
,
"One_Coin_Transfer"
:
"0x
b8f19a4bccbbcf9022c92d415cf84dc61e6daf7d
"
,
"One_Read_Write"
:
"0x
8d1d06ccb26436a6dcc34d2a2d85086036d5510c
"
,
"One_Read_Write"
:
"0x
f0d9674e12e82e8ea27ca078ef55cf8ca184e70d
"
,
"One_Token20_Transfer"
:
"0x
5f126393985dba423b740cad1ffd105d63905aa6
"
,
"One_Token20_Transfer"
:
"0x
a85b42d70eea5327b457871d04f9b32be115571c
"
,
"One_Token721_Transfer"
:
"0xd
4b3b40c2b53ea256af8606c711538bfb6eb14a0
"
,
"One_Token721_Transfer"
:
"0xd
8f1c3b2b6a925a6e458ae8f18b5e60639c31f5f
"
,
"Read_Chain"
:
"0x
5b42b6bda3d6ea631dfd5b9a64e0816c03d13e44
"
,
"Read_Chain"
:
"0x
1efc5623ad299fccfd377e9d7444445c2fe832ca
"
,
"Read_Write"
:
"0x
cad5fbc5966f72efa1a4b0cc6c342bce20c73682
"
,
"Read_Write"
:
"0x
085696039a6d7cfe7cdd39dd93553e874fe5329d
"
,
"Token20_Transfer"
:
"0x
217dca03b245abc49a4661cd10f890cc07b4b374
"
,
"Token20_Transfer"
:
"0x
f634b94595a0a98c56e8664692dc945a920f87e1
"
,
"Token721_Transfer"
:
"0x
4169a1d185869ef9c6153d964fcfd155496cf903
"
,
"Token721_Transfer"
:
"0x
a9c688ed700e8984765093f22ff21f07723c6706
"
,
"Two_Coin_Transfer"
:
"0x
55dbf6b2c432094dfaace8d3fbdc6d8d486c6789
"
,
"Two_Coin_Transfer"
:
"0x
307914ca53f3874f74d0611c14222e549659a857
"
,
"Two_Token20_Transfer"
:
"0x
f016b61f45e21345c80bd98142c7abc1f2369ccb
"
,
"Two_Token20_Transfer"
:
"0x
044bfa516df8d6cb4cae0523286b85c0787d0dd2
"
,
"Two_Token721_Transfer"
:
"0x
1bf3024b501cab75e7659a5564e35dfa02bc0370
"
"Two_Token721_Transfer"
:
"0x
ebac9101d367f562903e99c432b2640c9d0acdd5
"
},
},
{
{
"Coin_Transfer"
:
"0x
fd4e1842dee40e3659569a2994c44ad81c588b82
"
,
"Coin_Transfer"
:
"0x
df2d6b72184f798fd9b599facbbb450a14ddfdab
"
,
"ERC20"
:
"0x
ad1ba974bd3bc14556cc884991823223c92b98b6
"
,
"ERC20"
:
"0x
2ba73a39ef543abc80b30c28018ed539cedc50e4
"
,
"ERC721"
:
"0x
450260F10b2D55b785037388fA3aA3b2232cC9F4
"
,
"ERC721"
:
"0x
e20ebde1f619f8a078a5d8aa93e007cd7c29eb5c
"
,
"One_Coin_Transfer"
:
"0x
5ccbafa9811a3a315e1f7c05b80337ec95f69e51
"
,
"One_Coin_Transfer"
:
"0x
c18618830876c5fee157043e966b1a2dbd20064b
"
,
"One_Read_Write"
:
"0x
72fc53dc11970380b4b48c4a5f66fa97227918d5
"
,
"One_Read_Write"
:
"0x
62c435fbe09bfec39c02db60ae4dd7206de88392
"
,
"One_Token20_Transfer"
:
"0x
c7e40a453efefae4bd5eab74b6d242286b75ff85
"
,
"One_Token20_Transfer"
:
"0x
f81a7c6563a0532a55723b862fc89396f329a5b1
"
,
"One_Token721_Transfer"
:
"0x
1a384b70ef274a681eecf5ae680041893bf0563c
"
,
"One_Token721_Transfer"
:
"0x
c05c6e28e2ae345da67e7f734e92490c888cdc0b
"
,
"Read_Chain"
:
"0x
22f8e10b428c801dde2ec902c788657fd6ecff27
"
,
"Read_Chain"
:
"0x
f2edfcbe91f56cae98e93f116bac14df45a63a10
"
,
"Read_Write"
:
"0x
9c929501bb92a36355356881d8d2ed56667881f3
"
,
"Read_Write"
:
"0x
35c6bdb1d5c14daa0981a1888b89dee3827f4368
"
,
"Token20_Transfer"
:
"0x
ddf839293a5056e3b41f4599b63e9b6d2db80365
"
,
"Token20_Transfer"
:
"0x
e3b4a50b2193bef24ee62e4070a12ce46ae66c90
"
,
"Token721_Transfer"
:
"0x
41a48d703f0aec53ca698c7ee5077069c69e9ef
e"
,
"Token721_Transfer"
:
"0x
51f6eafc4f07142ff64599b4d3e8edfbaa1d3a4
e"
,
"Two_Coin_Transfer"
:
"0x
46725530114818f36ab574a6844b7d93e7b23e2e
"
,
"Two_Coin_Transfer"
:
"0x
55e25ad3c753739347da6d5ec4a12aa68d35da23
"
,
"Two_Token20_Transfer"
:
"0x
5f0294fe1bbcf708a3cda7dd1cc86ceb44aa16ed
"
,
"Two_Token20_Transfer"
:
"0x
81b8355f8755491e2f190f696fc76ca341d76fd4
"
,
"Two_Token721_Transfer"
:
"0x
69d7bed3eeeba10d7fe5a47221b7484816250055
"
"Two_Token721_Transfer"
:
"0x
f313d4958bf05f2429b7f67d8c3b90dcde0b769a
"
},
},
{
{
"Coin_Transfer"
:
"0x
15a973b26eddf34727d6cbd85c689eabd1b0ea12
"
,
"Coin_Transfer"
:
"0x
38b1ea3d1a59eb30b5c7e6808b19a3c57fa7f100
"
,
"ERC20"
:
"0x
e5ea1be6856130dfed8baba94e8e3e667d7a5641
"
,
"ERC20"
:
"0x
c483248a1d966bbcb24c56abc05b3c125da4da20
"
,
"ERC721"
:
"0x
f7c49C0264204f8346F659a4BB729567f0081daE
"
,
"ERC721"
:
"0x
5597c1a356622a8d0213257fd03a092f67da71bb
"
,
"One_Coin_Transfer"
:
"0x
afc5b39e4f702316fa822bd7168645cdff22c6d8
"
,
"One_Coin_Transfer"
:
"0x
49378c860aee4e99d3f2e4a8d3aab1b97e2a68be
"
,
"One_Read_Write"
:
"0x
f862f78ff1e10590248c9baa5bafa84d3e33148c
"
,
"One_Read_Write"
:
"0x
618c0c8d30b2f3b45af879e46c21522efa799855
"
,
"One_Token20_Transfer"
:
"0x
349c6d13ba2091f0317e8622c59c5d933ec53f7d
"
,
"One_Token20_Transfer"
:
"0x
044bf7306253db9e8c02d92c056e2c1c2b0371c4
"
,
"One_Token721_Transfer"
:
"0x
82284e4df1e2ad4f30c9df610e27550e53320b63
"
,
"One_Token721_Transfer"
:
"0x
372dc122051e5abd80d468397cec4875d1682a7b
"
,
"Read_Chain"
:
"0x
37019503113a937d3afda0f8d586a326cfe589da
"
,
"Read_Chain"
:
"0x
4c05ad7c37d46afa137620bb0a08b2eb0d364677
"
,
"Read_Write"
:
"0x
f156c92b515402cd9a0e6c9574938bf36964bc9c
"
,
"Read_Write"
:
"0x
dac17232b136cf04f397ded922a12de10bde2ee6
"
,
"Token20_Transfer"
:
"0x8
585f124527624e878c862b6126dc40432809644
"
,
"Token20_Transfer"
:
"0x8
09fb09b24e040f0688899e3cb3ade0e1e435891
"
,
"Token721_Transfer"
:
"0x
b829a81cb13f01c59ac28452794516707400a850
"
,
"Token721_Transfer"
:
"0x
f63a76d44b3c4dc51071b61d05d1de31f49d785b
"
,
"Two_Coin_Transfer"
:
"0x
f6e6be579f0bc80554cde98e441dbc424e848a8
1"
,
"Two_Coin_Transfer"
:
"0x
acc3fd6bab727b3e8a9bf6ef3bde1f8c2d80330
1"
,
"Two_Token20_Transfer"
:
"0x
3ccaaf61a375be2ae88fcbed9a87b4ed1b451818
"
,
"Two_Token20_Transfer"
:
"0x
7ad46537d6693c49edb8783eb99aff93bd182d27
"
,
"Two_Token721_Transfer"
:
"0x
be9f151c8ba8262e6aceb8e1f57f4280ba8bf907
"
"Two_Token721_Transfer"
:
"0x
e476eb1c20aa88031db6e68cbc521800b435e13c
"
},
},
{
{
"Coin_Transfer"
:
"0x
7172b82c77f84caffe98b1a60b666a579ede033f
"
,
"Coin_Transfer"
:
"0x
38db3e3175249748ecccd32b77f5943dd5413aa6
"
,
"ERC20"
:
"0x
07961ad0013c843966731f42f9ba0dc4d218661b
"
,
"ERC20"
:
"0x
dd88f8677a2a19616bb92065a8504e2e9cb777c7
"
,
"ERC721"
:
"0x
5F82Ca8b2D756749420709F7A216F57eC8043306
"
,
"ERC721"
:
"0x
c9dc89f8aecac22a1d34356e0cc2805a16a59daa
"
,
"One_Coin_Transfer"
:
"0x
090012ad83fbbb14c63ac3da6ded8b17f9f90ade
"
,
"One_Coin_Transfer"
:
"0x
b62f350c1c3f0079bdcdeb50bc9d6717dc861f35
"
,
"One_Read_Write"
:
"0x
f9fc7e5fec25c3671ff2b55f84a2aff0f309e252
"
,
"One_Read_Write"
:
"0x
839ddfc307b23e26795acbeb080ca0e6c4471343
"
,
"One_Token20_Transfer"
:
"0x
91e96b3e8232b61cbda3241948eb5c53b7001382
"
,
"One_Token20_Transfer"
:
"0x
8899adb6c137a3b7adff855d5ba9123554c5dc48
"
,
"One_Token721_Transfer"
:
"0x
06ccfdeb8c4eaffc7cf839f45ff158845abf66dd
"
,
"One_Token721_Transfer"
:
"0x
18a9c4a69ad725761190fe214302d9260e8b4d08
"
,
"Read_Chain"
:
"0x
08ae8a0a2000b39f8472b61a8063ef016e8d73a6
"
,
"Read_Chain"
:
"0x
f4551dd4e90511837bdad8634bfeedaab61baf37
"
,
"Read_Write"
:
"0x
b147a01cf3e83c6514a0ccdec402612c47f97de8
"
,
"Read_Write"
:
"0x
2b9803d12d1c92e993fa25ed0ae73e4d09319f2c
"
,
"Token20_Transfer"
:
"0x0
c18d08c20acceae425458b2b186aa70632d3b25
"
,
"Token20_Transfer"
:
"0x0
ab33868ff5d93ac985dc95f90a9cde41026baa4
"
,
"Token721_Transfer"
:
"0x
edb8bea3b505f41d778e5e4e016a68176fdebb50
"
,
"Token721_Transfer"
:
"0x
d1853d8444a91911b5ce5e3f1205b78cfbf70de1
"
,
"Two_Coin_Transfer"
:
"0xb
70f158bee8ee10d68ab3ff4236ff6d08e31ce50
"
,
"Two_Coin_Transfer"
:
"0xb
daa9afcdff574c41852eacc333b942157d82206
"
,
"Two_Token20_Transfer"
:
"0x
5138395a30b8338fd6e78e76adba7aeac0087944
"
,
"Two_Token20_Transfer"
:
"0x
a0d3e321f5decd0f9a36ed999def15494a360c13
"
,
"Two_Token721_Transfer"
:
"0x
c29d555448a0ebb176e81bc0d6bfeeaba7d2f177
"
"Two_Token721_Transfer"
:
"0x
48edda9f5b032916975b73dfcd77fe66ef6a2f06
"
},
},
{
{
"Coin_Transfer"
:
"0x
fe178e9eab1c124b2eec9dcd6ac8711addcfcd1c
"
,
"Coin_Transfer"
:
"0x
92280d850ecd79c49800adf3366f3026df895677
"
,
"ERC20"
:
"0x
739bcc47af1794e44bc15a3edc7bc157e15df012
"
,
"ERC20"
:
"0x
8df746459f0f3cc57354c2c6f824ae34c2e156a1
"
,
"ERC721"
:
"0x
60e35B92C0b616E2786A22598460ee9B97DdBF86
"
,
"ERC721"
:
"0x
f53232d142b9eb07519ff07cf07e01db921c77a1
"
,
"One_Coin_Transfer"
:
"0x
5d6a15ce48a01fc40cce2b67b28f043e214f37ad
"
,
"One_Coin_Transfer"
:
"0x
036351dfe16320b55f5106cdae88c0f18d586172
"
,
"One_Read_Write"
:
"0x3
02211cfdcd202b2679b5af30abd47e01b1e8434
"
,
"One_Read_Write"
:
"0x3
cb9ed694aaf4291b309a374e47d6d1838b75651
"
,
"One_Token20_Transfer"
:
"0x3
68582fb44ac0263e5f7af3b9b77747aaab7397
7"
,
"One_Token20_Transfer"
:
"0x3
8676a7f768e4f9075dda75d48f25dc108a1540
7"
,
"One_Token721_Transfer"
:
"0x
1498fe5416f654522511958430d436d852944116
"
,
"One_Token721_Transfer"
:
"0x
2fc3ffbd4c85a5aa93dd05aab3391905882e3dc7
"
,
"Read_Chain"
:
"0x
79802c8bd4f85703cc41935aa978485257c09c1
6"
,
"Read_Chain"
:
"0x
a6463d921b33ebd148be10050a92ef984890f34
6"
,
"Read_Write"
:
"0x6
3dac1be62787dd59dab7a2faabacd8d34d86da8
"
,
"Read_Write"
:
"0x6
a38d73d9fa3f0e505990824343a41c62af9fc20
"
,
"Token20_Transfer"
:
"0x
3849c9ddf95abd07e03ecd9cf24542d4f9f22499
"
,
"Token20_Transfer"
:
"0x
e78d5bb07fcff7d8481f74ca34ddb939905d78ee
"
,
"Token721_Transfer"
:
"0x
9e984435a395b25c0f27b1aece334dfe02c0485a
"
,
"Token721_Transfer"
:
"0x
a670fb3e614e4a87312d0293b7b8843acb6f3416
"
,
"Two_Coin_Transfer"
:
"0x0
ced6919a38fa91b6b6927fc1f15e0c569c68a68
"
,
"Two_Coin_Transfer"
:
"0x0
552a89967f204d69f21bcf07e798b66345a5554
"
,
"Two_Token20_Transfer"
:
"0x
53eb1be5898698bdf37a888f3e0318ca92cc998c
"
,
"Two_Token20_Transfer"
:
"0x
ccdd01ce90fb87e59e413c0d0c935ee32979e92e
"
,
"Two_Token721_Transfer"
:
"0x
b070769e4a0d65066f0a621d674413db661cafad
"
"Two_Token721_Transfer"
:
"0x
1648c0e71a36b6ea23e1201b4592ae17e3bcfe8f
"
},
},
{
{
"Coin_Transfer"
:
"0x
e71e6339a12fdea0b21639f2ae0c66213fcf5c86
"
,
"Coin_Transfer"
:
"0x
97793ac67e4b9781803dda46f3dcdaff53efb6b4
"
,
"ERC20"
:
"0x
cfb496315a3293c8628f46f7eb6584af735a3417
"
,
"ERC20"
:
"0x
66aaa7f2881e351f18697b6fa01fe2129f197f8f
"
,
"ERC721"
:
"0x
107C9A668e6B5A5830633deDf2Ab0985246A8f4d
"
,
"ERC721"
:
"0x
37516343d02566dc25fc9e1aa083cf66eecc4686
"
,
"One_Coin_Transfer"
:
"0x
7d12567d5f6a3366954b304721fc9ca629bba810
"
,
"One_Coin_Transfer"
:
"0x
9c6383f7824bd9017a933d54b532a2631f9bc44d
"
,
"One_Read_Write"
:
"0xb
e65ff6c27f663f5773238ad0c587314ec480bc3
"
,
"One_Read_Write"
:
"0xb
90e9181c48c370bc1d03656995fba73b604957d
"
,
"One_Token20_Transfer"
:
"0x
eddc3405b0ea01fd86c9ddc4ee452365fdf0f52e
"
,
"One_Token20_Transfer"
:
"0x
04dd317de502114b323ff00f8951b4e70c38e72b
"
,
"One_Token721_Transfer"
:
"0x
b71212aed50e73dfda62d4b6668c7e4848fd4d97
"
,
"One_Token721_Transfer"
:
"0x
02eae8b01a144d74cc47e231069a93ead2d6ebd3
"
,
"Read_Chain"
:
"0x
5c06399590f0401e0df344ca58a0c7a6497e290f
"
,
"Read_Chain"
:
"0x
361ffc858f28b648a546fab7c4446bc7e3ff7153
"
,
"Read_Write"
:
"0x
6141fa8e3aa8ff702343dc6fa8d789d56d0e98af
"
,
"Read_Write"
:
"0x
2f1a7ebc2a2de0392f17c65dd4a8aab2a608b648
"
,
"Token20_Transfer"
:
"0x
8a29a59af8d2a69b2de1d20f031ba8c1b42922df
"
,
"Token20_Transfer"
:
"0x
b47db2ed6571cb557160c2151db3d6cd83d7e671
"
,
"Token721_Transfer"
:
"0x
3db2fe248be93b87b9691a73db47214ad8e9f27
2"
,
"Token721_Transfer"
:
"0x
2b194a92bab5bb165dd2650850792161cfb70aa
2"
,
"Two_Coin_Transfer"
:
"0x
053d3e1d5037f81b3988e2b82eb34bfd2e823e5d
"
,
"Two_Coin_Transfer"
:
"0x
987f8710d129b43a0f9557cafd53293acd5366f3
"
,
"Two_Token20_Transfer"
:
"0x
cb1dc9dd3968388191fd40f22543ad1d31a1b273
"
,
"Two_Token20_Transfer"
:
"0x
4bb22faf5d382108d2a2fd4ec4b579e94c37c01f
"
,
"Two_Token721_Transfer"
:
"0x
70b1bc30bd318e03d2f46bdaaed861749f6849d2
"
"Two_Token721_Transfer"
:
"0x
5a058381c912d985d179ace46502ca8bfbe926cc
"
},
},
{
{
"Coin_Transfer"
:
"0x70
bf5a5755afaf564bb72eb890c5c45c37f70e39
"
,
"Coin_Transfer"
:
"0x70
9298ebcdc0411b09107312a9d12e6aee05766b
"
,
"ERC20"
:
"0x
b4a635e9f02639210d4914aed557f9ac488ee11c
"
,
"ERC20"
:
"0x
07352d5a526688b5cb83581c3046618934e6031e
"
,
"ERC721"
:
"0x
618A1f37C911dAaCbfEa6e98Cf46252E35228120
"
,
"ERC721"
:
"0x
f6f2986a7aea23912cdc566711005d9ecf064f08
"
,
"One_Coin_Transfer"
:
"0x
82d7057c6615d3700a72a8e8bc47a6efd2013dbf
"
,
"One_Coin_Transfer"
:
"0x
44860ac77eecd2bf02dd88887e29a658eb9681d3
"
,
"One_Read_Write"
:
"0x
8b0d5cd7211b54b4362d90cbe3410459ffdf2da7
"
,
"One_Read_Write"
:
"0x
bfda289940be1a3bc748622da0817c1f8ab60311
"
,
"One_Token20_Transfer"
:
"0x
c56b670655a3689e17c7f9471f53da7486232597
"
,
"One_Token20_Transfer"
:
"0x
b2ed2298cc9cc14775f324c03ce72c975a41e65f
"
,
"One_Token721_Transfer"
:
"0x
3c2a1200cb7c115c178865c0f2ceecee5b3600f9
"
,
"One_Token721_Transfer"
:
"0x
039f4860353941006f5b9b2fe1967a8238dc8585
"
,
"Read_Chain"
:
"0x
b4950877d2f93e5740d96ae446520dd6b07a2907
"
,
"Read_Chain"
:
"0x
53964578cb52c4a2a181864ebe9d7355a5f4f83f
"
,
"Read_Write"
:
"0x
47506a0c311c78218793cb10c6ae71871781b872
"
,
"Read_Write"
:
"0x
5458069f0d6b6bddab805d0ccb2001caae8b4f79
"
,
"Token20_Transfer"
:
"0x
ec57db1ae50998ab8d7bea8f1009107da55953a2
"
,
"Token20_Transfer"
:
"0x
5cdfcc9d583e694cb09220ae56e5d3416e64be48
"
,
"Token721_Transfer"
:
"0x
42cadad1c4a6282f9bb1ce2ec7ce0256f09ae91f
"
,
"Token721_Transfer"
:
"0x
70f5602e95818ac577a056b712b888a16e7714aa
"
,
"Two_Coin_Transfer"
:
"0x
ff535d3047b7587470e839209e36e2c4bedbf607
"
,
"Two_Coin_Transfer"
:
"0x
74a2d7fa4bc864e2366fd0fe95cde14266bc584c
"
,
"Two_Token20_Transfer"
:
"0x
6898cdde8559e0fe2d7d68077bab4db0122b7d15
"
,
"Two_Token20_Transfer"
:
"0x
d855b2a515efd89d201067434afbd5facdd261fd
"
,
"Two_Token721_Transfer"
:
"0x
17f2db82dc83d548bdc064f56b78e24862f75fe4
"
"Two_Token721_Transfer"
:
"0x
bf8a4ad0213685c3a13f2bceea01687e330298ca
"
},
},
{
{
"Coin_Transfer"
:
"0x
6247716c5134a42d7d0feb272d49efc7d168dc47
"
,
"Coin_Transfer"
:
"0x
0d67a63bc5110e70029c9bf293129695758358a6
"
,
"ERC20"
:
"0x
ad3a37fe702f415b9b640b9d564f570924873d82
"
,
"ERC20"
:
"0x
bc43ceea0e97cc54cd402372c86a07ee7ee541bc
"
,
"ERC721"
:
"0x
eac8C1F9918A4337C038d469e157C7Ff579767bA
"
,
"ERC721"
:
"0x
404425c0144697aa45df1155ae4b020f5e5b46f2
"
,
"One_Coin_Transfer"
:
"0x
aa9e2254aba0285f861377665bfe854b863de4f8
"
,
"One_Coin_Transfer"
:
"0x
16a9636bbf398aae0ec30439bd1694747ae482ed
"
,
"One_Read_Write"
:
"0x
fabc9b9f6f027947c09c80e201610b3d0d604344
"
,
"One_Read_Write"
:
"0x
767c103c8d478df44c751b9c75696b6ab02dab09
"
,
"One_Token20_Transfer"
:
"0x
ccc76e49ed363b36b87bbe15aacfcb5bb844fb67
"
,
"One_Token20_Transfer"
:
"0x
ebbb2b870e7033c1118f5ce29434fb516cd8407f
"
,
"One_Token721_Transfer"
:
"0x
d465066492ec1c5a843f985d145d92c963caf6da
"
,
"One_Token721_Transfer"
:
"0x
fd7948b8465c5de9e8413f4949dc3c8d6fe0ccd1
"
,
"Read_Chain"
:
"0x
d014f0a02dd46cd26b8b3f7f6e82e3f5cbbfbe8b
"
,
"Read_Chain"
:
"0x
72b4fa81aa7a47013b4ab1a71fa20c9625e75c44
"
,
"Read_Write"
:
"0x
ed4e8e4c5a6b4421e68f15a6227b65a540a32e88
"
,
"Read_Write"
:
"0x
b77c2ec6b65a1a729ffc43f96268abc2aa82073a
"
,
"Token20_Transfer"
:
"0x
99172a17c545bc036ea3f385b530ad04838a1660
"
,
"Token20_Transfer"
:
"0x
c34da4a383e8e7ca5f172b965df1ab89aa1d6acb
"
,
"Token721_Transfer"
:
"0x
1aa08646ea9729cb7385145932f011459c8bc267
"
,
"Token721_Transfer"
:
"0x
a674fba5ce84f4a8cfbfaf5f1c3ba716bcc55732
"
,
"Two_Coin_Transfer"
:
"0x0
8a45eccdac3fd0e3238c519586ef9a27e1df883
"
,
"Two_Coin_Transfer"
:
"0x0
7c8a4a3db3b0185b8d0592b983910b3609ebe31
"
,
"Two_Token20_Transfer"
:
"0x
33250c6a91bb302ffba0304c2c39c8801e3f8913
"
,
"Two_Token20_Transfer"
:
"0x
d5d25d34e0b0e3978e630f03b6ac9c45b2aae2a4
"
,
"Two_Token721_Transfer"
:
"0x
8ed13c75bf4e72f963812253ab27866fff70b218
"
"Two_Token721_Transfer"
:
"0x
e6fe4aa48aa2f9d8187fa13f01874adfa85d15d2
"
},
},
{
{
"Coin_Transfer"
:
"0x
9347d3194439fb116370cff969593d79cfe2d433
"
,
"Coin_Transfer"
:
"0x
b684b37ec8f35115f0a624c013425b16aabb8c5c
"
,
"ERC20"
:
"0x
83a60a11afe707aa3aeec8eebc1dbe9ed94aea2c
"
,
"ERC20"
:
"0x
f6208cd9310f19ab25136246aaea1f5958d5a2d7
"
,
"ERC721"
:
"0x9
8B12C56b562441e1c6fa467D376B04ED96Ae06D
"
,
"ERC721"
:
"0x9
3e14ec7cbabc88146ba0bff0c600ee5aec4f382
"
,
"One_Coin_Transfer"
:
"0x
b12907ddd95de81c1af911105841657ea1c9f75a
"
,
"One_Coin_Transfer"
:
"0x
4fe6ede7a8930acfb54b8d033ef2fe82ee9c03af
"
,
"One_Read_Write"
:
"0x
006e7a861d302f5216fcced2a83ddee40d88b9d4
"
,
"One_Read_Write"
:
"0x
9e4e894dee5c3d6b8902207273a4fc07a1c74799
"
,
"One_Token20_Transfer"
:
"0x
48c7047b3a16c4119dc7708e4f67894ecf225fd3
"
,
"One_Token20_Transfer"
:
"0x
ac79e98d823d10c9d79040bcd80d56406d136df4
"
,
"One_Token721_Transfer"
:
"0x
fe1eecab184b90abae0387b0f160130c00c6851c
"
,
"One_Token721_Transfer"
:
"0x
407d6ab88251172f2b76ed96c2aebde128af38ef
"
,
"Read_Chain"
:
"0x
bd29c1fabd4d8be577918b944e559d2ebe170154
"
,
"Read_Chain"
:
"0x
aa76a90038f30d0fa29a72e8c33a3211bcc788d8
"
,
"Read_Write"
:
"0x
b29d262862c3b3bc3dc04d9c39cbb7d283ab73d8
"
,
"Read_Write"
:
"0x
85fa032739d560708c705d350fb4c88933032d6a
"
,
"Token20_Transfer"
:
"0x
9f1974b3a9fd0612fd040245b79fea3e1d7f06f
a"
,
"Token20_Transfer"
:
"0x
e1730a0d52a814f7b5a81342127240394af990b
a"
,
"Token721_Transfer"
:
"0x
ebcea2e5d56e83203ebfab8fa7d625bac57191a
9"
,
"Token721_Transfer"
:
"0x
ff9b44554371dda78344134fc3a13c50be5bd47
9"
,
"Two_Coin_Transfer"
:
"0x
60b1dc15af5b9656ae6c96f3d016d71e13cb97f2
"
,
"Two_Coin_Transfer"
:
"0x
b9905ebe85fdaa20220e52295ebc3a4b5f0dc4a4
"
,
"Two_Token20_Transfer"
:
"0x
9539a22a9dcb0d3e3f31d42bcfcae147084c2b1f
"
,
"Two_Token20_Transfer"
:
"0x
bd2f615d51250f0ce9e3120d1b2c0f35dd125395
"
,
"Two_Token721_Transfer"
:
"0x
bc337175f6a1f35fd1fb01570a2b802d5c20c8c6
"
"Two_Token721_Transfer"
:
"0x
0e4141a3eafb005002db9193a6f00f8c1750d723
"
},
},
{
{
"Coin_Transfer"
:
"0x
39ee6b50d409999d3aa1c7a46b512f8f8c70fa54
"
,
"Coin_Transfer"
:
"0x
f78a64e2032869fe92e781ea115beb015e88b52e
"
,
"ERC20"
:
"0x
91f2c122c8060258605c287cea0bdda056b7b25d
"
,
"ERC20"
:
"0x
14f2567347beb8ed0fec95397940f17ef7a94541
"
,
"ERC721"
:
"0x
b3106447c16e2fEe16693AD6175AC7e6299411aD
"
,
"ERC721"
:
"0x
658ad763a6273ed1affe98d020254650d2c9930e
"
,
"One_Coin_Transfer"
:
"0x
9d0614f575e69f1f44fd9391ab7c94536edba67a
"
,
"One_Coin_Transfer"
:
"0x
1a3c8575f7eeed4188d3401a7cb6c2e712706b4e
"
,
"One_Read_Write"
:
"0x
bdbbbe7bb874ae466e39a994bd079eb1596efb4e
"
,
"One_Read_Write"
:
"0x
8ac0189d77d9f272a4e5767393d820ccc4eaf6d0
"
,
"One_Token20_Transfer"
:
"0x
2903adfeb04931aa46e5c214f7125a35c2874a4c
"
,
"One_Token20_Transfer"
:
"0x
d2e15ac631afd04338ea47db456c4e4134d1e4b5
"
,
"One_Token721_Transfer"
:
"0x
f3f86fc99fe8173be298440edbdc40a629e1bcf
8"
,
"One_Token721_Transfer"
:
"0x
0e1db23f89fe9dfccbd1f00ced9eec0439bb675
8"
,
"Read_Chain"
:
"0x
37c619274d0177c46bad99e681cb435414c1d810
"
,
"Read_Chain"
:
"0x
2e54edf7356beeb5b47a3434e645b6af6f9d09ea
"
,
"Read_Write"
:
"0x
67d3d3d96fe2ea497e1ea6041bb99a09f1957b76
"
,
"Read_Write"
:
"0x
5493ce8fed7a6aeb2e62df2510c460a41b9907b5
"
,
"Token20_Transfer"
:
"0x
1360e4d1f88e69126b651306f2344c8652beaf00
"
,
"Token20_Transfer"
:
"0x
2acc321f898bcf976070f3dc6629bf3d1479cc37
"
,
"Token721_Transfer"
:
"0x
8661f43334c719e88893bc42c65d185a3e20f737
"
,
"Token721_Transfer"
:
"0x
abd447e855304b0d0ed59aa48b0903925e9b018d
"
,
"Two_Coin_Transfer"
:
"0x
999c32d673a1fbbe3b0ff2a345b4faf9e3a3cd05
"
,
"Two_Coin_Transfer"
:
"0x
484e004c79779f52f4088c2d095d3619420c2133
"
,
"Two_Token20_Transfer"
:
"0x
9f33a6f7e682ccae056e74b51588e81fb3189c39
"
,
"Two_Token20_Transfer"
:
"0x
3924bbc15efe484dd127fce960e283a774238cfa
"
,
"Two_Token721_Transfer"
:
"0x
27b79866d089875ac50b7021ec41eed83c0358dd
"
"Two_Token721_Transfer"
:
"0x
636248bf39fbbd7a4e6a2d4bbe9f57cd6992ae60
"
}
}
]
]
\ No newline at end of file
main.go
View file @
c1ac0912
...
@@ -25,7 +25,7 @@ func main() {
...
@@ -25,7 +25,7 @@ func main() {
// 转账交易case
// 转账交易case
if
len
(
tool
.
Cfg
.
TransferType
)
!=
0
{
if
len
(
tool
.
Cfg
.
TransferType
)
!=
0
{
accIndex
:=
0
accIndex
:=
12
nonceMap
:=
util
.
GetAccountNonce
(
tool
.
Cfg
.
RpcNode
)
nonceMap
:=
util
.
GetAccountNonce
(
tool
.
Cfg
.
RpcNode
)
arrFormat
:=
tool
.
ParseAccountConfig
(
"./config/account.json"
)
arrFormat
:=
tool
.
ParseAccountConfig
(
"./config/account.json"
)
parseContractConfig
:=
tool
.
ParseContractConfig
(
"./config/contractConfig.json"
)
parseContractConfig
:=
tool
.
ParseContractConfig
(
"./config/contractConfig.json"
)
...
...
operator/noRelatedCase.go
View file @
c1ac0912
...
@@ -34,7 +34,7 @@ func NrCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, accountNonceMap
...
@@ -34,7 +34,7 @@ func NrCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, accountNonceMap
for
i
:=
0
;
i
<
txCount
;
i
++
{
for
i
:=
0
;
i
<
txCount
;
i
++
{
toAddr
:=
testAccArr
.
ToAddr
[
i
]
toAddr
:=
testAccArr
.
ToAddr
[
i
]
fromAddr
:=
testAccArr
.
FromAddr
[
i
]
fromAddr
:=
testAccArr
.
FromAddr
[
i
]
beforeBal
:=
util
.
GetAccBal
(
client
,
testAccArr
.
FromAddr
[
i
]
)
beforeBal
:=
util
.
GetAccBal
(
client
,
fromAddr
)
if
beforeBal
==
nil
{
if
beforeBal
==
nil
{
return
nil
,
nil
return
nil
,
nil
}
}
...
@@ -55,9 +55,11 @@ func NrCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, accountNonceMap
...
@@ -55,9 +55,11 @@ func NrCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, accountNonceMap
fromAddr
:=
testAccArr
.
FromAddr
[
i
]
fromAddr
:=
testAccArr
.
FromAddr
[
i
]
sendAfterBal
:=
util
.
GetAccBal
(
client
,
fromAddr
)
sendAfterBal
:=
util
.
GetAccBal
(
client
,
fromAddr
)
if
sendAfterBal
==
nil
{
if
sendAfterBal
==
nil
{
log
.
Error
(
"Verify error:"
,
"get sendAfterBal err"
)
return
false
return
false
}
}
if
sendBeforeBal
[
fromAddr
]
.
Sub
(
sendBeforeBal
[
fromAddr
],
sendAfterBal
)
.
Cmp
(
amount
)
==
1
{
subBal
:=
sendBeforeBal
[
fromAddr
]
.
Sub
(
sendBeforeBal
[
fromAddr
],
sendAfterBal
)
if
subBal
.
Cmp
(
amount
)
!=
1
{
return
false
return
false
}
}
}
}
...
@@ -91,8 +93,8 @@ func NrContractCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, contract
...
@@ -91,8 +93,8 @@ func NrContractCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, contract
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
i
])
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
i
])
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
NoSend
=
true
auth
.
NoSend
=
true
auth
.
GasLimit
=
10000000
00000
auth
.
GasLimit
=
5
00000
auth
.
GasPrice
=
big
.
NewInt
(
1000000000
0
)
auth
.
GasPrice
=
big
.
NewInt
(
1000000000
)
tx
,
err
:=
contractCoinTrade
.
TransferSignTx
(
auth
,
coinTransfer
)
tx
,
err
:=
contractCoinTrade
.
TransferSignTx
(
auth
,
coinTransfer
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
nil
return
nil
,
nil
...
@@ -138,7 +140,7 @@ func NrContractOneCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, contr
...
@@ -138,7 +140,7 @@ func NrContractOneCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, contr
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
i
])
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
i
])
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
NoSend
=
true
auth
.
NoSend
=
true
auth
.
GasLimit
=
10000000
00000
auth
.
GasLimit
=
5
00000
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
tx
,
err
:=
contractCoinOneTrade
.
OneTransferSignTx
(
auth
,
oneChainCoinTransfer
)
tx
,
err
:=
contractCoinOneTrade
.
OneTransferSignTx
(
auth
,
oneChainCoinTransfer
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -256,11 +258,12 @@ func NrOneWRTranCase(testAccArr *tool.AccArrFormat, contractMap map[string]commo
...
@@ -256,11 +258,12 @@ func NrOneWRTranCase(testAccArr *tool.AccArrFormat, contractMap map[string]commo
// NrErc20TranCase 单层-Erc20转账
// NrErc20TranCase 单层-Erc20转账
func
NrErc20TranCase
(
txCount
int
,
testAccArr
*
tool
.
AccArrFormat
,
contractMap
map
[
string
]
common
.
Address
,
accountNonceMap
*
sync
.
Map
,
resTxArr
[]
*
types
.
Transaction
,
client
*
ethclient
.
Client
)
([]
*
types
.
Transaction
,
func
()
bool
)
{
func
NrErc20TranCase
(
txCount
int
,
testAccArr
*
tool
.
AccArrFormat
,
contractMap
map
[
string
]
common
.
Address
,
accountNonceMap
*
sync
.
Map
,
resTxArr
[]
*
types
.
Transaction
,
client
*
ethclient
.
Client
)
([]
*
types
.
Transaction
,
func
()
bool
)
{
erc20Addr
:=
contractMap
[
constant
.
ERC20
]
erc20Trade
:=
&
contractErc20
.
Erc20Trade
{
erc20Trade
:=
&
contractErc20
.
Erc20Trade
{
Erc20Addr
:
contractMap
[
constant
.
ERC20
]
,
Erc20Addr
:
erc20Addr
,
Amount
:
big
.
NewInt
(
10000000000000000
),
Amount
:
big
.
NewInt
(
10000000000000000
),
}
}
erc20Contract
,
err
:=
erc20
.
NewERC20
(
contractMap
[
constant
.
ERC20
]
,
client
)
erc20Contract
,
err
:=
erc20
.
NewERC20
(
erc20Addr
,
client
)
if
err
!=
nil
{
if
err
!=
nil
{
log
.
Error
(
"NewTokenTransfer error:"
,
err
.
Error
())
log
.
Error
(
"NewTokenTransfer error:"
,
err
.
Error
())
return
nil
,
nil
return
nil
,
nil
...
@@ -289,6 +292,7 @@ func NrErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap map
...
@@ -289,6 +292,7 @@ func NrErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap map
return
nil
,
nil
return
nil
,
nil
}
}
beforeToAddrErc20Bal
[
testAccArr
.
ToAddr
[
i
]]
=
toBal
beforeToAddrErc20Bal
[
testAccArr
.
ToAddr
[
i
]]
=
toBal
auth
.
GasLimit
=
500000
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
i
])
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
i
])
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
...
@@ -313,7 +317,7 @@ func NrErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap map
...
@@ -313,7 +317,7 @@ func NrErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap map
log
.
Error
(
"Get erc20 balanceOf error:"
,
err
.
Error
())
log
.
Error
(
"Get erc20 balanceOf error:"
,
err
.
Error
())
return
false
return
false
}
}
if
afterToken20Bal
.
Sub
(
afterToken20Bal
,
beforeToken20Bal
)
.
Cmp
(
erc20Trade
.
Amount
.
Mul
(
erc20Trade
.
Amount
,
big
.
NewInt
(
int64
(
txCount
))))
!=
0
{
if
beforeToken20Bal
.
Sub
(
beforeToken20Bal
,
afterToken20Bal
)
.
Cmp
(
big
.
NewInt
(
1
)
.
Mul
(
big
.
NewInt
(
10000000000000000
)
,
big
.
NewInt
(
int64
(
txCount
))))
!=
0
{
return
false
return
false
}
}
for
i
:=
0
;
i
<
txCount
;
i
++
{
for
i
:=
0
;
i
<
txCount
;
i
++
{
...
@@ -322,7 +326,7 @@ func NrErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap map
...
@@ -322,7 +326,7 @@ func NrErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap map
log
.
Error
(
"Get erc20 balanceOf error:"
,
err
.
Error
())
log
.
Error
(
"Get erc20 balanceOf error:"
,
err
.
Error
())
return
false
return
false
}
}
if
of
.
Sub
(
of
,
beforeToAddrErc20Bal
[
testAccArr
.
ToAddr
[
i
]])
.
Cmp
(
erc20Trade
.
Amount
)
!=
0
{
if
of
.
Sub
(
of
,
beforeToAddrErc20Bal
[
testAccArr
.
ToAddr
[
i
]])
.
Cmp
(
big
.
NewInt
(
1
)
.
Mul
(
big
.
NewInt
(
10000000000000000
),
big
.
NewInt
(
2
))
)
!=
0
{
return
false
return
false
}
}
}
}
...
@@ -350,6 +354,7 @@ func NrOneErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap
...
@@ -350,6 +354,7 @@ func NrOneErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap
}
}
beforeToAddrErc20Bal
:=
make
(
map
[
common
.
Address
]
*
big
.
Int
,
0
)
beforeToAddrErc20Bal
:=
make
(
map
[
common
.
Address
]
*
big
.
Int
,
0
)
beforeToken20Bal
,
err
:=
erc20Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
contractMap
[
constant
.
TOKEN20_TRANSFER
])
beforeToken20Bal
,
err
:=
erc20Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
contractMap
[
constant
.
TOKEN20_TRANSFER
])
log
.
Info
(
"beforeToken20Bal:"
,
beforeToken20Bal
.
String
())
if
err
!=
nil
{
if
err
!=
nil
{
log
.
Error
(
"Get token20ContractBal erc20 balanceOf error:"
,
err
.
Error
())
log
.
Error
(
"Get token20ContractBal erc20 balanceOf error:"
,
err
.
Error
())
return
nil
,
nil
return
nil
,
nil
...
@@ -369,7 +374,7 @@ func NrOneErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap
...
@@ -369,7 +374,7 @@ func NrOneErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
i
])
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
i
])
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
NoSend
=
true
auth
.
NoSend
=
true
auth
.
GasLimit
=
10000000
00000
auth
.
GasLimit
=
5
00000
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
tx
,
err
:=
oneErc20Trade
.
Erc20OneTransferTx
(
auth
,
tokenTransfer
)
tx
,
err
:=
oneErc20Trade
.
Erc20OneTransferTx
(
auth
,
tokenTransfer
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -378,13 +383,10 @@ func NrOneErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap
...
@@ -378,13 +383,10 @@ func NrOneErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap
log
.
Info
(
"Erc20OneTransferTx tx:"
,
tx
.
Hash
()
.
Hex
())
log
.
Info
(
"Erc20OneTransferTx tx:"
,
tx
.
Hash
()
.
Hex
())
resTxArr
=
append
(
resTxArr
,
tx
)
resTxArr
=
append
(
resTxArr
,
tx
)
}
}
afterToken20Bal
,
err
:=
erc20Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
contractMap
[
constant
.
TOKEN20_TRANSFER
])
if
err
!=
nil
{
log
.
Error
(
"Get token20ContractBal erc20 balanceOf error:"
,
err
.
Error
())
return
nil
,
nil
}
verify
:=
func
()
bool
{
verify
:=
func
()
bool
{
if
beforeToken20Bal
.
Sub
(
beforeToken20Bal
,
afterToken20Bal
)
.
Cmp
(
amount
.
Mul
(
amount
,
big
.
NewInt
(
int64
(
txCount
))))
!=
0
{
afterToken20Bal
,
err
:=
erc20Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
contractMap
[
constant
.
TOKEN20_TRANSFER
])
if
err
!=
nil
{
log
.
Error
(
"Get token20ContractBal erc20 balanceOf error:"
,
err
.
Error
())
return
false
return
false
}
}
for
i
:=
0
;
i
<
txCount
;
i
++
{
for
i
:=
0
;
i
<
txCount
;
i
++
{
...
@@ -397,13 +399,16 @@ func NrOneErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap
...
@@ -397,13 +399,16 @@ func NrOneErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap
return
false
return
false
}
}
}
}
if
beforeToken20Bal
.
Sub
(
beforeToken20Bal
,
afterToken20Bal
)
.
Cmp
(
amount
.
Mul
(
amount
,
big
.
NewInt
(
int64
(
txCount
))))
!=
0
{
return
false
}
return
true
return
true
}
}
return
resTxArr
,
verify
return
resTxArr
,
verify
}
}
// NrErc721TranCase 单层-Erc721转账
// NrErc721TranCase 单层-Erc721转账
func
NrErc721TranCase
(
txCount
int
,
testAccArr
*
tool
.
AccArrFormat
,
contractMap
map
[
string
]
common
.
Address
,
accountNonceMap
*
sync
.
Map
,
resTxArr
[]
*
types
.
Transaction
,
client
*
ethclient
.
Client
)
([]
*
types
.
Transaction
,
func
()
bool
)
{
func
NrErc721TranCase
(
startIndex
int
,
txCount
int
,
testAccArr
*
tool
.
AccArrFormat
,
contractMap
map
[
string
]
common
.
Address
,
accountNonceMap
*
sync
.
Map
,
resTxArr
[]
*
types
.
Transaction
,
client
*
ethclient
.
Client
)
([]
*
types
.
Transaction
,
func
()
bool
)
{
erc721Trade
:=
&
contractErc721
.
Erc721Trade
{
erc721Trade
:=
&
contractErc721
.
Erc721Trade
{
Erc721Addr
:
contractMap
[
constant
.
ERC721
],
Erc721Addr
:
contractMap
[
constant
.
ERC721
],
}
}
...
@@ -437,11 +442,11 @@ func NrErc721TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap ma
...
@@ -437,11 +442,11 @@ func NrErc721TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap ma
beforeToErc721Bal
[
testAccArr
.
ToAddr
[
i
]]
=
toErc721Bal
beforeToErc721Bal
[
testAccArr
.
ToAddr
[
i
]]
=
toErc721Bal
beforeFromErc721Bal
[
testAccArr
.
FromAddr
[
i
]]
=
fromErc721Bal
beforeFromErc721Bal
[
testAccArr
.
FromAddr
[
i
]]
=
fromErc721Bal
erc721Trade
.
FromAddr
=
testAccArr
.
FromAddr
[
i
]
erc721Trade
.
FromAddr
=
testAccArr
.
FromAddr
[
i
]
// todo 需要初始化时知道sender对应的tokenId
erc721Trade
.
TokenId
=
big
.
NewInt
(
int64
(
startIndex
))
erc721Trade
.
TokenId
=
big
.
NewInt
(
int64
(
i
))
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
i
])
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
i
])
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
NoSend
=
true
auth
.
NoSend
=
true
auth
.
GasLimit
=
500000
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
tx
,
err
:=
erc721Trade
.
Erc721TransferFromSignTx
(
auth
,
tokenTransfer
)
tx
,
err
:=
erc721Trade
.
Erc721TransferFromSignTx
(
auth
,
tokenTransfer
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -450,6 +455,7 @@ func NrErc721TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap ma
...
@@ -450,6 +455,7 @@ func NrErc721TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap ma
}
}
log
.
Info
(
"Erc721TransferFromSignTx tx:"
,
tx
.
Hash
()
.
Hex
())
log
.
Info
(
"Erc721TransferFromSignTx tx:"
,
tx
.
Hash
()
.
Hex
())
resTxArr
=
append
(
resTxArr
,
tx
)
resTxArr
=
append
(
resTxArr
,
tx
)
startIndex
++
}
}
verify
:=
func
()
bool
{
verify
:=
func
()
bool
{
for
i
:=
0
;
i
<
txCount
;
i
++
{
for
i
:=
0
;
i
<
txCount
;
i
++
{
...
@@ -458,7 +464,7 @@ func NrErc721TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap ma
...
@@ -458,7 +464,7 @@ func NrErc721TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap ma
log
.
Error
(
"Get erc721 bal error:"
,
err
.
Error
())
log
.
Error
(
"Get erc721 bal error:"
,
err
.
Error
())
return
false
return
false
}
}
if
beforeToErc721Bal
[
testAccArr
.
ToAddr
[
i
]]
.
Sub
(
beforeToErc721Bal
[
testAccArr
.
ToAddr
[
i
]],
toErc721Bal
)
.
Cmp
(
big
.
NewInt
(
1
))
!=
0
{
if
toErc721Bal
.
Sub
(
toErc721Bal
,
beforeToErc721Bal
[
testAccArr
.
ToAddr
[
i
]]
)
.
Cmp
(
big
.
NewInt
(
1
))
!=
0
{
return
false
return
false
}
}
fromErc721Bal
,
err
:=
erc721Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
testAccArr
.
FromAddr
[
i
])
fromErc721Bal
,
err
:=
erc721Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
testAccArr
.
FromAddr
[
i
])
...
@@ -466,7 +472,7 @@ func NrErc721TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap ma
...
@@ -466,7 +472,7 @@ func NrErc721TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap ma
log
.
Error
(
"Get erc721 bal error:"
,
err
.
Error
())
log
.
Error
(
"Get erc721 bal error:"
,
err
.
Error
())
return
false
return
false
}
}
if
beforeFromErc721Bal
[
testAccArr
.
FromAddr
[
i
]]
.
Sub
(
before
To
Erc721Bal
[
testAccArr
.
FromAddr
[
i
]],
fromErc721Bal
)
.
Cmp
(
big
.
NewInt
(
1
))
!=
0
{
if
beforeFromErc721Bal
[
testAccArr
.
FromAddr
[
i
]]
.
Sub
(
before
From
Erc721Bal
[
testAccArr
.
FromAddr
[
i
]],
fromErc721Bal
)
.
Cmp
(
big
.
NewInt
(
1
))
!=
0
{
return
false
return
false
}
}
}
}
...
@@ -476,7 +482,7 @@ func NrErc721TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap ma
...
@@ -476,7 +482,7 @@ func NrErc721TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap ma
}
}
// NrOneErc721TranCase 多层-Erc721转账
// NrOneErc721TranCase 多层-Erc721转账
func
NrOneErc721TranCase
(
txCount
int
,
testAccArr
*
tool
.
AccArrFormat
,
contractMap
map
[
string
]
common
.
Address
,
accountNonceMap
*
sync
.
Map
,
resTxArr
[]
*
types
.
Transaction
,
client
*
ethclient
.
Client
)
([]
*
types
.
Transaction
,
func
()
bool
)
{
func
NrOneErc721TranCase
(
startIndex
int
,
txCount
int
,
testAccArr
*
tool
.
AccArrFormat
,
contractMap
map
[
string
]
common
.
Address
,
accountNonceMap
*
sync
.
Map
,
resTxArr
[]
*
types
.
Transaction
,
client
*
ethclient
.
Client
)
([]
*
types
.
Transaction
,
func
()
bool
)
{
oneErc721Trade
:=
&
contractErc721
.
OneErc721Trade
{
oneErc721Trade
:=
&
contractErc721
.
OneErc721Trade
{
NftTokenTransferAddr
:
contractMap
[
constant
.
TOKEN721_TRANSFER
],
NftTokenTransferAddr
:
contractMap
[
constant
.
TOKEN721_TRANSFER
],
Erc721Addr
:
contractMap
[
constant
.
ERC721
],
Erc721Addr
:
contractMap
[
constant
.
ERC721
],
...
@@ -510,10 +516,11 @@ func NrOneErc721TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap
...
@@ -510,10 +516,11 @@ func NrOneErc721TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap
}
}
beforeToErc721Bal
[
testAccArr
.
ToAddr
[
i
]]
=
toErc721Bal
beforeToErc721Bal
[
testAccArr
.
ToAddr
[
i
]]
=
toErc721Bal
beforeFromErc721Bal
[
testAccArr
.
FromAddr
[
i
]]
=
fromErc721Bal
beforeFromErc721Bal
[
testAccArr
.
FromAddr
[
i
]]
=
fromErc721Bal
oneErc721Trade
.
TokenId
=
big
.
NewInt
(
int64
(
i
))
oneErc721Trade
.
TokenId
=
big
.
NewInt
(
int64
(
startIndex
))
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
i
])
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
i
])
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
NoSend
=
true
auth
.
NoSend
=
true
auth
.
GasLimit
=
500000
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
tx
,
err
:=
oneErc721Trade
.
Erc721OneTransferFromSignTx
(
auth
,
tokenTransfer
)
tx
,
err
:=
oneErc721Trade
.
Erc721OneTransferFromSignTx
(
auth
,
tokenTransfer
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -530,7 +537,7 @@ func NrOneErc721TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap
...
@@ -530,7 +537,7 @@ func NrOneErc721TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap
log
.
Error
(
"Get erc721 bal error:"
,
err
.
Error
())
log
.
Error
(
"Get erc721 bal error:"
,
err
.
Error
())
return
false
return
false
}
}
if
beforeToErc721Bal
[
testAccArr
.
ToAddr
[
i
]]
.
Sub
(
beforeToErc721Bal
[
testAccArr
.
ToAddr
[
i
]],
toErc721Bal
)
.
Cmp
(
big
.
NewInt
(
1
))
!=
0
{
if
toErc721Bal
.
Sub
(
toErc721Bal
,
beforeToErc721Bal
[
testAccArr
.
ToAddr
[
i
]]
)
.
Cmp
(
big
.
NewInt
(
1
))
!=
0
{
return
false
return
false
}
}
fromErc721Bal
,
err
:=
erc721Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
testAccArr
.
FromAddr
[
i
])
fromErc721Bal
,
err
:=
erc721Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
testAccArr
.
FromAddr
[
i
])
...
@@ -538,7 +545,7 @@ func NrOneErc721TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap
...
@@ -538,7 +545,7 @@ func NrOneErc721TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap
log
.
Error
(
"Get erc721 bal error:"
,
err
.
Error
())
log
.
Error
(
"Get erc721 bal error:"
,
err
.
Error
())
return
false
return
false
}
}
if
beforeFromErc721Bal
[
testAccArr
.
FromAddr
[
i
]]
.
Sub
(
before
To
Erc721Bal
[
testAccArr
.
FromAddr
[
i
]],
fromErc721Bal
)
.
Cmp
(
big
.
NewInt
(
1
))
!=
0
{
if
beforeFromErc721Bal
[
testAccArr
.
FromAddr
[
i
]]
.
Sub
(
before
From
Erc721Bal
[
testAccArr
.
FromAddr
[
i
]],
fromErc721Bal
)
.
Cmp
(
big
.
NewInt
(
1
))
!=
0
{
return
false
return
false
}
}
}
}
...
...
operator/operator.go
View file @
c1ac0912
...
@@ -73,8 +73,8 @@ func DeployContract(client *ethclient.Client, txRes []*types.Transaction) []*typ
...
@@ -73,8 +73,8 @@ func DeployContract(client *ethclient.Client, txRes []*types.Transaction) []*typ
}
}
auth
.
NoSend
=
true
auth
.
NoSend
=
true
auth
.
Value
=
big
.
NewInt
(
0
)
auth
.
Value
=
big
.
NewInt
(
0
)
auth
.
GasLimit
=
uint64
(
5000
000000
)
auth
.
GasLimit
=
uint64
(
4
000000
)
auth
.
GasPrice
=
big
.
NewInt
(
5000
000000
)
auth
.
GasPrice
=
big
.
NewInt
(
4
000000
)
nonce
,
err
:=
client
.
NonceAt
(
context
.
Background
(),
tool
.
Cfg
.
DeployAddr
,
nil
)
nonce
,
err
:=
client
.
NonceAt
(
context
.
Background
(),
tool
.
Cfg
.
DeployAddr
,
nil
)
if
err
!=
nil
{
if
err
!=
nil
{
log
.
Error
(
"DeployTokenTransfer func get acc nonce err:"
,
err
)
log
.
Error
(
"DeployTokenTransfer func get acc nonce err:"
,
err
)
...
@@ -355,12 +355,12 @@ func GetTranFunc(caseType int, startIndex int, txCount int, nonceMap *sync.Map,
...
@@ -355,12 +355,12 @@ func GetTranFunc(caseType int, startIndex int, txCount int, nonceMap *sync.Map,
// 不相关-单层-Erc721转账
// 不相关-单层-Erc721转账
case
8
:
case
8
:
{
{
return
NrErc721TranCase
(
txCount
,
arr
,
contractArr
[
0
],
nonceMap
,
txArr
,
client
)
return
NrErc721TranCase
(
startIndex
,
txCount
,
arr
,
contractArr
[
0
],
nonceMap
,
txArr
,
client
)
}
}
// 不相关-多层-Erc721转账
// 不相关-多层-Erc721转账
case
9
:
case
9
:
{
{
return
NrOneErc721TranCase
(
txCount
,
arr
,
contractArr
[
0
],
nonceMap
,
txArr
,
client
)
return
NrOneErc721TranCase
(
startIndex
,
txCount
,
arr
,
contractArr
[
0
],
nonceMap
,
txArr
,
client
)
}
}
// 部分相关-普通转账-接受者相关
// 部分相关-普通转账-接受者相关
case
10
:
case
10
:
...
...
operator/partlyRelatedCase.go
View file @
c1ac0912
...
@@ -56,24 +56,23 @@ func PrReCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, accountNonceMa
...
@@ -56,24 +56,23 @@ func PrReCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, accountNonceMa
resTxArr
=
append
(
resTxArr
,
tx
)
resTxArr
=
append
(
resTxArr
,
tx
)
}
}
verify
:=
func
()
bool
{
verify
:=
func
()
bool
{
reToAfterBal
:=
util
.
GetAccBal
(
client
,
toAddr
)
if
reToAfterBal
==
nil
{
return
false
}
if
beforeToBal
.
Sub
(
beforeToBal
,
reToAfterBal
)
.
Cmp
(
amount
.
Mul
(
amount
,
big
.
NewInt
(
int64
(
txCount
))))
!=
0
{
return
false
}
for
i
:=
0
;
i
<
txCount
;
i
++
{
for
i
:=
0
;
i
<
txCount
;
i
++
{
fromAddr
:=
testAccArr
.
FromAddr
[
i
]
fromAddr
:=
testAccArr
.
FromAddr
[
i
]
sendAfterBal
:=
util
.
GetAccBal
(
client
,
fromAddr
)
sendAfterBal
:=
util
.
GetAccBal
(
client
,
fromAddr
)
if
sendAfterBal
==
nil
{
if
sendAfterBal
==
nil
{
return
false
return
false
}
}
if
sendBeforeBal
[
fromAddr
]
.
Sub
(
sendBeforeBal
[
fromAddr
],
sendAfterBal
)
.
Cmp
(
amount
)
=
=
1
{
if
sendBeforeBal
[
fromAddr
]
.
Sub
(
sendBeforeBal
[
fromAddr
],
sendAfterBal
)
.
Cmp
(
amount
)
!
=
1
{
return
false
return
false
}
}
}
}
reToAfterBal
:=
util
.
GetAccBal
(
client
,
toAddr
)
if
reToAfterBal
==
nil
{
return
false
}
if
reToAfterBal
.
Sub
(
reToAfterBal
,
beforeToBal
)
.
Cmp
(
amount
.
Mul
(
amount
,
big
.
NewInt
(
int64
(
txCount
))))
!=
0
{
return
false
}
return
true
return
true
}
}
return
resTxArr
,
verify
return
resTxArr
,
verify
...
@@ -114,13 +113,6 @@ func PrSpCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, accountNonceMa
...
@@ -114,13 +113,6 @@ func PrSpCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, accountNonceMa
resTxArr
=
append
(
resTxArr
,
tx
)
resTxArr
=
append
(
resTxArr
,
tx
)
}
}
verify
:=
func
()
bool
{
verify
:=
func
()
bool
{
sendAfterBal
:=
util
.
GetAccBal
(
client
,
fromAddr
)
if
sendAfterBal
==
nil
{
return
false
}
if
beforeFromBal
.
Sub
(
beforeFromBal
,
sendAfterBal
)
.
Cmp
(
amount
.
Mul
(
amount
,
big
.
NewInt
(
int64
(
txCount
))))
!=
1
{
return
false
}
for
i
:=
0
;
i
<
txCount
;
i
++
{
for
i
:=
0
;
i
<
txCount
;
i
++
{
toAddr
:=
testAccArr
.
ToAddr
[
i
]
toAddr
:=
testAccArr
.
ToAddr
[
i
]
reAfterBal
:=
util
.
GetAccBal
(
client
,
toAddr
)
reAfterBal
:=
util
.
GetAccBal
(
client
,
toAddr
)
...
@@ -131,6 +123,13 @@ func PrSpCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, accountNonceMa
...
@@ -131,6 +123,13 @@ func PrSpCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, accountNonceMa
return
false
return
false
}
}
}
}
sendAfterBal
:=
util
.
GetAccBal
(
client
,
fromAddr
)
if
sendAfterBal
==
nil
{
return
false
}
if
beforeFromBal
.
Sub
(
beforeFromBal
,
sendAfterBal
)
.
Cmp
(
amount
.
Mul
(
amount
,
big
.
NewInt
(
int64
(
txCount
))))
!=
1
{
return
false
}
return
true
return
true
}
}
return
resTxArr
,
verify
return
resTxArr
,
verify
...
@@ -196,7 +195,7 @@ func PrSpReCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, accountNonce
...
@@ -196,7 +195,7 @@ func PrSpReCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, accountNonce
if
reToAfterBal
==
nil
{
if
reToAfterBal
==
nil
{
return
false
return
false
}
}
if
reToAfterBal
.
Sub
(
reToAfterBal
,
beforeTo
Bal
)
.
Cmp
(
big
.
NewInt
(
0
))
!=
1
{
if
beforeToBal
.
Sub
(
beforeToBal
,
reToAfter
Bal
)
.
Cmp
(
big
.
NewInt
(
0
))
!=
1
{
return
false
return
false
}
}
// C账户余额校验
// C账户余额校验
...
@@ -267,7 +266,7 @@ func AllPrSpReCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, accountNo
...
@@ -267,7 +266,7 @@ func AllPrSpReCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, accountNo
if
reToAfterBal
==
nil
{
if
reToAfterBal
==
nil
{
return
false
return
false
}
}
if
reToAfterBal
.
Sub
(
reToAfterBal
,
beforeTo
Bal
)
.
Cmp
(
big
.
NewInt
(
0
))
!=
1
{
if
beforeToBal
.
Sub
(
beforeToBal
,
reToAfter
Bal
)
.
Cmp
(
big
.
NewInt
(
0
))
!=
1
{
return
false
return
false
}
}
return
true
return
true
...
@@ -307,7 +306,7 @@ func PrReContractCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, contra
...
@@ -307,7 +306,7 @@ func PrReContractCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, contra
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
i
])
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
i
])
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
NoSend
=
true
auth
.
NoSend
=
true
auth
.
GasLimit
=
10000000
00000
auth
.
GasLimit
=
5
00000
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
tx
,
err
:=
contractCoinTrade
.
TransferSignTx
(
auth
,
coinTransfer
)
tx
,
err
:=
contractCoinTrade
.
TransferSignTx
(
auth
,
coinTransfer
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -323,7 +322,7 @@ func PrReContractCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, contra
...
@@ -323,7 +322,7 @@ func PrReContractCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, contra
if
sendBeforeBal
==
nil
{
if
sendBeforeBal
==
nil
{
return
false
return
false
}
}
if
sendBeforeBal
.
Sub
(
sendBeforeBal
,
sendAfterBal
)
.
Cmp
(
amount
.
Mul
(
amount
,
big
.
NewInt
(
int64
(
txCount
)))
)
!=
0
{
if
sendBeforeBal
.
Sub
(
sendBeforeBal
,
sendAfterBal
)
.
Cmp
(
amount
)
!=
0
{
return
false
return
false
}
}
}
}
...
@@ -331,7 +330,7 @@ func PrReContractCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, contra
...
@@ -331,7 +330,7 @@ func PrReContractCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, contra
if
reAfterToBal
==
nil
{
if
reAfterToBal
==
nil
{
return
false
return
false
}
}
if
reAfterToBal
.
Sub
(
reAfterToBal
,
reBeforeToBal
)
.
Cmp
(
amount
.
Mul
(
amount
,
big
.
NewInt
(
int64
(
txCount
))))
!=
0
{
if
reAfterToBal
.
Sub
(
reAfterToBal
,
reBeforeToBal
)
.
Cmp
(
big
.
NewInt
(
1
)
.
Mul
(
amount
,
big
.
NewInt
(
int64
(
txCount
))))
!=
0
{
return
false
return
false
}
}
return
true
return
true
...
@@ -373,7 +372,7 @@ func PrSpContractCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, contra
...
@@ -373,7 +372,7 @@ func PrSpContractCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, contra
value
,
_
:=
accountNonceMap
.
Load
(
fromAddr
)
value
,
_
:=
accountNonceMap
.
Load
(
fromAddr
)
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
NoSend
=
true
auth
.
NoSend
=
true
auth
.
GasLimit
=
10000000
00000
auth
.
GasLimit
=
5
00000
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
tx
,
err
:=
contractCoinTrade
.
TransferSignTx
(
auth
,
coinTransfer
)
tx
,
err
:=
contractCoinTrade
.
TransferSignTx
(
auth
,
coinTransfer
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -384,14 +383,6 @@ func PrSpContractCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, contra
...
@@ -384,14 +383,6 @@ func PrSpContractCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, contra
resTxArr
=
append
(
resTxArr
,
tx
)
resTxArr
=
append
(
resTxArr
,
tx
)
}
}
verify
:=
func
()
bool
{
verify
:=
func
()
bool
{
sendAfterBal
,
err
:=
client
.
BalanceAt
(
context
.
Background
(),
coinTranAddr
,
nil
)
if
err
!=
nil
{
log
.
Error
(
"Get "
,
coinTranAddr
,
" balance error: "
,
err
.
Error
())
return
false
}
if
sendBeforeBal
.
Sub
(
sendBeforeBal
,
sendAfterBal
)
.
Cmp
(
amount
.
Mul
(
amount
,
big
.
NewInt
(
int64
(
txCount
))))
!=
0
{
return
false
}
for
i
:=
0
;
i
<
txCount
;
i
++
{
for
i
:=
0
;
i
<
txCount
;
i
++
{
toAddr
:=
testAccArr
.
ToAddr
[
i
]
toAddr
:=
testAccArr
.
ToAddr
[
i
]
reAfterToBal
:=
util
.
GetAccBal
(
client
,
toAddr
)
reAfterToBal
:=
util
.
GetAccBal
(
client
,
toAddr
)
...
@@ -402,6 +393,14 @@ func PrSpContractCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, contra
...
@@ -402,6 +393,14 @@ func PrSpContractCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, contra
return
false
return
false
}
}
}
}
sendAfterBal
,
err
:=
client
.
BalanceAt
(
context
.
Background
(),
coinTranAddr
,
nil
)
if
err
!=
nil
{
log
.
Error
(
"Get "
,
coinTranAddr
,
" balance error: "
,
err
.
Error
())
return
false
}
if
sendBeforeBal
.
Sub
(
sendBeforeBal
,
sendAfterBal
)
.
Cmp
(
amount
.
Mul
(
amount
,
big
.
NewInt
(
int64
(
txCount
))))
!=
0
{
return
false
}
return
true
return
true
}
}
return
resTxArr
,
verify
return
resTxArr
,
verify
...
@@ -441,7 +440,7 @@ func PrReSpContractCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, cont
...
@@ -441,7 +440,7 @@ func PrReSpContractCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, cont
value
,
_
:=
accountNonceMap
.
Load
(
fromAddr
)
value
,
_
:=
accountNonceMap
.
Load
(
fromAddr
)
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
NoSend
=
true
auth
.
NoSend
=
true
auth
.
GasLimit
=
10000000
00000
auth
.
GasLimit
=
5
00000
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
coinTransfer
,
err
:=
contractCoin
.
NewChainCoinTransfer
(
coinTranAddr
,
client
)
coinTransfer
,
err
:=
contractCoin
.
NewChainCoinTransfer
(
coinTranAddr
,
client
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -457,14 +456,19 @@ func PrReSpContractCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, cont
...
@@ -457,14 +456,19 @@ func PrReSpContractCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, cont
// B -> b 合约 -> C 账户转账
// B -> b 合约 -> C 账户转账
toAddr1
:=
testAccArr
.
ToAddr
[
1
]
toAddr1
:=
testAccArr
.
ToAddr
[
1
]
reBeforeTo1Bal
,
err
:=
client
.
BalanceAt
(
context
.
Background
(),
toAddr1
,
nil
)
if
err
!=
nil
{
log
.
Error
(
"Get "
,
coinTranAddr
,
" balance error: "
,
err
.
Error
())
return
nil
,
nil
}
auth
,
err
=
bind
.
NewKeyedTransactorWithChainID
(
toPrv
,
tool
.
Cfg
.
ChainId
)
auth
,
err
=
bind
.
NewKeyedTransactorWithChainID
(
toPrv
,
tool
.
Cfg
.
ChainId
)
if
err
!=
nil
{
if
err
!=
nil
{
log
.
Errorf
(
"DeployTokenTransfer func newKeyedTransactorWithChainID err:"
,
err
)
log
.
Errorf
(
"DeployTokenTransfer func newKeyedTransactorWithChainID err:"
,
err
)
}
}
value
,
_
=
accountNonceMap
.
Load
(
to
Prv
)
value
,
_
=
accountNonceMap
.
Load
(
to
Addr
)
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
NoSend
=
true
auth
.
NoSend
=
true
auth
.
GasLimit
=
10000000
00000
auth
.
GasLimit
=
5
00000
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
contractCoinTrade
.
ToAddr
=
[]
common
.
Address
{
toAddr1
}
contractCoinTrade
.
ToAddr
=
[]
common
.
Address
{
toAddr1
}
coinTransfer1
,
err
:=
contractCoin
.
NewChainCoinTransfer
(
coinTranAddr1
,
client
)
coinTransfer1
,
err
:=
contractCoin
.
NewChainCoinTransfer
(
coinTranAddr1
,
client
)
...
@@ -485,23 +489,34 @@ func PrReSpContractCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, cont
...
@@ -485,23 +489,34 @@ func PrReSpContractCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, cont
if
sendAfterBal
==
nil
{
if
sendAfterBal
==
nil
{
return
false
return
false
}
}
if
sendBeforeCoinBal
.
Sub
(
sendBeforeCoinBal
,
sendAfterBal
)
.
Cmp
(
amount
.
Mul
(
amount
,
big
.
NewInt
(
int64
(
txCount
)))
)
!=
0
{
if
sendBeforeCoinBal
.
Sub
(
sendBeforeCoinBal
,
sendAfterBal
)
.
Cmp
(
amount
)
!=
0
{
return
false
return
false
}
}
// 校验 b合约
// 校验 b合约
sendAfterCoin1Bal
:=
util
.
GetAccBal
(
client
,
coinTranAddr1
)
sendAfterCoin1Bal
:=
util
.
GetAccBal
(
client
,
coinTranAddr1
)
if
sendAfterBal
==
nil
{
if
sendAfterBal
==
nil
{
return
false
return
false
}
}
if
sendBeforeCoin1Bal
.
Sub
(
sendBeforeCoin1Bal
,
sendAfterCoin1Bal
)
.
Cmp
(
amount
.
Mul
(
amount
,
big
.
NewInt
(
int64
(
txCount
)))
)
!=
0
{
if
sendBeforeCoin1Bal
.
Sub
(
sendBeforeCoin1Bal
,
sendAfterCoin1Bal
)
.
Cmp
(
amount
)
!=
0
{
return
false
return
false
}
}
// 校验 B 账户
// 校验 B 账户
reAfterToBal
:=
util
.
GetAccBal
(
client
,
toAddr
)
reAfterToBal
:=
util
.
GetAccBal
(
client
,
toAddr
)
if
sendAfterBal
==
nil
{
if
reAfterToBal
==
nil
{
return
false
}
if
reAfterToBal
.
Sub
(
reAfterToBal
,
reBeforeToBal
)
.
Cmp
(
amount
)
!=
-
1
{
return
false
}
// 校验 C 账户
reAfterTo1Bal
:=
util
.
GetAccBal
(
client
,
toAddr1
)
if
reAfterTo1Bal
==
nil
{
return
false
return
false
}
}
if
reAfterTo
Bal
.
Sub
(
reAfterToBal
,
reBeforeTo
Bal
)
.
Cmp
(
amount
)
!=
0
{
if
reAfterTo
1Bal
.
Sub
(
reAfterTo1Bal
,
reBeforeTo1
Bal
)
.
Cmp
(
amount
)
!=
0
{
return
false
return
false
}
}
return
true
return
true
...
@@ -542,7 +557,7 @@ func PrReContractOneCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, con
...
@@ -542,7 +557,7 @@ func PrReContractOneCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, con
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
i
])
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
i
])
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
NoSend
=
true
auth
.
NoSend
=
true
auth
.
GasLimit
=
10000000
00000
auth
.
GasLimit
=
5
00000
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
tx
,
err
:=
contractCoinOneTrade
.
OneTransferSignTx
(
auth
,
oneChainCoinTransfer
)
tx
,
err
:=
contractCoinOneTrade
.
OneTransferSignTx
(
auth
,
oneChainCoinTransfer
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -559,7 +574,7 @@ func PrReContractOneCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, con
...
@@ -559,7 +574,7 @@ func PrReContractOneCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, con
if
sendAfterBal
==
nil
{
if
sendAfterBal
==
nil
{
return
false
return
false
}
}
if
sendBeforeBal
.
Sub
(
sendBeforeBal
,
sendAfterBal
)
.
Cmp
(
amount
.
Mul
(
amount
,
big
.
NewInt
(
int64
(
txCount
)))
)
!=
0
{
if
sendBeforeBal
.
Sub
(
sendBeforeBal
,
sendAfterBal
)
.
Cmp
(
amount
)
!=
0
{
return
false
return
false
}
}
}
}
...
@@ -567,7 +582,7 @@ func PrReContractOneCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, con
...
@@ -567,7 +582,7 @@ func PrReContractOneCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, con
if
reAfterToBal
==
nil
{
if
reAfterToBal
==
nil
{
return
false
return
false
}
}
if
reAfterToBal
.
Sub
(
reAfterToBal
,
reBeforeToBal
)
.
Cmp
(
amount
.
Mul
(
amount
,
big
.
NewInt
(
int64
(
txCount
))))
!=
0
{
if
reAfterToBal
.
Sub
(
reAfterToBal
,
reBeforeToBal
)
.
Cmp
(
big
.
NewInt
(
1
)
.
Mul
(
amount
,
big
.
NewInt
(
int64
(
txCount
))))
!=
0
{
return
false
return
false
}
}
return
true
return
true
...
@@ -578,11 +593,6 @@ func PrReContractOneCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, con
...
@@ -578,11 +593,6 @@ func PrReContractOneCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, con
// PrSpContractOneCoinTranCase 多层-合约转账-发送者相关
// PrSpContractOneCoinTranCase 多层-合约转账-发送者相关
func
PrSpContractOneCoinTranCase
(
txCount
int
,
testAccArr
*
tool
.
AccArrFormat
,
contractMap
[]
map
[
string
]
common
.
Address
,
accountNonceMap
*
sync
.
Map
,
resTxArr
[]
*
types
.
Transaction
,
client
*
ethclient
.
Client
)
([]
*
types
.
Transaction
,
func
()
bool
)
{
func
PrSpContractOneCoinTranCase
(
txCount
int
,
testAccArr
*
tool
.
AccArrFormat
,
contractMap
[]
map
[
string
]
common
.
Address
,
accountNonceMap
*
sync
.
Map
,
resTxArr
[]
*
types
.
Transaction
,
client
*
ethclient
.
Client
)
([]
*
types
.
Transaction
,
func
()
bool
)
{
amount
:=
big
.
NewInt
(
100000000000000000
)
amount
:=
big
.
NewInt
(
100000000000000000
)
toAddr
:=
testAccArr
.
ToAddr
[
0
]
reBeforeToBal
:=
util
.
GetAccBal
(
client
,
toAddr
)
if
reBeforeToBal
==
nil
{
return
nil
,
nil
}
coinTranAddr
:=
contractMap
[
0
][
constant
.
COIN_TRANSFER
]
coinTranAddr
:=
contractMap
[
0
][
constant
.
COIN_TRANSFER
]
contractCoinOneTrade
:=
&
coin
.
ContractCoinOneTrade
{
contractCoinOneTrade
:=
&
coin
.
ContractCoinOneTrade
{
ChainContractAdr
:
contractMap
[
0
][
constant
.
COIN_TRANSFER
],
ChainContractAdr
:
contractMap
[
0
][
constant
.
COIN_TRANSFER
],
...
@@ -593,14 +603,18 @@ func PrSpContractOneCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, con
...
@@ -593,14 +603,18 @@ func PrSpContractOneCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, con
log
.
Error
(
"NewOneChainCoinTransfer error:"
,
err
.
Error
())
log
.
Error
(
"NewOneChainCoinTransfer error:"
,
err
.
Error
())
return
nil
,
nil
return
nil
,
nil
}
}
sendBeforeContract
BalMap
:=
make
(
map
[
common
.
Address
]
*
big
.
Int
,
0
)
reBeforeTo
BalMap
:=
make
(
map
[
common
.
Address
]
*
big
.
Int
,
0
)
sendBeforeBal
:=
util
.
GetAccBal
(
client
,
coinTranAddr
)
sendBeforeBal
:=
util
.
GetAccBal
(
client
,
coinTranAddr
)
if
sendBeforeBal
==
nil
{
if
sendBeforeBal
==
nil
{
return
nil
,
nil
return
nil
,
nil
}
}
sendBeforeContractBalMap
[
contractMap
[
0
][
constant
.
COIN_TRANSFER
]]
=
sendBeforeBal
for
i
:=
0
;
i
<
txCount
;
i
++
{
for
i
:=
0
;
i
<
txCount
;
i
++
{
toAddr
:=
testAccArr
.
ToAddr
[
i
]
reBeforeToBal
:=
util
.
GetAccBal
(
client
,
toAddr
)
if
reBeforeToBal
==
nil
{
return
nil
,
nil
}
reBeforeToBalMap
[
toAddr
]
=
reBeforeToBal
contractCoinOneTrade
.
ToAddr
=
[]
common
.
Address
{
toAddr
}
contractCoinOneTrade
.
ToAddr
=
[]
common
.
Address
{
toAddr
}
auth
,
err
:=
bind
.
NewKeyedTransactorWithChainID
(
testAccArr
.
FromPrv
[
i
],
tool
.
Cfg
.
ChainId
)
auth
,
err
:=
bind
.
NewKeyedTransactorWithChainID
(
testAccArr
.
FromPrv
[
i
],
tool
.
Cfg
.
ChainId
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -609,7 +623,7 @@ func PrSpContractOneCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, con
...
@@ -609,7 +623,7 @@ func PrSpContractOneCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, con
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
i
])
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
i
])
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
NoSend
=
true
auth
.
NoSend
=
true
auth
.
GasLimit
=
10000000
00000
auth
.
GasLimit
=
5
00000
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
tx
,
err
:=
contractCoinOneTrade
.
OneTransferSignTx
(
auth
,
oneChainCoinTransfer
)
tx
,
err
:=
contractCoinOneTrade
.
OneTransferSignTx
(
auth
,
oneChainCoinTransfer
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -620,23 +634,24 @@ func PrSpContractOneCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, con
...
@@ -620,23 +634,24 @@ func PrSpContractOneCoinTranCase(txCount int, testAccArr *tool.AccArrFormat, con
}
}
verify
:=
func
()
bool
{
verify
:=
func
()
bool
{
for
i
:=
0
;
i
<
txCount
;
i
++
{
for
i
:=
0
;
i
<
txCount
;
i
++
{
coinAddr
:=
contractMap
[
i
][
constant
.
COIN_TRANSFER
]
reAfterToBal
:=
util
.
GetAccBal
(
client
,
testAccArr
.
ToAddr
[
i
])
sendBeforeBal
:=
sendBeforeContractBalMap
[
coinAddr
]
if
reAfterToBal
==
nil
{
sendAfterBal
:=
util
.
GetAccBal
(
client
,
coinAddr
)
if
sendAfterBal
==
nil
{
return
false
return
false
}
}
if
sendBeforeBal
.
Sub
(
sendBeforeBal
,
sendAfterBal
)
.
Cmp
(
amount
.
Mul
(
amount
,
big
.
NewInt
(
int64
(
txCount
)))
)
!=
0
{
if
reAfterToBal
.
Sub
(
reAfterToBal
,
reBeforeToBalMap
[
testAccArr
.
ToAddr
[
i
]])
.
Cmp
(
amount
)
!=
0
{
return
false
return
false
}
}
}
}
reAfterToBal
:=
util
.
GetAccBal
(
client
,
toAddr
)
if
reAfterToBal
==
nil
{
coinAddr
:=
contractMap
[
0
][
constant
.
COIN_TRANSFER
]
sendAfterBal
:=
util
.
GetAccBal
(
client
,
coinAddr
)
if
sendAfterBal
==
nil
{
return
false
return
false
}
}
if
reAfterToBal
.
Sub
(
reAfterToBal
,
reBeforeTo
Bal
)
.
Cmp
(
amount
.
Mul
(
amount
,
big
.
NewInt
(
int64
(
txCount
))))
!=
0
{
if
sendBeforeBal
.
Sub
(
sendBeforeBal
,
sendAfter
Bal
)
.
Cmp
(
amount
.
Mul
(
amount
,
big
.
NewInt
(
int64
(
txCount
))))
!=
0
{
return
false
return
false
}
}
return
true
return
true
}
}
return
resTxArr
,
verify
return
resTxArr
,
verify
...
@@ -828,6 +843,7 @@ func PrReErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap m
...
@@ -828,6 +843,7 @@ func PrReErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap m
log
.
Errorf
(
"DeployTokenTransfer func newKeyedTransactorWithChainID err:"
,
err
)
log
.
Errorf
(
"DeployTokenTransfer func newKeyedTransactorWithChainID err:"
,
err
)
}
}
auth
.
NoSend
=
true
auth
.
NoSend
=
true
auth
.
GasLimit
=
500000
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
0
])
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
0
])
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
...
@@ -843,7 +859,7 @@ func PrReErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap m
...
@@ -843,7 +859,7 @@ func PrReErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap m
log
.
Error
(
"Get erc20 balanceOf error:"
,
err
.
Error
())
log
.
Error
(
"Get erc20 balanceOf error:"
,
err
.
Error
())
return
false
return
false
}
}
if
afterToken20Bal
.
Sub
(
afterToken20Bal
,
beforeToken20Bal
)
.
Cmp
(
erc20Trade
.
Amount
.
Mul
(
erc20Trade
.
Amount
,
big
.
NewInt
(
int64
(
txCount
))))
!=
0
{
if
beforeToken20Bal
.
Sub
(
beforeToken20Bal
,
afterToken20Bal
)
.
Cmp
(
big
.
NewInt
(
1
)
.
Mul
(
erc20Trade
.
Amount
,
big
.
NewInt
(
int64
(
txCount
))))
!=
0
{
return
false
return
false
}
}
for
i
:=
0
;
i
<
txCount
;
i
++
{
for
i
:=
0
;
i
<
txCount
;
i
++
{
...
@@ -902,7 +918,7 @@ func PrSpOneErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMa
...
@@ -902,7 +918,7 @@ func PrSpOneErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMa
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
0
])
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
0
])
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
NoSend
=
true
auth
.
NoSend
=
true
auth
.
GasLimit
=
10000000
00000
auth
.
GasLimit
=
5
00000
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
tx
,
err
:=
oneErc20Trade
.
Erc20OneTransferTx
(
auth
,
tokenTransfer
)
tx
,
err
:=
oneErc20Trade
.
Erc20OneTransferTx
(
auth
,
tokenTransfer
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -910,13 +926,14 @@ func PrSpOneErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMa
...
@@ -910,13 +926,14 @@ func PrSpOneErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMa
}
}
log
.
Info
(
"Erc20OneTransferTx tx:"
,
tx
.
Hash
()
.
Hex
())
log
.
Info
(
"Erc20OneTransferTx tx:"
,
tx
.
Hash
()
.
Hex
())
resTxArr
=
append
(
resTxArr
,
tx
)
resTxArr
=
append
(
resTxArr
,
tx
)
afterToken20Bal
,
err
:=
erc20Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
contractMap
[
constant
.
TOKEN20_TRANSFER
])
if
err
!=
nil
{
log
.
Error
(
"Get token20ContractBal erc20 balanceOf error:"
,
err
.
Error
())
return
nil
,
nil
}
verify
:=
func
()
bool
{
verify
:=
func
()
bool
{
if
beforeToken20Bal
.
Sub
(
beforeToken20Bal
,
afterToken20Bal
)
.
Cmp
(
amount
.
Mul
(
amount
,
big
.
NewInt
(
int64
(
txCount
))))
!=
0
{
afterToken20Bal
,
err
:=
erc20Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
contractMap
[
constant
.
TOKEN20_TRANSFER
])
if
err
!=
nil
{
log
.
Error
(
"Get token20ContractBal erc20 balanceOf error:"
,
err
.
Error
())
return
false
}
if
beforeToken20Bal
.
Sub
(
beforeToken20Bal
,
afterToken20Bal
)
.
Cmp
(
big
.
NewInt
(
1
)
.
Mul
(
amount
,
big
.
NewInt
(
int64
(
txCount
))))
!=
0
{
return
false
return
false
}
}
for
i
:=
0
;
i
<
txCount
;
i
++
{
for
i
:=
0
;
i
<
txCount
;
i
++
{
...
@@ -950,28 +967,29 @@ func PrReSpErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap
...
@@ -950,28 +967,29 @@ func PrReSpErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap
log
.
Error
(
"NewTokenTransfer error:"
,
err
.
Error
())
log
.
Error
(
"NewTokenTransfer error:"
,
err
.
Error
())
return
nil
,
nil
return
nil
,
nil
}
}
beforeToAddrErc20Bal
:=
make
(
map
[
common
.
Address
]
*
big
.
Int
,
0
)
beforeAddrErc20Bal
:=
make
(
map
[
common
.
Address
]
*
big
.
Int
,
0
)
beforeToken20Bal
,
err
:=
erc20Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
contractMap
[
constant
.
TOKEN20_TRANSFER
])
if
err
!=
nil
{
log
.
Error
(
"Get token20ContractBal erc20 balanceOf error:"
,
err
.
Error
())
return
nil
,
nil
}
toAddrArr
:=
make
([]
common
.
Address
,
0
)
for
i
:=
0
;
i
<
txCount
;
i
++
{
for
i
:=
0
;
i
<
txCount
;
i
++
{
toAddrArr
=
append
(
toAddrArr
,
testAccArr
.
ToAddr
[
i
])
toBal
,
err
:=
erc20Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
testAccArr
.
ToAddr
[
i
])
toBal
,
err
:=
erc20Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
testAccArr
.
ToAddr
[
i
])
if
err
!=
nil
{
if
err
!=
nil
{
log
.
Error
(
"Get erc20 balanceOf error:"
,
err
.
Error
())
log
.
Error
(
"Get erc20 balanceOf error:"
,
err
.
Error
())
return
nil
,
nil
return
nil
,
nil
}
}
beforeToAddrErc20Bal
[
testAccArr
.
ToAddr
[
i
]]
=
toBal
beforeAddrErc20Bal
[
testAccArr
.
ToAddr
[
i
]]
=
toBal
fromBal
,
err
:=
erc20Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
testAccArr
.
FromAddr
[
i
])
if
err
!=
nil
{
log
.
Error
(
"Get erc20 balanceOf error:"
,
err
.
Error
())
return
nil
,
nil
}
beforeAddrErc20Bal
[
testAccArr
.
FromAddr
[
i
]]
=
fromBal
erc20Trade
.
FromAddr
=
testAccArr
.
FromAddr
[
i
]
erc20Trade
.
FromAddr
=
testAccArr
.
FromAddr
[
i
]
erc20Trade
.
ToAddr
=
toAddrArr
erc20Trade
.
ToAddr
=
[]
common
.
Address
{
testAccArr
.
ToAddr
[
i
]}
auth
,
err
:=
bind
.
NewKeyedTransactorWithChainID
(
testAccArr
.
FromPrv
[
i
],
tool
.
Cfg
.
ChainId
)
auth
,
err
:=
bind
.
NewKeyedTransactorWithChainID
(
testAccArr
.
FromPrv
[
i
],
tool
.
Cfg
.
ChainId
)
if
err
!=
nil
{
if
err
!=
nil
{
log
.
Errorf
(
"DeployTokenTransfer func newKeyedTransactorWithChainID err:"
,
err
)
log
.
Errorf
(
"DeployTokenTransfer func newKeyedTransactorWithChainID err:"
,
err
)
}
}
auth
.
NoSend
=
true
auth
.
NoSend
=
true
auth
.
GasLimit
=
500000
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
i
])
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
i
])
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
...
@@ -983,21 +1001,24 @@ func PrReSpErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap
...
@@ -983,21 +1001,24 @@ func PrReSpErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMap
resTxArr
=
append
(
resTxArr
,
tx
)
resTxArr
=
append
(
resTxArr
,
tx
)
}
}
verify
:=
func
()
bool
{
verify
:=
func
()
bool
{
afterToken20Bal
,
err
:=
erc20Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
contractMap
[
constant
.
TOKEN20_TRANSFER
])
if
err
!=
nil
{
log
.
Error
(
"Get erc20 balanceOf error:"
,
err
.
Error
())
return
false
}
if
afterToken20Bal
.
Sub
(
afterToken20Bal
,
beforeToken20Bal
)
.
Cmp
(
erc20Trade
.
Amount
.
Mul
(
erc20Trade
.
Amount
,
big
.
NewInt
(
int64
(
txCount
))))
!=
0
{
return
false
}
for
i
:=
0
;
i
<
txCount
;
i
++
{
for
i
:=
0
;
i
<
txCount
;
i
++
{
of
,
err
:=
erc20Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
testAccArr
.
ToAddr
[
i
])
toAddr
:=
testAccArr
.
ToAddr
[
i
]
to
,
err
:=
erc20Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
toAddr
)
if
err
!=
nil
{
if
err
!=
nil
{
log
.
Error
(
"Get erc20 balanceOf error:"
,
err
.
Error
())
log
.
Error
(
"Get erc20 balanceOf error:"
,
err
.
Error
())
return
false
return
false
}
}
if
of
.
Sub
(
of
,
beforeToAddrErc20Bal
[
testAccArr
.
ToAddr
[
i
]])
.
Cmp
(
erc20Trade
.
Amount
)
!=
0
{
if
to
.
Sub
(
to
,
beforeAddrErc20Bal
[
toAddr
])
.
Cmp
(
erc20Trade
.
Amount
)
!=
0
{
return
false
}
fromAddr
:=
testAccArr
.
FromAddr
[
i
]
from
,
err
:=
erc20Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
fromAddr
)
if
err
!=
nil
{
log
.
Error
(
"Get erc20 balanceOf error:"
,
err
.
Error
())
return
false
}
if
beforeAddrErc20Bal
[
fromAddr
]
.
Sub
(
beforeAddrErc20Bal
[
fromAddr
],
from
)
.
Cmp
(
erc20Trade
.
Amount
)
!=
0
{
return
false
return
false
}
}
}
}
...
@@ -1023,22 +1044,23 @@ func PrReOneErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMa
...
@@ -1023,22 +1044,23 @@ func PrReOneErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMa
log
.
Error
(
"NewTokenTransfer error:"
,
err
.
Error
())
log
.
Error
(
"NewTokenTransfer error:"
,
err
.
Error
())
return
nil
,
nil
return
nil
,
nil
}
}
beforeToAddrErc20Bal
:=
make
(
map
[
common
.
Address
]
*
big
.
Int
,
0
)
beforeAddrErc20Bal
:=
make
(
map
[
common
.
Address
]
*
big
.
Int
,
0
)
beforeToken20Bal
,
err
:=
erc20Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
contractMap
[
constant
.
TOKEN20_TRANSFER
])
if
err
!=
nil
{
log
.
Error
(
"Get token20ContractBal erc20 balanceOf error:"
,
err
.
Error
())
return
nil
,
nil
}
toAddrArr
:=
make
([]
common
.
Address
,
0
)
for
i
:=
0
;
i
<
txCount
;
i
++
{
for
i
:=
0
;
i
<
txCount
;
i
++
{
toAddrArr
=
append
(
toAddrArr
,
testAccArr
.
ToAddr
[
i
])
toBal
,
err
:=
erc20Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
testAccArr
.
ToAddr
[
i
])
toBal
,
err
:=
erc20Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
testAccArr
.
ToAddr
[
i
])
if
err
!=
nil
{
if
err
!=
nil
{
log
.
Error
(
"Get erc20 balanceOf error:"
,
err
.
Error
())
log
.
Error
(
"Get erc20 balanceOf error:"
,
err
.
Error
())
return
nil
,
nil
return
nil
,
nil
}
}
beforeToAddrErc20Bal
[
testAccArr
.
ToAddr
[
i
]]
=
toBal
beforeAddrErc20Bal
[
testAccArr
.
ToAddr
[
i
]]
=
toBal
oneErc20Trade
.
ToAddr
=
toAddrArr
fromBal
,
err
:=
erc20Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
testAccArr
.
FromAddr
[
i
])
if
err
!=
nil
{
log
.
Error
(
"Get erc20 balanceOf error:"
,
err
.
Error
())
return
nil
,
nil
}
beforeAddrErc20Bal
[
testAccArr
.
FromAddr
[
i
]]
=
fromBal
oneErc20Trade
.
ToAddr
=
[]
common
.
Address
{
testAccArr
.
ToAddr
[
i
]}
auth
,
err
:=
bind
.
NewKeyedTransactorWithChainID
(
testAccArr
.
FromPrv
[
i
],
tool
.
Cfg
.
ChainId
)
auth
,
err
:=
bind
.
NewKeyedTransactorWithChainID
(
testAccArr
.
FromPrv
[
i
],
tool
.
Cfg
.
ChainId
)
if
err
!=
nil
{
if
err
!=
nil
{
log
.
Errorf
(
"DeployTokenTransfer func newKeyedTransactorWithChainID err:"
,
err
)
log
.
Errorf
(
"DeployTokenTransfer func newKeyedTransactorWithChainID err:"
,
err
)
...
@@ -1046,7 +1068,7 @@ func PrReOneErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMa
...
@@ -1046,7 +1068,7 @@ func PrReOneErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMa
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
i
])
value
,
_
:=
accountNonceMap
.
Load
(
testAccArr
.
FromAddr
[
i
])
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
Nonce
=
big
.
NewInt
(
value
.
(
int64
))
auth
.
NoSend
=
true
auth
.
NoSend
=
true
auth
.
GasLimit
=
10000000
00000
auth
.
GasLimit
=
5
00000
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
auth
.
GasPrice
=
big
.
NewInt
(
10000000000
)
tx
,
err
:=
oneErc20Trade
.
Erc20OneTransferTx
(
auth
,
tokenTransfer
)
tx
,
err
:=
oneErc20Trade
.
Erc20OneTransferTx
(
auth
,
tokenTransfer
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -1055,22 +1077,23 @@ func PrReOneErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMa
...
@@ -1055,22 +1077,23 @@ func PrReOneErc20TranCase(txCount int, testAccArr *tool.AccArrFormat, contractMa
log
.
Info
(
"Erc20OneTransferTx tx:"
,
tx
.
Hash
()
.
Hex
())
log
.
Info
(
"Erc20OneTransferTx tx:"
,
tx
.
Hash
()
.
Hex
())
resTxArr
=
append
(
resTxArr
,
tx
)
resTxArr
=
append
(
resTxArr
,
tx
)
}
}
afterToken20Bal
,
err
:=
erc20Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
contractMap
[
constant
.
TOKEN20_TRANSFER
])
if
err
!=
nil
{
log
.
Error
(
"Get token20ContractBal erc20 balanceOf error:"
,
err
.
Error
())
return
nil
,
nil
}
verify
:=
func
()
bool
{
verify
:=
func
()
bool
{
if
beforeToken20Bal
.
Sub
(
beforeToken20Bal
,
afterToken20Bal
)
.
Cmp
(
amount
.
Mul
(
amount
,
big
.
NewInt
(
int64
(
txCount
))))
!=
0
{
return
false
}
for
i
:=
0
;
i
<
txCount
;
i
++
{
for
i
:=
0
;
i
<
txCount
;
i
++
{
of
,
err
:=
erc20Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
testAccArr
.
ToAddr
[
i
])
to
,
err
:=
erc20Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
testAccArr
.
ToAddr
[
i
])
if
err
!=
nil
{
if
err
!=
nil
{
log
.
Error
(
"Get erc20 balanceOf error:"
,
err
.
Error
())
log
.
Error
(
"Get erc20 balanceOf error:"
,
err
.
Error
())
return
false
return
false
}
}
if
of
.
Sub
(
of
,
beforeToAddrErc20Bal
[
testAccArr
.
ToAddr
[
i
]])
.
Cmp
(
amount
)
!=
0
{
if
to
.
Sub
(
to
,
beforeAddrErc20Bal
[
testAccArr
.
ToAddr
[
i
]])
.
Cmp
(
amount
)
!=
0
{
return
false
}
from
,
err
:=
erc20Contract
.
BalanceOf
(
&
bind
.
CallOpts
{},
testAccArr
.
FromAddr
[
i
])
if
err
!=
nil
{
log
.
Error
(
"Get erc20 balanceOf error:"
,
err
.
Error
())
return
false
}
if
beforeAddrErc20Bal
[
testAccArr
.
FromAddr
[
i
]]
.
Sub
(
beforeAddrErc20Bal
[
testAccArr
.
FromAddr
[
i
]],
from
)
.
Cmp
(
amount
)
!=
1
{
return
false
return
false
}
}
}
}
...
@@ -1216,18 +1239,3 @@ func PrSpErc721TranCase() {
...
@@ -1216,18 +1239,3 @@ func PrSpErc721TranCase() {
func
PrReSpErc721TranCase
()
{
func
PrReSpErc721TranCase
()
{
}
}
// PrReOneErc721TranCase 多层-erc721-发送者相关
func
PrReOneErc721TranCase
()
{
}
// PrSpOneErc721TranCase 多层-erc721-接受者相关
func
PrSpOneErc721TranCase
()
{
}
// PrReSpOneErc721TranCase 多层-erc721-发送接受者相关
func
PrReSpOneErc721TranCase
()
{
}
test/contract_test.go
View file @
c1ac0912
...
@@ -10,6 +10,7 @@ import (
...
@@ -10,6 +10,7 @@ import (
"github.com/ethereum/go-ethereum/accounts/abi/bind"
"github.com/ethereum/go-ethereum/accounts/abi/bind"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/ethclient"
"github.com/ethereum/go-ethereum/ethclient"
"math/big"
"strings"
"strings"
"testing"
"testing"
)
)
...
@@ -47,13 +48,13 @@ func TestGetContractAbi(t *testing.T) {
...
@@ -47,13 +48,13 @@ func TestGetContractAbi(t *testing.T) {
func
TestGetErc20Balance
(
t
*
testing
.
T
)
{
func
TestGetErc20Balance
(
t
*
testing
.
T
)
{
// 连接以太坊网络
// 连接以太坊网络
client
,
err
:=
ethclient
.
Dial
(
"http://
15.161.177.5:26658
"
)
client
,
err
:=
ethclient
.
Dial
(
"http://
54.72.101.87:50000
"
)
if
err
!=
nil
{
if
err
!=
nil
{
log
.
Fatal
(
err
)
log
.
Fatal
(
err
)
}
}
// 从合约地址获取合约代码
// 从合约地址获取合约代码
contractAddress
:=
common
.
HexToAddress
(
"0x
91f2c122c8060258605c287cea0bdda056b7b25d
"
)
contractAddress
:=
common
.
HexToAddress
(
"0x
14f2567347beb8ed0fec95397940f17ef7a94541
"
)
accountAddr
:=
common
.
HexToAddress
(
"0x
4b0ae7ac4886e7c54e40529cc008df84407e5975
"
)
accountAddr
:=
common
.
HexToAddress
(
"0x
812D866f7f558A7325c16B729286e0e661b9DB36
"
)
newERC20
,
err
:=
erc20
.
NewERC20
(
contractAddress
,
client
)
newERC20
,
err
:=
erc20
.
NewERC20
(
contractAddress
,
client
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -86,3 +87,13 @@ func TestGetErc721Balance(t *testing.T) {
...
@@ -86,3 +87,13 @@ func TestGetErc721Balance(t *testing.T) {
}
}
log
.
Info
(
"balance is :"
,
of
.
String
())
log
.
Info
(
"balance is :"
,
of
.
String
())
}
}
func
TestBigIntFunc
(
t
*
testing
.
T
)
{
//amount := big.NewInt(10000000000)
mul
:=
big
.
NewInt
(
1
)
.
Mul
(
big
.
NewInt
(
10000000000000000
),
big
.
NewInt
(
2
))
t
.
Log
(
"amount:"
,
mul
.
String
())
}
util/contract_util.go
View file @
c1ac0912
...
@@ -44,18 +44,28 @@ func HexToAddress(addr string) common.Address {
...
@@ -44,18 +44,28 @@ func HexToAddress(addr string) common.Address {
}
}
func
GetTxReceipt
(
client
*
ethclient
.
Client
,
txArr
[]
*
types
.
Transaction
)
{
func
GetTxReceipt
(
client
*
ethclient
.
Client
,
txArr
[]
*
types
.
Transaction
)
{
txChanel
:=
make
(
chan
common
.
Hash
,
1000
)
for
i
:=
0
;
i
<
8
;
i
++
{
go
func
()
{
select
{
case
hash
:=
<-
txChanel
:
receipt
,
err
:=
client
.
TransactionReceipt
(
context
.
Background
(),
hash
)
if
err
!=
nil
{
log
.
Error
(
"Get tran receipt err:"
,
err
)
return
}
if
receipt
.
Status
==
0
{
log
.
Error
(
"Receipt:"
,
receipt
)
}
else
{
log
.
Infof
(
"Receipt: status: %d,gasUsed: %d"
,
receipt
.
Status
,
receipt
.
GasUsed
)
}
}
}()
}
for
_
,
tx
:=
range
txArr
{
for
_
,
tx
:=
range
txArr
{
receipt
,
err
:=
client
.
TransactionReceipt
(
context
.
Background
(),
tx
.
Hash
())
txChanel
<-
tx
.
Hash
()
if
err
!=
nil
{
log
.
Error
(
"Get tran receipt err:"
,
err
)
return
}
if
receipt
.
Status
==
0
{
log
.
Error
(
"Receipt:"
,
receipt
)
}
else
{
log
.
Infof
(
"Receipt: status: %d,gasUsed: %d"
,
receipt
.
Status
,
receipt
.
GasUsed
)
}
}
}
time
.
Sleep
(
time
.
Second
*
10
)
}
}
func
GetAccountNonce
(
client
*
ethclient
.
Client
)
*
sync
.
Map
{
func
GetAccountNonce
(
client
*
ethclient
.
Client
)
*
sync
.
Map
{
...
@@ -115,7 +125,6 @@ func GetAccountBalance(client *ethclient.Client) {
...
@@ -115,7 +125,6 @@ func GetAccountBalance(client *ethclient.Client) {
select
{
select
{
case
addr
:=
<-
addrChan
:
case
addr
:=
<-
addrChan
:
GetAccBal
(
client
,
addr
)
GetAccBal
(
client
,
addr
)
log
.
Info
(
"tool.Cfg.ContractMap[0][constant.ERC20]:"
,
tool
.
Cfg
.
ContractMap
[
0
][
constant
.
ERC20
])
GetAccountErc20BalanceOf
(
client
,
tool
.
Cfg
.
ContractMap
[
0
][
constant
.
ERC20
],
addr
)
GetAccountErc20BalanceOf
(
client
,
tool
.
Cfg
.
ContractMap
[
0
][
constant
.
ERC20
],
addr
)
GetAccountErc721BalanceOf
(
client
,
tool
.
Cfg
.
ContractMap
[
0
][
constant
.
ERC721
],
addr
)
GetAccountErc721BalanceOf
(
client
,
tool
.
Cfg
.
ContractMap
[
0
][
constant
.
ERC721
],
addr
)
atomic
.
AddInt32
(
&
handleBalanceCount
,
1
)
atomic
.
AddInt32
(
&
handleBalanceCount
,
1
)
...
@@ -147,11 +156,11 @@ func GetAccountErc20BalanceOf(client *ethclient.Client, erc20Addr common.Address
...
@@ -147,11 +156,11 @@ func GetAccountErc20BalanceOf(client *ethclient.Client, erc20Addr common.Address
log
.
Errorf
(
"Get erc20 balance of failed err:%s"
,
err
.
Error
())
log
.
Errorf
(
"Get erc20 balance of failed err:%s"
,
err
.
Error
())
return
return
}
}
of
,
err
=
newERC20
.
Allowance
(
&
bind
.
CallOpts
{},
common
.
HexToAddress
(
"0xfb1bF24c0C7e7C1B89c4A496aACf01aBF26C0B94"
),
toAddr
)
//
of, err = newERC20.Allowance(&bind.CallOpts{}, common.HexToAddress("0xfb1bF24c0C7e7C1B89c4A496aACf01aBF26C0B94"), toAddr)
if
err
!=
nil
{
//
if err != nil {
log
.
Errorf
(
"Get erc20 balance of failed err:%s"
,
err
.
Error
())
//
log.Errorf("Get erc20 balance of failed err:%s", err.Error())
return
//
return
}
//
}
log
.
Infof
(
"%s erc20 balance of is: %s "
,
toAddr
.
Hash
()
.
Hex
(),
of
.
String
())
log
.
Infof
(
"%s erc20 balance of is: %s "
,
toAddr
.
Hash
()
.
Hex
(),
of
.
String
())
}
}
...
@@ -190,6 +199,7 @@ func ReadWriteCase(prv *ecdsa.PrivateKey, funcStr string, nonce *big.Int, readWr
...
@@ -190,6 +199,7 @@ func ReadWriteCase(prv *ecdsa.PrivateKey, funcStr string, nonce *big.Int, readWr
}
}
auth
.
Nonce
=
nonce
auth
.
Nonce
=
nonce
auth
.
NoSend
=
true
auth
.
NoSend
=
true
auth
.
GasLimit
=
500000
auth
.
GasPrice
=
big
.
NewInt
(
1000000000000
)
auth
.
GasPrice
=
big
.
NewInt
(
1000000000000
)
tx
:=
&
types
.
Transaction
{}
tx
:=
&
types
.
Transaction
{}
switch
funcStr
{
switch
funcStr
{
...
@@ -269,6 +279,7 @@ func OneReadWriteCase(prv *ecdsa.PrivateKey, funcStr string, nonce *big.Int, rea
...
@@ -269,6 +279,7 @@ func OneReadWriteCase(prv *ecdsa.PrivateKey, funcStr string, nonce *big.Int, rea
}
}
auth
.
Nonce
=
nonce
auth
.
Nonce
=
nonce
auth
.
NoSend
=
true
auth
.
NoSend
=
true
auth
.
GasLimit
=
500000
auth
.
GasPrice
=
big
.
NewInt
(
1000000000000
)
auth
.
GasPrice
=
big
.
NewInt
(
1000000000000
)
tx
:=
&
types
.
Transaction
{}
tx
:=
&
types
.
Transaction
{}
switch
funcStr
{
switch
funcStr
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment