Get smart contract source code from a transaction.
Request
Request Structure
// Parameters common for all requests
"transactionId": "Decimal_String", // Smart contract address in Base58
"compressed": "boolean value" // Indicator of data compression true or false
}
Request Parameters
transactionId: transactionId- transaction identifier in the form block_number.transaction_number
bool: Compressed - Request compressed data True or False
Response
JSON output depends on the request type and its success.
If there’s an error, request returns to the node basic Result:
Success: False
Message:
If successful, requested information is returned.
Response Structure
{
"gZipped":"Bytes", // Source code of smart contract Compressed
"sourceString":"String", // Source code of smart contract in String Value
"success":"bool", // Shows if request was Succes or False Boolean Value
"message":"String" // Shows if a problem occurred with request in String Value
}
#include <iostream>
#include <cpprest/http_client.h>
#include <cpprest/filestream.h>
using namespace utility; // Common utilities like string conversions
using namespace web; // Common features like URIs.
using namespace web::http; // Common HTTP functionality
using namespace web::http::client; // HTTP client features
using namespace concurrency::streams; // Asynchronous streams
using namespace web::json;
int main(int argc, char* argv[])
{
web::json::value json_v;
web::json::value json_return;
json_v[L"authKey"] = web::json::value::string(L"");
json_v[L"NetworkAlias"] = web::json::value::string(L"Mainnet");
json_v[L"transactionId"] = web::json::value::string(L"22863295.1");
json_v[L"compressed"] = web::json::value::boolean(false);
http_client client(U("http://176.113.80.7:62000"));
client.request(web::http::methods::POST, U("/api/contract/getfromtransaction"), json_v)
.then([](const web::http::http_response& response) {
return response.extract_json();
})
.then([&json_return](const pplx::task<web::json::value>& task) {
try {
json_return = task.get();
}
catch (const web::http::http_exception& e) {
std::cout << "error " << e.what() << std::endl;
}
})
.wait();
std::wcout << json_return.serialize() << std::endl;
return 0;
}
C#
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace Program.Getinfo
{
public class Getcontractbytransaction
{
static readonly HttpClient client = new HttpClient();
public class body
{
public string authKey { get; set; }
public string networkAlias { get; set; }
public string transactionId { get; set; }
public bool compressed { get; set; }
}
public static async Task Main()
{
try
{
var body = new body
{
authKey = "",
networkAlias = "Mainnet",
transactionId = "22863295.1",
compressed = false
};
var httpContent = new StringContent(JsonConvert.SerializeObject(body),
Encoding.UTF8, "application/json");
var response = await client.PostAsync("http://176.113.80.7:62000/api/contract/getfromtransaction",
httpContent);
Console.WriteLine("RESPONSE=" +
await response.Content.ReadAsStringAsync());
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
}
}