henry@BOSAGORA ~/work/boa/Github/faucet (git)-[v0.x.x] % ./bin/faucet http://eu-002.bosagora.io:2826
[main(----) INF] The address of node is http://eu-002.bosagora.io:2826
Exception while connecting: std.json.JSONException@../../../../.dub/packages/vibe-d-0.9.2/vibe-d/data/vibe/data/json.d(1824): Expected JSON object, got string
----------------
??:? pure @safe void std.exception.bailOut!(std.json.JSONException).bailOut(immutable(char)[], ulong, scope const(char)[]) [0x106b41818]
??:? pure @safe bool std.exception.enforce!(std.json.JSONException).enforce!(bool).enforce(bool, lazy const(char)[], immutable(char)[], ulong) [0x106b41725]
??:? pure @safe void vibe.data.json.enforceJson!("../../../../.dub/packages/vibe-d-0.9.2/vibe-d/data/vibe/data/json.d", 1824uL).enforceJson(bool, lazy immutable(char)[]) [0x106b7bed1]
??:? @safe void vibe.data.json.JsonSerializer.readDictionary!(vibe.data.serialization.Traits!(agora.common.BitField.BitField!(uint).BitField, vibe.data.serialization.DefaultPolicy).Traits).readDictionary(scope void delegate(immutable(char)[]) @safe) [0x106b81c54]
??:? @safe agora.common.BitField.BitField!(uint).BitField vibe.data.serialization.deserializeValueImpl!(vibe.data.json.JsonSerializer, vibe.data.serialization.DefaultPolicy).deserializeValueDeduced!(agora.common.BitField.BitField!(uint).BitField).deserializeValueDeduced(ref vibe.data.json.JsonSerializer) [0x106b81b8c]
??:? @safe agora.common.BitField.BitField!(uint).BitField vibe.data.serialization.deserializeValueImpl!(vibe.data.json.JsonSerializer, vibe.data.serialization.DefaultPolicy).deserializeValue!(agora.common.BitField.BitField!(uint).BitField).deserializeValue(ref vibe.data.json.JsonSerializer) [0x106b8124c]
??:? @safe void vibe.data.serialization.deserializeValueImpl!(vibe.data.json.JsonSerializer, vibe.data.serialization.DefaultPolicy).deserializeValueDeduced!(agora.consensus.data.Block.BlockHeader).deserializeValueDeduced(ref vibe.data.json.JsonSerializer).__lambda2!(immutable(char)[]).__lambda2(immutable(char)[]) [0x106b80f46]
??:? @safe int vibe.data.json.JsonSerializer.readDictionary!(vibe.data.serialization.Traits!(agora.consensus.data.Block.BlockHeader, vibe.data.serialization.DefaultPolicy).Traits).readDictionary(scope void delegate(immutable(char)[]) @safe).__foreachbody3(ref immutable(char)[], ref vibe.data.json.Json) [0x106b81585]
??:? _aaApply2 [0x1070fd91d]
??:? @safe void vibe.data.json.JsonSerializer.readDictionary!(vibe.data.serialization.Traits!(agora.consensus.data.Block.BlockHeader, vibe.data.serialization.DefaultPolicy).Traits).readDictionary(scope void delegate(immutable(char)[]) @safe) [0x106b80c5f]
??:? @safe agora.consensus.data.Block.BlockHeader vibe.data.serialization.deserializeValueImpl!(vibe.data.json.JsonSerializer, vibe.data.serialization.DefaultPolicy).deserializeValueDeduced!(agora.consensus.data.Block.BlockHeader).deserializeValueDeduced(ref vibe.data.json.JsonSerializer) [0x106b80910]
??:? @safe agora.consensus.data.Block.BlockHeader vibe.data.serialization.deserializeValueImpl!(vibe.data.json.JsonSerializer, vibe.data.serialization.DefaultPolicy).deserializeValue!(agora.consensus.data.Block.BlockHeader).deserializeValue(ref vibe.data.json.JsonSerializer) [0x106b80533]
??:? @safe void vibe.data.serialization.deserializeValueImpl!(vibe.data.json.JsonSerializer, vibe.data.serialization.DefaultPolicy).deserializeValueDeduced!(agora.consensus.data.Block.Block).deserializeValueDeduced(ref vibe.data.json.JsonSerializer).__lambda2!(immutable(char)[]).__lambda2(immutable(char)[]) [0x106b8039c]
??:? @safe int vibe.data.json.JsonSerializer.readDictionary!(vibe.data.serialization.Traits!(agora.consensus.data.Block.Block, vibe.data.serialization.DefaultPolicy).Traits).readDictionary(scope void delegate(immutable(char)[]) @safe).__foreachbody3(ref immutable(char)[], ref vibe.data.json.Json) [0x106b80825]
??:? _aaApply2 [0x1070fd91d]
??:? @safe void vibe.data.json.JsonSerializer.readDictionary!(vibe.data.serialization.Traits!(agora.consensus.data.Block.Block, vibe.data.serialization.DefaultPolicy).Traits).readDictionary(scope void delegate(immutable(char)[]) @safe) [0x106b802af]
??:? @safe agora.consensus.data.Block.Block vibe.data.serialization.deserializeValueImpl!(vibe.data.json.JsonSerializer, vibe.data.serialization.DefaultPolicy).deserializeValueDeduced!(agora.consensus.data.Block.Block).deserializeValueDeduced(ref vibe.data.json.JsonSerializer) [0x106b8009d]
??:? @safe agora.consensus.data.Block.Block vibe.data.serialization.deserializeValueImpl!(vibe.data.json.JsonSerializer, vibe.data.serialization.DefaultPolicy).deserializeValue!(agora.consensus.data.Block.Block).deserializeValue(ref vibe.data.json.JsonSerializer) [0x106b7ffc3]
??:? @safe const(agora.consensus.data.Block.Block) vibe.data.serialization.deserializeValueImpl!(vibe.data.json.JsonSerializer, vibe.data.serialization.DefaultPolicy).deserializeValueDeduced!(const(agora.consensus.data.Block.Block)).deserializeValueDeduced(ref vibe.data.json.JsonSerializer) [0x106b7ff61]
??:? @safe const(agora.consensus.data.Block.Block) vibe.data.serialization.deserializeValueImpl!(vibe.data.json.JsonSerializer, vibe.data.serialization.DefaultPolicy).deserializeValue!(const(agora.consensus.data.Block.Block)).deserializeValue(ref vibe.data.json.JsonSerializer) [0x106b7fb63]
??:? @safe void vibe.data.serialization.deserializeValueImpl!(vibe.data.json.JsonSerializer, vibe.data.serialization.DefaultPolicy).deserializeValueDeduced!(const(agora.consensus.data.Block.Block)[]).deserializeValueDeduced(ref vibe.data.json.JsonSerializer).__lambda3() [0x106b7fabd]
??:? @safe void vibe.data.json.JsonSerializer.readArray!(vibe.data.serialization.Traits!(const(agora.consensus.data.Block.Block)[], vibe.data.serialization.DefaultPolicy).Traits).readArray(scope void delegate(ulong) @safe, scope void delegate() @safe) [0x106b7f9bc]
??:? @safe const(agora.consensus.data.Block.Block)[] vibe.data.serialization.deserializeValueImpl!(vibe.data.json.JsonSerializer, vibe.data.serialization.DefaultPolicy).deserializeValueDeduced!(const(agora.consensus.data.Block.Block)[]).deserializeValueDeduced(ref vibe.data.json.JsonSerializer) [0x106b7f85f]
??:? @safe const(agora.consensus.data.Block.Block)[] vibe.data.serialization.deserializeValueImpl!(vibe.data.json.JsonSerializer, vibe.data.serialization.DefaultPolicy).deserializeValue!(const(agora.consensus.data.Block.Block)[]).deserializeValue(ref vibe.data.json.JsonSerializer) [0x106b7f808]
??:? @safe const(agora.consensus.data.Block.Block)[] vibe.data.serialization.deserializeWithPolicy!(vibe.data.json.JsonSerializer, vibe.data.serialization.DefaultPolicy, const(agora.consensus.data.Block.Block)[], vibe.data.json.Json).deserializeWithPolicy(vibe.data.json.Json) [0x106b7f7eb]
??:? @safe const(agora.consensus.data.Block.Block)[] vibe.data.serialization.deserialize!(vibe.data.json.JsonSerializer, const(agora.consensus.data.Block.Block)[], vibe.data.json.Json).deserialize(vibe.data.json.Json) [0x106b7f779]
??:? @safe const(agora.consensus.data.Block.Block)[] vibe.data.json.deserializeJson!(const(agora.consensus.data.Block.Block)[]).deserializeJson(vibe.data.json.Json) [0x106b7f419]
??:? @safe const(agora.consensus.data.Block.Block)[] vibe.web.rest.executeClientMethod!(agora.api.FullNode.API, 4, vibe.web.rest.RestInterfaceClient!(agora.api.FullNode.API).RestInterfaceClient.__mixin24.getBlocksFrom(ulong, uint).block_height, vibe.web.rest.RestInterfaceClient!(agora.api.FullNode.API).RestInterfaceClient.__mixin24.getBlocksFrom(ulong, uint).max_blocks).executeClientMethod(scope ref const(vibe.web.internal.rest.common.RestInterface!(agora.api.FullNode.API).RestInterface), void delegate(vibe.http.client.HTTPClientRequest) @safe, scope void delegate(vibe.http.client.HTTPClientRequest, scope vibe.core.stream.InputStream) @safe) [0x106b6870d]
??:? @safe const(agora.consensus.data.Block.Block)[] vibe.web.rest.RestInterfaceClient!(agora.api.FullNode.API).RestInterfaceClient.__mixin24.getBlocksFrom(ulong, uint) [0x106b680f1]
??:? @safe bool faucet.main.State.update(agora.api.FullNode.API, agora.common.Types.Height) [0x106b9029b]
??:? void faucet.main.setup(ref faucet.main.State, agora.api.FullNode.API, uint) [0x106b9098b]
??:? _Dmain [0x106b91415]
Usage: ./faucet <address>
Where <address> is a http endpoint, such as 'http://192.168.0.42:8080'