|
| 1 | +package org.tron.core.jsonrpc; |
| 2 | + |
| 3 | + |
| 4 | +import static org.tron.common.utils.Commons.decodeFromBase58Check; |
| 5 | +import static org.tron.keystore.Wallet.generateRandomBytes; |
| 6 | + |
| 7 | +import com.google.protobuf.ByteString; |
| 8 | +import org.junit.Assert; |
| 9 | +import org.junit.Test; |
| 10 | +import org.tron.common.utils.ByteArray; |
| 11 | +import org.tron.core.capsule.BlockCapsule; |
| 12 | +import org.tron.core.services.jsonrpc.JsonRpcApiUtil; |
| 13 | +import org.tron.protos.Protocol.Block; |
| 14 | +import org.tron.protos.Protocol.BlockHeader; |
| 15 | +import org.tron.protos.Protocol.BlockHeader.raw; |
| 16 | +import org.tron.protos.contract.SmartContractOuterClass.TriggerSmartContract; |
| 17 | + |
| 18 | +public class ApiUtilTest { |
| 19 | + |
| 20 | + @Test |
| 21 | + public void testGetBlockID() { |
| 22 | + byte[] mockedHash = generateRandomBytes(128); |
| 23 | + // common parent block |
| 24 | + BlockCapsule blockCapsule = new BlockCapsule(Block.newBuilder().setBlockHeader( |
| 25 | + BlockHeader.newBuilder().setRawData( |
| 26 | + raw.newBuilder().setParentHash(ByteString.copyFrom(mockedHash)) |
| 27 | + .setNumber(0))).build()); |
| 28 | + String blockIdStr = JsonRpcApiUtil.getBlockID(blockCapsule.getInstance()); |
| 29 | + Assert.assertEquals(2 + 64, blockIdStr.length()); |
| 30 | + } |
| 31 | + |
| 32 | + @Test |
| 33 | + public void testTriggerCallContract() { |
| 34 | + byte[] address = decodeFromBase58Check("TEPRbQxXQEpHpeEx8tK5xHVs7NWudAAZgu"); |
| 35 | + //nile usdt |
| 36 | + byte[] contractAddress = decodeFromBase58Check("TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf"); |
| 37 | + long callValue = 100; |
| 38 | + //transfer to address TVjsyZ7fYF3qLF6BQgPmTEZy1xrNNyVAAA with 10*10^6 |
| 39 | + byte[] data = ByteArray.fromHexString("a9059cbb000000000000000000000000d8dd39e2dea27a4000" |
| 40 | + + "1884901735e3940829bb440000000000000000000000000000000000000000000000000000000000989680"); |
| 41 | + long tokenValue = 10; |
| 42 | + String tokenId = "1000001"; |
| 43 | + TriggerSmartContract triggerSmartContract = JsonRpcApiUtil.triggerCallContract(address, |
| 44 | + contractAddress, callValue, data, tokenValue, tokenId); |
| 45 | + Assert.assertNotNull(triggerSmartContract); |
| 46 | + } |
| 47 | +} |
0 commit comments