From a472334b7e4372c58d634e542493b75928b2b5ae Mon Sep 17 00:00:00 2001 From: zhaoguangwei Date: Fri, 31 May 2019 11:37:40 +0800 Subject: [PATCH] IntegrationTest4Contract.java can run OK. for String[]; --- .../jd/blockchain/intgr/IntegrationBase.java | 32 +++++++++++++++++- .../src/test/resources/contract.jar | Bin 7914 -> 8016 bytes 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationBase.java b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationBase.java index 232d5816..3065da89 100644 --- a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationBase.java +++ b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationBase.java @@ -110,6 +110,8 @@ public class IntegrationBase { TransactionTemplate txTpl = blockchainService.newTransaction(ledgerHash); txTpl.dataAccounts().register(dataAccount.getIdentity()); txTpl.dataAccount(dataAccount.getAddress()).set("total", 200, -1); +// txTpl.dataAccount(dataAccount.getAddress()).set("param1", "v", -1); +// txTpl.dataAccount(dataAccount.getAddress()).set("param2", 200, -1); // 签名; PreparedTransaction ptx = txTpl.prepare(); @@ -473,6 +475,7 @@ public class IntegrationBase { // execute the contract; testContractExe(adminKey, ledgerHash, keyPairResponse.keyPair, blockchainService, ledgerRepository); + testContractExe1(adminKey, ledgerHash, keyPairResponse.keyPair, blockchainService, ledgerRepository); return block; } @@ -490,7 +493,6 @@ public class IntegrationBase { // contractDeployKey.getAddress().toBase58(),321123); txTpl.contract(contractDeployKey.getAddress(),AssetContract2.class).issue(byteObj, dataKey.getAddress().toBase58(),Bytes.fromString("123321")); -// txTpl.contract(contractDeployKey.getAddress(),AssetContract2.class).issue(byteObj,dataKey.getAddress().toBase58(),123456); // 签名; PreparedTransaction ptx = txTpl.prepare(); @@ -507,6 +509,34 @@ public class IntegrationBase { assertEquals("100",kvDataEntries[0].getValue().toString()); } + private static void testContractExe1(AsymmetricKeypair adminKey, HashDigest ledgerHash, BlockchainKeypair dataKey, + BlockchainService blockchainService,LedgerRepository ledgerRepository) { + LedgerInfo ledgerInfo = blockchainService.getLedger(ledgerHash); + LedgerBlock previousBlock = blockchainService.getBlock(ledgerHash, ledgerInfo.getLatestBlockHeight() - 1); + + // 定义交易; + TransactionTemplate txTpl = blockchainService.newTransaction(ledgerHash); + + AssetContract2 assetContract = txTpl.contract(contractDeployKey.getAddress(), AssetContract2.class); + ContractBizContent contractBizContent = () -> new String[]{"param1","param2"}; + assetContract.issue(contractBizContent,dataKey.getAddress().toBase58(),123456); + + // 签名; + PreparedTransaction ptx = txTpl.prepare(); + ptx.sign(adminKey); + + // 提交并等待共识返回; + TransactionResponse txResp = ptx.commit(); + + // 验证结果; + Assert.assertTrue(txResp.isSuccess()); + assertEquals(ptx.getHash(),txResp.getContentHash()); + LedgerBlock block = ledgerRepository.getBlock(txResp.getBlockHeight()); + KVDataEntry[] kvDataEntries = ledgerRepository.getDataAccountSet(block).getDataAccount(dataKey.getAddress()).getDataEntries(1,2); + assertEquals("value1",kvDataEntries[0].getValue().toString()); + assertEquals(888L,kvDataEntries[1].getValue()); + } + /** * 根据合约构建字节数组; * diff --git a/source/test/test-integration/src/test/resources/contract.jar b/source/test/test-integration/src/test/resources/contract.jar index 3f21f9b388229093ba00383b91e01b4389f40378..7c172d0edcb2a34e5aeecddac90a767afd4c204a 100644 GIT binary patch delta 2196 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 Uva+NS&@s{kMD#EZ__u`o16Qdm)&Kwi delta 2123 zcmZ9Oc{~%0AIB%xHl)ls=E#v_uFXTP^`u{JD#sIYWaLP44>k5gZMi1q&e=rnW+G?g zifHDpQQ4Rll_gI^d7eD4-#^dykMHOE`Fvlm@4xTw1nPsi$T>S+J}}@{sgSy}L{xZ{ zN!=6!a~|G*EGe4D@Rw2>cupP!)X#@*{X1az9Ds-aSviizsSdaa0s#6D5?$CB_rPt( zhrxy=@(F;*mD(UqbCrfc#1#mn&A^>;_fbUUipR(mW;&&T6w047pQklq5N#Fv_FF>r z+U(+m$=O>0oQ~#?gdgX3*W-O;81rC#A?yVA!)`(k?HgA0=jL0ZH+~*0?5ae!%S!6tE10-!w~^afR;Q8|Z~LiZSjH!OpKKW97}N*Fc>}#>AJsB% z>!DIJLF1VOE~rbr5mmF~?2Cn#fmqb-VmwW#uo$lktkeaM>Bg{LY^SC+UD@`KCTzrr zygjlS2F^C-Zd`%w5gI^70V&*fZ*8)FzpV178o&g=$$I3lz^2 zv!PMIcKzV!s6luf3)6?xy#bal9G~AA7`%F{go?~ZyuiC!`)^O^BfQaFkr7pnw~v%m z*C(xHs0U>ZIe{%$m|2(bxq4TRCB z-?|-G&O7L9cmBYc!soP)UV=l*i;z^iDrZ%*fNn*OWY-c~8u-$@P|b!v+4PXw9i=$O z*X{M3^Z+W6GfDYD%K?|>8ad~M(3j{IeSZnlnuV~26OoTnlpP zk;1?)Q7#=NhhYe$H(7AFFux_f4`c5x4kik&T;9dx?xnS^xhhVY5`t`&B8T9qhaW3?{tazJ*85t=!>w%tJV3=7FQ`WWaw4nXnhCy9+gQ78e zz>{j8ekuSny!>Twpj~@hlgzm-G0QdOb7HB$23f=&LI1X|IHY?%KAhH~Qt8 z72>G;V1&feNiI0CfoWutn5HGyapBTXu@!L``w{Gp_mc?jQEUm(7oUQhT$E zyPMJ^-JU(dc*@d-?e{V?4WsuU`{>XciDyMW1@W?oZ5drx+o;5n3Kl$%zN$^&mkXJB zHZhxYF~%H8TYRNMAMwU9-7!q~+JxV4MV8)InU<6wNjE?;{ZH-Y;2NiO7qgD!kAy5w zgn8C^{u|`+hqu;55V{?&sXt8F=Dj%HV^V`&jgJ!ilLesdcW0jX*gy7Q7N`vZ;DL|d zzXB;Ce66eo{kzoQ?=(u3-nRUEYL?NS#;7kkI6G#Cs*FxCHJ zqBf9ZIjUfUaKr9Q4rD8IH+VTEXup3c=4(Kr*xj#T^ImLyh3Y>SE(0pEwVwtAIN40y z(<&ljbsHp>o|h<1$nJb8z=1CrnI{bIP0*Ui-YrTu3GwS<$TEdfq3F)#cG=YVrg&_6 zET~kX)Kp-$+%p%QxjC;P_3a%B6KG%OgBj&GoajiKZ;J&s9mmp9 zQ^`O|K${f#xHYkjM7$%Fx5;2Kec>@W^Ohxct%w8$K~~4|L%*; z>%+cgcj6O+z-(RvhkjS~YV8=!wIHqTI9EJI7F&>mvUkO*pCX|Ko;L-CtvYX)lW7duo&1yHjYWERNw}c~&Yw8)E z3UvJZ)i{fmFc7uQY%`8zR;`2wapG28R zx1m08S%=xl@H&qTshwK41gPku{{*9{;$%Bf@bn3p*EoeM3fF}Qj+kj4d9`PWlGks! zPDWKmZl05&2P|)!phFekcne$S#tfK7^hh=&N89d&t?1p0%)Z8!ri%G(A;?>XB~nM_ zxQmUJ;bdrE#uYvz={^}QPO5kqX^mj3+KyAdn?T7$Ope(bpF)7Lixi-Q*UD$OamWC5 zX3NF~hc44~Ri$gJrWD8vZU4?6l8yK%W(VrE6$|NUT)IaYm^p^B4!-%l0{j7#lFZ&| zIcH^GlcXW`?0Bm&n>e}!xFb53@x%d`QFkv@a0O!fO}HoZXPr}RRd>D{&2}L3xni0t z@3zAKp$+^6ZO03x(r>u}002n@KwT2o5~S!eAu0g1kVH?62@|18?oO