public class ContractTransactionResponse
{
public List data { get; set; }
public bool success { get; set; }
public Meta meta { get; set; }
public class Datum
{
public List ret { get; set; }
public List signature { get; set; }
public string txID { get; set; }
public int net_usage { get; set; }
public string raw_data_hex { get; set; }
public int net_fee { get; set; }
public int energy_usage { get; set; }
public string block_timestamp { get; set; }
public string blockNumber { get; set; }
public int energy_fee { get; set; }
public int energy_usage_total { get; set; }
public RawData raw_data { get; set; }
public List
// USDT ADDRESS
GetContractTransactions("TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t");
///
/// 取得 Contract Transactions
///
/// Contract Address
static void GetContractTransactions(string contractAddress)
{
var client = new RestClient("https://api.trongrid.io/v1/contracts/" + contractAddress + "/transactions");
var request = new RestRequest("",Method.Get);
request.AddHeader("accept", "application/json");
var response = client.Execute(request);
var contractTransObj = JsonConvert.DeserializeObject(response.Content);
foreach (var t in contractTransObj.data) {
////最後64位就是金額
var amount =
BigInteger.Parse(t.raw_data.contract[0].parameter.value.data.Substring(t.raw_data.contract[0].parameter.value.data.Length - 64, 64), NumberStyles.AllowHexSpecifier);
var to = ConvertHexToBase58Check("41" + (t.raw_data.contract[0].parameter.value.data.Substring(32, 40))); // 取後 20 bytes
var from = ConvertHexToBase58Check((t.raw_data.contract[0].parameter.value.owner_address)); // 取後 20 bytes
Console.WriteLine("Block:"+t.blockNumber+", txid:"+t.txID+", from:"+ from + ", to:"+to +" ,amount:"+ amount);
}
// Console.WriteLine(response.Content);
}
3. 其中因為 to 的部分 不是直接可以拿到的 必須要透過解析 raw_data
var to = ConvertHexToBase58Check("41" + (t.raw_data.contract[0].parameter.value.data.Substring(32,
40))); // 取後 20 bytes