eosessentials / eos-java-rpc-wrapper Goto Github PK
View Code? Open in Web Editor NEWHome Page: http://www.eos42.io
License: MIT License
Home Page: http://www.eos42.io
License: MIT License
Exception in thread "main" client.exception.EosApiException: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "context_free" (class client.domain.common.ActionTrace), not marked as ignorable (8 known properties: "trx_id", "act", "inline_traces", "console", "receipt", "cpu_usage", "elapsed", "total_cpu_usage"])
at [Source: (okhttp3.ResponseBody$BomAwareReader); line: 1, column: 1381] (through reference chain: client.domain.response.history.action.Actions["actions"]->java.util.ArrayList[0]->client.domain.response.history.action.Action["action_trace"]->client.domain.common.ActionTrace["context_free"])
at client.impl.EosApiServiceGenerator.executeSync(EosApiServiceGenerator.java:48)
at client.impl.EosApiRestClientImpl.getActions(EosApiRestClientImpl.java:217)
at io.eos8.server.wrapper.ActionTest.getActions(ActionTest.java:60)
at io.eos8.server.wrapper.ActionTest.main(ActionTest.java:37)
Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "context_free" (class client.domain.common.ActionTrace), not marked as ignorable (8 known properties: "trx_id", "act", "inline_traces", "console", "receipt", "cpu_usage", "elapsed", "total_cpu_usage"])
at [Source: (okhttp3.ResponseBody$BomAwareReader); line: 1, column: 1381] (through reference chain: client.domain.response.history.action.Actions["actions"]->java.util.ArrayList[0]->client.domain.response.history.action.Action["action_trace"]->client.domain.common.ActionTrace["context_free"])
at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:60)
at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:822)
at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:1152)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1589)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1567)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:294)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:127)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:288)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:286)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:245)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:27)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:127)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:288)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151)
at com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:1611)
at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1203)
at retrofit2.converter.jackson.JacksonResponseBodyConverter.convert(JacksonResponseBodyConverter.java:32)
at retrofit2.converter.jackson.JacksonResponseBodyConverter.convert(JacksonResponseBodyConverter.java:23)
at retrofit2.ServiceMethod.toResponse(ServiceMethod.java:122)
at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:217)
at retrofit2.OkHttpCall.execute(OkHttpCall.java:180)
at client.impl.EosApiServiceGenerator.executeSync(EosApiServiceGenerator.java:40)
... 3 more
Process finished with exit code 1
I am opening another issue for creating an account.
There is an API for creating a wallet, but it doesn't seem like there is an API for creating an account.
Am I right?
This really relates to the previous issue that I posted.
There needs to be some configuration when creating the rest client.
It is something like below when using eosjs
const config = {
chainId: 'aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906',
keyProvider: [ privKey ], // THIS PART
httpEndpoint: 'https://api.eosnewyork.io:443',
verbose: false,
broadcast: true,
sign: true,
expireInSeconds: 60
}
本地搭建的eos节点,无法调用getChainInfo()方法。
EosApiRestClient eosApiRestClient= EosApiClientFactory.newInstance("http://192.168.1.133:8888").newRestClient();
ChainInfo chainInfo = eosApiRestClient.getChainInfo();
代码中eosApiRestClient可以输出,说明连接正常;下面调用getChainInfo()直接报错。
Exception in thread "main" client.exception.EosApiException: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "server_version_string" (class client.domain.response.chain.ChainInfo), not marked as ignorable (12 known properties: "block_cpu_limit", "head_block_producer", "head_block_num", "block_net_limit", "chain_id", "server_version", "head_block_time", "virtual_block_net_limit", "last_irreversible_block_id", "last_irreversible_block_num", "virtual_block_cpu_limit", "head_block_id"]) at [Source: (okhttp3.ResponseBody$BomAwareReader); line: 1, column: 571] (through reference chain: client.domain.response.chain.ChainInfo["server_version_string"]) at client.impl.EosApiServiceGenerator.executeSync(EosApiServiceGenerator.java:48) at client.impl.EosApiRestClientImpl.getChainInfo(EosApiRestClientImpl.java:48) at eos.eos.App.transfer(App.java:47) at eos.eos.App.main(App.java:95)
Error is as below:
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "server_version_string"
Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "server_version_string" (class client.domain.response.chain.ChainInfo), not marked as ignorable (12 known properties: "block_cpu_limit", "head_block_producer", "head_block_num", "block_net_limit", "chain_id", "head_block_id", "head_block_time", "virtual_block_net_limit", "last_irreversible_block_id", "last_irreversible_block_num", "virtual_block_cpu_limit", "server_version"])
at [Source: (okhttp3.ResponseBody$BomAwareReader); line: 1, column: 582] (through reference chain: client.domain.response.chain.ChainInfo["server_version_string"])
at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:822)
at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:1152)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1582)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1560)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:294)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151)
at com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:1611)
at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1203)
at retrofit2.converter.jackson.JacksonResponseBodyConverter.convert(JacksonResponseBodyConverter.java:32)
at retrofit2.converter.jackson.JacksonResponseBodyConverter.convert(JacksonResponseBodyConverter.java:23)
at retrofit2.ServiceMethod.toResponse(ServiceMethod.java:122)
at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:217)
at retrofit2.OkHttpCall.execute(OkHttpCall.java:180)
at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall.execute(ExecutorCallAdapterFactory.java:91)
at client.impl.EosApiServiceGenerator.executeSync(EosApiServiceGenerator.java:40)
at client.impl.EosApiRestClientImpl.getChainInfo(EosApiRestClientImpl.java:48)
at sharkwallet.blockfish.io.sharkwallet.WalletFragment$pushTransaction.doInBackground(WalletFragment.java:259)
at sharkwallet.blockfish.io.sharkwallet.WalletFragment$pushTransaction.doInBackground(WalletFragment.java:252)
at android.os.AsyncTask$2.call(AsyncTask.java:333)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
My code:
EosApiRestClient eosApiRestClient = EosApiClientFactory.newInstance(burl).newRestClient();
ChainInfo chainInfo = eosApiRestClient.getChainInfo();
Log.v(TAG+"/chain", gson.toJson(chainInfo));
Could anyone help me fix this?
BTW, I used it in android studio.
SignedPackedTransaction signedPackedTransaction = eosApiRestClient.signTransaction(packedTransaction, Collections.singletonList("EOS7LPJ7YnwYiEHbBLz96fNkt3kf6CDDdesV5EsWoc3u3DJy31V2y"), "chainId");
这里的chainId 是 eosApiRestClient.getChainInfo().getChainId()不?
我这样做调用PushedTransaction pushedTransaction= eosApiRestClient.pushTransaction("none", signedPackedTransaction); 时报错 :
Exception in thread "main" client.exception.EosApiException: Internal Service Error: Provided keys, permissions, and delays do not satisfy declared authorizations
Caused by: java.io.EOFException: \n not found: limit=0 content=…
at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:237)
at okhttp3.internal.http1.Http1Codec.readHeaderLine(Http1Codec.java:215)
at okhttp3.internal.http1.Http1Codec.readResponseHeaders(Http1Codec.java:189)
The code:
`
import client.EosApiClientFactory;
import client.EosApiRestClient;
import client.domain.response.chain.AbiJsonToBin;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
EosApiRestClient eosApiRestClient;
eosApiRestClient = EosApiClientFactory.newInstance("http://127.0.0.1:8888").newRestClient();
//build payload
Map<String, String> arg = new HashMap(4);
arg.put("custacct", "consumer");
arg.put("account", "fimulti");
arg.put("name", "onboard");
AbiJsonToBin data = eosApiRestClient.abiJsonToBin("currency", "transfer", arg);
`
I think that for this library to be more than a wrapper, it needs to implement native signing (ecc) in Java using openssl or some solution. The current implementation does not allow it and it is much faster to sign locally.
Is this project already uploaded artifacts to the Central Repository?
From what I search, I don't know where I could find.
EosApiRestClient eosApiRestClient = EosApiClientFactory.newInstance("http://127.0.0.1:8888").newRestClient();
/* Create the json array of arguments */
Map<String, String> a = new HashMap<>(4);
a.put("from", "sean");
a.put("to", "hyq");
a.put("quantity", "0.0100 EOS");
a.put("memo", "My First Transaction");
AbiJsonToBin data = eosApiRestClient.abiJsonToBin("hyq.token", "transfer", a);
/* Get the head block */
Block block = eosApiRestClient.getBlock(eosApiRestClient.getChainInfo().getHeadBlockId());
/* Create Transaction Action Authorization */
TransactionAuthorization transactionAuthorization = new TransactionAuthorization();
transactionAuthorization.setActor("sean");
transactionAuthorization.setPermission("active");
/* Create Transaction Action */
TransactionAction transactionAction = new TransactionAction();
transactionAction.setAccount("sean");
transactionAction.setName("transfer");
transactionAction.setData(data.getBinargs());
transactionAction.setAuthorization(Collections.singletonList(transactionAuthorization));
/* Create a transaction */
PackedTransaction packedTransaction = new PackedTransaction();
packedTransaction.setRefBlockPrefix(block.getRefBlockPrefix().toString());
packedTransaction.setRefBlockNum(block.getBlockNum().toString());
packedTransaction.setExpiration("2018-06-11T14:53:59.000");
packedTransaction.setRegion("0");
packedTransaction.setMax_net_usage_words("0");
packedTransaction.setContextFreeData(Collections.emptyList());
packedTransaction.setContextFreeActions(Collections.emptyList());
packedTransaction.setActions(Collections.singletonList(transactionAction));
/* Sign the Transaction */
SignedPackedTransaction signedPackedTransaction = eosApiRestClient.signTransaction(packedTransaction,
Collections.singletonList("EOS8ZqrdP8ZpZ3Vhujn2hvtCffZcYLheCkrm797uSz7WGseqVXZfM"), block.getId());
/* Push the transaction */
PushedTransaction p = eosApiRestClient.pushTransaction("none", signedPackedTransaction);
Exception in thread "main" client.exception.EosApiException: Internal Service Error: Bad Cast
at client.impl.EosApiServiceGenerator.executeSync(EosApiServiceGenerator.java:48)
at client.impl.EosApiRestClientImpl.signTransaction(EosApiRestClientImpl.java:191)
at client.maintest.main(maintest.java:63)
When i running get action. and get the exception
```Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of long[]
out of START_OBJECT token
at [Source: (okhttp3.ResponseBody$BomAwareReader); line: 1, column: 6446] (through reference chain: client.domain.response.history.action.Actions["actions"]->java.util.ArrayList[5]->client.domain.response.history.action.Action["action_trace"]->client.domain.common.ActionTrace["account_ram_deltas"]->long[][0])
at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:63)
at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1342)
at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1138)
at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1092)
at com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseLongPrimitive(StdDeserializer.java:320)
at com.fasterxml.jackson.databind.deser.std.PrimitiveArrayDeserializers$LongDeser.deserialize(PrimitiveArrayDeserializers.java:771)
at com.fasterxml.jackson.databind.deser.std.PrimitiveArrayDeserializers$LongDeser.deserialize(PrimitiveArrayDeserializers.java:723)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:127)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:288)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:127)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:288)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:286)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:245)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:27)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:127)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:288)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151)
at com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:1611)
at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1203)
at retrofit2.converter.jackson.JacksonResponseBodyConverter.convert(JacksonResponseBodyConverter.java:32)
at retrofit2.converter.jackson.JacksonResponseBodyConverter.convert(JacksonResponseBodyConverter.java:23)
at retrofit2.ServiceMethod.toResponse(ServiceMethod.java:122)
at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:217)
at retrofit2.OkHttpCall.execute(OkHttpCall.java:180)
at client.impl.EosApiServiceGenerator.executeSync(EosApiServiceGenerator.java:40)
... 3 more
您好,我按照readme中的代码组交易并发送,能够发送成功,但是链上的交易记录里action记录中本来应该是hex_data字段的16进制串,现在是data字段的值,原本data字段中的from,to等信息都没有出现,而且现在接收方的资产没有增加,以下是在jungle testnet中的测试交易记录。请问没有到账和action中的问题有关系吗,还是那里本来就该没有值,谢谢!!
{
"timestamp": "2018-09-12T06:36:58.000",
"producer": "owlinthedark",
"confirmed": 0,
"previous": "00d54666d824dc69ad264029ad082bdc58508a34a30149b3f49bdce2419a8ae8",
"transaction_mroot": "c350646314ee0ceb0985cf03018dcfc906cca9b138acbe947d1796cd8e784674",
"action_mroot": "9301d801ad9aa5d0c586ef179a34a6b409c4ee7e888fdacf2ac79a120eb62135",
"schedule_version": 222,
"new_producers": null,
"header_extensions": [],
"producer_signature": "SIG_K1_K4kf9qVifHNboDB5yAp1Z3qCJ9GhV19AeP6DjyGPQTXN6HMEAu85RbrSyLYCKWcqMjCBpKor6JUpiBHL8tmNR3w6qDet69",
"transactions": [
{
"status": "executed",
"cpu_usage_us": 439,
"net_usage_words": 18,
"trx": {
"id": "a1a790dad2b7f8b98fd64219161051843d18ef4899b35e8cf6c32a094514dcfc",
"signatures": [
"SIG_K1_K1SEDGEEDxKsng3FsrHnqzC3xMoCZu2fMhEDWuyRDxF8oWSdWuVpiF9TTA7SEF8dqvB88BBxTbtZ8dNXDeU21EAJiFBmzz"
],
"compression": "none",
"packed_context_free_data": "",
"context_free_data": [],
"packed_trx": "0cb4985b5e46a02e5194000000000160ea540d4d7d7543000000572d3ccdcd0160ea540d4d7d754300000000a8ed32323060ea540d4d7d754350cd540d4d7d7543102700000000000004454f53000000000f74686973206973206120746573742100",
"transaction": {
"expiration": "2018-09-12T06:37:00",
"ref_block_num": 18014,
"ref_block_prefix": 2488348320,
"max_net_usage_words": 0,
"max_cpu_usage_ms": 0,
"delay_sec": 0,
"context_free_actions": [],
"actions": [
{
"account": "churunchenpa",
"name": "transfer",
"authorization": [
{
"actor": "churunchenpa",
"permission": "active"
}
],
"data": "60ea540d4d7d754350cd540d4d7d7543102700000000000004454f53000000000f746869732069732061207465737421"
}
],
"transaction_extensions": []
}
}
}
],
"block_extensions": [],
"id": "00d546671c10099ba6f740e98e232d84ae9fd3b9af72751b4e9510864121595b",
"block_num": 13977191,
"ref_block_prefix": 3913349030
}
Hello,when I use this tool to get chainInfo
ChainInfo chainInfo = eosApiRestClient.getChainInfo();
I have encountered this error
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException
Because some nodes will return one more field,just like 'server_version_string'
However, the program does not add this annotation to the entity class
@JsonIgnoreProperties(ignoreUnknown = true)
Two transaction how to achieve ref-block by rpc
I am using following of Java code while creating account:
Using Java library
eos-java-rpc-wrapper
adyliu/jeos
Using
Jungle2 testnet
Chain Id of jungle2 testnet:
038f4b0fc8ff18a4f0842a8f0564611f6e96e8535901dd45e43ac8691a1c4dca
The Following java code
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import client.EosApiClientFactory;
import client.EosApiRestClient;
import client.domain.common.transaction.PackedTransaction;
import client.domain.common.transaction.SignedPackedTransaction;
import client.domain.common.transaction.TransactionAction;
import client.domain.common.transaction.TransactionAuthorization;
import client.domain.response.chain.AbiJsonToBin;
import client.domain.response.chain.Block;
import client.domain.response.chain.transaction.PushedTransaction;
public class CreateAccount {
public static void main(String[] args) {
EosApiRestClient eosApiRestClient = EosApiClientFactory.newInstance("http://jungle2.cryptolions.io:8888").newRestClient();
/* Create the json array of arguments */
Map<String, String> args1 = new HashMap<>(4);
args1.put("from", "abontester12"); // SENDER (MY PRE-GENERATED EOS ACCOUNT)
args1.put("to", "eosio"); // RECEIVER
args1.put("quantity", "0.1000 EOS"); // AMOUNT
args1.put("memo", "My First Transaction"); // JUST MEMO
AbiJsonToBin data = eosApiRestClient.abiJsonToBin("eosio.token", "transfer", args1);
System.out.println("data::"+ data.getBinargs());
Block block = eosApiRestClient.getBlock(eosApiRestClient.getChainInfo().getHeadBlockId());
System.out.println("block::"+ block.getId());
/* Create Transaction Action Authorization */
TransactionAuthorization transactionAuthorization = new TransactionAuthorization();
transactionAuthorization.setActor("abontester12");
transactionAuthorization.setPermission("active");
/* Create Transaction Action */
TransactionAction transactionAction = new TransactionAction();
transactionAction.setAccount("abontester12");
transactionAction.setName("transfer");
transactionAction.setData(data.getBinargs());
transactionAction.setAuthorization(Collections.singletonList(transactionAuthorization));
/* Create a transaction */
PackedTransaction packedTransaction = new PackedTransaction();
packedTransaction.setRefBlockPrefix(block.getRefBlockPrefix().toString());
packedTransaction.setRefBlockNum(block.getBlockNum().toString());
packedTransaction.setExpiration("2019-04-30T14:53:59.000");
packedTransaction.setRegion("0");
packedTransaction.setMax_net_usage_words("0");
packedTransaction.setContextFreeData(Collections.emptyList());
packedTransaction.setContextFreeActions(Collections.emptyList());
packedTransaction.setActions(Collections.singletonList(transactionAction));
SignedPackedTransaction signedPackedTransaction = eosApiRestClient.signTransaction(packedTransaction, Collections.singletonList("EOS6t8Piaew17krZSMM3aZJt6XMawH9HuvDZPABw7kooJRTiUeijD"),"038f4b0fc8ff18a4f0842a8f0564611f6e96e8535901dd45e43ac8691a1c4dca");
/* Push the transaction */
// PushedTransaction = eosApiRestClient.pushTransaction("none", signedPackedTransaction);
PushedTransaction pushedTransaction = eosApiRestClient.pushTransaction("none", signedPackedTransaction);
System.out.println("pushedTransaction=" + pushedTransaction.getTransactionId());
}
}
It gives the following Exception:
INFO: {"code":404,"message":"Not Found","error":{"code":0,"name":"exception","what":"unspecified","details":[{"message":"Unknown Endpoint","file":"http_plugin.cpp","line_number":328,"method":"handle_http_request"}]}}
Apr 24, 2019 3:53:08 PM okhttp3.internal.platform.Platform log
INFO: <-- END HTTP (210-byte body)
Exception in thread "main" client.exception.EosApiException: Not Found: unspecified
at client.impl.EosApiServiceGenerator.executeSync(EosApiServiceGenerator.java:55)
at client.impl.EosApiRestClientImpl.signTransaction(EosApiRestClientImpl.java:197)
at com.apiservice.controller.CreateAccount.main(CreateAccount.java:61)
pom.xml is:
<dependency>
<groupId>io.jafka</groupId>
<artifactId>jeos</artifactId>
<version>0.9.15</version>
</dependency>
<dependency>
<groupId>com.github.EOSEssentials</groupId>
<artifactId>eos-java-rpc-wrapper</artifactId>
<version>master-SNAPSHOT</version>
</dependency>
even tried with chain id jungle2 testnet
chain id : e70aaab8997e1dfce58fbfac80cbbb8fecec7b99cf982a9444273cbc64c41473
If I create a new account in eos use eos-java-rpc-wrapeer,what should I do ,Can you give me an example?
I try to call:
EosApiRestClient eosApiRestClient = EosApiClientFactory.newInstance("https://api.eosnewyork.io:443").newRestClient();
Transaction transaction1 = eosApiRestClient.getTransaction("28c1dc1b65a9e2ebf51176a41a17cdbc6d3fbe43357b23fecd8cfd97b419fbe5");
The result is an exception that the transaction can not be found, but I can found it on EOS Tracker.
Anyone could please help me to solve this problem?
use this:
<dependency>
<groupId>com.github.EOSEssentials</groupId>
<artifactId>eos-java-rpc-wrapper</artifactId>
<version>master-RELEASE</version>
</dependency>
can not find the package
error:Missing artifact com.github.EOSEssentials:eos-java-rpc-wrapper:jar:master-SNAPSHOT
在settings.xml中已经配置
jitpack.io
https://jitpack.io
求大佬解惑!谢谢
val client = EosApiClientFactory.newInstance("https://jungle2.cryptolions.io/").newRestClient()
val params = mapOf(
"from" to from.name,
"to" to to.name,
"quantity" to "0.1000 EOS",
"memo" to "test transaction"
)
val data = client.abiJsonToBin(from.name, "transfer", params)
last line above failed with exception:
client.exception.EosApiException: Internal Service Error: No ABI found
When running getBlock() in EOS mainnnet, got exception as below:
(Block Number: 13981050)
client.exception.EosApiException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of java.lang.String[]
out of START_OBJECT token
at [Source: (okhttp3.ResponseBody$BomAwareReader); line: 1, column: 368] (through reference chain: client.domain.response.chain.Block["new_producers"])
at client.impl.EosApiServiceGenerator.executeSync(EosApiServiceGenerator.java:48)
at client.impl.EosApiRestClientImpl.getBlock(EosApiRestClientImpl.java:53)
at com.bithank.eos.Scanner.main(Scanner.java:59)
Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of java.lang.String[]
out of START_OBJECT token
at [Source: (okhttp3.ResponseBody$BomAwareReader); line: 1, column: 368] (through reference chain: client.domain.response.chain.Block["new_producers"])
at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:63)
at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1342)
at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1138)
at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1092)
at com.fasterxml.jackson.databind.deser.std.StringArrayDeserializer.handleNonArray(StringArrayDeserializer.java:314)
at com.fasterxml.jackson.databind.deser.std.StringArrayDeserializer.deserialize(StringArrayDeserializer.java:132)
at com.fasterxml.jackson.databind.deser.std.StringArrayDeserializer.deserialize(StringArrayDeserializer.java:21)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:127)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:288)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151)
at com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:1611)
at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1203)
at retrofit2.converter.jackson.JacksonResponseBodyConverter.convert(JacksonResponseBodyConverter.java:32)
at retrofit2.converter.jackson.JacksonResponseBodyConverter.convert(JacksonResponseBodyConverter.java:23)
at retrofit2.ServiceMethod.toResponse(ServiceMethod.java:122)
at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:217)
at retrofit2.OkHttpCall.execute(OkHttpCall.java:180)
at client.impl.EosApiServiceGenerator.executeSync(EosApiServiceGenerator.java:40)
... 2 more
Hey folks! Please implement toString() methods using java.lang.StringBuilder for all API responses(classes Block, Account etc.). Cheers!
I would like to test if it it works well to get account's info and transfer EOS using this project.
First, I created the rest client like below and tested to see it if connects.
eosApiRestClient.getAccount("MY ACCT NAME") doesn't seem to work
EosApiRestClient<?> eosApiRestClient =
EosApiClientFactory.newInstance("https://api.eosnewyork.io:443").newRestClient();
// Working
System.out.println(eosApiRestClient.getChainInfo().getChainId());
System.out.println(eosApiRestClient.getChainInfo().getHeadBlockNum());
System.out.println(eosApiRestClient.getChainInfo().getLastIrreversibleBlockNum());
// Working
Block block = eosApiRestClient.getBlock(eosApiRestClient.getChainInfo().getHeadBlockId());
System.out.println(block);
// Not Working
// System.out.println(eosApiRestClient.getAccount("MY ACCT NAME"));
From my experience of using eosjs, you need the private key of sender's account to transfer EOS
const config = {
chainId: 'aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906',
keyProvider: [ privKey ], // LIKE HERE
httpEndpoint: 'https://api.eosnewyork.io:443',
verbose: false, // API activity
broadcast: true,
sign: true,
expireInSeconds: 60
}
Is this part where you inject the private key?
eosApiRestClient.signTransaction(packedTransaction, Collections.singletonList("EOS7LPJ7YnwYiEHbBLz96fNkt3kf6CDDdesV5EsWoc3u3DJy31V2y"), "chainId");
/* Create the rest client */
EosApiRestClient eosApiRestClient = EosApiClientFactory.newInstance("https://api.eosnewyork.io:443").newRestClient();
/* Create the json array of arguments */
Map<String, String> args = new HashMap<>(4);
args.put("from", "currency"); // SENDER (MY PRE-GENERATED EOS ACCOUNT)
args.put("to", "eosio"); // RECEIVER
args.put("quantity", "0.1000 EOS"); // AMOUNT
args.put("memo", "My First Transaction"); // JUST MEMO
AbiJsonToBin data = eosApiRestClient.abiJsonToBin("currency", "transfer", args);```
/* Get the head block */
Block block = eosApiRestClient.getBlock(eosApiRestClient.getChainInfo().getHeadBlockId());
/* Create Transaction Action Authorization */
TransactionAuthorization transactionAuthorization = new TransactionAuthorization();
transactionAuthorization.setActor("currency");
transactionAuthorization.setPermission("active");
/* Create Transaction Action */
TransactionAction transactionAction = new TransactionAction();
transactionAction.setAccount("currency");
transactionAction.setName("transfer");
transactionAction.setData(data.getBinargs());
transactionAction.setAuthorization(Collections.singletonList(transactionAuthorization));
/* Create a transaction */
PackedTransaction packedTransaction = new PackedTransaction();
packedTransaction.setRefBlockPrefix(block.getRefBlockPrefix().toString());
packedTransaction.setRefBlockNum(block.getBlockNum().toString());
packedTransaction.setExpiration("2018-05-10T18:38:19");
packedTransaction.setRegion("0");
packedTransaction.setMax_net_usage_words("0");
packedTransaction.setContextFreeData(Collections.emptyList());
packedTransaction.setContextFreeActions(Collections.emptyList());
packedTransaction.setActions(Collections.singletonList(transactionAction));
/* Sign the Transaction */
SignedPackedTransaction signedPackedTransaction = eosApiRestClient.signTransaction(packedTransaction, Collections.singletonList("EOS7LPJ7YnwYiEHbBLz96fNkt3kf6CDDdesV5EsWoc3u3DJy31V2y"), "chainId");
/* Push the transaction */
PushedTransaction = eosApiRestClient.pushTransaction("none", signedPackedTransaction);
Hi, there, Could this wrapper installed by gradle?
I try to install it in this way, but it didn't help
implementation 'com.github.EOSEssentials:eos-java-rpc-wrapper:master'
i just meet a bug throw out an exception. because in new api version, it added field context_free
, but the transaction still included in the network.
This is a critical bug. because in exchange trading. when user withdraw their fund. we don't know it success or not because the response from eos node was marked with an exception.
you guys should ignore unknown field in the source code to make the stable version when eos node change their api. I lost 3k$ because this bug. and we don't have any release version for this. you should warning user who use this library for stable version or they should do json parser by their self
hex_data
to data
resolves problem.program package client.domain.response.chain.ChainInfo no variable [serverVersionString]
Can anyone give me some choice for local wallet.i don't want to install whole eos for keosd.Thanks.^_^
the push transaction need packed transaction
Hi
I am trying to run example you have mentioned in your documentation. My Transaction is perfect and have keys in it. I am still getting:
Response{protocol=http/1.1, code=500, message=Internal Server Error, url=http://127.0.0.1:8900/v1/wallet/sign_transaction} Exception in thread "main" io.overledger.client.exception.EosApiException: Internal Service Error: Missing public key
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.