You can try Nethereum, it's available on Github.
It is currently in alpha stage, and provides an RPC client API similar to Web3. Including:
JSON RPC methods
Function call / transaction sending (encoding / decoding parameters)
Event filtering creation (encoding of parameters / decoding of topics)
Linux / OSX support as it is developed ...
To expand the other response, to provide offline transaction signing in Nethereum you can do the following:
First, you will need your private key, and sender address. You can retrieve the sender address from your private key using Nethereum.Core.Signing.Crypto.EthECKey.GetPublicAddress(privateKey); if you only have the private key.
var privateKey = "...
Try the Nethereum.Portable which has a wider compatibility. It includes Web3,RPC, ABI, Hex and supporting libraries.
In the future all the libraries will target netstandard 1.2 when is widely available.
There is an example now using Nethereum Portable, Xamarin.Forms and MVVM Cross for a portable example using UWP (Windows 10, Phone, Xbox, Raspberry PI), ...
I happened to stumble upon the same problem and after weeks of trial and error this worked for me:
var web3 = new Nethereum.Geth.Web3Geth("http://127.0.0.1:8454");
var mine = await web3.Miner.Start.SendRequestAsync(6);
NB:// please use the local address and port that applies to you, mine in this case is 127.0.0.1:8454
A great course is offered by Coursera which was developed by Princeton University. Titled, Bitcoin and Cryptocurrency Technologies (and it's free). Even though it is a little outdated and not specific to Hyperledger, you'll build a great platform for understanding key concepts.
Any introduction wouldn't be complete without mentioning the various ...
Microsoft came up with plugin for smart contract development using Solidity in Visual Studio.
You can develop Ethereum smart contracts using Solidity and deploy to Testing network of Ethereum Blockchain, where you will get around 1000 dumy ETH to test your application.
In addition to setting the request parameter in the payload, you'll need to make the POST request to the correct URI as well.
So where you wrote:
using(var r = new HttpRequestMessage(HttpMethod.Post, "https://api.sandbox.gemini.com"))
you'll need something like:
var request = "/v1/balances"; // or whatever endpoint you're trying to use
Nethermind is a full .NET Core implementation
You can download Nethermind from here https://github.com/NethermindEth/nethermind/releases
It works with mainnet, rinkeby, goerli, ropsten and private chains.
Give us a shout on gitter if need any guidance
I didn't use Nethereum by myself, but why won't you use such code (taken from here):
var transactionMessage = new TransferFunction
FromAddress = senderAddress,
To = newAddress,
TokenAmount = 1000
var transferHandler = web3.Eth.GetContractTransactionHandler<TransferFunction>();
var transferReceipt = await transferHandler....
I can see the price that you are using is rather low already (it needs to be converted from Gwei to Wei), but you will also benefit of estimating the gas of the transaction, and use other features of Nethereum.
First of all, we can just have a TransferFunction. This is mainly an object that describes the Transfer function from the ERC20 contract and the ...
Just tested with parity ethereum client 2.5.10: maximum possible value was
being 64 hexadecimal signs -> 256 bit long. Anything exceeding it leads to a node panic
Infura only supports a subset of the Ethereum JSON-RPC endpoints that web3 knows about. You can see the list in Infura's documentation.
The RPC that web3.personal.UnlockAccount is trying to use is called [personal_unlockAccount]. The personal module is all about maintaining a local wallet, including signing transactions and messages and creating new ...
If you simply create a new account with web3 when the blockchain is running the account's balance will be zero as it's an empty account. If you instead preseed account(s) with a balance upon creating the blockchain you can specify them a desired balance, at least in Ganache.
Here are some instructions for Ganache-CLI, probably something similar works for ...
These three lines are correct
var web3 = new Web3("https://mainnet.infura.io");
var contract = web3.Eth.GetContract(abi, contractAddress);
var function = contract.GetFunction("getCollectibleDetails");
I understand what you were trying to do here but there is a better way to get this
var parameters = new object
Data = 157517,
if you're running Geth, you'll need to point to the geth.ipc file instead of the endpoint url pointing to Infura.io for key generation because they won't store your private key for you.
Basically, run Geth locally and add the geth.ipc file path to Config.EndPointURL, and you should be able to generate a key with it.
This is an interesting question! Let's look at each question in particular:
Max number of blocks
Theoretically there should be no upper limit since the chain of blocks must be able to continually grow over time. However, since the block number is stored as a finite integer, there is a limit to how high this number can be. See the full discussion in this ...
You basically answered your own question.
You have offline transaction signing function but the docs have not been updated.
The method call looks different now because it was moved to static context or something like that:
For more info ...
** BEWARE OPINION AHEAD **
The new version of Nethereum separated the shared RPC APIs, from the Client specific APIs and functionality provided by Geth and Parity.
To interact with the Geth client Miner, you need now to add the nuget package Nethereum.Geth, and use the Web3Geth class instead, not the Web3 class:
var web3 = new Web3Geth(myAccount);